# Set up the capsule

The firmware on a device is updated using a capsule through UEFI. This process involves capturing the firmware update payload in a capsule [.cap file], which is then processed by the system firmware to update the device firmware.

Note

The mentioned capsule update is applicable to Qualcomm Linux advanced and base variants only.

## Device firmware

To update device firmware, install low-level software that controls the hardware.
This process can improve the device’s performance, fix bugs, add new features, or enhance security. To configure the device firmware, see: [How to update device firmware using a capsule](https://docs.qualcomm.com/doc/80-70022-4/topic/How-tos.html#how-tos).

## **UEFI variables used for a capsule update**

The communication between OS and UEFI is enabled using protocols and services that interact with the platform firmware. UEFI offers a standard boot environment, data tables with platform information, and boot/runtime service calls for the OS loader and OS.

UEFI variables used in capsule update

| Variable name | Description |
| --- | --- |
| OsIndications | This variable is owned by the OS and is used to indicate the features the OS wants the firmware to enable or the OS wants the firmware to take. This variable is set by OS and cleared by UEFI. |
| OsIndicationsSupported | This variable is owned by the firmware and indicates which of the OS indication features and actions the firmware supports. |
| OsTrialBootStatus - Is a 32 bit UEFI variable. | Bit map:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>7:0 - Version - Version number of OsTrialBootStatus</p></li><br>> <li><p>11:8 - TrialBootMaxCount - This is set by the OS before triggering the capsule update.</p></li><br>> <li><p>15:12 - TrialBootCount - This is set/incremented by UEFI (if TrialBootEnabled isn’t cleared by OS). The OS can set to TrialBootMaxCount, if the OS wants to trigger a firmware rollback.</p></li><br>> <li><p>16 - TrialBootEnabled - This is set to 1 by UEFI after capsule update and cleared by the OS after successful OTA update.</p></li><br>> <li><p>31:17 - Unused</p></li><br>> </ul> |
| EFI system resource table (ESRT) | The ESRT table is set by the UEFI after the capsule update. |

For more information about the OsIndications and OsIndicationsSupported variables, see [Exchanging information between the OS and Firmware](https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html?highlight=osindications#exchanging-information-between-the-os-and-firmware).

Note

- If there is more than one capsule in the ESP partition (in EFI/UpdateCapsule), consider all the capsules for the update and update them alphabetically.
- Store all UEFI non-volatile variables in the Rollback Protection Memory Block (RPMB) partition, which must be in a Provisioned state.

> 
> 
> - Autoprovision the RPMB on Qualcomm secure-boot enabled devices.
>     - On Qualcomm non-secure devices, don’t autoprovision the RPMB; instead, provision it with test keys.
>     - If you provision the RPMB with test keys on non-secure devices, you can’t re-provision it with a device key when enabling Qualcomm secure boot on the device.
>     - Use the `rpmbClient` application for RPMB provisioning from Linux. For more information, see [Qualcomm Security Linux Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-11/bring-up.html#verify-trustzone/device-configuration/hypervisor-image-loading).

## EFI system resource table (ESRT) for capsule update status

> 
> 
> The ESRT is an optional mechanism to identify the device and the system firmware resources that are used to provide firmware updates. Each ESRT entry describes a firmware resource that can be updated and reports the status of the last attempted update.
> The entries in ESRT, which are used to report status of the last attempted update are as listed:

Table: ESRT entries

| **ESRT field** | **Description** |
| --- | --- |
| FwClass | The firmware class field contains a GUID that identifies a firmware component that can be updated through *UpdateCapsule().* |
| FwType | Identifies the type of firmware resource. |
| FwVersion | The firmware version field represents the current version of the firmware resource. The value must always increase as a larger number represents a newer version. |
| LowestSupportedFwVersion | The lowest firmware resource version to which a firmware resource can be rolled back for the specified system/device. |
| CapsuleFlags | The capsule flag field contains the *CapsuleGuid* flags (bits 0- 15) as defined in the *EFI\_CAPSULE\_HEADER* that’s set in the capsule header. |
| LastAttemptVersion | The field describes the last firmware version for which an update was attempted (uses the same format as the firmware version). |
| LastAttemptStatus | The field describes the result of the last firmware update attempt for the firmware resource entry. |

The ESRT content is exposed by the OS from the sysfs path.

/sys/firmware/efi/esrt/entries/entry0/
    sh-5.1# cd /sys/firmware/efi/esrt/entries/entry0/
    sh-5.1# ls
    capsule_flags  fw_type     last_attempt_status   lowest_supported_fw_version
    w_class       fw_version  last_attempt_version
    Copy to clipboard

The ESRT table is set by UEFI after the capsule update. X is the firmware version before the capsule update. Y is the version of the firmware, which is available in the capsule [.cap] file.

Note

Last attempted firmware version is available only if RPMB is provisioned.

| **Last attempted firmware version** | **Current firmware version** | **last\_attempt satus** | **Capsule update scenario** |
| --- | --- | --- | --- |
| Y | Y | 0 | Update success |
| Y | X | 1 | Capsule update failure |
| 0 | X | 0 | Capsule meta-data failure |
| Y | X | 0 | Firmware rollback done |

For more information about ESRT, see [Firmware Update and Reporting - UEFI Specification 2.10 documentation](https://uefi.org/specs/UEFI/2.10/23_Firmware_Update_and_Reporting.html#efi-system-resource-table)

The flowchart explains how the device firmware is updated using the UEFI capsule solution/method using different UEFI variables along with the rollback support.

<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="878.666000366210938" height="1013.808517456054688" viewbox="0 0 878.666000366210938 1013.808517456054688" aria-label="../../_images/Capsule-flowchart.svg">
  <g>
    <rect x=".500228881835938" y=".50030517578125" width="877.666015625" height="1012.80859375" rx="7.500000000000028" ry="7.500000000000028" style="fill: #fafafa;"></rect>
    <path d="M870.666000366210938,1c3.85986328125,0,7,3.14013671875,7,7v997.808517456054688c0,3.859870910644531-3.14013671875,7-7,7H8c-3.859878540039062,0-7-3.140129089355469-7-7V8c0-3.85986328125,3.140121459960938-7,7-7h862.666000366210938M870.666000366210938,0H8C3.581741333007812,0,0,3.581787109375,0,8v997.808517456054688c0,4.418251037597656,3.581741333007812,8,8,8h862.666000366210938c4.418212890625,0,8-3.581748962402344,8-8V8c0-4.418212890625-3.581787109375-8-8-8h0Z" style="fill: #d2d7e1;"></path>
  </g>
  <rect x="168.762218899195432" y="15.000075693702456" width="349.66666666666606" height="28.444444444445253" rx="3.999999999999992" ry="3.999999999999992" style="fill: #6280cc;"></rect>
  <rect x="15.000004738753887" y="500.552990836386925" width="205.584472656249091" height="46.600477430557476" rx="4.000000000000001" ry="4.000000000000001" style="fill: #6280cc;"></rect>
  <rect x="15.000004738753887" y="577.153468266944401" width="205.584472656249091" height="46.600477430554747" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <rect x="15.000004738753887" y="347.352035975274703" width="205.584472656249091" height="46.600477430556566" rx="4.000000000000003" ry="4.000000000000003" style="fill: #6280cc;"></rect>
  <rect x="15.000004738753887" y="423.952513405831269" width="205.584472656249091" height="46.600477430556566" rx="4.000000000000003" ry="4.000000000000003" style="fill: #6280cc;"></rect>
  <rect x="168.762218899195432" y="221.889655219185443" width="349.66666666666606" height="28.444444444445253" rx="3.999999999999992" ry="3.999999999999992" style="fill: #6280cc;"></rect>
  <rect x="168.762218899195432" y="73.123975965710997" width="349.66666666666606" height="44.382839626737223" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <rect x="168.762218899195432" y="147.50681559244822" width="349.66666666666606" height="44.382839626737223" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <text transform="translate(254.126914978027344 33.639834880828857)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Start and initiate OTA update</tspan></text>
  <text transform="translate(43.095947265625 374.74346923828125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Perform capsule update</tspan></text>
  <text transform="translate(52.232177734375 442.9439697265625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Update ESRT to clear</tspan><tspan x="22.8046875" y="16.7998046875">OsIndications</tspan></text>
  <text transform="translate(24.6832275390625 519.544586181640625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Set the TrialBootEnabled after</tspan><tspan x="2.8232421875" y="16.7998046875">the TrialBootMaxCount is set</tspan></text>
  <rect x="240.774398802888754" y="816.780021553629922" width="205.58447265625" height="46.600477430556566" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <text transform="translate(295.171730041503906 835.7716064453125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Boots to the OS</tspan><tspan x="-5.21923828125" y="16.7998046875">and checks ESRT</tspan></text>
  <rect x="665.219430769982864" y="415.480376600306045" width="157.863354037266618" height="46.600477430554747" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <rect x="665.219430769982864" y="530.827547362940095" width="157.863354037266618" height="46.600477430554747" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <rect x="665.219430769982864" y="663.506119423345808" width="157.863354037266618" height="46.600477430554747" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <text transform="translate(705.504257202148438 434.472076416015625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">OS Trialboot</tspan><tspan x="-31.0556640625" y="16.7998046875">complete is confirmed</tspan></text>
  <rect x="240.774398802888754" y="740.179544123075175" width="205.58447265625" height="46.600477430554747" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <text transform="translate(250.01690673828125 759.171142578125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Firmware rollback is complete</tspan><tspan x="20.3369140625" y="16.7998046875">and the system reboots</tspan></text>
  <rect x="240.774398802888754" y="663.608414475558675" width="205.58447265625" height="46.600477430554747" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <text transform="translate(257.597724914550781 682.60003662109375)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">UEFI returns to the previous</tspan><tspan x="8.55859375" y="16.7998046875">firmware to update ESRT</tspan></text>
  <text transform="translate(675.459884643554688 690.89752197265625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Rollback limit reached</tspan></text>
  <text transform="translate(712.651473999023438 549.81903076171875)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Increment</tspan><tspan x="-15.435546875" y="16.7998046875">TrialBootCount</tspan></text>
  <rect x="240.774398802888754" y="893.874681260849684" width="205.58447265625" height="46.600477430556566" rx="4" ry="4" style="fill: #6280cc;"></rect>
  <g>
    <path d="M281.574935913085938,908.21124267578125c0,.974609375-.1640625,1.826171875-.4921875,2.552734375-.328125.7275390625-.79296875,1.2822265625-1.39453125,1.6650390625s-1.30322265625.57421875-2.10546875.57421875c-.78369140625,0-1.47900390625-.1923828125-2.0849609375-.578125-.60595703125-.384765625-1.07666015625-.93359375-1.41162109375-1.6474609375-.3349609375-.712890625-.5068359375-1.5390625-.51611328125-2.4775390625v-.7177734375c0-.95703125.16650390625-1.802734375.4990234375-2.5361328125.33251953125-.734375.80322265625-1.2958984375,1.41162109375-1.685546875s1.3046875-.583984375,2.08837890625-.583984375c.79736328125,0,1.50048828125.1923828125,2.10888671875.5771484375.6083984375.3857421875,1.07666015625.943359375,1.40478515625,1.6748046875s.4921875,1.5830078125.4921875,2.5537109375v.62890625ZM280.269271850585938,907.56866455078125c0-1.1806640625-.23681640625-2.0859375-.7109375-2.7177734375-.47412109375-.630859375-1.13720703125-.9462890625-1.9892578125-.9462890625-.82958984375,0-1.482421875.3154296875-1.95849609375.9462890625-.47607421875.6318359375-.72119140625,1.5078125-.73486328125,2.62890625v.7314453125c0,1.1435546875.240234375,2.04296875.72119140625,2.6962890625.48095703125.654296875,1.142578125.9814453125,1.98583984375.9814453125.84765625,0,1.50390625-.30859375,1.96875-.9267578125.46484375-.6171875.7041015625-1.5029296875.7177734375-2.6552734375v-.73828125Z" style="fill: #fff;"></path>
    <path d="M286.476303100585938,908.42999267578125c-1.12548828125-.32421875-1.94482421875-.7216796875-2.45751953125-1.193359375s-.76904296875-1.0537109375-.76904296875-1.74609375c0-.7841796875.3134765625-1.4326171875.93994140625-1.9453125s1.44140625-.7685546875,2.44384765625-.7685546875c.68359375,0,1.29296875.1318359375,1.82861328125.396484375.53564453125.263671875.9501953125.62890625,1.244140625,1.09375s.44091796875.97265625.44091796875,1.5244140625h-1.3193359375c0-.603515625-.19140625-1.078125-.57421875-1.423828125-.3828125-.3447265625-.9228515625-.517578125-1.6201171875-.517578125-.64697265625,0-1.15185546875.142578125-1.51416015625.427734375s-.54345703125.681640625-.54345703125,1.1884765625c0,.40625.171875.75.51611328125,1.0302734375.34423828125.28125.9296875.5380859375,1.7568359375.7705078125.8271484375.2333984375,1.47412109375.4892578125,1.94140625.76953125s.8134765625.607421875,1.0390625.9814453125c.2255859375.373046875.33837890625.8134765625.33837890625,1.3193359375,0,.806640625-.314453125,1.4521484375-.943359375,1.9375s-1.4697265625.728515625-2.5224609375.728515625c-.68359375,0-1.32177734375-.130859375-1.9140625-.3935546875-.59228515625-.26171875-1.04931640625-.62109375-1.37060546875-1.076171875-.3212890625-.4560546875-.48193359375-.9736328125-.48193359375-1.5517578125h1.3193359375c0,.6015625.22216796875,1.076171875.66650390625,1.4248046875s1.0380859375.5234375,1.78076171875.5234375c.69287109375,0,1.2236328125-.1416015625,1.5927734375-.423828125.369140625-.283203125.5537109375-.66796875.5537109375-1.1552734375,0-.48828125-.1708984375-.865234375-.5126953125-1.1318359375s-.96142578125-.529296875-1.859375-.7890625Z" style="fill: #fff;"></path>
    <path d="M301.378646850585938,909.25030517578125c0,1.1298828125-.259765625,2.0380859375-.779296875,2.7236328125-.51953125.6865234375-1.216796875,1.029296875-2.091796875,1.029296875-.93408203125,0-1.65673828125-.3310546875-2.1669921875-.9912109375l-.0615234375.8544921875h-1.162109375v-10.5h1.2646484375v3.9169921875c.51025390625-.6337890625,1.21435546875-.9501953125,2.1123046875-.9501953125s1.60302734375.3388671875,2.11572265625,1.0185546875c.5126953125.6787109375.76904296875,1.6083984375.76904296875,2.7890625v.109375ZM300.113998413085938,909.10675048828125c0-.861328125-.16650390625-1.52734375-.4990234375-1.99609375-.33251953125-.4697265625-.81103515625-.7041015625-1.435546875-.7041015625-.833984375,0-1.43310546875.38671875-1.7978515625,1.162109375v3.19921875c.38720703125.7744140625.9912109375,1.162109375,1.8115234375,1.162109375.60595703125,0,1.07763671875-.2353515625,1.4150390625-.7041015625.33740234375-.4697265625.505859375-1.17578125.505859375-2.119140625Z" style="fill: #fff;"></path>
    <path d="M302.636459350585938,909.09991455078125c0-.724609375.142578125-1.376953125.42724609375-1.955078125.28466796875-.5791015625.68115234375-1.025390625,1.189453125-1.33984375s1.087890625-.4716796875,1.73974609375-.4716796875c1.00732421875,0,1.82177734375.3486328125,2.44384765625,1.0458984375s.93310546875,1.6240234375.93310546875,2.7822265625v.0888671875c0,.7197265625-.1376953125,1.3662109375-.41357421875,1.9375-.27587890625.572265625-.669921875,1.017578125-1.1826171875,1.3369140625-.5126953125.318359375-1.1015625.478515625-1.76708984375.478515625-1.00244140625,0-1.81494140625-.3486328125-2.43701171875-1.0458984375s-.93310546875-1.6201171875-.93310546875-2.7685546875v-.0888671875ZM303.907943725585938,909.25030517578125c0,.8203125.1904296875,1.478515625.57080078125,1.9755859375.38037109375.49609375.8896484375.7451171875,1.52783203125.7451171875.642578125,0,1.15283203125-.251953125,1.53125-.755859375.37841796875-.5029296875.5673828125-1.208984375.5673828125-2.115234375,0-.8115234375-.1923828125-1.46875-.57763671875-1.97265625-.38525390625-.5029296875-.896484375-.7548828125-1.53466796875-.7548828125-.62451171875,0-1.1279296875.248046875-1.5107421875.7451171875-.3828125.49609375-.57421875,1.20703125-.57421875,2.1328125Z" style="fill: #fff;"></path>
    <path d="M310.620834350585938,909.09991455078125c0-.724609375.142578125-1.376953125.42724609375-1.955078125.28466796875-.5791015625.68115234375-1.025390625,1.189453125-1.33984375s1.087890625-.4716796875,1.73974609375-.4716796875c1.00732421875,0,1.82177734375.3486328125,2.44384765625,1.0458984375s.93310546875,1.6240234375.93310546875,2.7822265625v.0888671875c0,.7197265625-.1376953125,1.3662109375-.41357421875,1.9375-.27587890625.572265625-.669921875,1.017578125-1.1826171875,1.3369140625-.5126953125.318359375-1.1015625.478515625-1.76708984375.478515625-1.00244140625,0-1.81494140625-.3486328125-2.43701171875-1.0458984375s-.93310546875-1.6201171875-.93310546875-2.7685546875v-.0888671875ZM311.892318725585938,909.25030517578125c0,.8203125.1904296875,1.478515625.57080078125,1.9755859375.38037109375.49609375.8896484375.7451171875,1.52783203125.7451171875.642578125,0,1.15283203125-.251953125,1.53125-.755859375.37841796875-.5029296875.5673828125-1.208984375.5673828125-2.115234375,0-.8115234375-.1923828125-1.46875-.57763671875-1.97265625-.38525390625-.5029296875-.896484375-.7548828125-1.53466796875-.7548828125-.62451171875,0-1.1279296875.248046875-1.5107421875.7451171875-.3828125.49609375-.57421875,1.20703125-.57421875,2.1328125Z" style="fill: #fff;"></path>
    <path d="M320.655990600585938,903.67901611328125v1.791015625h1.380859375v.9775390625h-1.380859375v4.5927734375c0,.2958984375.0615234375.5185546875.1845703125.6669921875s.33251953125.22265625.62890625.22265625c.14599609375,0,.34619140625-.02734375.6015625-.08203125v1.01953125c-.33251953125.08984375-.65625.1357421875-.970703125.1357421875-.56494140625,0-.9912109375-.1708984375-1.2783203125-.5126953125s-.4306640625-.8271484375-.4306640625-1.4560546875v-4.5869140625h-1.3466796875v-.9775390625h1.3466796875v-1.791015625h1.2646484375Z" style="fill: #fff;"></path>
    <path d="M327.820053100585938,910.90460205078125c0-.341796875-.12890625-.607421875-.38623046875-.796875-.25732421875-.1884765625-.70654296875-.3515625-1.3466796875-.48828125s-1.1484375-.30078125-1.5244140625-.4921875-.65380859375-.419921875-.833984375-.68359375c-.18017578125-.2646484375-.27001953125-.5791015625-.27001953125-.943359375,0-.6064453125.25634765625-1.119140625.76904296875-1.5380859375.5126953125-.419921875,1.16796875-.62890625,1.96533203125-.62890625.83837890625,0,1.5185546875.2158203125,2.04052734375.6494140625.52197265625.4326171875.78271484375.986328125.78271484375,1.6611328125h-1.271484375c0-.3466796875-.14697265625-.6455078125-.44091796875-.8955078125-.2939453125-.2509765625-.6640625-.3759765625-1.11083984375-.3759765625-.46044921875,0-.8203125.099609375-1.080078125.30078125-.259765625.2001953125-.3896484375.4619140625-.3896484375.7861328125,0,.3046875.12060546875.53515625.3623046875.6904296875.24169921875.154296875.677734375.302734375,1.30908203125.4443359375.63134765625.140625,1.142578125.3095703125,1.53466796875.505859375.39208984375.1953125.6826171875.431640625.87158203125.70703125.18896484375.2763671875.28369140625.6123046875.28369140625,1.0087890625,0,.66015625-.26416015625,1.1904296875-.79296875,1.5888671875-.52880859375.3994140625-1.21435546875.5986328125-2.0576171875.5986328125-.59228515625,0-1.11669921875-.10546875-1.572265625-.314453125-.45556640625-.2099609375-.8125-.5029296875-1.06982421875-.87890625s-.38623046875-.7822265625-.38623046875-1.2197265625h1.2646484375c.02294921875.423828125.1923828125.759765625.50927734375,1.0078125.31689453125.2490234375.73486328125.373046875,1.25439453125.373046875.478515625,0,.8623046875-.0966796875,1.15185546875-.291015625.28955078125-.193359375.43408203125-.4521484375.43408203125-.775390625Z" style="fill: #fff;"></path>
    <path d="M338.504623413085938,910.90460205078125c0-.341796875-.12890625-.607421875-.38623046875-.796875-.25732421875-.1884765625-.70654296875-.3515625-1.3466796875-.48828125s-1.1484375-.30078125-1.5244140625-.4921875-.65380859375-.419921875-.833984375-.68359375c-.18017578125-.2646484375-.27001953125-.5791015625-.27001953125-.943359375,0-.6064453125.25634765625-1.119140625.76904296875-1.5380859375.5126953125-.419921875,1.16796875-.62890625,1.96533203125-.62890625.83837890625,0,1.5185546875.2158203125,2.04052734375.6494140625.52197265625.4326171875.78271484375.986328125.78271484375,1.6611328125h-1.271484375c0-.3466796875-.14697265625-.6455078125-.44091796875-.8955078125-.2939453125-.2509765625-.6640625-.3759765625-1.11083984375-.3759765625-.46044921875,0-.8203125.099609375-1.080078125.30078125-.259765625.2001953125-.3896484375.4619140625-.3896484375.7861328125,0,.3046875.12060546875.53515625.3623046875.6904296875.24169921875.154296875.677734375.302734375,1.30908203125.4443359375.63134765625.140625,1.142578125.3095703125,1.53466796875.505859375.39208984375.1953125.6826171875.431640625.87158203125.70703125.18896484375.2763671875.28369140625.6123046875.28369140625,1.0087890625,0,.66015625-.26416015625,1.1904296875-.79296875,1.5888671875-.52880859375.3994140625-1.21435546875.5986328125-2.0576171875.5986328125-.59228515625,0-1.11669921875-.10546875-1.572265625-.314453125-.45556640625-.2099609375-.8125-.5029296875-1.06982421875-.87890625s-.38623046875-.7822265625-.38623046875-1.2197265625h1.2646484375c.02294921875.423828125.1923828125.759765625.50927734375,1.0078125.31689453125.2490234375.73486328125.373046875,1.25439453125.373046875.478515625,0,.8623046875-.0966796875,1.15185546875-.291015625.28955078125-.193359375.43408203125-.4521484375.43408203125-.775390625Z" style="fill: #fff;"></path>
    <path d="M345.983139038085938,912.13507080078125c-.4921875.578125-1.21435546875.8681640625-2.1669921875.8681640625-.78857421875,0-1.388671875-.2294921875-1.80126953125-.6875s-.62109375-1.1357421875-.62548828125-2.033203125v-4.8125h1.2646484375v4.7783203125c0,1.12109375.45556640625,1.681640625,1.3671875,1.681640625.96630859375,0,1.60888671875-.3603515625,1.927734375-1.080078125v-5.3798828125h1.2646484375v7.396484375h-1.203125l-.02734375-.7314453125Z" style="fill: #fff;"></path>
    <path d="M352.101303100585938,911.97100830078125c.451171875,0,.84521484375-.13671875,1.1826171875-.41015625s.52392578125-.615234375.560546875-1.025390625h1.1962890625c-.02294921875.423828125-.16845703125.8271484375-.4375,1.2099609375s-.6279296875.6875-1.07666015625.916015625c-.44873046875.2275390625-.923828125.341796875-1.42529296875.341796875-1.00732421875,0-1.80810546875-.3359375-2.40283203125-1.0087890625-.5947265625-.671875-.89208984375-1.591796875-.89208984375-2.7578125v-.2119140625c0-.720703125.13232421875-1.3603515625.396484375-1.9208984375s.6435546875-.99609375,1.13818359375-1.3056640625c.49462890625-.310546875,1.0791015625-.46484375,1.75341796875-.46484375.82958984375,0,1.5185546875.248046875,2.06787109375.7451171875.54931640625.49609375.841796875,1.1416015625.87841796875,1.9345703125h-1.1962890625c-.03662109375-.478515625-.2177734375-.8720703125-.54345703125-1.1796875s-.72802734375-.4609375-1.20654296875-.4609375c-.642578125,0-1.140625.2314453125-1.49365234375.693359375-.35302734375.462890625-.52978515625,1.1318359375-.52978515625,2.0068359375v.2392578125c0,.8515625.17529296875,1.5078125.5263671875,1.96875.35107421875.4599609375.85205078125.6904296875,1.50390625.6904296875Z" style="fill: #fff;"></path>
    <path d="M359.429428100585938,911.97100830078125c.451171875,0,.84521484375-.13671875,1.1826171875-.41015625s.52392578125-.615234375.560546875-1.025390625h1.1962890625c-.02294921875.423828125-.16845703125.8271484375-.4375,1.2099609375s-.6279296875.6875-1.07666015625.916015625c-.44873046875.2275390625-.923828125.341796875-1.42529296875.341796875-1.00732421875,0-1.80810546875-.3359375-2.40283203125-1.0087890625-.5947265625-.671875-.89208984375-1.591796875-.89208984375-2.7578125v-.2119140625c0-.720703125.13232421875-1.3603515625.396484375-1.9208984375s.6435546875-.99609375,1.13818359375-1.3056640625c.49462890625-.310546875,1.0791015625-.46484375,1.75341796875-.46484375.82958984375,0,1.5185546875.248046875,2.06787109375.7451171875.54931640625.49609375.841796875,1.1416015625.87841796875,1.9345703125h-1.1962890625c-.03662109375-.478515625-.2177734375-.8720703125-.54345703125-1.1796875s-.72802734375-.4609375-1.20654296875-.4609375c-.642578125,0-1.140625.2314453125-1.49365234375.693359375-.35302734375.462890625-.52978515625,1.1318359375-.52978515625,2.0068359375v.2392578125c0,.8515625.17529296875,1.5078125.5263671875,1.96875.35107421875.4599609375.85205078125.6904296875,1.50390625.6904296875Z" style="fill: #fff;"></path>
    <path d="M366.860092163085938,913.00323486328125c-1.00244140625,0-1.818359375-.3291015625-2.447265625-.98828125-.62890625-.658203125-.943359375-1.5390625-.943359375-2.6416015625v-.232421875c0-.734375.14013671875-1.388671875.42041015625-1.9658203125.2802734375-.576171875.67236328125-1.02734375,1.17578125-1.353515625.50341796875-.3251953125,1.04931640625-.48828125,1.63720703125-.48828125.96142578125,0,1.708984375.31640625,2.2421875.9501953125.533203125.6328125.7998046875,1.5400390625.7998046875,2.720703125v.5263671875h-5.0107421875c.01806640625.728515625.2314453125,1.318359375.63916015625,1.7666015625.40771484375.44921875.92626953125.673828125,1.55517578125.673828125.44677734375,0,.82470703125-.091796875,1.134765625-.2734375.31005859375-.1826171875.5810546875-.423828125.8134765625-.724609375l.7724609375.6015625c-.61962890625.9521484375-1.54931640625,1.4287109375-2.7890625,1.4287109375ZM366.702865600585938,906.37237548828125c-.51025390625,0-.93896484375.185546875-1.28515625.556640625-.34619140625.3720703125-.560546875.892578125-.642578125,1.5625h3.705078125v-.095703125c-.03662109375-.642578125-.20947265625-1.140625-.51953125-1.494140625-.31005859375-.3525390625-.72900390625-.529296875-1.2578125-.529296875Z" style="fill: #fff;"></path>
    <path d="M375.514389038085938,910.90460205078125c0-.341796875-.12890625-.607421875-.38623046875-.796875-.25732421875-.1884765625-.70654296875-.3515625-1.3466796875-.48828125s-1.1484375-.30078125-1.5244140625-.4921875-.65380859375-.419921875-.833984375-.68359375c-.18017578125-.2646484375-.27001953125-.5791015625-.27001953125-.943359375,0-.6064453125.25634765625-1.119140625.76904296875-1.5380859375.5126953125-.419921875,1.16796875-.62890625,1.96533203125-.62890625.83837890625,0,1.5185546875.2158203125,2.04052734375.6494140625.52197265625.4326171875.78271484375.986328125.78271484375,1.6611328125h-1.271484375c0-.3466796875-.14697265625-.6455078125-.44091796875-.8955078125-.2939453125-.2509765625-.6640625-.3759765625-1.11083984375-.3759765625-.46044921875,0-.8203125.099609375-1.080078125.30078125-.259765625.2001953125-.3896484375.4619140625-.3896484375.7861328125,0,.3046875.12060546875.53515625.3623046875.6904296875.24169921875.154296875.677734375.302734375,1.30908203125.4443359375.63134765625.140625,1.142578125.3095703125,1.53466796875.505859375.39208984375.1953125.6826171875.431640625.87158203125.70703125.18896484375.2763671875.28369140625.6123046875.28369140625,1.0087890625,0,.66015625-.26416015625,1.1904296875-.79296875,1.5888671875-.52880859375.3994140625-1.21435546875.5986328125-2.0576171875.5986328125-.59228515625,0-1.11669921875-.10546875-1.572265625-.314453125-.45556640625-.2099609375-.8125-.5029296875-1.06982421875-.87890625s-.38623046875-.7822265625-.38623046875-1.2197265625h1.2646484375c.02294921875.423828125.1923828125.759765625.50927734375,1.0078125.31689453125.2490234375.73486328125.373046875,1.25439453125.373046875.478515625,0,.8623046875-.0966796875,1.15185546875-.291015625.28955078125-.193359375.43408203125-.4521484375.43408203125-.775390625Z" style="fill: #fff;"></path>
    <path d="M382.733139038085938,910.90460205078125c0-.341796875-.12890625-.607421875-.38623046875-.796875-.25732421875-.1884765625-.70654296875-.3515625-1.3466796875-.48828125s-1.1484375-.30078125-1.5244140625-.4921875-.65380859375-.419921875-.833984375-.68359375c-.18017578125-.2646484375-.27001953125-.5791015625-.27001953125-.943359375,0-.6064453125.25634765625-1.119140625.76904296875-1.5380859375.5126953125-.419921875,1.16796875-.62890625,1.96533203125-.62890625.83837890625,0,1.5185546875.2158203125,2.04052734375.6494140625.52197265625.4326171875.78271484375.986328125.78271484375,1.6611328125h-1.271484375c0-.3466796875-.14697265625-.6455078125-.44091796875-.8955078125-.2939453125-.2509765625-.6640625-.3759765625-1.11083984375-.3759765625-.46044921875,0-.8203125.099609375-1.080078125.30078125-.259765625.2001953125-.3896484375.4619140625-.3896484375.7861328125,0,.3046875.12060546875.53515625.3623046875.6904296875.24169921875.154296875.677734375.302734375,1.30908203125.4443359375.63134765625.140625,1.142578125.3095703125,1.53466796875.505859375.39208984375.1953125.6826171875.431640625.87158203125.70703125.18896484375.2763671875.28369140625.6123046875.28369140625,1.0087890625,0,.66015625-.26416015625,1.1904296875-.79296875,1.5888671875-.52880859375.3994140625-1.21435546875.5986328125-2.0576171875.5986328125-.59228515625,0-1.11669921875-.10546875-1.572265625-.314453125-.45556640625-.2099609375-.8125-.5029296875-1.06982421875-.87890625s-.38623046875-.7822265625-.38623046875-1.2197265625h1.2646484375c.02294921875.423828125.1923828125.759765625.50927734375,1.0078125.31689453125.2490234375.73486328125.373046875,1.25439453125.373046875.478515625,0,.8623046875-.0966796875,1.15185546875-.291015625.28955078125-.193359375.43408203125-.4521484375.43408203125-.775390625Z" style="fill: #fff;"></path>
    <path d="M386.267318725585938,912.86651611328125v-6.4189453125h-1.1689453125v-.9775390625h1.1689453125v-.7587890625c0-.79296875.2119140625-1.40625.6357421875-1.8388671875.423828125-.43359375,1.02294921875-.6494140625,1.7978515625-.6494140625.29150390625,0,.5810546875.0380859375.8681640625.115234375l-.068359375,1.01953125c-.21435546875-.041015625-.44189453125-.0615234375-.68359375-.0615234375-.41015625,0-.72705078125.1201171875-.9501953125.359375-.22314453125.240234375-.3349609375.5849609375-.3349609375,1.0322265625v.7822265625h1.5791015625v.9775390625h-1.5791015625v6.4189453125h-1.2646484375Z" style="fill: #fff;"></path>
    <path d="M395.072006225585938,912.13507080078125c-.4921875.578125-1.21435546875.8681640625-2.1669921875.8681640625-.78857421875,0-1.388671875-.2294921875-1.80126953125-.6875s-.62109375-1.1357421875-.62548828125-2.033203125v-4.8125h1.2646484375v4.7783203125c0,1.12109375.45556640625,1.681640625,1.3671875,1.681640625.96630859375,0,1.60888671875-.3603515625,1.927734375-1.080078125v-5.3798828125h1.2646484375v7.396484375h-1.203125l-.02734375-.7314453125Z" style="fill: #fff;"></path>
    <path d="M399.597396850585938,912.86651611328125h-1.2646484375v-10.5h1.2646484375v10.5Z" style="fill: #fff;"></path>
    <path d="M402.994857788085938,912.86651611328125h-1.2646484375v-10.5h1.2646484375v10.5Z" style="fill: #fff;"></path>
    <path d="M407.438217163085938,911.01397705078125l1.72265625-5.5439453125h1.353515625l-2.9736328125,8.5380859375c-.46044921875,1.23046875-1.19189453125,1.845703125-2.1943359375,1.845703125l-.2392578125-.0205078125-.4716796875-.0888671875v-1.025390625l.341796875.02734375c.42822265625,0,.76220703125-.0869140625,1.00146484375-.259765625.2392578125-.173828125.4365234375-.490234375.59130859375-.9501953125l.2802734375-.751953125-2.638671875-7.314453125h1.380859375l1.845703125,5.5439453125Z" style="fill: #fff;"></path>
    <path d="M411.669662475585938,912.20343017578125c0-.21875.06494140625-.4013671875.19482421875-.546875.1298828125-.146484375.32470703125-.21875.58447265625-.21875s.45703125.072265625.59130859375.21875c.13427734375.1455078125.20166015625.328125.20166015625.546875,0,.208984375-.0673828125.384765625-.20166015625.5263671875-.13427734375.140625-.33154296875.2119140625-.59130859375.2119140625s-.45458984375-.0712890625-.58447265625-.2119140625c-.1298828125-.1416015625-.19482421875-.3173828125-.19482421875-.5263671875Z" style="fill: #fff;"></path>
    <path d="M275.706283569335938,925.63995361328125h-2.337890625v4.0263671875h-1.3193359375v-9.953125h3.294921875c1.12109375,0,1.9833984375.2548828125,2.58740234375.765625.60400390625.509765625.90576171875,1.2529296875.90576171875,2.228515625,0,.619140625-.16748046875,1.1591796875-.50244140625,1.6201171875-.3349609375.4599609375-.80078125.8037109375-1.39794921875,1.0322265625l2.337890625,4.224609375v.08203125h-1.408203125l-2.16015625-4.0263671875ZM273.368392944335938,924.56671142578125h2.0166015625c.65185546875,0,1.169921875-.1689453125,1.55517578125-.5068359375s.57763671875-.7900390625.57763671875-1.3564453125c0-.6162109375-.18359375-1.0888671875-.55029296875-1.4169921875-.36669921875-.3291015625-.896484375-.49609375-1.58935546875-.5h-2.009765625v3.7802734375Z" style="fill: #fff;"></path>
    <path d="M283.547103881835938,929.80303955078125c-1.00244140625,0-1.818359375-.3291015625-2.447265625-.98828125-.62890625-.658203125-.943359375-1.5390625-.943359375-2.6416015625v-.232421875c0-.734375.14013671875-1.388671875.42041015625-1.9658203125.2802734375-.576171875.67236328125-1.02734375,1.17578125-1.353515625.50341796875-.3251953125,1.04931640625-.48828125,1.63720703125-.48828125.96142578125,0,1.708984375.31640625,2.2421875.9501953125.533203125.6328125.7998046875,1.5400390625.7998046875,2.720703125v.5263671875h-5.0107421875c.01806640625.728515625.2314453125,1.318359375.63916015625,1.7666015625.40771484375.44921875.92626953125.673828125,1.55517578125.673828125.44677734375,0,.82470703125-.091796875,1.134765625-.2734375.31005859375-.1826171875.5810546875-.423828125.8134765625-.724609375l.7724609375.6015625c-.61962890625.9521484375-1.54931640625,1.4287109375-2.7890625,1.4287109375ZM283.389877319335938,923.17218017578125c-.51025390625,0-.93896484375.185546875-1.28515625.556640625-.34619140625.3720703125-.560546875.892578125-.642578125,1.5625h3.705078125v-.095703125c-.03662109375-.642578125-.20947265625-1.140625-.51953125-1.494140625-.31005859375-.3525390625-.72900390625-.529296875-1.2578125-.529296875Z" style="fill: #fff;"></path>
    <path d="M292.201400756835938,927.70440673828125c0-.341796875-.12890625-.607421875-.38623046875-.796875-.25732421875-.1884765625-.70654296875-.3515625-1.3466796875-.48828125s-1.1484375-.30078125-1.5244140625-.4921875-.65380859375-.419921875-.833984375-.68359375c-.18017578125-.2646484375-.27001953125-.5791015625-.27001953125-.943359375,0-.6064453125.25634765625-1.119140625.76904296875-1.5380859375.5126953125-.419921875,1.16796875-.62890625,1.96533203125-.62890625.83837890625,0,1.5185546875.2158203125,2.04052734375.6494140625.52197265625.4326171875.78271484375.986328125.78271484375,1.6611328125h-1.271484375c0-.3466796875-.14697265625-.6455078125-.44091796875-.8955078125-.2939453125-.2509765625-.6640625-.3759765625-1.11083984375-.3759765625-.46044921875,0-.8203125.099609375-1.080078125.30078125-.259765625.2001953125-.3896484375.4619140625-.3896484375.7861328125,0,.3046875.12060546875.53515625.3623046875.6904296875.24169921875.154296875.677734375.302734375,1.30908203125.4443359375.63134765625.140625,1.142578125.3095703125,1.53466796875.505859375.39208984375.1953125.6826171875.431640625.87158203125.70703125.18896484375.2763671875.28369140625.6123046875.28369140625,1.0087890625,0,.66015625-.26416015625,1.1904296875-.79296875,1.5888671875-.52880859375.3994140625-1.21435546875.5986328125-2.0576171875.5986328125-.59228515625,0-1.11669921875-.10546875-1.572265625-.314453125-.45556640625-.2099609375-.8125-.5029296875-1.06982421875-.87890625s-.38623046875-.7822265625-.38623046875-1.2197265625h1.2646484375c.02294921875.423828125.1923828125.759765625.50927734375,1.0078125.31689453125.2490234375.73486328125.373046875,1.25439453125.373046875.478515625,0,.8623046875-.0966796875,1.15185546875-.291015625.28955078125-.193359375.43408203125-.4521484375.43408203125-.775390625Z" style="fill: #fff;"></path>
    <path d="M298.182846069335938,929.80303955078125c-1.00244140625,0-1.818359375-.3291015625-2.447265625-.98828125-.62890625-.658203125-.943359375-1.5390625-.943359375-2.6416015625v-.232421875c0-.734375.14013671875-1.388671875.42041015625-1.9658203125.2802734375-.576171875.67236328125-1.02734375,1.17578125-1.353515625.50341796875-.3251953125,1.04931640625-.48828125,1.63720703125-.48828125.96142578125,0,1.708984375.31640625,2.2421875.9501953125.533203125.6328125.7998046875,1.5400390625.7998046875,2.720703125v.5263671875h-5.0107421875c.01806640625.728515625.2314453125,1.318359375.63916015625,1.7666015625.40771484375.44921875.92626953125.673828125,1.55517578125.673828125.44677734375,0,.82470703125-.091796875,1.134765625-.2734375.31005859375-.1826171875.5810546875-.423828125.8134765625-.724609375l.7724609375.6015625c-.61962890625.9521484375-1.54931640625,1.4287109375-2.7890625,1.4287109375ZM298.025619506835938,923.17218017578125c-.51025390625,0-.93896484375.185546875-1.28515625.556640625-.34619140625.3720703125-.560546875.892578125-.642578125,1.5625h3.705078125v-.095703125c-.03662109375-.642578125-.20947265625-1.140625-.51953125-1.494140625-.31005859375-.3525390625-.72900390625-.529296875-1.2578125-.529296875Z" style="fill: #fff;"></path>
    <path d="M304.246322631835938,920.47882080078125v1.791015625h1.380859375v.9775390625h-1.380859375v4.5927734375c0,.2958984375.0615234375.5185546875.1845703125.6669921875s.33251953125.22265625.62890625.22265625c.14599609375,0,.34619140625-.02734375.6015625-.08203125v1.01953125c-.33251953125.08984375-.65625.1357421875-.970703125.1357421875-.56494140625,0-.9912109375-.1708984375-1.2783203125-.5126953125s-.4306640625-.8271484375-.4306640625-1.4560546875v-4.5869140625h-1.3466796875v-.9775390625h1.3466796875v-1.791015625h1.2646484375Z" style="fill: #fff;"></path>
    <path d="M317.644760131835938,920.78643798828125h-3.19921875v8.8798828125h-1.3056640625v-8.8798828125h-3.1923828125v-1.0732421875h7.697265625v1.0732421875Z" style="fill: #fff;"></path>
    <path d="M322.498275756835938,923.40460205078125c-.19140625-.0322265625-.39892578125-.0478515625-.6220703125-.0478515625-.82958984375,0-1.39208984375.3525390625-1.6884765625,1.0595703125v5.25h-1.2646484375v-7.396484375h1.23046875l.0205078125.8544921875c.41455078125-.6611328125,1.00244140625-.9912109375,1.763671875-.9912109375.24609375,0,.43310546875.03125.560546875.095703125v1.17578125Z" style="fill: #fff;"></path>
    <path d="M323.667221069335938,920.30792236328125c0-.205078125.0625-.37890625.18798828125-.51953125.12548828125-.1416015625.31103515625-.2119140625.55712890625-.2119140625s.43310546875.0703125.560546875.2119140625c.12744140625.140625.19140625.314453125.19140625.51953125s-.06396484375.3759765625-.19140625.5126953125-.314453125.205078125-.560546875.205078125-.431640625-.068359375-.55712890625-.205078125-.18798828125-.3076171875-.18798828125-.5126953125ZM325.034408569335938,929.66632080078125h-1.2646484375v-7.396484375h1.2646484375v7.396484375Z" style="fill: #fff;"></path>
    <path d="M331.624252319335938,929.66632080078125c-.07275390625-.146484375-.13232421875-.40625-.177734375-.779296875-.587890625.6103515625-1.28955078125.916015625-2.10546875.916015625-.72900390625,0-1.3271484375-.2060546875-1.79443359375-.619140625-.46728515625-.412109375-.70068359375-.935546875-.70068359375-1.568359375,0-.7705078125.29296875-1.3681640625.87841796875-1.794921875.58544921875-.42578125,1.4091796875-.638671875,2.47119140625-.638671875h1.23046875v-.5810546875c0-.4423828125-.13232421875-.7939453125-.396484375-1.056640625-.26416015625-.26171875-.65380859375-.392578125-1.1689453125-.392578125-.451171875,0-.82958984375.11328125-1.134765625.341796875-.30517578125.2275390625-.4580078125.5029296875-.4580078125.8271484375h-1.271484375c0-.369140625.130859375-.7255859375.39306640625-1.0703125.26220703125-.34375.61767578125-.6162109375,1.06640625-.81640625.44873046875-.201171875.9423828125-.30078125,1.47998046875-.30078125.85205078125,0,1.52001953125.212890625,2.0029296875.638671875.48291015625.4267578125.73388671875,1.0126953125.751953125,1.7607421875v3.404296875c0,.6787109375.08642578125,1.21875.259765625,1.6201171875v.109375h-1.326171875ZM329.525619506835938,928.70245361328125c.396484375,0,.7724609375-.1025390625,1.1279296875-.3076171875s.61279296875-.4716796875.7724609375-.7998046875v-1.517578125h-.9912109375c-1.54931640625,0-2.32421875.453125-2.32421875,1.3603515625,0,.396484375.13232421875.7060546875.396484375.9296875.26416015625.22265625.60400390625.3349609375,1.0185546875.3349609375Z" style="fill: #fff;"></path>
    <path d="M336.047103881835938,929.66632080078125h-1.2646484375v-10.5h1.2646484375v10.5Z" style="fill: #fff;"></path>
    <path d="M338.268783569335938,929.66632080078125v-9.953125h3.25390625c1.080078125,0,1.892578125.22265625,2.43701171875.669921875.54443359375.4462890625.81689453125,1.107421875.81689453125,1.982421875,0,.46484375-.13232421875.8759765625-.396484375,1.2333984375-.26416015625.3583984375-.62451171875.634765625-1.080078125.8310546875.53759765625.150390625.962890625.4365234375,1.27490234375.857421875.31201171875.421875.46826171875.923828125.46826171875,1.5078125,0,.892578125-.28955078125,1.5947265625-.8681640625,2.10546875-.57861328125.509765625-1.39697265625.765625-2.4541015625.765625h-3.4521484375ZM339.581283569335938,923.95831298828125h1.982421875c.57421875,0,1.033203125-.1435546875,1.37744140625-.431640625s.51611328125-.6787109375.51611328125-1.171875c0-.5478515625-.15966796875-.9462890625-.478515625-1.1953125s-.80419921875-.373046875-1.4560546875-.373046875h-1.94140625v3.171875ZM339.581283569335938,925.01104736328125v3.58203125h2.1669921875c.61083984375,0,1.0927734375-.158203125,1.44580078125-.4755859375.35302734375-.31640625.52978515625-.7529296875.52978515625-1.30859375,0-1.19921875-.65185546875-1.7978515625-1.955078125-1.7978515625h-2.1875Z" style="fill: #fff;"></path>
    <path d="M346.451400756835938,925.89971923828125c0-.724609375.142578125-1.376953125.42724609375-1.955078125.28466796875-.5791015625.68115234375-1.025390625,1.189453125-1.33984375s1.087890625-.4716796875,1.73974609375-.4716796875c1.00732421875,0,1.82177734375.3486328125,2.44384765625,1.0458984375s.93310546875,1.6240234375.93310546875,2.7822265625v.0888671875c0,.7197265625-.1376953125,1.3662109375-.41357421875,1.9375-.27587890625.572265625-.669921875,1.017578125-1.1826171875,1.3369140625-.5126953125.318359375-1.1015625.478515625-1.76708984375.478515625-1.00244140625,0-1.81494140625-.3486328125-2.43701171875-1.0458984375s-.93310546875-1.6201171875-.93310546875-2.7685546875v-.0888671875ZM347.722885131835938,926.05010986328125c0,.8203125.1904296875,1.478515625.57080078125,1.9755859375.38037109375.49609375.8896484375.7451171875,1.52783203125.7451171875.642578125,0,1.15283203125-.251953125,1.53125-.755859375.37841796875-.5029296875.5673828125-1.208984375.5673828125-2.115234375,0-.8115234375-.1923828125-1.46875-.57763671875-1.97265625-.38525390625-.5029296875-.896484375-.7548828125-1.53466796875-.7548828125-.62451171875,0-1.1279296875.248046875-1.5107421875.7451171875-.3828125.49609375-.57421875,1.20703125-.57421875,2.1328125Z" style="fill: #fff;"></path>
    <path d="M354.435775756835938,925.89971923828125c0-.724609375.142578125-1.376953125.42724609375-1.955078125.28466796875-.5791015625.68115234375-1.025390625,1.189453125-1.33984375s1.087890625-.4716796875,1.73974609375-.4716796875c1.00732421875,0,1.82177734375.3486328125,2.44384765625,1.0458984375s.93310546875,1.6240234375.93310546875,2.7822265625v.0888671875c0,.7197265625-.1376953125,1.3662109375-.41357421875,1.9375-.27587890625.572265625-.669921875,1.017578125-1.1826171875,1.3369140625-.5126953125.318359375-1.1015625.478515625-1.76708984375.478515625-1.00244140625,0-1.81494140625-.3486328125-2.43701171875-1.0458984375s-.93310546875-1.6201171875-.93310546875-2.7685546875v-.0888671875ZM355.707260131835938,926.05010986328125c0,.8203125.1904296875,1.478515625.57080078125,1.9755859375.38037109375.49609375.8896484375.7451171875,1.52783203125.7451171875.642578125,0,1.15283203125-.251953125,1.53125-.755859375.37841796875-.5029296875.5673828125-1.208984375.5673828125-2.115234375,0-.8115234375-.1923828125-1.46875-.57763671875-1.97265625-.38525390625-.5029296875-.896484375-.7548828125-1.53466796875-.7548828125-.62451171875,0-1.1279296875.248046875-1.5107421875.7451171875-.3828125.49609375-.57421875,1.20703125-.57421875,2.1328125Z" style="fill: #fff;"></path>
    <path d="M364.470932006835938,920.47882080078125v1.791015625h1.380859375v.9775390625h-1.380859375v4.5927734375c0,.2958984375.0615234375.5185546875.1845703125.6669921875s.33251953125.22265625.62890625.22265625c.14599609375,0,.34619140625-.02734375.6015625-.08203125v1.01953125c-.33251953125.08984375-.65625.1357421875-.970703125.1357421875-.56494140625,0-.9912109375-.1708984375-1.2783203125-.5126953125s-.4306640625-.8271484375-.4306640625-1.4560546875v-4.5869140625h-1.3466796875v-.9775390625h1.3466796875v-1.791015625h1.2646484375Z" style="fill: #fff;"></path>
    <path d="M373.152572631835938,925.06573486328125h-4.3134765625v3.52734375h5.0107421875v1.0732421875h-6.3232421875v-9.953125h6.2548828125v1.0732421875h-4.9423828125v3.2060546875h4.3134765625v1.0732421875Z" style="fill: #fff;"></path>
    <path d="M376.481674194335938,922.26983642578125l.041015625.9296875c.56494140625-.7109375,1.30322265625-1.06640625,2.21484375-1.06640625,1.56298828125,0,2.3515625.8818359375,2.365234375,2.6455078125v4.8876953125h-1.2646484375v-4.89453125c-.00439453125-.533203125-.12646484375-.927734375-.36572265625-1.1826171875-.2392578125-.255859375-.61181640625-.3828125-1.11767578125-.3828125-.41015625,0-.77001953125.109375-1.080078125.328125s-.55126953125.505859375-.724609375.861328125v5.2705078125h-1.2646484375v-7.396484375h1.1962890625Z" style="fill: #fff;"></path>
    <path d="M387.576400756835938,929.66632080078125c-.07275390625-.146484375-.13232421875-.40625-.177734375-.779296875-.587890625.6103515625-1.28955078125.916015625-2.10546875.916015625-.72900390625,0-1.3271484375-.2060546875-1.79443359375-.619140625-.46728515625-.412109375-.70068359375-.935546875-.70068359375-1.568359375,0-.7705078125.29296875-1.3681640625.87841796875-1.794921875.58544921875-.42578125,1.4091796875-.638671875,2.47119140625-.638671875h1.23046875v-.5810546875c0-.4423828125-.13232421875-.7939453125-.396484375-1.056640625-.26416015625-.26171875-.65380859375-.392578125-1.1689453125-.392578125-.451171875,0-.82958984375.11328125-1.134765625.341796875-.30517578125.2275390625-.4580078125.5029296875-.4580078125.8271484375h-1.271484375c0-.369140625.130859375-.7255859375.39306640625-1.0703125.26220703125-.34375.61767578125-.6162109375,1.06640625-.81640625.44873046875-.201171875.9423828125-.30078125,1.47998046875-.30078125.85205078125,0,1.52001953125.212890625,2.0029296875.638671875.48291015625.4267578125.73388671875,1.0126953125.751953125,1.7607421875v3.404296875c0,.6787109375.08642578125,1.21875.259765625,1.6201171875v.109375h-1.326171875ZM385.477767944335938,928.70245361328125c.396484375,0,.7724609375-.1025390625,1.1279296875-.3076171875s.61279296875-.4716796875.7724609375-.7998046875v-1.517578125h-.9912109375c-1.54931640625,0-2.32421875.453125-2.32421875,1.3603515625,0,.396484375.13232421875.7060546875.396484375.9296875.26416015625.22265625.60400390625.3349609375,1.0185546875.3349609375Z" style="fill: #fff;"></path>
    <path d="M396.886947631835938,926.05010986328125c0,1.1298828125-.259765625,2.0380859375-.779296875,2.7236328125-.51953125.6865234375-1.216796875,1.029296875-2.091796875,1.029296875-.93408203125,0-1.65673828125-.3310546875-2.1669921875-.9912109375l-.0615234375.8544921875h-1.162109375v-10.5h1.2646484375v3.9169921875c.51025390625-.6337890625,1.21435546875-.9501953125,2.1123046875-.9501953125s1.60302734375.3388671875,2.11572265625,1.0185546875c.5126953125.6787109375.76904296875,1.6083984375.76904296875,2.7890625v.109375ZM395.622299194335938,925.90655517578125c0-.861328125-.16650390625-1.52734375-.4990234375-1.99609375-.33251953125-.4697265625-.81103515625-.7041015625-1.435546875-.7041015625-.833984375,0-1.43310546875.38671875-1.7978515625,1.162109375v3.19921875c.38720703125.7744140625.9912109375,1.162109375,1.8115234375,1.162109375.60595703125,0,1.07763671875-.2353515625,1.4150390625-.7041015625.33740234375-.4697265625.505859375-1.17578125.505859375-2.119140625Z" style="fill: #fff;"></path>
    <path d="M399.853744506835938,929.66632080078125h-1.2646484375v-10.5h1.2646484375v10.5Z" style="fill: #fff;"></path>
    <path d="M404.946517944335938,929.80303955078125c-1.00244140625,0-1.818359375-.3291015625-2.447265625-.98828125-.62890625-.658203125-.943359375-1.5390625-.943359375-2.6416015625v-.232421875c0-.734375.14013671875-1.388671875.42041015625-1.9658203125.2802734375-.576171875.67236328125-1.02734375,1.17578125-1.353515625.50341796875-.3251953125,1.04931640625-.48828125,1.63720703125-.48828125.96142578125,0,1.708984375.31640625,2.2421875.9501953125.533203125.6328125.7998046875,1.5400390625.7998046875,2.720703125v.5263671875h-5.0107421875c.01806640625.728515625.2314453125,1.318359375.63916015625,1.7666015625.40771484375.44921875.92626953125.673828125,1.55517578125.673828125.44677734375,0,.82470703125-.091796875,1.134765625-.2734375.31005859375-.1826171875.5810546875-.423828125.8134765625-.724609375l.7724609375.6015625c-.61962890625.9521484375-1.54931640625,1.4287109375-2.7890625,1.4287109375ZM404.789291381835938,923.17218017578125c-.51025390625,0-.93896484375.185546875-1.28515625.556640625-.34619140625.3720703125-.560546875.892578125-.642578125,1.5625h3.705078125v-.095703125c-.03662109375-.642578125-.20947265625-1.140625-.51953125-1.494140625-.31005859375-.3525390625-.72900390625-.529296875-1.2578125-.529296875Z" style="fill: #fff;"></path>
    <path d="M408.986557006835938,925.90655517578125c0-1.134765625.26904296875-2.0478515625.806640625-2.73828125s1.24169921875-1.03515625,2.1123046875-1.03515625c.86572265625,0,1.5517578125.2958984375,2.0576171875.888671875v-3.85546875h1.2646484375v10.5h-1.162109375l-.0615234375-.79296875c-.505859375.619140625-1.2099609375.9296875-2.1123046875.9296875-.85693359375,0-1.55517578125-.3515625-2.09521484375-1.052734375-.5400390625-.7021484375-.81005859375-1.6181640625-.81005859375-2.748046875v-.095703125ZM410.251205444335938,926.05010986328125c0,.837890625.17333984375,1.494140625.51953125,1.96875.34619140625.4736328125.82470703125.7109375,1.435546875.7109375.80224609375,0,1.3876953125-.3603515625,1.7568359375-1.080078125v-3.3974609375c-.37841796875-.697265625-.95947265625-1.0458984375-1.7431640625-1.0458984375-.61962890625,0-1.10302734375.2392578125-1.44921875.7177734375s-.51953125,1.1865234375-.51953125,2.1259765625Z" style="fill: #fff;"></path>
  </g>
  <text transform="translate(95.575439453125 604.5452880859375)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Reboot</tspan></text>
  <text transform="translate(481.9903564453125 312.420562744140625)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">No</tspan></text>
  <text transform="translate(690.440231323242188 495.212554931640625)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">No</tspan></text>
  <text transform="translate(699.051437377929688 627.87103271484375)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">No</tspan></text>
  <text transform="translate(662.623031616210938 380.480377197265625)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Disabled</tspan></text>
  <text transform="translate(499.352371215820312 440.934326171875)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Enabled</tspan></text>
  <text transform="translate(177.1962890625 312.4208984375)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Yes</tspan></text>
  <text transform="translate(526.544601440429688 563.57244873046875)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Yes</tspan></text>
  <text transform="translate(378.441848754882812 627.8712158203125)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Yes</tspan></text>
  <text transform="translate(301.322280883789062 240.203033447265625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Boots to UEFI</tspan></text>
  <text transform="translate(226.71832275390625 165.389755249023438)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">The OS performs an OS-update based</tspan><tspan x="-.150390625" y="16.7998046875">on ESRT to set OtaStatus and reboots</tspan></text>
  <text transform="translate(179.64605712890625 91.006916046142578)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Stage the capsule and signals for UEFI to update and</tspan><tspan x="33.5166015625" y="16.7998046875">reboot (OS will set the TrialBootMaxCount</tspan></text>
  <polygon points="259.647619782698712 317.420457628039003 343.594048812415167 280.334099663630695 427.543484682360031 317.420457628039003 343.594048812415167 354.50681559244731 259.647619782698712 317.420457628039003" style="fill: #6280cc;"></polygon>
  <text transform="translate(333.4473876953125 313.111663818359375)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Set</tspan><tspan x="-33.15087890625" y="16.7998046875">OSIndications</tspan></text>
  <polygon points="473.204985425105406 385.480376600306045 554.13726536991453 347.420457628039003 635.072444192468538 385.480376600306045 554.13726536991453 423.540295572573086 473.204985425105406 385.480376600306045" style="fill: #6280cc;"></polygon>
  <text transform="translate(500.828720092773438 389.571685791015625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">TrialBootEnabled</tspan></text>
  <g>
    <line x1="343.595550537109375" y1="117.3465576171875" x2="343.595550537109375" y2="141.60552978515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.606491088867188 140.4383544921875 343.595550537109375 147.3465576171875 347.584609985351562 140.4383544921875 339.606491088867188 140.4383544921875"></polygon>
  </g>
  <g>
    <line x1="343.595550537109375" y1="192.0499267578125" x2="343.595550537109375" y2="216.3089599609375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.606491088867188 215.1417236328125 343.595550537109375 222.0499267578125 347.584609985351562 215.1417236328125 339.606491088867188 215.1417236328125"></polygon>
  </g>
  <g>
    <line x1="343.595550537109375" y1="250.3341064453125" x2="343.595550537109375" y2="274.5931396484375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.606491088867188 273.4259033203125 343.595550537109375 280.3341064453125 347.584609985351562 273.4259033203125 339.606491088867188 273.4259033203125"></polygon>
  </g>
  <g>
    <line x1="554.138717651367188" y1="423.540283203125" x2="554.138717651367188" y2="447.79931640625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="550.149642944335938 446.632110595703125 554.138717651367188 453.540283203125 558.127792358398438 446.632110595703125 550.149642944335938 446.632110595703125"></polygon>
  </g>
  <g>
    <line x1="117.789112091064453" y1="393.88409423828125" x2="117.789112091064453" y2="418.14312744140625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="113.800048828125 416.97589111328125 117.789112091064453 423.88409423828125 121.778175354003906 416.97589111328125 113.800048828125 416.97589111328125"></polygon>
  </g>
  <g>
    <line x1="117.789112091064453" y1="470.552993319091001" x2="117.789112091064453" y2="494.812026522216001" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="113.800048828125 493.644790194091001 117.789112091064453 500.552993319091001 121.778175354003906 493.644790194091001 113.800048828125 493.644790194091001"></polygon>
  </g>
  <g>
    <line x1="117.789112091064453" y1="547.153470749646658" x2="117.789112091064453" y2="571.412503952771658" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="113.800048828125 570.245267624646658 117.789112091064453 577.153470749646658 121.778175354003906 570.245267624646658 113.800048828125 570.245267624646658"></polygon>
  </g>
  <g>
    <line x1="554.138717651367188" y1="547.776123046875" x2="554.138717651367188" y2="572.035125732421875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="550.149642944335938 570.867950439453125 554.138717651367188 577.776123046875 558.127792358398438 570.867950439453125 550.149642944335938 570.867950439453125"></polygon>
  </g>
  <g>
    <line x1="343.566635131835938" y1="710.179550170898438" x2="343.566635131835938" y2="734.438552856445312" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.57757568359375 733.2713623046875 343.566635131835938 740.179550170898438 347.555694580078125 733.2713623046875 339.57757568359375 733.2713623046875"></polygon>
  </g>
  <g>
    <line x1="343.566635131835938" y1="786.780027601453185" x2="343.566635131835938" y2="811.03903028700006" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.57757568359375 809.871839735242247 343.566635131835938 816.780027601453185 347.555694580078125 809.871839735242247 339.57757568359375 809.871839735242247"></polygon>
  </g>
  <g>
    <line x1="343.566635131835938" y1="863.380500793457031" x2="343.566635131835938" y2="887.639514923095703" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.57757568359375 886.472324371337891 343.566635131835938 893.380500793457031 347.555694580078125 886.472324371337891 339.57757568359375 886.472324371337891"></polygon>
  </g>
  <g>
    <line x1="343.566635131835938" y1="940.475160500676793" x2="343.566635131835938" y2="964.734174630315465" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.57757568359375 963.566984078557653 343.566635131835938 970.475160500676793 347.555694580078125 963.566984078557653 339.57757568359375 963.566984078557653"></polygon>
  </g>
  <g>
    <line x1="343.595550537109375" y1="43.40863037109375" x2="343.595550537109375" y2="67.66766357421875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <polygon points="339.606491088867188 66.50048828125 343.595550537109375 73.40863037109375 347.584609985351562 66.50048828125 339.606491088867188 66.50048828125"></polygon>
  </g>
  <g>
    <polyline points="427.543472290039062 317.42047119140625 554.401992797851562 317.42047119140625 554.401992797851562 341.679443359375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="550.412918090820312 340.51226806640625 554.401992797851562 347.42047119140625 558.391067504882812 340.51226806640625 550.412918090820312 340.51226806640625"></polygon>
  </g>
  <g>
    <polyline points="259.647621154785156 317.42047119140625 117.789112091064453 317.42047119140625 117.789112091064453 341.679443359375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="113.800048828125 340.51226806640625 117.789112091064453 347.42047119140625 121.778175354003906 340.51226806640625 113.800048828125 340.51226806640625"></polygon>
  </g>
  <g>
    <polyline points="436.360946655274347 633.608428955078125 343.566635131835938 633.608428955078125 343.566635131835938 657.867431640625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="339.57757568359375 656.700225830078125 343.566635131835938 663.608428955078125 347.555694580078125 656.700225830078125 339.57757568359375 656.700225830078125"></polygon>
  </g>
  <g>
    <polyline points="671.916488647460938 633.608428955078125 744.151107788085938 633.608428955078125 744.151107788085938 657.867431640625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="740.162033081054688 656.700225830078125 744.151107788085938 663.608428955078125 748.140182495117188 656.700225830078125 740.162033081054688 656.700225830078125"></polygon>
  </g>
  <g>
    <polyline points="654.694198608398438 500.827545166015625 744.151107788085938 500.827545166015625 744.151107788085938 525.086578369140625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="740.162033081054688 523.91937255859375 744.151107788085938 530.827545166015625 748.140182495117188 523.91937255859375 740.162033081054688 523.91937255859375"></polygon>
  </g>
  <g>
    <polyline points="635.072433471679688 385.4803466796875 744.151107788085938 385.4803466796875 744.151107788085938 409.7393798828125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="740.162033081054688 408.57220458984375 744.151107788085938 415.4803466796875 748.140182495117188 408.57220458984375 740.162033081054688 408.57220458984375"></polygon>
  </g>
  <polygon points="436.360937031009598 633.60841447724124 554.136605531344685 578.222202658120295 671.916492586562526 633.60841447724124 554.136605531344685 688.994626296358547 436.360937031009598 633.60841447724124" style="fill: #6280cc;"></polygon>
  <polygon points="453.583229063056933 500.827547362936457 554.13691396467766 453.540295572571267 654.69420055451701 500.827547362936457 554.13691396467766 548.114799153299828 453.583229063056933 500.827547362936457" style="fill: #6280cc;"></polygon>
  <text transform="translate(485.154190063476562 629.29998779296875)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">RollbackCount checks</tspan><tspan x="18.08447265625" y="16.7998046875">the internal UEFI</tspan></text>
  <text transform="translate(503.360916137695312 496.518768310546875)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">TrialBootCount=</tspan><tspan x="-9.54638671875" y="16.7998046875">TrialBootMaxCount</tspan></text>
  <g>
    <polyline points="117.789112091064453 623.753936767578125 117.789112091064453 840.08026123046875 235.033416748046875 840.08026123046875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="233.866226196289062 844.069320678710938 240.774398803710938 840.08026123046875 233.866226196289062 836.091194152832031 233.866226196289062 844.069320678710938"></polygon>
  </g>
  <g>
    <polyline points="744.151107788085938 710.106597900390625 744.151107788085938 840.08026123046875 451.989913940429688 840.08026123046875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="453.157089233399347 836.091194152832031 446.248916625976562 840.08026123046875 453.157089233399347 844.069320678710938 453.157089233399347 836.091194152832031"></polygon>
  </g>
  <g>
    <polyline points="749.892074584960938 775.093429565429688 863.666000366210938 775.093429565429688 863.666000366210938 438.780609130859375 823.082809448242188 438.780609130859375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="751.059310913085938 779.082489013671875 744.151107788085938 775.093429565429688 751.059310913085938 771.1043701171875 751.059310913085938 779.082489013671875"></polygon>
  </g>
  <g>
    <rect x="308.076898726949707" y="970.47515869121969" width="70.979472801806708" height="28.333333332456277" rx="14.166652495626142" ry="14.166652495626142" style="fill: #6280cc;"></rect>
    <rect x="308.076898726949707" y="970.47515869121969" width="70.979472801806708" height="28.333333332456277" rx="14.166652495626142" ry="14.166652495626142" style="fill: #6280cc;"></rect>
  </g>
  <text transform="translate(333.462112426757812 988.14849853515625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">End</tspan></text>
</svg>

1. **Initiation**: The over the air (OTA) update process starts, and the OS prepares
to update the capsule, signaling the UEFI (through setting
`OsIndications`) to begin the update. The OS sets a
`TrialBootMaxCount` to track the number of trial boots allowed and
then reboots the device.
2. **UEFI update**: Upon reboot, the system checks for
`OsIndications`. If present, it performs the capsule update,
updates the EFI system resource table (ESRT), clears `OsIndications`, and if
`TrialBootMaxCount` is set, allows `TrialBootEnabled` and
restarts the system again.
3. **Trialboot handling**:

    - If the `OsIndications` aren’t set, the system checks if the
`TrialBootEnabled` is active.
    - If the `TrialBootEnabled` is active and the `TrialBootCount`
equals the `TrialBootMaxCount`, it checks the rollback count.

        - If a rollback is allowed, the UEFI reverts to the firmware, updates the ESRT, and reboots.
        - If a rollback isn’t allowed, it indicates that the rollback limit is reached.
    - If the `TrialBootCount` is less than the `TrialBootMaxCount`, it
increments the `TrialBootCount` and continues the process.
4. **Completion**: The system boots to the OS, checks the ESRT, and if
the OS boots successfully, it resets the `TrialBootEnabled` field.
5. **Result**:

    - If `TrialBootEnabled` isn’t active, the OTA update is confirmed
as complete.
    - The system clears the `OtaTrialBootStatus` and sets the
`LwSupportedFwVersion` to the current firmware version to
disable rollback.
6. **Recovery**:
If a firmware capsule update fails during the update process, UEFI has a
recovery mechanism to maintain the stability and functionality.

> 
> 
> 1. **Rollback**: If a rollback is allowed, UEFI reverts to the previous firmware version. This involves restoring the firmware to the state before the update attempt.
>     2. **ESRT update**: The ESRT is updated to reflect the rollback.
>     3. **Reboot**: After the rollback is complete, the UEFI triggers a restart to ensure it’s running the previous, stable firmware version.

    This process ensures that the update is applied and allows for rollback if any issues are encountered during the trial period.

## Authentication and signing

Authentication is essential for firmware updates to ensure security and
stability. It guarantees that only updates from trusted sources are
applied, preventing malicious or unauthorized updates. By verifying the
digital signature of the capsule, it ensures the update hasn’t been
tampered with during transmission and that only verified and tested
updates are installed. This reduces the risk of system crashes or
malfunctions due to faulty firmware.

For more information, see : [How to authenticate and sign a capsule update](https://docs.qualcomm.com/doc/80-70022-4/topic/How-tos.html#how-tos).

Last Published: Dec 05, 2025

[Previous Topic
Update the device firmware](https://docs.qualcomm.com/bundle/publicresource/80-70022-4/topics/Update-the-device-firmware.md) [Next Topic
Update capsule and trialboot rollback in base and advance variants](https://docs.qualcomm.com/bundle/publicresource/80-70022-4/topics/capsule-update-for-base-and-advance-variants.md)