<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>227434</bug_id>
          
          <creation_ts>2021-06-27 22:04:38 -0700</creation_ts>
          <short_desc>REGRESSION(r279322):</short_desc>
          <delta_ts>2021-06-27 22:08:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>227250</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772972</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-06-27 22:04:38 -0700</bug_when>
    <thetext>https://commits.webkit.org/r279322 introduced a regression:


This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772974</commentid>
    <comment_count>1</comment_count>
      <attachid>432364</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-06-27 22:04:55 -0700</bug_when>
    <thetext>Created attachment 432364
REVERT of r279322

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772975</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-27 22:07:13 -0700</bug_when>
    <thetext>Committed r279323 (239199@main): &lt;https://commits.webkit.org/239199@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432364.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772976</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-27 22:08:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/79849326&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432364</attachid>
            <date>2021-06-27 22:04:55 -0700</date>
            <delta_ts>2021-06-27 22:07:14 -0700</delta_ts>
            <desc>REVERT of r279322</desc>
            <filename>bug-227434-20210627220454.patch</filename>
            <type>text/plain</type>
            <size>318380</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkMjIxNGVjMDdhYTkz
ZmI2ZjYwNTAwMTJmMDMxZTU5NjM0Nzc4My4uODBhMWI2M2FjYjAzMzVhZmYyZmYwMzRjNjc4MWRi
NmE0ODUwYzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTI3ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI3OTMyMi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzQzNAorCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisg
ICAgICAgICJOb3QgYWxsIHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBs
aW5raW5nIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI3MjUwCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzkzMjIKKwogMjAy
MS0wNi0yNyAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE5v
dCBhbGwgdXNlcyBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDg0OGFiYThlOWExODRmNzA1N2IxNmUzMjdmZjM2ZDIzMzJjNWJi
MDguLmI3NWRmMjJiMzAxNDk3NjY0ZTUxYzQ5Mzc0OWRkMzI0N2ZjOWQ5MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTI3ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3
OTMyMi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzQzNAorCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJOb3QgYWxs
IHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5raW5nIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAg
IGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzkzMjIKKwogMjAyMS0wNi0yNyAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCBhbGwgdXNlcyBvZiBB
dWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDQyNGYz
ZmEwYTFhMWI1ZWUxNmRmZTk4NDQ1YTlkMTdhZThmY2U0Zi4uODdjMjI0MmUwZTJhYjliMDFjOWVi
MGFhOGRmMTc3ODk5NDBhZmU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0y
NyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzkzMjIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MzQKKworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNl
dDoKKworICAgICAgICAiTm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNl
IHNvZnQgbGlua2luZyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzI1MAorICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjc5MzIy
CisKIDIwMjEtMDYtMjcgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBOb3QgYWxsIHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5r
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggMDljMmVhMzI5YzJjMGNhNmVlNmY3YmEz
YTJjNDRhZGY4MzQ4ZTVmNC4uNmE4MjNkNjFhZDEwMTAzMmJiZTE5NGE2MmI1YjYxNTZkMjNjYWIx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNTMsNiArNTMsOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKICNpZiAhVVNFKExJQldFQlJU
QykKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNrZW5kPiBjcmVhdGVO
b1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVyQ29ubmVjdGlvbiYpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQubW0KaW5kZXggNzQ5OTRlMmM1MTAwZWNhYmE2MTU5MGZiMTE4MGFhMGJjMzdiMGRi
Ni4uNDAwZjliOGQxNmI1OTNiNDg1ZTAwYzdmNzhmNTlkZTk4ZGMzN2Q5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbQpAQCAtNTgsNiArNTgsNyBAQAogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogc3RhdGljIEpTVmFsdWUgKmpzVmFs
dWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZUNvY29hLmNwcAppbmRleCBmMWMyYWYzM2M1ZmEyYWI2ZmM1MTY2OTk4M2ZhNzBlNzY5NjQwMjgw
Li41YjEzNWIzOWE1YTBhMWQ4MDFiZTY4NzhmYmRmZjY3NjZjMmU4YWNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAordXNp
bmcgbmFtZXNwYWNlIFBBTDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5l
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihzaXplX3Qgc2FtcGxl
UmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKQEAgLTY5LDcgKzcxLDcgQEAgdm9pZCBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywgc2l6ZV90IG51bWJl
ck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ01UaW1lIHN0YXJ0VGlt
ZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5z
YW1wbGVSYXRlKCkpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVy
T2ZGcmFtZXMsIG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CiAgICAgYXV0byBtZWRp
YVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1l
cyArPSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCAzMzNhYTIyNGM3MWE3NTBjZDlhMGY2OWY3
ODNkZDAxNTk3NTEwYWM1Li42N2I3OGY0NmE3ODExNzg4OGYwMGQwODk3ZGJhNTdlN2FjNTM4NTAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRM
aW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRM
aW5rLmNwcApAQCAtMjYsNDYgKzI2LDIwIEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogCi0j
aW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8QXVkaW9U
b29sYm94L0F1ZGlvQ29udmVydGVyLmg+Ci0jaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvRmls
ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgotI2luY2x1ZGUgPEF1
ZGlvVG9vbGJveC9BdWRpb1VuaXQuaD4KLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRB
dWRpb0ZpbGUuaD4KKwogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiBTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJTktfUFJJVkFU
RV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUs
IFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0Nv
bnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Q
cm9wZXJ0eUlELCBVSW50MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVk
aW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0
UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwg
VUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZpZXIsIFVJbnQzMiog
aW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5Qcm9wZXJ0eUlE
LCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFBy
b3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9D
b252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlv
Q29udmVydGVyKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29udmVydGVyKSkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29u
dmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUs
IGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVy
dHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRp
b0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRh
U2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVy
dHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZl
cnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGlu
SW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZl
cnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRwdXREYXRhKSkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZl
cnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MgaW5JbnB1dERh
dGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMyKiBpb091dHB1dERh
dGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEsIEF1ZGlvU3RyZWFt
UGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIGlvT3V0cHV0RGF0
YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0aW9uKSkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVu
aXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0b3AsIE9T
U3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NT
dGF0dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkp
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwg
Q0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUpKQotCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9v
bGJveENvcmUsIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1
cywgKENGRGF0YVJlZiogb3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3Ry
YXRpb25zKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25lbnRBcHBs
eVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGluQnVuZGxlUmVnaXN0
cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2Us
IE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9w
ZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50RGF0YSwgQXVkaW9GaWxl
X1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1
ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2Mg
aW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJ
RCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMs
IGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50LCBvdXRBdWRpb0Zp
bGUpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4
dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9G
aWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRB
dWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9w
ZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRh
KSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0
UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4
dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICppb0Rh
dGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEpKQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVk
aW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUs
IGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0Zp
bGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRp
bmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldy
aXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJl
ZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4
dEF1ZGlvRmlsZSkpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29t
cG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uKiBpbkRl
c2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMs
IChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0
SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlv
VW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXRE
YXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9V
bml0IGluVW5pdCksIChpblVuaXQpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGluRGF0YSwgVUludDMy
IGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwg
aW5EYXRhU2l6ZSkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IGRkZjEzYTAy
N2E0NWEyMmI4Mzk4ZDEzNWU4ZTBiM2RmYzY4NTUyYjcuLjQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQz
NWJkMjA5NWU2NGFiNDg4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
QXVkaW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1
ZGlvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTI2LDExNCArMjYsMjcgQEAKIAogI2lmIFVTRShBVkZP
VU5EQVRJT04pCiAKLSNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNpbmNs
dWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogdHlwZWRlZiBVSW50MzIgQXVkaW9Db252ZXJ0ZXJQ
cm9wZXJ0eUlEOwogdHlwZWRlZiBVSW50MzIgQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEOwogdHlwZWRl
ZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVyKiBBdWRpb0NvbnZl
cnRlclJlZjsKLXR5cGVkZWYgc3RydWN0IEF1ZGlvQnVmZmVyTGlzdCBBdWRpb0J1ZmZlckxpc3Q7
Ci10eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyko
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwKLSAgICBVSW50MzIqIGlvTnVtYmVy
RGF0YVBhY2tldHMsCi0gICAgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEsCi0gICAgQXVkaW9TdHJl
YW1QYWNrZXREZXNjcmlwdGlvbioqIG91dERhdGFQYWNrZXREZXNjcmlwdGlvbiwKLSAgICB2b2lk
KiBpblVzZXJEYXRhKTsKLQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlRXh0QXVkaW9GaWxlKiBFeHRB
dWRpb0ZpbGVSZWY7Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJRCogQXVkaW9GaWxl
SUQ7Ci10eXBlZGVmIFVJbnQzMiBBdWRpb0ZpbGVUeXBlSUQ7Ci10eXBlZGVmIFVJbnQzMiBFeHRB
dWRpb0ZpbGVQcm9wZXJ0eUlEOwotdHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9SZWFkUHJv
YykoCi0gICAgdm9pZCogaW5DbGllbnREYXRhLAotICAgIFNJbnQ2NCBpblBvc2l0aW9uLAotICAg
IFVJbnQzMiByZXF1ZXN0Q291bnQsCi0gICAgdm9pZCogYnVmZmVyLAotICAgIFVJbnQzMiogYWN0
dWFsQ291bnQpOwotdHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9Xcml0ZVByb2MpKAotICAg
IHZvaWQqIGluQ2xpZW50RGF0YSwKLSAgICBTSW50NjQgaW5Qb3NpdGlvbiwKLSAgICBVSW50MzIg
cmVxdWVzdENvdW50LAotICAgIGNvbnN0IHZvaWQqIGJ1ZmZlciwKLSAgICBVSW50MzIqIGFjdHVh
bENvdW50KTsKLXR5cGVkZWYgU0ludDY0ICgqQXVkaW9GaWxlX0dldFNpemVQcm9jKSgKLSAgICB2
b2lkKiBpbkNsaWVudERhdGEpOwotdHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9TZXRTaXpl
UHJvYykoCi0gICAgdm9pZCogaW5DbGllbnREYXRhLAotICAgIFNJbnQ2NCBpblNpemUpOwotdHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnQqIEF1ZGlvQ29tcG9uZW50OwotCi0jaWYg
VEFSR0VUX09TX0lQSE9ORSB8fCAoZGVmaW5lZChBVURJT0NPTVBPTkVOVF9OT0NBUkJPTklOU1RB
TkNFUykgJiYgQVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpCi10eXBlZGVmIHN0cnVj
dCBPcGFxdWVBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOwot
I2Vsc2UKLXR5cGVkZWYgc3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3JkKiBBdWRpb0NvbXBv
bmVudEluc3RhbmNlOwotI2VuZGlmCi10eXBlZGVmIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgQXVk
aW9Vbml0OwotCi10eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIEF1ZGlv
Q29tcG9uZW50RGVzY3JpcHRpb247Ci10eXBlZGVmIFVJbnQzMiBBdWRpb1VuaXRQcm9wZXJ0eUlE
OwotdHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Ci10eXBlZGVmIFVJbnQzMiBBdWRpb1Vu
aXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hD
b3JlKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJS
ZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVy
dGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKLSNkZWZpbmUgQXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHlJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Nv
bnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Q
cm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlE
YXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXpl
LCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5CiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcs
IE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZv
cm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9y
bWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3Jt
YXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKICNkZWZpbmUgQXVk
aW9Db252ZXJ0ZXJOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyTmV3Ci1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCi0jZGVmaW5lIEF1ZGlvQ29udmVydGVyRGlzcG9zZSBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRp
b0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFT
aXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblBy
b3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQogI2RlZmluZSBB
dWRpb0NvbnZlcnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lk
KiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3Bl
cnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Gb3JtYXRH
ZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1
ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAo
aW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRw
dXREYXRhKSkKLSNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcgotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVy
dGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRp
b0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0
YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0
YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1Q
YWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRl
ciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRh
UGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQotI2RlZmlu
ZSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGNpKSwgKGNpKSkKLSNkZWZpbmUgQXVkaW9PdXRwdXRVbml0U3RhcnQgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0Ci1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0
dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQotI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdG9wIHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdG9wCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbkluc3RhbmNlKSwgKGlu
SW5zdGFuY2UpKQotI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlO
YW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiog
b3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCi0jZGVmaW5lIEF1ZGlvQ29tcG9uZW50
Q29weU5hbWUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50Q29weU5hbWUKLQog
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hD
b3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChD
RkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxlUmVnaXN0cmF0aW9u
cykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zIHNvZnRM
aW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25z
CiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywg
KENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRpb25z
KSkKICNkZWZpbmUgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExp
bmtBdWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMK
IAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
RmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9G
aWxlKSkKLSNkZWZpbmUgQXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
RmlsZUNsb3NlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCogaW5DbGllbnRE
YXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBp
bldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmls
ZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhp
bnQsIEF1ZGlvRmlsZUlEKiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5j
LCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhp
bnQsIG91dEF1ZGlvRmlsZSkpCi0jZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzIHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcwotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bv
c2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVk
aW9GaWxlKSkKLSNkZWZpbmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfRXh0QXVkaW9GaWxlRGlzcG9zZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1
ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQ
cm9wZXJ0eURhdGEpKQotI2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywg
KEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051bWJlckZyYW1lcywg
QXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVz
LCBpb0RhdGEpKQotI2RlZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9FeHRBdWRpb0ZpbGVSZWFkCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9G
aWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblBy
b3BlcnR5RGF0YSkpCi0jZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5IHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwg
T1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4
dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcs
IG91dEV4dEF1ZGlvRmlsZSkpCi0jZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlECi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3Bl
blVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRB
dWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCi0jZGVmaW5lIEV4dEF1ZGlvRmls
ZU9wZW5VUkwgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9wZW5VUkwKLQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9u
ZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQs
IGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVudCwg
aW5EZXNjKSkKLSNkZWZpbmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0TGlua19BdWRpb1Rv
b2xib3hfQXVkaW9Db21wb25lbnRGaW5kTmV4dAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVz
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UqIG91
dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCi0jZGVmaW5lIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50SW5z
dGFuY2VOZXcKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRp
b1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVs
ZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5V
bml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQotI2Rl
ZmluZSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0
R2V0UHJvcGVydHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAo
aW5Vbml0KSkKLSNkZWZpbmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Vbml0SW5pdGlhbGl6ZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGluRGF0YSwgVUludDMy
IGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwg
aW5EYXRhU2l6ZSkpCi0jZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb1VuaXRTZXRQcm9wZXJ0eQotCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAK
aW5kZXggZTJjNTEzNjY0MGYzNWE1Zjk3YWFjMDVmMWFiZTE0NWMzMGI5MTY5MS4uYzE0MzkyYmEy
YzkxNDJkNTFiNDc0ZTdkMjQ0ODBiOTcxOWY4YTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNs
dWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUg
PENvcmVNZWRpYS9DTUJ1ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRl
by5oPgogI2VuZGlmCiAKQEAgLTQ1LDkgKzQ0LDE3IEBACiAKIFNPRlRfTElOS19GUkFNRVdPUktf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgUEFMX0VYUE9SVCkKIAotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
VGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRp
bWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMs
IChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwg
c2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwg
b2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbiksIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVm
ZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRh
Qnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMsIENNQmxvY2tCdWZmZXJS
ZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIHNpemVf
dCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1ZmZlciwgb2Zmc2V0SW50
b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0
aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBD
RlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERhdGFC
dWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYp
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbywgT1NTdGF0dXMsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBzYW1wbGVJbmRleCwgQ01TYW1wbGVU
aW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNhbXBsZUluZGV4LCB0aW1pbmdJbmZv
T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5LCBCb29sZWFuLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb21w
YXJlLCBpbnQzMl90LCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUy
KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1l
LCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRp
bWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGlt
ZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMyX3Qg
dGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2VX
aXRoU2Vjb25kcywgQ01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRp
bWVTY2FsZSksIChzZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpLCBQQUxfRVhQT1JUKQpAQCAt
NTUsMjEgKzYyLDYgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNVGltZVN1YnRyYWN0LCBDTVRpbWUKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUdldEVu
ZCwgQ01UaW1lLCAoQ01UaW1lUmFuZ2UgcmFuZ2UpLCAocmFuZ2UpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
VGltZVJhbmdlTWFrZSwgQ01UaW1lUmFuZ2UsIChDTVRpbWUgc3RhcnQsIENNVGltZSBkdXJhdGlv
biksIChzdGFydCwgZHVyYXRpb24pLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlRXF1YWwsIEJv
b2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZTEsIENNVGltZVJhbmdlIHJhbmdlMiksIChyYW5nZTEs
IHJhbmdlMiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVN
aW5pbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGlt
ZTIpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNUaW1lLCBCb29sZWFuLCAoQ01U
aW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0aW1lKSwgUEFMX0VYUE9SVCkK
LQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVplcm8sIENN
VGltZSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdlLCBQQUxfRVhQT1JUKTsK
LVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lLCBQQUxfRVhQT1JUKQotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5
UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5cGUsIEZvdXJDaGFyQ29kZSwgKENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERl
c2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwgKENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMsIENGU3RyaW5nUmVmLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzLCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTgyLDEwICs3NCw2IEBAIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIw
ODRfUFEsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZiwg
UEFMX0VYUE9SVCkKLQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1By
b3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3Ry
aW5nUmVmLCBQQUxfRVhQT1JUKQotCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBD
RlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRk
bGUsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBl
X1N0YXJ0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTEwNSwyNyArOTMsMjAgQEAgU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtD
TVRleHRNYXJrdXBBdHRyaWJ1dGUKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRlX1dyaXRpbmdEaXJl
Y3Rpb25TaXplUGVyY2VudGFnZSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZl
cnRpY2FsTGF5b3V0X0xlZnRUb1JpZ2h0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01U
ZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGlt
ZSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIGtDTVRp
bWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5
dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlU291cmNlQnVmZmVyLCBzaXplX3Qg
b2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9pZCogZGVzdGluYXRpb24pLCAodGhl
U291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGRlc3RpbmF0aW9uKSwgUEFM
X0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCwgc2l6ZV90LCAoQ01CbG9ja0J1
ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVm
ZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRlcywg
Q01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9EZXN0
aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9uQnVm
ZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpLCBQQUxfRVhQT1JUKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVm
IHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXRE
YXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwgc2l6ZV90
IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExlbmd0aE91
dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGhBdE9m
ZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSwgUEFMX0VYUE9SVCkKLQor
I2lmIFBMQVRGT1JNKENPQ09BKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5cGUs
IEZvdXJDaGFyQ29kZSwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwg
KENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5v
dGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlciwgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRM
aXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0
IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmlu
Z1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCwgVUludDMyIGZsYWdzKSwgKGNl
bnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCwgZmxhZ3MpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIsIE9TU3RhdHVz
LCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwg
Q01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9u
LCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlm
aWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlE
LCBDRlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERh
dGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNi
dWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbywgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBzYW1wbGVJbmRleCwgQ01TYW1w
bGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNhbXBsZUluZGV4LCB0aW1pbmdJ
bmZvT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5LCBCb29sZWFu
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0Fy
cmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1w
bGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2Nh
dG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCi0KLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxv
Y2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVy
TWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURh
dGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwg
Q01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmll
cywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291
bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGlt
aW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQp
LCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVm
ZmVyUmVmKiBzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFM
X0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxT
QnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlP
dXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNh
bXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVm
ZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VE
YXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVh
ZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRl
bUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNv
bnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51
bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QgKnNhbXBsZVNpemVBcnJheSwgQ01TYW1w
bGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHks
IG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3Jp
cHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0Fy
cmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJl
ZiAqc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCksIFBBTF9FWFBP
UlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1Ziwg
Q01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJ
bmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwg
KGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVU
aW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxl
VGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVm
ZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8q
IHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxv
Y2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFr
ZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxl
QnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFt
cCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkK
QEAgLTEzNSwxNSArMTE2LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNlCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlv
blRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENGQXJy
YXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5
KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyog
dGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQp
LCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlF
bnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1D
b3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyAqdGltaW5nQXJyYXlP
dXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGlt
aW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVk
T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0
aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwg
KHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChz
YnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIpLCAoc2J1
ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKLQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNR2V0QXR0YWNobWVudCwgQ0ZUeXBlUmVmLCAo
Q01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDTUF0dGFjaG1l
bnRNb2RlKiBhdHRhY2htZW50TW9kZU91dCksICh0YXJnZXQsIGtleSwgYXR0YWNobWVudE1vZGVP
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJl
YXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlLCBDTUF0dGFj
aG1lbnRNb2RlIGF0dGFjaG1lbnRNb2RlKSwgKHRhcmdldCwga2V5LCB2YWx1ZSwgYXR0YWNobWVu
dE1vZGUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNo
bWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSksIFBB
TF9FWFBPUlQpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1l
YmFzZVJlZiogdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VP
dXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBD
TVRpbWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1l
YmFzZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFRpbWUsIENNVGltZSwgKENNVGlt
ZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VH
ZXRSYXRlLCBGbG9hdDY0LCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFJhdGUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSwgRmxvYXQ2NCByYXRlKSwgKHRpbWViYXNlLCByYXRlKSwgUEFMX0VYUE9SVCkKQEAg
LTE2NCwxMyArMTQ0LDExIEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUVucXVldWUsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJSZWYg
YnVmZmVyKSwgKHF1ZXVlLCBidWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJc0Vt
cHR5LCBCb29sZWFuLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZW1Db3VudCwgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tz
KiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNv
cnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzICosICgpLCAoKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAsIENN
VGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJbnN0
YWxsVHJpZ2dlciwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclF1
ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiByZWZjb24sIENNQnVmZmVyUXVldWVU
cmlnZ2VyQ29uZGl0aW9uIGNvbmRpdGlvbiwgQ01UaW1lIHRpbWUsIENNQnVmZmVyUXVldWVUcmln
Z2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgY2FsbGJhY2ssIHJlZmNvbiwgY29u
ZGl0aW9uLCB0aW1lLCB0cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVl
dWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1cywgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgdHJpZ2dlckNhbGxi
YWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlvbiB0
cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xkLCBDTUJ1ZmZlclF1
ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRyaWdnZXJDYWxsYmFj
aywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRocmVzaG9sZCwgdHJp
Z2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwg
T1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVl
dWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05v
dERpc3BsYXksIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfTm90U3luYywgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCkBAIC0xOTAsMzcgKzE2OCw0MCBA
QCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZm
ZWN0aXZlUmF0ZUNoYW5nZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNl
Tm90aWZpY2F0aW9uX1RpbWVKdW1wZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3Qg
bGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdp
Y0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0
ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRv
ciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2ll
LCBleHRlbnNpb25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQot
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9jYXRv
ciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JSZWYg
YmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSogY3Vz
dG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBD
TUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0
KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9ja0Fs
bG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZmxh
Z3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlv
QnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVy
TGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJl
ZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9y
LCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1
ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXpl
LCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tC
dWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0
V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZm
ZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90
IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJM
aXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBsZVJhbmdlLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNhbXBsZVJhbmdl
LCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJh
eSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCBzaXplQXJy
YXlFbnRyaWVzLCBzaXplX3QqIHNpemVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNpemVBcnJheUVu
dHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFycmF5T3V0LCBz
aXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVC
dWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFS
ZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNh
bGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBU
UywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25z
LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRh
dGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBz
QnVmT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
UGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgcHJlc2VudGF0aW9u
VGltZVN0YW1wLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNj
cmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9y
LCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgcHJlc2VudGF0aW9u
VGltZVN0YW1wLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0
QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBm
bGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYg
ZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFk
eUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNv
biwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3Jp
cHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
bWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQ
VFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFs
bG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlclNldERhdGFSZWFkeSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
KSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0
aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBv
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKSwgUEFMX0VYUE9SVCkKLQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5l
bExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdp
Y0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxheW91dCwg
bWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYyksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZv
aWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCks
IChkZXNjLCBzaXplT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25H
ZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9ja1JlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUNsb2NrR2V0VGltZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jayks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMsIHVpbnQ2
NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhvc3RUaW1lKSwgUEFMX0VYUE9SVCkKIAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJl
ZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9S
VCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NB
UEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5k
bGVyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVS
Q0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwg
Q01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJlZmNvbiksIChzYnVmLCBj
YWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0Zv
ckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMg
KF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVm
LCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9y
bWF0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCisjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0
b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
Q2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNVGltZU1heGltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRp
bWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1l
IHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRp
bWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUg
dGltZSksIChyYW5nZSwgdGltZSksIFBBTF9FWFBPUlQpCiAKLSNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lLCBQQUxfRVhQT1JUKQorI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBQTEFURk9STShNQUMpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rldmlj
ZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJp
bmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmlj
ZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJ
RCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChD
TUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENNQmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RS
ZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmpl
Y3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJh
c2VWVGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYq
IGJhc2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpLCBQ
QUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oCmluZGV4IDBjNTAxNDZjMTM3NDFhOTZkODllNjVhODEyYjA2NTAxZTA1NmYzZTUuLjc1MjVi
OTE5YzY5NWQzNjA5N2IxMTEwMzJiOTRmNzQ3ZjE1MWYxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKQEAgLTQ1LDEyICs0NSwzMCBAQAogCiBT
T0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEpCiAKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6
ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwg
KHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbikp
CisjZGVmaW5lIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJs
b2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQorI2RlZmluZSBDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VC
eXRlcywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldElu
dG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0
aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQorI2RlZmluZSBD
TUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1
ZmZlclJlcGxhY2VEYXRhQnl0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5
UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorI2RlZmluZSBDTUZv
cm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXRE
ZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwg
KCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlEIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckdldFR5cGVJRAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJl
ZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCisjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyR2V0RGF0YUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2FtcGxlVGlt
aW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5nSW5mb091
dCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFk
eSwgQm9vbGVhbiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCisjZGVmaW5lIENN
U2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVy
RGF0YUlzUmVhZHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1Rp
bWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2Fs
ZSwgbWV0aG9kKSkKKyNkZWZpbmUgQ01UaW1lQ29udmVydFNjYWxlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVRpbWVDb252ZXJ0U2NhbGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUy
KSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01UaW1lQWRkCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01UaW1lQ29tcGFyZSwgaW50MzJfdCwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRp
bWUxLCB0aW1lMikpCiAjZGVmaW5lIENNVGltZUNvbXBhcmUgc29mdExpbmtfQ29yZU1lZGlhX0NN
VGltZUNvbXBhcmUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1Rp
bWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2Fs
ZSwgbWV0aG9kKSkKLSNkZWZpbmUgQ01UaW1lQ29udmVydFNjYWxlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVRpbWVDb252ZXJ0U2NhbGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGlt
ZSkpCiAjZGVmaW5lIENNVGltZUdldFNlY29uZHMgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUdl
dFNlY29uZHMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWVNYWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2
YWx1ZSwgdGltZXNjYWxlKSkKQEAgLTY1LDYxICs4MywzMyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwg
KENNVAogI2RlZmluZSBDTVRpbWVSYW5nZU1ha2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZVJh
bmdlTWFrZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
VGltZVJhbmdlRXF1YWwsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZTEsIENNVGltZVJhbmdl
IHJhbmdlMiksIChyYW5nZTEsIHJhbmdlMikpCiAjZGVmaW5lIENNVGltZVJhbmdlRXF1YWwgc29m
dExpbmtfQ29yZU1lZGlhX0NNVGltZVJhbmdlRXF1YWwKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRpbWUsIChDTVRpbWUgdGlt
ZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQotI2RlZmluZSBDTVRpbWVNYXhpbXVt
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKLSNkZWZpbmUgQ01UaW1lTWluaW11
bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWluaW11bQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNUaW1lLCBCb29sZWFu
LCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0aW1lKSkKLSNkZWZp
bmUgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZVJhbmdl
Q29udGFpbnNUaW1lCi0KLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lKQotI2RlZmluZSBrQ01UaW1lSW52YWxpZCBnZXRf
Q29yZU1lZGlhX2tDTVRpbWVJbnZhbGlkKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQotI2RlZmluZSBrQ01UaW1lWmVy
byBnZXRfQ29yZU1lZGlhX2tDTVRpbWVaZXJvKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lKQotI2Rl
ZmluZSBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVQb3NpdGl2
ZUluZmluaXR5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01UaW1lUmFuZ2VJbnZhbGlkLCBDTVRpbWVSYW5nZSk7Ci0jZGVmaW5lIGtDTVRpbWVSYW5n
ZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUmFuZ2VJbnZhbGlkKCkKLVNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01U
aW1lKQotI2RlZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRl
ZmluaXRlKCkKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMs
IENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkK
LSNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3Vi
VHlwZSwgRm91ckNoYXJDb2RlLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQotI2RlZmluZSBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1l
ZGlhVHlwZSwgQ01NZWRpYVR5cGUsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCi0jZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUKIAogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMsIENGU3RyaW5nUmVmKQogI2RlZmlu
ZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lv
bkF0b21zIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxl
RGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lf
UDMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfRENJX1AzKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9y
bWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3Jt
YXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVz
X0RDSV9QMygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIw
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8y
MDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19J
VFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSwgQ0ZTdHJpbmdSZWYp
Ci0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUoKQorI2Rl
ZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX1AzX0Q2NSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1KCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8oKQorI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9G
dWxsUmFuZ2VWaWRlbyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKCkKIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAoKQorI2RlZmlu
ZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIw
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcsIENGU3RyaW5nUmVm
KQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEw
MF9ITEcgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
SVRVX1JfMjEwMF9ITEcoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcgZ2V0X0Nv
cmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9MaW5lYXIsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fTGluZWFyIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0xpbmVhcigpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0Nv
cmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01Q
VEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQorI2RlZmluZSBr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9T
VF8yMDg0X1BRKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEsIENG
U3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
U01QVEVfU1RfNDI4XzEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fU01QVEVfU1RfNDI4XzEoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4
XzEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uWUNi
Q3JNYXRyaXhfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2Ny
aXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCgpCi0KKyNkZWZpbmUga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIw
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5nUmVmKQogI2RlZmlu
ZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxG
b3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0
ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fc1JHQigpCi0KKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fc1JHQigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZikKICNk
ZWZpbmUga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kIGdldF9Db3JlTWVkaWFfa0NNVGV4
dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3Ry
aW5nUmVmKQpAQCAtMTU4LDQ1ICsxNDgsMzQgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0aWNhbExheW91dF9MZWZ0VG9SaWdodCwKICNk
ZWZpbmUga0NNVGV4dFZlcnRpY2FsTGF5b3V0X0xlZnRUb1JpZ2h0IGdldF9Db3JlTWVkaWFfa0NN
VGV4dFZlcnRpY2FsTGF5b3V0X0xlZnRUb1JpZ2h0KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQs
IENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQg
Z2V0X0NvcmVNZWRpYV9rQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQoKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBD
TVRpbWUpCisjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFfa0NNVGltZUludmFs
aWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRp
bWVaZXJvLCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0X0NvcmVNZWRpYV9r
Q01UaW1lWmVybygpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNVGltZVBvc2l0aXZlSW5maW5pdHksIENNVGltZSkKKyNkZWZpbmUga0NNVGltZVBvc2l0
aXZlSW5maW5pdHkgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUG9zaXRpdmVJbmZpbml0eSgpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52
YWxpZCwgQ01UaW1lUmFuZ2UpOworI2RlZmluZSBrQ01UaW1lUmFuZ2VJbnZhbGlkIGdldF9Db3Jl
TWVkaWFfa0NNVGltZVJhbmdlSW52YWxpZCgpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMs
IChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwg
c2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwg
b2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbikpCi0jZGVmaW5lIENNQmxvY2tC
dWZmZXJDb3B5RGF0YUJ5dGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1
ZmZlciksICh0aGVCdWZmZXIpKQotI2RlZmluZSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCBz
b2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyUmVwbGFjZURh
dGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRlcywgQ01CbG9ja0J1ZmZl
clJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9EZXN0aW5hdGlvbiwgc2l6
ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9uQnVmZmVyLCBvZmZzZXRJ
bnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQotI2RlZmluZSBDTUJsb2NrQnVmZmVyUmVwbGFj
ZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0
ZXMKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2Nr
QnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVC
dWZmZXIpLCAodGhlQnVmZmVyKSkKLSNkZWZpbmUgQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVt
b3J5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
R2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNp
emVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5n
dGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3Ro
QXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91dCkpCi0jZGVmaW5lIENN
QmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZl
ckdldERhdGFQb2ludGVyCisjaWYgUExBVEZPUk0oQ09DT0EpCiAKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFT
dWJUeXBlLCBGb3VyQ2hhckNvZGUsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCisjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5cGUgc29mdExpbmtf
Q29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5cGUKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0
TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChk
ZXNjKSkKKyNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVm
YXVsdExvY2FsQ2VudGVyLCBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgKHZvaWQpLCAoKSkKICNk
ZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIgc29mdExpbmtf
Q29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25D
ZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50
ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNr
LCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCwgVUludDMyIGZs
YWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCwg
ZmxhZ3MpKQogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1v
dmVMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNv
bnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0
cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3Rl
bmVyLCBjYWxsYmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpKQogI2RlZmluZSBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTU5vdGlmaWNhdGlv
bkNlbnRlclJlbW92ZUxpc3RlbmVyCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwg
KCkpCi0jZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlEIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckdldFR5cGVJRAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJl
ZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCi0jZGVmaW5lIENNU2FtcGxlQnVm
ZmVyR2V0RGF0YUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCi0jZGVmaW5lIENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtSW5kZXggc2FtcGxlSW5kZXgsIENNU2FtcGxlVGlt
aW5nSW5mbyogdGltaW5nSW5mb091dCksIChzYnVmLCBzYW1wbGVJbmRleCwgdGltaW5nSW5mb091
dCkpCi0jZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFk
eSwgQm9vbGVhbiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCi0jZGVmaW5lIENN
U2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVy
RGF0YUlzUmVhZHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6
ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQp
LCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVF
bnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCkpCi0jZGVmaW5lIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1w
bGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lk
KiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2Ny
aXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1p
bmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXpl
QXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZl
ciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24s
IGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBz
YW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwg
c0J1Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBs
ZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQg
Km1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWlu
Z0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXksIENN
SXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QgKnNhbXBsZVNpemVB
cnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVy
LCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwg
Zm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNh
bXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBz
QnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlh
X0NNU2FtcGxlQnVmZmVyQ3JlYXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJS
ZWYqIHNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3Is
IHNidWYsIHNidWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlX
aXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1w
bGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRy
aWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBs
ZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNh
bXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCkpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJD
cmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJh
eSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxT
QnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlP
dXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1w
bGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VC
dWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxl
VGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVm
ZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVk
aWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9y
SW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdl
QnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJN
YWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0
YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFSZWFk
eSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNj
cmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyCkBAIC0yMTQsMjEgKzE5MywxOSBAQCBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRw
dXRQcmVzZW50YXRpbwogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlv
blRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENGQXJyYXlS
ZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5KSwg
KHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVBdHRhY2htZW50c0FycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZUF0dGFjaG1lbnRzQXJyYXkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0
dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJp
ZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1p
bmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1p
bmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1D
b3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyAqdGltaW5nQXJyYXlP
dXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGlt
aW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVk
T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgc29m
dExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5CiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAo
c2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1
ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVm
IGJ1ZmZlciksIChzYnVmLCBidWZmZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlcgotCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2ht
ZW50LCBDRlR5cGVSZWYsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1Jl
ZiBrZXksIENNQXR0YWNobWVudE1vZGUqIGF0dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5
LCBhdHRhY2htZW50TW9kZU91dCkpCiAjZGVmaW5lIENNR2V0QXR0YWNobWVudCBzb2Z0TGlua19D
b3JlTWVkaWFfQ01HZXRBdHRhY2htZW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVy
UmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVu
dE1vZGUgYXR0YWNobWVudE1vZGUpLCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9k
ZSkpCiAjZGVmaW5lIENNU2V0QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TZXRBdHRh
Y2htZW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01S
ZW1vdmVBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZT
dHJpbmdSZWYga2V5KSwgKHRhcmdldCwga2V5KSkKICNkZWZpbmUgQ01SZW1vdmVBdHRhY2htZW50
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVJlbW92ZUF0dGFjaG1lbnQKLQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVy
Q2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1h
c3RlckNsb2NrLCBDTVRpbWViYXNlUmVmKiB0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3Rl
ckNsb2NrLCB0aW1lYmFzZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJh
c2VSZWYgKnRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0
KSkKICNkZWZpbmUgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChD
TVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdl
dFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yNTAsNyArMjI3
LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVy
RGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
YmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnks
IENGRGljdGlvbmFyeVJlZiwgKENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Ip
LCAodGltZSwgYWxsb2NhdG9yKSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01UaW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJ
bWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBv
dXREZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmICpvdXREZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmlu
ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19D
b3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25HZXREaW1lbnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiB2aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucwpAQCAtMjcyLDIzICsyNDksMjMgQEAgU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVH
ZXRCdWZmZXJDb3VudCwgQ01JdGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmly
c3RQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUp
LCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlv
blRpbWVTdGFtcAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0
IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNh
bXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzICosICgpLCAoKSkKICNkZWZpbmUg
Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVm
ZmVycwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVm
ZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVl
dWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2Vu
dGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJl
c2VudGF0aW9uVGltZVN0YW1wCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZv
aWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRp
bWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1
ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkp
Ci0jZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFf
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJU
aHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENN
QnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50
IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tl
bk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29u
ZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1
ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
TWFya0VuZE9mRGF0YSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVl
KSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlh
X0NNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1
ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKLSNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldER1
cmF0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24KIAogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0
YWNobWVudEtleV9Eb05vdERpc3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50
S2V5X0RvTm90RGlzcGxheSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKICNk
ZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jIGdldF9Db3JlTWVkaWFfa0NNU2Ft
cGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVs
eSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUlt
bWVkaWF0ZWx5IGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1t
ZWRpYXRlbHkoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMsIENGU3RyaW5nUmVm
KQorI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycygp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5LCBDRlN0cmlu
Z1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlN
ZWRpYUltbWVkaWF0ZWx5IGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtl
eV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0RyYWlu
QWZ0ZXJEZWNvZGluZywgQ0ZTdHJpbmdSZWYpCkBAIC0zMDMsMTAgKzI4MCwxMCBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0
YWNobWVudEtleV9TYW1wbAogI2RlZmluZSBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Nh
bXBsZVJlZmVyZW5jZUJ5dGVPZmZzZXQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRh
Y2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZUJ5dGVPZmZzZXQoKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlf
U2FtcGxlUmVmZXJlbmNlVVJMLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9TYW1wbGVSZWZlcmVuY2VVUkwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZVVSTCgpCi1TT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNw
bGF5SW1tZWRpYXRlbHksIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJz
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVk
T25CeU90aGVycyBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRl
ZE9uQnlPdGhlcnMoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5n
ZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hh
bmdlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NN
VGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtD
TVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZm
ZXJDb25zdW1lZCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVy
Tm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVy
Q29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQoKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlf
RW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIENGU3RyaW5nUmVmKQpAQCAtMzE2LDY5ICsyOTMs
NzEgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHUKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1l
bnRLZXlfVHJpbUR1cmF0aW9uQXRTdGFydCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGdldF9Db3Jl
TWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0IGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0
YXJ0KCkKIAotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQgZ2V0
X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCgp
Ci1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZWJh
c2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTVRpbWVi
YXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlm
aWNhdGlvbl9UaW1lSnVtcGVkKCkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5
b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZE
aWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0
RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVT
aXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYykpCi0jZGVmaW5lIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQq
LCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChk
ZXNjLCBzaXplT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWND
b29raWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2lj
Q29va2llCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBk
ZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24KLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNo
ZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQotI2RlZmluZSBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0Ci0KIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3Jl
YXRlV2l0aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFs
bG9jYXRvciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0
b3JSZWYgYmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJj
ZSogY3VzdG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVu
Z3RoLCBDTUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVm
ZmVyT3V0KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBi
bG9ja0FsbG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0
aCwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckNyZWF0ZVdp
dGhNZW1vcnlCbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhN
ZW1vcnlCbG9jawotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90KiBidWZmZXJMaXN0U2l6
ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVy
TGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9y
UmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVm
KiBibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVy
TGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlB
bGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RX
aXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZl
ckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVj
dEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3Qg
ZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxp
c3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVj
dEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9j
a0J1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxp
c3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZl
ckdldE51bVNhbXBsZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0TnVtU2Ft
cGxlcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpKQorI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxl
Rm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNo
ZXN0RGVjb2RhYmxlRm9ybWF0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJh
bmdlIHNhbXBsZVJhbmdlLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3Is
IHNidWYsIHNhbXBsZVJhbmdlLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5
U2FtcGxlQnVmZmVyRm9yUmFuZ2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29w
eVNhbXBsZUJ1ZmZlckZvclJhbmdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6
ZV90KiBzaXplQXJyYXlPdXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0
KSwgKHNidWYsIHNpemVBcnJheUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmll
c05lZWRlZE91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJl
YWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2Fs
bGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRT
LCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMs
IENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0
YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1h
dERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNC
dWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBC
b29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFr
ZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERl
c2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBD
TVRpbWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0
RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRh
dGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5
UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVz
Y3JpcHRpb25zLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdp
dGhQYWNrZXREZXNjcmlwdGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBh
Y2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
QmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRp
bWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3Jp
cHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwg
ZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRp
bWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpKQotI2RlZmluZSBD
TUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVz
Y3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywg
Y29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxv
Y2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERh
dGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVm
IGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxp
c3QgKmJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERh
dGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1w
bGVCdWZmZXJTZXREYXRhUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0
RGF0YVJlYWR5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01UaW1lIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIChzYnVmLCBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApKQotI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKLQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0
IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25z
dCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNp
emUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0
RGVzYykpCisjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENN
Q2xvY2tSZWYsICh2b2lkKSwgKCkpCi0jZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2Nr
R2V0SG9zdFRpbWVDbG9jayAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0VGltZUNs
b2NrCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9j
a0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spKQotI2RlZmluZSBD
TUNsb2NrR2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUg
Q01DbG9ja0dldFRpbWUgIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9z
dFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBob3N0VGltZSksIChob3N0VGlt
ZSkpCiAjZGVmaW5lIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cwogCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxs
Rm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1
cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCog
cmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCogQ01TQU1QTEVC
VUZGRVJDQUxMX05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXIsIENNSXRlbUNvdW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lkICpyZWZjb24pLCAoc2J1
ZiwgY2FsbGJhY2ssIHJlZmNvbikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hT
YW1wbGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01T
YW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxC
bG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NT
dGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVm
ZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVC
dWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNs
b2NrT3V0KSkKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKICNkZWZpbmUgQ01B
dWRpb0Nsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVt
LCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQor
I2RlZmluZSBDTVRpbWVNYXhpbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11
bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkK
KyNkZWZpbmUgQ01UaW1lTWluaW11bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWluaW11bQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdl
Q29udGFpbnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwg
KHJhbmdlLCB0aW1lKSkKKyNkZWZpbmUgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUgc29mdExpbmtf
Q29yZU1lZGlhX0NNVGltZVJhbmdlQ29udGFpbnNUaW1lCiAKLSNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01U
aW1lSW5kZWZpbml0ZSwgQ01UaW1lKQorI2RlZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29y
ZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKICNpZiBQTEFURk9STShNQUMpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYq
IGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0RldmljZUNs
b2NrQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxv
Y2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpKQorI2RlZmluZSBDTUF1ZGlvRGV2aWNlQ2xvY2tD
cmVhdGUgIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRE
ZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNl
T2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Ugc29mdExpbmtf
Q29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCisjZGVmaW5lIENNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVj
dEdldERlcml2ZWRTdG9yYWdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01C
YXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9i
amVjdEdldFZUYWJsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxlCisj
ZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJh
c2VPYmplY3RHZXRWVGFibGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFz
c0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNs
YXNzSUQsIGJhc2VPYmplY3QpKQotI2RlZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgc29mdExp
bmtfQ29yZU1lZGlhX0NNRGVyaXZlZE9iamVjdENyZWF0ZQorI2RlZmluZSBDTURlcml2ZWRPYmpl
Y3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggNzJmNDExNGVlYWFkZjYyMGNlMzcw
MjMwOTk0NzY2YjQ4Yzc5NWIxNi4uZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFm
NTZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHAKQEAgLTM0LDE5ICszNCwxMyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRlb1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFn
ZUJpdFJhdGUsIENGU3RyaW5nUmVmKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFM
LCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBD
RlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rv
b2xib3gsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVy
YXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJpbmdSZWYpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0
b0xldmVsLCBDRlN0cmluZ1JlZikKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwg
VmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJp
bmdSZWYpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQz
Ml90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENG
RGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJj
ZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxv
Y2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCog
b3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lv
blNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29k
ZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWRE
YXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXBy
ZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZp
ZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMs
IChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCksIChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9u
VGltZVN0YW1wKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29s
Ym94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJl
c3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENN
VGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5
UmVmIGZyYW1lUHJvcGVydGllcywgdm9pZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5m
b0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlv
blRpbWVTdGFtcCwgZHVyYXRpb24sIGZyYW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24s
IGluZm9GbGFnc091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVv
VG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3Rh
dHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9u
U2Vzc2lvbkludmFsaWRhdGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9u
KSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9T
U3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29u
c3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFs
bG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBl
TGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IDYwYThmZjM3
NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIuLmVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3
ZjAyZThjODRiN2RkMGRhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
VmlkZW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1Zp
ZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM3LDIwICszNyw5IEBAIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X01heEtlCiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRl
cnZhbER1cmF0aW9uIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9N
YXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUs
IENGU3RyaW5nUmVmKQogI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1l
IGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCi1T
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9r
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlKCkKLVNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUHJvZmlsZUxldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJk
d2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVI
YXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9B
dXRvTGV2ZWwsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNl
bGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNl
bGluZV9BdXRvTGV2ZWwoKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRl
b1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVv
VG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCgpCi1TT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gy
NjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxf
SDI2NF9NYWluX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0
X01haW5fQXV0b0xldmVsKCkKLQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01W
aWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNh
dGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxv
Y2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxs
YmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJl
c3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0
aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1
ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywg
b3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZU
Q29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNz
aW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNjAsOCArNDksNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFt
ZQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVv
VG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVw
YXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vz
c2lvbiksIChzZXNzaW9uKSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9F
bmNvZGVGcmFtZXMgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJl
cGFyZVRvRW5jb2RlRnJhbWVzCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZp
ZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21w
cmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKLSNkZWZpbmUgVlRDb21wcmVz
c2lvblNlc3Npb25JbnZhbGlkYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9u
U2Vzc2lvbkludmFsaWRhdGUKIAogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywg
KFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlk
ZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29k
ZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFs
bG93ZWRDb2RlY1R5cGVDb3VudCkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggZDQ0NDkzMWVmZDhhZTU1NjBi
OGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMC4uNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2Rk
YWMzNjM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRv
b2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRp
YVRvb2xib3hTb2Z0TGluay5jcHAKQEAgLTQxLDEwICs0MSw2IEBAIFNPRlRfTElOS19GVU5DVElP
Tl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9H
ZXRTaG91CiAKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRTdXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlI
RFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBH
ZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Q
cm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVm
ZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1l
UmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAs
IG51bWJlckZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBu
dW1iZXJGcmFtZXNPdXQpKQotU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRl
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlv
bkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRv
ciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSwgUEFMX0VYUE9SVCkKLQogI2lmIEhBVkUoTVRf
UExVR0lOX0ZPUk1BVF9SRUFERVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0
eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggMjU1YTc2N2I1
NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOS4uYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2
NzBiZmMxMjUwMjI5MzQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvTWVkaWFUb29sYm94U29mdExpbmsuaApAQCAtNDEsMTMgKzQxLDYgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3Vs
ZFBsYXlIRFJWaWQKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVv
Q2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAo
TVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKSwgKHRhcCkpCi0jZGVmaW5lIE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTdG9yYWdlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3Mg
KmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVy
RnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0
LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCi0jZGVmaW5lIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwR2V0U291cmNlQXVkaW8gc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNz
aW5nVGFwR2V0U291cmNlQXVkaW8KLVNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFw
Q2FsbGJhY2tzKiBjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBm
bGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxi
YWNrcywgZmxhZ3MsIHRhcE91dCkpCi0jZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRl
IHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQotCiAjaWYg
SEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1
cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM1NjJiZTc2
MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYuLjU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYx
NDkyY2MwN2RlMjVjODBlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDYgKzM1
MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChE
b2N1bWVudCk7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Cit1c2luZyBuYW1lc3BhY2Ug
UEFMOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDg1MGNkZTcyNzBmMGQ2MWRjMjU0NDljMWRhODlhNDlh
MWFmNDM2OGIuLjlmNTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xMDksNiArMTA5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRN
TENhbnZhc0VsZW1lbnQpOwogCit1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAogLy8gVGhlc2UgdmFsdWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBI
VE1MIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA3
ZDNiMTMyMWU4YTcwZDBkMWU4ZGMzMTM1YTgxYWRjYmU1ODAyNmQ5Li4wMDM1MjZmYzMxOWE5ZDFi
NmIwN2Q2OGIyYjQ2MmFjYTg1NDdmY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTE5MCw2ICsxOTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MTWVkaWFFbGVtZW50KTsKIAordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKKwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAw
X21zIH07CiBzdGF0aWMgY29uc3QgZG91YmxlIFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0
IFNlY29uZHMgU2NhblJlcGVhdERlbGF5IHsgMS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNw
cAppbmRleCA1ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1ZDdjMDY0NGNlLi5mZDNkM2Uw
M2EwM2YwODEwNTIxMjg2YmQwMjZhOTEwMTExZDNjYzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwCkBAIC0zNiwxMyArMzYsMjUgQEAKICNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNp
bmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5k
YXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9G
aWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0Zp
bGUpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Ms
IE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFk
RnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQ
cm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBB
dWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUp
LCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywg
aW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmls
ZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTksoQXVkaW9U
b29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVS
ZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBV
SW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0
QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlE
YXRhKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVz
LCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFt
ZXMsIGlvRGF0YSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlv
RmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBj
b25zdCB2b2lkICppblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlE
LCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKK1NPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJ
RCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0
QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCitT
T0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENG
VVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwg
b3V0RXh0QXVkaW9GaWxlKSkKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVkaW9CdWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZl
ckxpc3Qoc2l6ZV90IG51bWJlck9mQnVmZmVycykKQEAgLTkxLDIyICsxMDMsMjIgQEAgQXVkaW9G
aWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFT
aXplKQogICAgIDogbV9kYXRhKGRhdGEpCiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewot
ICAgIGlmIChQQUw6OkF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9jLCAw
LCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQorICAgIGlmIChB
dWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2Ms
IDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKFBBTDo6RXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVkaW9GaWxlSUQsIGZhbHNl
LCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQorICAgIGlmIChFeHRBdWRpb0ZpbGVXcmFw
QXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0g
bm9FcnIpCiAgICAgICAgIG1fZXh0QXVkaW9GaWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVh
ZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkKIHsKICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0g
ICAgICAgIFBBTDo6RXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJlZik7CisgICAg
ICAgIEV4dEF1ZGlvRmlsZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRB
dWRpb0ZpbGVSZWYgPSAwOwogCiAgICAgaWYgKG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIFBBTDo6
QXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CisgICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1f
YXVkaW9GaWxlSUQpOwogCiAgICAgbV9hdWRpb0ZpbGVJRCA9IDA7CiB9CkBAIC0xNDMsNyArMTU1
LDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBz
YW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3Jt
YXQKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAo
UEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlv
RmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9
IG5vRXJyKQorICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJl
Ziwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURh
dGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVf
dCBudW1iZXJPZkNoYW5uZWxzID0gbV9maWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsK
QEAgLTE1MSw3ICsxNjMsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3Jl
YXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBv
ZiBmcmFtZXMKICAgICBTSW50NjQgbnVtYmVyT2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNp
emVvZihudW1iZXJPZkZyYW1lczY0KTsKLSAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9w
ZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVMZW5ndGhG
cmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFt
ZXM2NCA8PSAwKQorICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmls
ZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVt
YmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURh
dGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0xNzMsNyArMTg1LDcgQEAgUmVmUHRyPEF1ZGlvQnVz
PiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRv
TW9ubykKICAgICBpZiAoc2FtcGxlUmF0ZSkKICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1T
YW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAotICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZVNldFBy
b3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xpZW50RGF0
YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2NsaWVudERh
dGFGb3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4
dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAh
PSBub0VycikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVy
T2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlvbiBzYW1wbGUtcmF0ZQpAQCAtMjMxLDcgKzI0Myw3IEBA
IFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxl
UmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAKICAgICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGlu
LW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJbnQzMiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1l
czsKLSAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJh
bWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgeworICAgIGlmIChFeHRBdWRpb0ZpbGVS
ZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0Vy
cikgewogICAgICAgICBkZXN0cm95QXVkaW9CdWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaAppbmRleCAwYmJiYmEy
Nzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5Li5iN2I5MTYzYjU2ZTI2YzI5Y2FiODRl
ZTI0NzY5ZTI5NzE0MTdhZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKQEAgLTMxLDEyICszMSwx
MCBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2luY2x1ZGUgPENvcmVBdWRpby9Db3Jl
QXVkaW9UeXBlcy5oPgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KKyNpbmNs
dWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKLXVzaW5nIEV4dEF1ZGlvRmlsZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0Zp
bGUqOwotdXNpbmcgQXVkaW9GaWxlSUQgPSBzdHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOwotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvQnVzOwpAQCAtNjAsNyArNTgsNyBAQCBw
cml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1fZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVf
dCBtX2RhdGFTaXplID0geyAwIH07CiAKLSAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0g
eyBudWxscHRyIH07CisgICAgQXVkaW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgMCB9OwogICAg
IEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1ZGlvRmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFw
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0
VW5pdEFkYXB0b3IuY3BwCmluZGV4IDE0OGIwNTVkYmVjODk0M2VhNWFhYzY4ZTY4NThkZTdkMGI4
MjMxMjMuLjQ3ODc1MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
T3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBAIC0yOCw4ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQogCi0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+Ci0KIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRV
bml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCkBAIC00MSwxMiArMzksMTIg
QEAgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1Vu
aXRSZW5kZXJlciYgcmVuZGVyZXIpCiBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRw
dXRVbml0QWRhcHRvcigpCiB7CiAgICAgaWYgKG1fb3V0cHV0VW5pdCkKLSAgICAgICAgUEFMOjpB
dWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQpOworICAgICAgICBBdWRp
b0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBB
dWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBQQUw6
OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CisgICAgYXV0byByZXN1bHQgPSBB
dWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9F
cnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkg
Y2FsbCBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1
bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTQsNyArNTIsNyBAQCBPU1N0YXR1cyBBdWRp
b091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgpCiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFk
YXB0b3I6OnN0b3AoKQogewotICAgIHJldHVybiBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9v
dXRwdXRVbml0KTsKKyAgICByZXR1cm4gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQp
OwogfQogCiAvLyBEZWZhdWx0T3V0cHV0VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5jcHAKaW5kZXggNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4ZWNkNjUzNzM1ZDFlNy4uZmRm
Njc3NTdkMWI0Nzc2MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZl
ckxpc3QuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2lu
Y2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9B
dWRpb0NvbnZlcnRlci5oPgotI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5o
PgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0yNzMsNyArMjcyLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJv
bShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1dEZvcm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRh
U2l6ZSA9IHNpemVvZihpbnB1dEZvcm1hdCk7Ci0gICAgUEFMOjpBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3Jp
cHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmaW5wdXRGb3JtYXQpOworICAgIEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJl
YW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNT
RVJUKGZyYW1lQ291bnQgPD0gc291cmNlLm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1
dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOwogCiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29u
dGV4dCBjb250ZXh0IHsgc291cmNlLCBmcmFtZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQ
YWNrZXQgfTsKQEAgLTI4MSw3ICsyODAsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxp
c3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lm
ICFMT0dfRElTQUJMRUQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9y
bWF0OwogICAgIHByb3BlcnR5RGF0YVNpemUgPSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBQ
QUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJD
dXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmb3V0cHV0
Rm9ybWF0KTsKKyAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlv
Q29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6
ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAgICBBU1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
KG91dHB1dEZvcm1hdCkubnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+
YnVmZmVyQ291bnQoKSk7CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlz
dC0+YnVmZmVyQ291bnQoKTsgKytpKSB7CkBAIC0yOTEsNyArMjkwLDcgQEAgT1NTdGF0dXMgQXVk
aW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJj
ZSwgc2l6ZV90IGYKICNlbmRpZgogCiAgICAgVUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3Nh
bXBsZUNhcGFjaXR5OwotICAgIE9TU3RhdHVzIGVyciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJGaWxs
Q29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJvbUFCTENhbGxiYWNrLCAm
Y29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+bGlzdCgpLCBudWxscHRy
KTsKKyAgICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNv
bnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxl
c0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJy
IHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1dERhdGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVD
b3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tCmluZGV4IGQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQyMGRlMzc2NDliMTE1MWMyMjcu
LmU1ZWM0Nzc3ODU4MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURh
dGFTb3VyY2UubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwog
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9T
YW1wbGVEYXRhU291cmNlOjpjcmVhdGUoc2l6ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2Vy
SGVscGVyJiBsb2dnZXJIZWxwZXIsIHNpemVfdCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRp
b0J1ZmZlckxpc3QuY3BwCmluZGV4IDMwZGViMmU0Yzc0MWRmNTQ4OGIzOGY1ZWQ1OWVlYmU1YTAy
ODliZWMuLjg5ZWNlZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9C
dWZmZXJMaXN0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFM
OwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkKICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQu
Ynl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE1LDcgKzExNiw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6
V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0
LCBDCiAgICAgICAgIHJldHVybjsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVs
bHB0cjsKLSAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVy
TGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwgbV9jYW5v
bmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZh
dWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFnX0F1ZGlv
QnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQorICAgIGlmIChub0Vy
ciA9PSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVm
ZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RC
dWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1E
ZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVB
bGlnbm1lbnQsICZidWZmZXIpKQogICAgICAgICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZm
ZXIpOwogCiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCBm
ODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3Li4yZTk2MzBmYjYwZjIyYjNl
ZTU2ZDI0MmQ3MzA0MzQ4NmI4N2I1NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3Bw
CkBAIC0zMyw3ICszMywxNSBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKLSNpbmNsdWRlIDxwYWwvY2Yv
QXVkaW9Ub29sYm94U29mdExpbmsuaD4KKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KKwor
U09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94
LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50
IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAo
aW5Db21wb25lbnQsIGluRGVzYykpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBv
bmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBB
dWRpb0NvbXBvbmVudEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5z
dGFuY2UpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0
ZW5lciwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGlu
SUQsIEF1ZGlvVW5pdFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNl
ckRhdGEpLCAoaW5Vbml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKK1NPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9E
YXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9E
YXRhU2l6ZSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBP
U1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKK1NPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQs
IEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9V
bml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNp
emUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6
ZSkpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTAsMTUgKzU4LDE1IEBAIHZvaWQgQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwg
dW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9V
bml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gUEFMOjpBdWRpb0NvbXBv
bmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4
dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQg
PSBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7Cisg
ICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9v
dXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7
Ci0gICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsCisg
ICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBr
QXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29w
ZV9PdXRwdXQsCiAgICAgICAgIDAsCkBAIC02NiwyMCArNzQsMjAgQEAgdm9pZCBBdWRpb091dHB1
dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25l
ZCBudW1iZXIKICAgICAgICAgc2l6ZW9mKGZsYWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAK
LSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKKyAg
ICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJU
KCFyZXN1bHQpOwogICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxi
YWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBp
bnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2Fs
bGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsK
KyAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAm
aW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNl
dCBzdHJlYW0gZm9ybWF0CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZv
cm1hdDsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbik7Ci0gICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRw
dXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCAmc2l6ZSk7CisgICAgcmVzdWx0ID0gQXVkaW9V
bml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNp
emUpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJG
bG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAgLTkzLDcgKzEwMSw3IEBAIHZvaWQgQXVkaW9PdXRw
dXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWdu
ZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZP
dXRwdXRDaGFubmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1Bl
ckJ5dGUgKiBieXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRp
b1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJy
ZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAppbmRleCA3MTRjY2U4
ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiLi5jOGVkM2VmNzhjOGM2YTNiMWUwNzBj
YjQ0MDU5NjlhZGE0YWMzZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0z
NCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRp
by9BdWRpb0hhcmR3YXJlLmg+Ci0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5r
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMjEgKzQ4LDIxIEBAIHZvaWQgQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwg
dW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9V
bml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gUEFMOjpBdWRpb0NvbXBv
bmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4
dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQg
PSBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7Cisg
ICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9v
dXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBQQUw6OkF1
ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKKyAgICByZXN1bHQgPSBBdWRpb1VuaXRJ
bml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8g
U2V0IHJlbmRlciBjYWxsYmFjawogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAg
ICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNv
biA9IHRoaXM7Ci0gICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKKyAgICByZXN1bHQgPSBBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5k
ZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5w
dXQpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApA
QCAtODAsNyArNzksNyBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShm
bG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1h
dC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFt
Rm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAot
ICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVk
aW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2
b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7
CisgICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lk
Kikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAg
ICAgQVNTRVJUKCFyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKaW5kZXggNzg0NzRkOGU1YTVhYzA3MDM1MzM1OTkwY2Rk
ZjhhZmNkODA1NjE5Ni4uYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNw
cApAQCAtMzMsMTEgKzMzLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKKwogUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQog
ewogICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNj
cmlwdGlvbik7CiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwot
ICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBtYWdpY0Nvb2tp
ZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBhdXRvIGVycm9yID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2lj
RGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51
bGxwdHIsICZmb3JtYXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNy
ZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtNTMsMTQgKzU1LDE0IEBAIFJldGFpblB0cjxDTVNhbXBs
ZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGRhCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVD
b3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IENN
QXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCks
IHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJy
b3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBh
Y2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsK
IAotICAgIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwor
ICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlz
dChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAo
ZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9t
IGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA2NGUzMGJjMjkzY2E4ZjkzODg0ODhmMTQ4ODUwNmM1
N2JlMGE1MTVkLi41N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9T
YW1wbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGlj
IGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZl
clRvSU9TdXJmYWNlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC04OSw3ICs5
MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1w
bGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7
CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAg
YXV0byBpbWFnZUJ1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBs
YXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVm
ZmVyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1w
bGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRy
Iik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IGRmZjRmYTRlZGYyNjRiNDUyYmY4ZGE3YWZh
ZWY0Y2JkN2EwMjdiMDIuLjk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0K
QEAgLTQ2LDEzICs0NiwyMiBAQAogI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAj
ZW5kaWYKIAotI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0
IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oPgotI2ltcG9ydCA8cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5r
Lmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoTWVkaWFUb29sYm94KQorU09GVF9MSU5LX0ZSQU1F
V09SSyhBdWRpb1Rvb2xib3gpCisKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVy
dGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5B
dWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1ZmZl
ckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRwdXRE
YXRhKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1
cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVk
aW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRl
c3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCisKK1NPRlRfTElOSyhNZWRpYVRv
b2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKK1NPRlRfTElOSyhNZWRpYVRvb2xib3gsIE1UQXVk
aW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3Np
bmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAq
YnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01U
aW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0
YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0
LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9MSU5LX01BWV9GQUlMKE1lZGlhVG9vbGJveCwgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyAqY2FsbGJhY2tzLCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmICp0YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpKQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3Qg
ZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24gPSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZT4gewpAQCAtNjQsNyArNzMsNyBAQCBw
dWJsaWM6CiAKIFJlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFQ
QUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKCkpCisg
ICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMoaXRlbSkpOwogfQpAQCAtMTQzLDcgKzE1Miw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVz
VG9Qcm9jCiAgICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1f
Y29udmVydGVyKQotICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZm
ZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0LmdldCgpLCBtX2xp
c3QuZ2V0KCkpOworICAgICAgICBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1f
Y29udmVydGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0Lmdl
dCgpKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVudCkKQEAgLTIxNiw3ICsyMjUsNyBAQCB2b2lk
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsK
IAogICAgIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0
dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAx
LCAmdGFwKTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAg
ICAgICAgICAgICBDRlJlbGVhc2UodGFwKTsKQEAgLTI0OSwxNCArMjU4LDE0IEBAIHZvaWQgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmluaXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6
ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFw
KTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+
KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3Jh
Z2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogICAgIHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZv
aWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9jZXNzaW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXAp
OwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4o
UEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFn
ZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+
bG9jayB9OwogCkBAIC0yNjcsNyArMjc2LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZv
aWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdl
KiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nl
c3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBz
dGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRh
cCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjc4
LDcgKzI4Nyw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNh
bGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OnByb2Nlc3NDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAs
IENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFn
cywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJG
cmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFT
U0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBT
dG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAg
VGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFw
U3RvcmFnZS0+bG9jayB9OwogCkBAIC0zMDgsNyArMzE3LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlv
U3RyZWEKIAogICAgIGlmICgqbV90YXBEZXNjcmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlv
bikgewogICAgICAgICBBdWRpb0NvbnZlcnRlclJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwot
ICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCksIG1f
b3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAgICAgICBBdWRpb0Nv
bnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdl
dCgpLCAmb3V0Q29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7
CiAgICAgfQogCkBAIC0zNDgsNyArMzU3LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAg
ICAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdl
T3V0OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9IFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRT
b3VyY2VBdWRpbyh0YXAsIG51bWJlck9mRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0
LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQpOworICAgIE9TU3RhdHVzIHN0YXR1cyA9IE1UQXVkaW9Q
cm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlz
dEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyIHx8ICFpdGVtQ291bnQpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggNTMyOWYxZDlkM2FlYTdjNTRkMzM2NmMzMmFkMWE2MDM4YTc5ZWIyYS4u
MzA1YjNkMjdlMzQyZjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0yMzIsNiArMjMyLDcgQEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVy
VGltZUNvbnRyb2xTdGF0dXM+IHsKIH07IC8vIG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0
YWRhdGFLZXlOYW1lcygpOwogc3RhdGljIE5TQXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBA
IC01NzEsNiArNTcyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIW1f
YXZBc3NldCB8fCBtX2ltYWdlR2VuZXJhdG9yKQpAQCAtNTgwLDggKzU4Miw4IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQog
CiAgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNzZXRJbWFn
ZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmVdOwogICAgIFttX2ltYWdlR2VuZXJh
dG9yLmdldCgpIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwotICAgIFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6UEFM
OjprQ01UaW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVk
VGltZVRvbGVyYW5jZUFmdGVyOlBBTDo6a0NNVGltZVplcm9dOworICAgIFttX2ltYWdlR2VuZXJh
dG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6a0NNVGltZVplcm9dOwor
ICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRl
cjprQ01UaW1lWmVyb107CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTY2OSw3ICs2NzEsNyBAQCBN
ZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRl
KCkgY29uc3QKICAgICBpZiAoIWRhdGUpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmludmFs
aWRUaW1lKCk7CiAKLSAgICBkb3VibGUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29u
ZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOworICAgIGRvdWJsZSBjdXJy
ZW50VGltZSA9IENNVGltZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkg
KiAxMDAwOwogCiAgICAgLy8gUm91bmRpbmcgZHVlIHRvIHNlY29uZCBvZmZzZXQgZXJyb3Igd2hl
biBzdWJ0cmFjdGluZy4KICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKHJv
dW5kKGRhdGUgLSBjdXJyZW50VGltZSkpOwpAQCAtMTA4Nyw3ICsxMDg5LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBB
U1NFUlQoIW1fY3VycmVudFRpbWVPYnNlcnZlcik7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKTsKLSAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBh
ZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkg
cXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENN
VGltZSB0aW1lKSB7CisgICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRk
UGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRp
bWUpIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmN1cnJl
bnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01lZGlhVGltZSh0aW1lKSk7CiAgICAgfV07CkBA
IC0xNDIxLDcgKzE0MjMsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBNZWRpYVRp
bWU6Onplcm9UaW1lKCk7CiAKICAgICBpZiAoIW1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGlt
ZSkKLSAgICAgICAgY3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKFtt
X2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKKyAgICAgICAgY3VycmVudE1lZGlh
VGltZURpZENoYW5nZSh0b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRp
bWVdKSk7CiAgICAgQVNTRVJUKG1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSk7CiAKICAg
ICBhdXRvIGl0ZW1UaW1lID0gbV9jYWNoZWRDdXJyZW50TWVkaWFUaW1lOwpAQCAtMTQ2Niw4ICsx
NDY4LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9U
aW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QKICAgICBDTVRpbWUgY21BZnRlciA9IFBB
TDo6dG9DTVRpbWUocG9zaXRpdmVUb2xlcmFuY2UpOwogCiAgICAgLy8gW0FWUGxheWVySXRlbSBz
ZWVrVG9UaW1lXSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0b2xlcmFuY2VCZWZvcmUgaXMg
bmVnYXRpdmUuCi0gICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShjbUJlZm9yZSwgUEFMOjprQ01U
aW1lWmVybykgPCAwKQotICAgICAgICBjbUJlZm9yZSA9IFBBTDo6a0NNVGltZVplcm87CisgICAg
aWYgKENNVGltZUNvbXBhcmUoY21CZWZvcmUsIGtDTVRpbWVaZXJvKSA8IDApCisgICAgICAgIGNt
QmVmb3JlID0ga0NNVGltZVplcm87CiAgICAgCiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKTsKIApAQCAtMTU4NCw4ICsxNTg2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0oTWVkaWFQbGF5
ZXIKIAogc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdAog
ewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4K
LQogICAgIGF1dG8gdGltZVJhbmdlcyA9IG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigp
OwogCiAgICAgaWYgKCFtX2F2UGxheWVySXRlbSkKQEAgLTE1OTQsMTUgKzE1OTQsMTMgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGxhdGZvcm0KICAgICBmb3IgKE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGlu
IG1fY2FjaGVkTG9hZGVkUmFuZ2VzLmdldCgpKSB7CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVS
YW5nZSA9IFt0aGlzUmFuZ2VWYWx1ZSBDTVRpbWVSYW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENN
VElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgJiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRp
bWVSYW5nZSkpCi0gICAgICAgICAgICB0aW1lUmFuZ2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0
aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQo
dGltZVJhbmdlKSkpOworICAgICAgICAgICAgdGltZVJhbmdlcy0+YWRkKFBBTDo6dG9NZWRpYVRp
bWUodGltZVJhbmdlLnN0YXJ0KSwgUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0
aW1lUmFuZ2UpKSk7CiAgICAgfQogICAgIHJldHVybiB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRp
bWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vl
a2FibGUoKSBjb25zdAogewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVS
QU5HRV9JU19FTVBUWS4KLQogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyB8fCAhW21f
Y2FjaGVkU2Vla2FibGVSYW5nZXMgY291bnRdKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6
ZXJvVGltZSgpOwogCkBAIC0xNjIzLDggKzE2MjEsNiBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAog
CiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1N
YXhUaW1lU2Vla2FibGUoKSBjb25zdAogewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZv
ciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KLQogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdl
cykKICAgICAgICAgbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyA9IFttX2F2UGxheWVySXRlbSBzZWVr
YWJsZVRpbWVSYW5nZXNdOwogCkBAIC0xNjM3LDcgKzE2MzMsNyBAQCBNZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBj
b25zdAogICAgICAgICBpZiAoIUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01U
SU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAKLSAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKFBB
TDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1lZGlhVGltZSBlbmRP
ZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsK
ICAgICAgICAgaWYgKG1heFRpbWVTZWVrYWJsZSA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBt
YXhUaW1lU2Vla2FibGUgPSBlbmRPZlJhbmdlOwogICAgIH0KQEAgLTE2NDYsOCArMTY0Miw2IEBA
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1h
eFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogewotICAgIHVzaW5n
IG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KLQogICAgIGlmICgh
bV9jYWNoZWRMb2FkZWRSYW5nZXMpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1l
KCk7CiAKQEAgLTE2NTcsNyArMTY1MSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBp
ZiAoIUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1Q
VFkodGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAg
TWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VH
ZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0
b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1h
eFRpbWVMb2FkZWQgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVu
ZE9mUmFuZ2U7CiAgICAgfQpAQCAtMTgwOSw3ICsxODAzLDcgQEAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGlt
ZUluUmUKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAK
ICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5z
aXplKCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOlBBTDo6Q01UaW1lTWFrZVdp
dGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmlsXSk7CisgICAgUmV0
YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBh
Y3R1YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1h
Z2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0
KCksIHNSR0JDb2xvclNwYWNlUmVmKCkpKTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIs
ICJjcmVhdGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5z
ZWNvbmRzKCkpOwpAQCAtMTk5NSw3ICsxOTg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpkaWRTdG9wTG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8K
IAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgp
CiB7Ci0gICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAm
JiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CisgICAgcmV0dXJuIFBBTDo6
aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29y
a0F2YWlsYWJsZSgpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVl
KSBjb25zdApAQCAtMjkwNyw3ICsyOTAxLDcgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2
aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIoQVZQbGF5ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6
aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIGlmIChhdXRvIGNvbnRleHQgPSBQQUw6Ok91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlv
UHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCgpKQorICAgIGlmIChhdXRvIGNvbnRleHQgPSBPdXRw
dXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKICAgICAg
ICAgcmV0dXJuIGNvbnRleHQtPmRldmljZU5hbWUoKTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJu
YWxQbGF5YmFja1R5cGUgIT0gQVZQbGF5ZXJFeHRlcm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBA
IC0zMjQxLDkgKzMyMzUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3Ig
KEFWTWV0YWRhdGFJdGVtICppdGVtIGluIGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRh
aW5QdHI8QVZNdXRhYmxlTWV0YWRhdGFJdGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0
YWJsZUNvcHldKTsKICAgICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5Lmdl
dCgpLnRpbWUpKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBQQUw6OkNN
VGltZU1ha2VXaXRoU2Vjb25kcyhncm91cFN0YXJ0VGltZSwgTWVkaWFUaW1lOjpEZWZhdWx0VGlt
ZVNjYWxlKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS50aW1lID0gQ01UaW1lTWFr
ZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUp
OwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRp
b24pKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gUEFMOjp0b0NN
VGltZShncm91cER1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS5kdXJh
dGlvbiA9IHRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBh
ZGRPYmplY3Q6aXRlbUNvcHkuZ2V0KCldOwogICAgICAgICB9CiAKQEAgLTMyODUsNyArMzI3OSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRB
cnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9
IGl0ZW0uZHVyYXRpb247Ci0gICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYm
IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKKyAgICAgICAgaWYgKENN
VElNRV9JU19WQUxJRChkdXJhdGlvbikgJiYgQ01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAw
LjAwMSkKICAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlv
bik7CiAKICAgICAgICAgQXRvbVN0cmluZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NjQsNyAr
MzQ1OCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9y
bVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVy
KQogICAgICAgICBbbV9hdlBsYXllciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIu
Z2V0KCldOwogCi0gICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRp
bWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRp
bWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsK
KyAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVy
Rm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1
ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0lu
KCk7CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
aW5kZXggNzNhZGViOWJiNzNhNzgyOGRmNWEzZjQ4NGM1ZjkwZTMzM2QyNDFiMS4uNWE2OWFhNjc5
NTE4OWNiNGUwNzZkMzE5NDY5Zjk5NjUwNGZmOTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQpAQCAtNjYsNiArNjYsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGly
ZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0
YXRlIGVudW1lcmF0aW9uVmFsdWUpCiB7CkBAIC0xMTUsMTUgKzExNiwxNSBAQCBzdGF0aWMgdm9p
ZCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiwgY29ucwogCiB2b2lkIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3Ao
Q01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBu
YyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKTsKLSAg
ICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIobmMsIHRoaXMsIENNVGlt
ZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6OmtDTVRpbWViYXNlTm90aWZp
Y2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7CisgICAgQ01Ob3RpZmljYXRp
b25DZW50ZXJSZWYgbmMgPSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
cigpOworICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIobmMsIHRoaXMsIENN
VGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBrQ01UaW1lYmFzZU5vdGlmaWNh
dGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNl
KQogICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9j
YWxDZW50ZXIoKTsKLSAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIobmMs
IHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6OmtDTVRp
bWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSwgMCk7Cisg
ICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERl
ZmF1bHRMb2NhbENlbnRlcigpOworICAgIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIo
bmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBrQ01UaW1l
YmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQog
CiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMTU2LDcgKzE1Nyw3
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAi
c3luY2hyb25pemVyIGZpcmVkIGZvciAiLCBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpLCAiLCBzZWVr
aW5nID0gIiwgbV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVrKTsKKyAg
ICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZpcmVkIGZv
ciAiLCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVu
ZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAh
bV9wZW5kaW5nU2VlaykgewogICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzcs
MTEgKzIzOCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFM
Ojppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIFBBTDo6aXND
b3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFt
RGF0YVBhcnNlckNsYXNzKCkKLSAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXJDbGFzcygpCi0gICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJT
eW5jaHJvbml6ZXJDbGFzcygpCi0gICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBB
TDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11
dGVkOikpOworICAgICAgICAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCisgICAg
ICAgICYmIGdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkKKyAgICAgICAgJiYgZ2V0QVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKQorICAgICAgICAmJiBnZXRBVlNhbXBsZUJ1ZmZl
clJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKKyAgICAgICAgJiYgY2xhc3NfZ2V0SW5zdGFuY2VN
ZXRob2QoZ2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNl
dE11dGVkOikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZl
SGFzaD4mIHR5cGVzKQpAQCAtNDE2LDcgKzQxNyw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlh
VGltZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNl
XSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShD
TVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5
bmNocm9uaXplclRpbWUgPCBNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBN
ZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RT
ZWVrVGltZSkKQEAgLTQyOSw3ICs0MzAsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAg
IG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAg
ICAgaWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVD
aGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJG
b3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CisgICAgICAgIG1fdGltZUNoYW5n
ZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvcklu
dGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkg
dXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGlt
ZURpZENoYW5nZUNhbGxiYWNrKQogICAgICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFu
Z2VDYWxsYmFjayhDTVRJTUVfSVNfTlVNRVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGlt
ZSkgOiBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogICAgICAgICB9XTsKQEAgLTQ4MSw3ICs0ODIs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVy
bmFsKCkKICAgICBpZiAobV9sYXN0U2Vla1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAg
bV9sYXN0U2Vla1RpbWUgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1Rp
bWUudG9Eb3VibGUoKSwgTWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlh
VGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VH
ZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUgc3luY2hy
b25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hy
b25pemVyIHRpbWViYXNlXSkpOwogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGlt
ZSA9ICIsIG1fbGFzdFNlZWtUaW1lLCAiLCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25p
emVyVGltZSk7CiAKICAgICBib29sIGRvZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRp
bWUgPT0gbV9sYXN0U2Vla1RpbWU7CkBAIC01OTgsNyArNTk5LDcgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAg
aWYgKG1fdmlkZW9PdXRwdXQpIHsKICAgICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAg
IGlmIChhdXRvIHBpeGVsQnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxC
dWZmZXJGb3JTb3VyY2VUaW1lOnRvQ01UaW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGlt
ZUZvckRpc3BsYXk6Jm91dHB1dFRpbWVdKSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURF
TlRJRklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCBQQUw6OnRvTWVkaWFU
aW1lKG91dHB1dFRpbWUpKTsKKyAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJu
ZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgdG9NZWRpYVRpbWUob3V0cHV0VGltZSkp
OwogICAgICAgICAgICAgbV9sYXN0UGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC04MDgsNyArODA5LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigp
CiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5j
aHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWViYXNl
R2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIg
cmVtb3ZlUmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1
cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1v
cC4KICAgICB9XTsKQEAgLTEwMTcsNyArMTAxOCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShB
VlNUUkVBTVNFU1NJT04pCiBBVlN0cmVhbVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigpCiB7Ci0gICAgaWYgKCFQQUw6OmdldEFWU3Ry
ZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgaW5z
dGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoU3RvcmFnZURpcmVjdG9y
eUF0VVJMOildKQorICAgIGlmICghZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6
Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBu
aWw7CiAKICAgICBpZiAoIW1fc3RyZWFtU2Vzc2lvbikgewpAQCAtMTIxNiw3ICsxMjE3LDcgQEAg
QUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENN
VGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUo
W21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJl
bmRlcmVyOmF1ZGlvUmVuZGVyZXIgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFu
ZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDAsNyArMTMw
MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3Jt
VGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNl
cnZlcikKICAgICAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZv
cm1UYXNrT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21f
c3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2
YWx1ZVdpdGhDTVRpbWU6UEFMOjp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZlciA9IFtt
X3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDU1YjUwMGM1N2U5M2Vi
YmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUuLmUxYWQxMDJiYjk4MWJmMzc0ZTZiZDkzN2MwYzZl
MmE4N2Y0MGYxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDcgKzMyLDYg
QEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAj
aW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgotI2ltcG9ydCAiTWVkaWFQ
bGF5ZXIuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAi
TWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgi
CkBAIC0xMjIsNiArMTIxLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0
cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0K
ICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIx
MCw3ICsyMTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBQ
QUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRp
YUZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJDbGFzcygpOworICAgIHJldHVybiBpc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgp
ICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgZ2V0QVZTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJDbGFzcygpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0
c1R5cGUoY29uCiBzdGF0aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3Jt
YXRpb25NYXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVC
dWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENW
UGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVC
dWZmZXIpKTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8
Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZm
ZXIpKTsKICAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZm
ZXIpOwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVm
ZmVyKTsKICAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFt
ZUltYWdlKCkKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQ
aXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1faW1hZ2VQ
YWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZl
cikpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVm
PihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxl
LT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQ
YWludGVyLmNnSW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVs
QnVmZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5k
ZXggYzBmMTNkNmVhNWM5NzU3NjdjZThmNjJhYjY4NDJkN2Q2ZjBmYmI2Yi4uMmY0OTgzODc2NWQz
Yzk0NDFiNjliYjk1MThiM2IxZjlhODc5NTA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMzYsMTIgKzM2LDkgQEAKICNpbXBvcnQgIkNvcmVW
aWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAot
Ly8gRXF1aXZhbGVudCB0byBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVy
KTsKLS8vIE5lZWRlZCBkdWUgdG8gcmVxdWlyZW1lbnQgb2Ygc3BlY2lmeWluZyB0aGUgUEFMIG5h
bWVzcGFjZS4KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1
ZmZlclJlZj4gewotICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0
dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQotfTsKK3VzaW5nIG5hbWVzcGFj
ZSBQQUw7CisKK1dURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDM1ICs2NywzNSBAQCBSZWZQdHI8TWVkaWFTYW1w
bGVBVkZPYmpDPiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVm
ZmVyJiYgcAogICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCAhc3RhdHVzKTsKIAogICAgIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7Ci0g
ICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVz
Y3JpcHRpb25SYXcpOworICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCks
ICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8g
Zm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uUmF3KTsKIAotICAg
IENNU2FtcGxlVGltaW5nSW5mbyBzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsgUEFMOjprQ01U
aW1lSW52YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCB9Owor
ICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsga0NNVGlt
ZUludmFsaWQsIGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCB9OwogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlclJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxl
VGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVCdWZmZXJSYXcpOworICAgIHN0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
Y3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1p
bmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwog
ICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXJSYXcpOwogCi0gICAg
Q0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDAs
IGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsr
aSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tl
ZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
YXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRh
Y2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwg
a0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50
cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5U
cnVlKTsKICAgICB9CiAgICAgcmV0dXJuIGNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogfQog
CiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QK
IHsKLSAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0g
Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0
KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICB0aW1l
U3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2Ft
cGxlLmdldCgpKTsKKyAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFU
aW1lKHRpbWVTdGFtcCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29k
ZVRpbWUoKSBjb25zdAogewotICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0byB0aW1lU3RhbXAg
PSBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAg
aWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFtcCkpCiAgICAgICAgIHJldHVybiBwcmVzZW50
YXRpb25UaW1lKCk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKQEAg
LTEwNiwxNSArMTAzLDE1IEBAIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRp
bWUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdXJhdGlvbigpIGNv
bnN0CiB7Ci0gICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRE
dXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVm
ZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNf
SU5WQUxJRChkdXJhdGlvbikpCi0gICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICAgICAgZHVyYXRpb24gPSBDTVNhbXBs
ZUJ1ZmZlckdldER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01l
ZGlhVGltZShkdXJhdGlvbik7CiB9CiAKIHNpemVfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnNpemVJ
bkJ5dGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFRvdGFs
U2FtcGxlU2l6ZShtX3NhbXBsZS5nZXQoKSk7CisgICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0
VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsKIH0KIAogUGxhdGZvcm1TYW1wbGUgTWVk
aWFTYW1wbGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCkBAIC0xMjUsMjMgKzEyMiwyMyBAQCBQ
bGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKIAogdWlu
dDMyX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKLSAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBw
aXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZl
ckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2ht
ZW50RGljdCkKIHsKLSAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1l
bnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CisgICAgcmV0dXJu
ICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9Ob3RTeW5jKTsKIH0KIAogc3RhdGljIGJvb2wgZG9lc0NNU2FtcGxlQnVmZmVySGF2
ZVN5bmNJbmZvKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICByZXR1cm4gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7Cisg
ICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUs
IGZhbHNlKTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFs
c2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCkBAIC0xNTQsMTIgKzE1MSwxMiBAQCBzdGF0aWMg
Ym9vbCBpc0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZSkKIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5n
KENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKLSAgICByZXR1cm4gQ0ZEaWN0aW9u
YXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtl
eV9Eb05vdERpc3BsYXkpOworICAgIHJldHVybiBDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRh
Y2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwogfQogCiBz
dGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIApAQCAtMTg5LDExICsxODYsMTEgQEAgTWVkaWFTYW1wbGU6OlNhbXBsZUZs
YWdzIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZmxhZ3MoKSBjb25zdAogCiBGbG9hdFNpemUgTWVkaWFT
YW1wbGVBVkZPYmpDOjpwcmVzZW50YXRpb25TaXplKCkgY29uc3QKIHsKLSAgICBDTUZvcm1hdERl
c2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKLSAgICBpZiAoUEFMOjpDTUZvcm1hdERl
c2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVf
VmlkZW8pCisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0KCkpOworICAgIGlm
IChDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBr
Q01NZWRpYVR5cGVfVmlkZW8pCiAgICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKICAgICAKLSAg
ICByZXR1cm4gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2Vu
dGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgIHJl
dHVybiBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGlt
ZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogfQogCiB2b2lkIE1lZGlh
U2FtcGxlQVZGT2JqQzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApAQCAtMjA0LDEyICsy
MDEsMTIgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3Qg
TWVkaWFUaW1lJiBvZmZzZXQpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAg
ICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5vRXJy
ICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgp
LCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFZl
Y3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZv
QXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRp
bWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50
LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIGZvciAoYXV0byYgdGltaW5nIDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMTgsNyAr
MjE1LDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25z
dCBNZWRpYVRpbWUmIG9mZnNldCkKICAgICB9CiAgICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYg
bmV3U2FtcGxlOwotICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1D
b3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCisgICAgaWYgKG5vRXJy
ICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
Jm5ld1NhbXBsZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0
Q0YobmV3U2FtcGxlKTsKQEAgLTIyNywxMiArMjI0LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZP
YmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB2b2lkIE1l
ZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJl
c2VudGF0aW9uVGltZXN0YW1wLCBjb25zdCBXVEY6Ok1lZGlhVGltZSAmZGVjb2RlVGltZXN0YW1w
KQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCks
IDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0
ZW1Db3VudCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1p
bmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNv
dW50KTsKLSAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5
LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8m
IHRpbWluZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjQxLDcgKzIzOCw3IEBAIHZvaWQgTWVk
aWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVz
ZW50YXRpb25UaW1lc3RhCiAgICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1Nh
bXBsZTsKLSAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRo
TmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQs
IHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdT
YW1wbGUpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5l
d1NhbXBsZSk7CkBAIC0yNDksMTAgKzI0NiwxMCBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6
c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQog
CiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6aXNEaXZpc2FibGUoKSBjb25zdAogewotICAgIGlm
IChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkK
KyAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAx
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVNpemVBcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgbnVsbHB0cikgPT0g
a0NNU2FtcGxlQnVmZmVyRXJyb3JfQnVmZmVySGFzTm9TYW1wbGVTaXplcykKKyAgICBpZiAoQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIs
IG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjY1LDE3ICsy
NjIsMTcgQEAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBs
ZT4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMKIAogICAgIENGSW5kZXggc2FtcGxlc0Jl
Zm9yZVByZXNlbnRhdGlvblRpbWUgPSAwOwogCi0gICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNhbGxC
bG9ja0ZvckVhY2hTYW1wbGUobV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCkgLT4gT1NTdGF0dXMgewotICAgICAgICBhdXRvIHRp
bWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoc2FtcGxlQnVmZmVyKTsKKyAgICBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1w
bGUobV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBD
TUl0ZW1Db3VudCkgLT4gT1NTdGF0dXMgeworICAgICAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2Ft
cGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAg
ICAgICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICAgICAgdGlt
ZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1w
bGVCdWZmZXIpOworICAgICAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKIAogICAgICAgICBpZiAodXNlRW5kVGlt
ZSA9PSBVc2VFbmRUaW1lOjpVc2UpIHsKLSAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAg
ICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBs
ZUJ1ZmZlcik7CiAgICAgICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQot
ICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9u
KHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICAgICAgZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAKLSAgICAgICAgICAgIGlmIChQQUw6OnRvTWVk
aWFUaW1lKFBBTDo6Q01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNlbnRhdGlv
blRpbWUpCisgICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShDTVRpbWVBZGQodGltZVN0
YW1wLCBkdXJhdGlvbikpID4gcHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gMTsKICAgICAgICAgfSBlbHNlIGlmIChQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCkgPj0g
cHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMjg2LDE5ICsyODMs
MTkgQEAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+
IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMKICAgICBpZiAoIXNhbXBsZXNCZWZvcmVQcmVz
ZW50YXRpb25UaW1lKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCB0aGlzIH07CiAKLSAgICBD
TUl0ZW1Db3VudCBzYW1wbGVDb3VudCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVz
KG1fc2FtcGxlLmdldCgpKTsKKyAgICBDTUl0ZW1Db3VudCBzYW1wbGVDb3VudCA9IENNU2FtcGxl
QnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKHNhbXBsZXNCZWZv
cmVQcmVzZW50YXRpb25UaW1lID49IHNhbXBsZUNvdW50KQogICAgICAgICByZXR1cm4geyB0aGlz
LCBudWxscHRyIH07CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCZWZvcmUgPSBu
dWxscHRyOwogICAgIENGUmFuZ2UgcmFuZ2VCZWZvcmUgPSBDRlJhbmdlTWFrZSgwLCBzYW1wbGVz
QmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5
U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCks
IHJhbmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKKyAgICBpZiAoQ01TYW1w
bGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9z
YW1wbGUuZ2V0KCksIHJhbmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKICAg
ICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBs
ZUJ1ZmZlclJlZj4gc2FtcGxlQmVmb3JlID0gYWRvcHRDRihyYXdTYW1wbGVCZWZvcmUpOwogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQWZ0ZXIgPSBudWxscHRyOwogICAgIENGUmFu
Z2UgcmFuZ2VBZnRlciA9IENGUmFuZ2VNYWtlKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1l
LCBzYW1wbGVDb3VudCAtIHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAo
UEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VBZnRlciwgJnJhd1NhbXBsZUFmdGVyKSAhPSBu
b0VycikKKyAgICBpZiAoQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVB
ZnRlcikgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAg
ICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUFmdGVyID0gYWRvcHRDRihyYXdT
YW1wbGVBZnRlcik7CiAKQEAgLTMwOCwxMyArMzA1LDEzIEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVk
aWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlk
ZShjCiBSZWY8TWVkaWFTYW1wbGU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlTm9uRGlzcGxh
eWluZ0NvcHkoKSBjb25zdAogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZl
ciA9IDA7Ci0gICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOworICAgIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1Nh
bXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKG5ld1NhbXBsZUJ1ZmZlcik7CiAKLSAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNo
bWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdT
YW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlH
ZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rp
b25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFy
eVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlz
cGxheSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIAogICAgIHJldHVybiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZShhZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcikuZ2V0KCksIG1faWQpOwpAQCAt
MzI5LDcgKzMyNiw3IEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBs
ZUFWRk9iakM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogICAgIENGRGljdGlvbmFyeVNldFZh
bHVlKGNvbmZvcm1lck9wdGlvbnMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBl
S2V5LCBpbWFnZUZvcm1hdE51bWJlci5nZXQoKSk7CiAgICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJD
ViBwaXhlbEJ1ZmZlckNvbmZvcm1lcihjb25mb3JtZXJPcHRpb25zLmdldCgpKTsKIAotICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRvIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwogICAgIGF1dG8gcmdiYVBpeGVsQnVmZmVyID0g
cGl4ZWxCdWZmZXJDb25mb3JtZXIuY29udmVydChwaXhlbEJ1ZmZlcik7CiAgICAgYXV0byBzdGF0
dXMgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHJnYmFQaXhlbEJ1ZmZlci5nZXQoKSwg
a0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKICAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJy
KTsKQEAgLTM0NiwxMCArMzQzLDEwIEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogCiBzdGF0aWMgaW5s
aW5lIHZvaWQgc2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlQnVmZmVyKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZl
ciwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9y
IChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyAr
K2kpIHsKICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNr
ZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4
KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0
YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHks
IGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVu
dHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFu
VHJ1ZSk7CiAgICAgfQogfQogCkBAIC0zNjAsNyArMzU3LDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFW
Rk9iakM6OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIGJv
b2wgTWVkaWFTYW1wbGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKLSAgICBDRkFy
cmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0
YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRh
Y2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1f
c2FtcGxlLmdldCgpLCB0cnVlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCkBAIC0zODgsNyArMzg1LDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBs
ZUFWRk9iakM+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBs
ZXMKIHsKICAgICB1c2luZyBTYW1wbGVWZWN0b3IgPSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZG
T2JqQz4+OwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOwor
ICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2ht
ZW50c0FycmF5KQogICAgICAgICByZXR1cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRo
aXMpKTsKIApAQCAtNDIxLDcgKzQxOCw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpD
Pj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiAgICAg
c2FtcGxlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJhbmdlcy5zaXplKCkpOwogICAgIGZvciAo
YXV0byYgcmFuZ2UgOiByYW5nZXMpIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2Ft
cGxlID0gbnVsbHB0cjsKLSAgICAgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxl
QnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdl
LCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQorICAgICAgICBpZiAoQ01TYW1w
bGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9z
YW1wbGUuZ2V0KCksIHJhbmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQog
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQo
TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lk
KSk7CiAgICAgfQpAQCAtNDM1LDI0ICs0MzIsMjQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVy
UmVmPiBNZWRpYVNhbXBsZUFWRk9iakM6OmNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGEK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gUEFMOjpD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIHN0YXR1
cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChz
dGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcmV0YWluZWRGb3JtYXRE
ZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgQ01JdGVtQ291
bnQgaXRlbUNvdW50ID0gMDsKLSAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CisgICAg
c3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAw
LCBudWxscHRyLCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJh
eTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIHN0YXR1cyA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCBpdGVtQ291
bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOworICAgIHN0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1p
bmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsK
LSAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCB0
aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgJm5ld1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KaW5kZXggMDIxOTIxNmQ3YzJkODhlZjU3NzUyNmQ4ODIzMGMzZTUwM2Zk
OGNkYi4uMGI5YmI2NDg1ZjNlOWUyNTM0NWFhZDRmNGU0NzA5MmM0MjlhNWNjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
QEAgLTI1OCw2ICsyNTgsNyBAQCAtICh2b2lkKWF1ZGlvUmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5
Rmx1c2hlZDooTlNOb3RpZmljYXRpb24qKW5vdGUKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQwpAQCAtMjc2LDcgKzI3Nyw3IEBAIHN0YXRpYyB1aW50
NjRfdCBuZXh0TWFwSUQoKQogCiBzdGF0aWMgdm9pZCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNr
KENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ0ZTdHJpbmdS
ZWYgbm90aWZpY2F0aW9uTmFtZSwgY29uc3Qgdm9pZCosIENGVHlwZVJlZikKIHsKLSAgICBpZiAo
IUNGRXF1YWwoUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJD
b25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCisgICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBsZUJ1
ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1l
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpAQCAtMzE1
LDcgKzMxNiw3IEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDCiAgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSKTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVj
b2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBQQUw6OkNNTm90aWZpY2F0aW9u
Q2VudGVyQWRkTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2Nh
bENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21hcElEKSwgYnVmZmVyV2FzQ29u
c3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9C
dWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CisgICAgICAgIENNTm90aWZpY2F0aW9uQ2VudGVy
QWRkTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwg
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9tYXBJRCksIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJh
Y2ssIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBu
dWxscHRyLCAwKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcGFyc2VyLT5z
ZXRMb2dnZXIobV9sb2dnZXIuZ2V0KCksIG1fbG9nSWRlbnRpZmllcik7CkBAIC0zNTMsNyArMzU0
LDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQygpCiAgICAgY2xlYXJUcmFja3MoKTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxl
Y3RvcihwcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBQQUw6
OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNl
bnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxi
YWNrLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1
bWVkLCBudWxscHRyKTsKKyAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5l
cihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBidWZm
ZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlv
bl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0cik7CiAKICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBo
b3JlKQogICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwpAQCAtOTkyLDcg
Kzk5Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2
ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQoQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwgY29uc3QgQ01UaW1lJiB0aW1lKQogewotICAgIGF1
dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZSh0aW1lKTsKKyAgICBhdXRvIG1lZGlhVGlt
ZSA9IHRvTWVkaWFUaW1lKHRpbWUpOwogICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCBtZWRp
YVRpbWUpOwogICAgIEF0b21TdHJpbmcgdHJhY2tJZDsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBt
X2F1ZGlvUmVuZGVyZXJzKSB7CkBAIC0xMTAwLDEzICsxMTAxLDEzIEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBs
ZSwgY29uc3QKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKICAg
ICBERUJVR19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJ0cmFjayBJRCA9ICIsIHRyYWNrSUQsICIs
IHNhbXBsZSA9ICIsIHNhbXBsZS5nZXQoKSk7CiAKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBB
U1NFUlQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsK
ICAgICAgICAgRVJST1JfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiUmVjZWl2ZWQgc2FtcGxlIHdp
dGggYSBudWxsIGZvcm1hdERlc2NyaXB0aW9uLiBCYWlsaW5nLiIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0
TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIG1lZGlhVHlwZSA9IENNRm9y
bWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgaWYg
KHRyYWNrSUQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEKSB7CiAgICAgICAgIC8vIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyIHdpbGwgdGhyb3cgYW4gdW4tZG9jdW1lbnRlZCBleGNlcHRpb24g
aWYgcGFzc2VkIGEgc2FtcGxlCkBAIC0xMTE5LDcgKzExMjAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUs
IGNvbnN0CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIHBsYXllciA9IHRoaXMtPnBsYXllcigp
OwotICAgICAgICBGbG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRp
b24sIHRydWUsIHRydWUpKTsKKyAgICAgICAgRmxvYXRTaXplIGZvcm1hdFNpemUgPSBGbG9hdFNp
emUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3Jt
YXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogICAgICAgICBpZiAoIW1fY2FjaGVkU2l6ZSB8
fCBmb3JtYXRTaXplICE9IG1fY2FjaGVkU2l6ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICBERUJV
R19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJzaXplIGNoYW5nZWQgdG8gIiwgZm9ybWF0U2l6ZSk7
CiAgICAgICAgICAgICBib29sIHNpemVXYXNOdWxsID0gIW1fY2FjaGVkU2l6ZTsKQEAgLTExNDUs
OSArMTE0Niw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1w
bGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKIAogICAgICAgICAgICAgaWYgKCFo
YXZlUHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgICAg
IENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUNvcHk7Ci0gICAgICAgICAgICAgICAgUEFMOjpD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGxhdGZvcm1TYW1w
bGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCAmcmF3U2FtcGxlQ29weSk7CisgICAgICAgICAgICAg
ICAgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3Jt
U2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgJnJhd1NhbXBsZUNvcHkpOwogICAgICAgICAg
ICAgICAgIGF1dG8gc2FtcGxlQ29weSA9IGFkb3B0Q0YocmF3U2FtcGxlQ29weSk7Ci0gICAgICAg
ICAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQ29weS5nZXQoKSwgUEFMOjprQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQsIChf
X2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJpZGdlIE5TU3RyaW5nICopUEFMOjprQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBA
WUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZE5vdFByb3BhZ2F0ZSk7CisgICAgICAgICAg
ICAgICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGlj
dGlvbmFyeVJlZilAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ01TYW1wbGVCdWZmZXJBdHRhY2ht
ZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1l
bnRNb2RlX1Nob3VsZE5vdFByb3BhZ2F0ZSk7CiAgICAgICAgICAgICAgICAgW21fZGlzcGxheUxh
eWVyIGVucXVldWVTYW1wbGVCdWZmZXI6c2FtcGxlQ29weS5nZXQoKV07CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICAgICAgICAgICAgICBwbGF5ZXItPnNldEhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUodHJ1ZSk7CkBAIC0xMjk3LDE0ICsxMjk4LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0
b21TCiBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBjb21p
bmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPHVpbnQ2NF90
Pih0cmFja0lEU3RyaW5nKS52YWx1ZV9vcigwKSA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQKLSAg
ICAgICAgJiYgW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3Rh
bmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1w
bGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOworICAgICAgICAmJiBbZ2V0QVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rv
cihleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQ
cmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcsIGNvbnN0IE1l
ZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSkKIHsKICAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVw
Y29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lEU3RyaW5nKSk7CiAgICAgaWYgKGNhblNldE1p
bmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmluZykpCi0gICAgICAgIFtt
X2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRp
b25UaW1lOlBBTDo6dG9DTVRpbWUocHJlc2VudGF0aW9uVGltZSldOworICAgICAgICBbbV9kaXNw
bGF5TGF5ZXIgZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGlt
ZTp0b0NNVGltZShwcmVzZW50YXRpb25UaW1lKV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBB
dG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNw
cAppbmRleCAzYjEwMmFiOGVmMzlmMzhkZjQ3MDYwNWZhOGQ3YmZkMjRjMDBlZTkyLi5mNDY2NDEy
NzhlOWVkNGI2ODNhNDg0ZDc1NzQ3ZDg2M2Y2ZWQ4NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNLmNwcApAQCAtMjU4LDYgKzI1OCw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IExvZ0Fy
Z3VtZW50PFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlN0YXRlPiB7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogc3RhdGljIFdURkxvZ0No
YW5uZWwmIGxvZ0NoYW5uZWwoKSB7IHJldHVybiBMb2dNZWRpYTsgfQogc3RhdGljIGNvbnN0IGNo
YXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIjsgfQog
CkBAIC0xMDY0LDcgKzEwNjYsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6T25GcmFtZShjb25zdCBGcmFtZU1ldGFkYXRhJiBtZXRhZGF0YSwgUmVhZAogICAgICAgICBy
ZXR1cm4gU2tpcChyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICB9CiAKLSAgICByZXR1cm4g
dHJhY2tEYXRhLT5jb25zdW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFp
bmluZywgUEFMOjpDTVRpbWVNYWtlKGJsb2NrLT50aW1lY29kZSArIG1fY3VycmVudFRpbWVjb2Rl
LCBtX3RpbWVzY2FsZSksIGJsb2NrLT5udW1fZnJhbWVzKTsKKyAgICByZXR1cm4gdHJhY2tEYXRh
LT5jb25zdW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywgQ01U
aW1lTWFrZShibG9jay0+dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUp
LCBibG9jay0+bnVtX2ZyYW1lcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6
cHJvdmlkZU1lZGlhRGF0YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZl
ciwgdWludDY0X3QgdHJhY2tJRCwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNl
dCkKQEAgLTEwODgsNyArMTA5MCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgQ01C
bG9ja0J1ZmZlclJlZiByYXdCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAKICAgICBpZiAoIW1fY3Vy
cmVudEJsb2NrQnVmZmVyKSB7Ci0gICAgICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVy
Q3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIG1ldGFk
YXRhLnNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIG1ldGFkYXRhLnNpemUs
IDAsICZyYXdCbG9ja0J1ZmZlcik7CisgICAgICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNy
ZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0
YS5zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAw
LCAmcmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJT
RVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJs
b2NrIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZy
ZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTEwOTcsNyArMTA5OSw3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiAgICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdC
bG9ja0J1ZmZlcik7CiAgICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwog
Ci0gICAgICAgIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5KG1fY3Vy
cmVudEJsb2NrQnVmZmVyLmdldCgpKTsKKyAgICAgICAgZXJyID0gQ01CbG9ja0J1ZmZlckFzc3Vy
ZUJsb2NrTWVtb3J5KG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKGVy
cikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1Nh
bXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggZXJyb3Ii
LCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcp
OwpAQCAtMTEwOCw3ICsxMTEwLDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk06OlZpZGVvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICB3aGls
ZSAoYnl0ZXNUb1JlYWQpIHsKICAgICAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9
IDA7CiAgICAgICAgIHVpbnQ4X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7Ci0gICAgICAg
IGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50Qmxv
Y2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24sICZzZWdtZW50U2l6
ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CisgICAgICAg
IGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVm
ZmVyLmdldCgpLCBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBv
c2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOwogICAgICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2Nr
QnVmZmVyR2V0RGF0YVBvaW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAg
ICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTE0Miw3ICsxMTQ0
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRl
U2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICNpZiBFTkFCTEUoVlA5KQogICAgIHVpbnQ4
X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7CiAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQ
b3NpdGlvbiA9IDA7Ci0gICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhUG9p
bnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRTaXplQXRQb3NpdGlv
biwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICBhdXRvIGVyciA9IENN
QmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwg
JnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRh
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUo
IkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAg
ICAgICAgIHJldHVybjsKQEAgLTExODYsOSArMTE4OCw5IEBAIHZvaWQgU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUm
IHByCiAgICAgICAgIGR1cmF0aW9uID0gdHJhY2suZGVmYXVsdF9kdXJhdGlvbi52YWx1ZSgpICog
cHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUgLyAxMDAwMDAwMDAwOwogCiAgICAgQ01TYW1wbGVC
dWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBzaXplX3QgZnJhbWVTaXpl
ID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX2N1cnJlbnRCbG9ja0J1ZmZlci5n
ZXQoKSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZyA9IHsgUEFMOjpDTVRpbWVNYWtl
KGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSksIHByZXNlbnRhdGlvblRpbWUs
IHByZXNlbnRhdGlvblRpbWUgfTsKLSAgICBlcnIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRo
aXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAx
LCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVyKTsKKyAgICBzaXplX3QgZnJhbWVTaXplID0g
Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwor
ICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7IENNVGltZU1ha2UoZHVyYXRpb24sIHBy
ZXNlbnRhdGlvblRpbWUudGltZXNjYWxlKSwgcHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9u
VGltZSB9OworICAgIGVyciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0
aW9uKCkuZ2V0KCksIHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3
U2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1Jf
SUZfUE9TU0lCTEUoIkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgZmFpbGVkIHdpdGggZXJyb3Ii
LCBlcnIpOwogICAgICAgICByZXR1cm47CkBAIC0xMTk4LDcgKzEyMDAsNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29u
c3QgQ01UaW1lJiBwcgogICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gbnVsbHB0cjsKICAgICBt
X2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgIGF1dG8gYXR0YWNobWVudHNB
cnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgYXV0byBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1
ZSk7CiAgICAgQVNTRVJUKGF0dGFjaG1lbnRzQXJyYXkpOwogICAgIGlmICghYXR0YWNobWVudHNB
cnJheSkgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgcmV0dXJuZWQgTlVMTCIpOwpAQCAtMTIwOCw3
ICsxMjEwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6
Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBpZiAoIWlzS2V5KSB7CiAg
ICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNo
bWVudHNBcnJheSk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgICAgICBDRk11dGFibGVEaWN0
aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25h
cnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAg
ICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgICAgICBDRkRp
Y3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RT
eW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEyOTMsMTIgKzEy
OTUsMTIgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tE
YXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgICAgIHJldHVybiBTa2lw
KCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gc3Ry
ZWFtRGVzY3JpcHRpb24gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJh
c2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCkpOworICAgICAgICBhdXRvIHN0
cmVhbURlc2NyaXB0aW9uID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgIGlmICghc3RyZWFt
RGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUo
IkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gZmFpbGVk
Iik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAg
ICAgICAgIH0KLSAgICAgICAgbV9wYWNrZXREdXJhdGlvbiA9IFBBTDo6Q01UaW1lTWFrZShzdHJl
YW1EZXNjcmlwdGlvbi0+bUZyYW1lc1BlclBhY2tldCwgc3RyZWFtRGVzY3JpcHRpb24tPm1TYW1w
bGVSYXRlKTsKKyAgICAgICAgbV9wYWNrZXREdXJhdGlvbiA9IENNVGltZU1ha2Uoc3RyZWFtRGVz
Y3JpcHRpb24tPm1GcmFtZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0
ZSk7CiAKICAgICAgICAgc2V0Rm9ybWF0RGVzY3JpcHRpb24oV1RGTW92ZShmb3JtYXREZXNjcmlw
dGlvbikpOwogICAgIH0gZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpIHsKQEAg
LTEzMjAsNyArMTMyMiw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgbV9jdXJyZW50
UGFja2V0Qnl0ZU9mZnNldCA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2N1cnJlbnRQYWNrZXRTaXpl
ID0gc3RkOjpudWxsb3B0OwogCi0gICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9IFBBTDo6Q01UaW1l
R2V0U2Vjb25kcyhQQUw6OkNNVGltZVN1YnRyYWN0KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxl
UHJlc2VudGF0aW9uVGltZSkpICsgUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRp
b24pICogc2FtcGxlQ291bnQ7CisgICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9IENNVGltZUdldFNl
Y29uZHMoQ01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRp
b25UaW1lKSkgKyBDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291
bnQ7CiAgICAgaWYgKHNhbXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBsZUR1cmF0aW9uKQog
ICAgICAgICBjcmVhdGVTYW1wbGVCdWZmZXIobWV0YWRhdGEucG9zaXRpb24pOwogCkBAIC0xMzM3
LDIxICsxMzM5LDIxIEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0Rh
dGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPHNpCiAgICAgYXV0byBmdWxsUGFj
a2V0Qnl0ZXNSZWFkID0gbV9wYWNrZXRCeXRlc1JlYWQgLSBtX3BhcnRpYWxCeXRlc1JlYWQ7CiAK
ICAgICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVy
ciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1l
bW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVy
Q3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZ1bGxQ
YWNrZXRCeXRlc1JlYWQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIGZ1bGxQYWNr
ZXRCeXRlc1JlYWQsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVm
ZmVyKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lC
TEUoIkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBl
cnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihi
bG9ja0J1ZmZlcik7CiAKLSAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5
dGVzKG1fcGFja2V0RGF0YS5kYXRhKCksIGJ1ZmZlci5nZXQoKSwgMCwgZnVsbFBhY2tldEJ5dGVz
UmVhZCk7CisgICAgZXJyID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXRE
YXRhLmRhdGEoKSwgYnVmZmVyLmdldCgpLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkKTsKICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tC
dWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51
bGxwdHI7Ci0gICAgZXJyID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
UGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3Nh
bXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1Nh
bXBsZUJ1ZmZlcik7CisgICAgZXJyID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZv
cm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9z
YW1wbGVQcmVzZW50YXRpb25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdT
YW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9J
Rl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlv
bnMgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0Nv
Y29hLm1tCmluZGV4IGFhNzM2Y2YxNDlhNDc0YmEyNjNjYWFjZDY2NDJkZTc4Zjc3ODg3N2EuLmU5
Zjg2ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0Nv
Y29hLm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJp
ZGVzJiBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKQpAQCAtMzYxLDExICszNjIsMTEg
QEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBw
cmltYXJpZXMpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVf
U1RfMjQwOgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBU
RV9DOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQz
MV8yOgotICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX0RDSV9QMzsKKyAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmlt
YXJpZXNfRENJX1AzOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNN
UFRFX0VHXzQzMl8xOgotICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX1AzX0Q2NTsKKyAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9u
Q29sb3JQcmltYXJpZXNfUDNfRDY1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmlt
YXJpZXM6OkJUXzIwMjBfTm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4gUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CisgICAgICAg
IHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAg
ICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00MTksMTggKzQyMCwxOCBAQCBzdGF0aWMg
Q0ZTdHJpbmdSZWYgY29udmVydFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVy
aXN0aWNzKQogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6
OlNNUFRFX1NUXzI0MDoKICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5j
dGlvbl9TTVBURV8yNDBNXzE5OTU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNo
YXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjA4NDoKLSAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFE7CisgICAgICAg
IHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4
NF9QUTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpC
VF8yMDIwXzEwYml0OgogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJp
c3RpY3M6OkJUXzIwMjBfMTJiaXQ6Ci0gICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4ga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAg
ICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF80MjhfMTsKKyAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9TTVBURV9TVF80MjhfMTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVy
Q2hhcmFjdGVyaXN0aWNzOjpCVF8yMTAwX0hMRzoKLSAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOworICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExH
OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182
MTk2Nl8yXzE6Ci0gICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1
cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIFBB
TDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKKyAgICAgICAg
cmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAg
fQogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00NjYsNyArNDY3LDcgQEAgc3RhdGljIENGU3Ry
aW5nUmVmIGNvbnZlcnRUb0NNWUNiQ1JNYXRyaXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAg
ICAgc3dpdGNoIChjb2VmZmljaWVudHMpIHsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJp
eENvZWZmaWNpZW50czo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJl
dHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKKyAg
ICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsK
ICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83Ogog
ICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAg
LTU0MiwxMSArNTQzLDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJl
Zj4gY3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVm
IGNvbmZpZ3VyYXRpb25WYWx1ZXNbXSA9IHsgZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmln
dXJhdGlvbkRpY3QgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBjb25maWd1cmF0aW9uS2V5cywgY29uZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xF
TkdUSChjb25maWd1cmF0aW9uS2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywg
JmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVS
ZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9T
YW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CisgICAgVmVjdG9yPENGVHlwZVJlZj4g
ZXh0ZW5zaW9uc0tleXMgeyBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNj
cmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CiAgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9u
c1ZhbHVlcyA9IHsgY29uZmlndXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQu
dmlkZW9GdWxsUmFuZ2VGbGFnID09IFZQQ29uZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsK
LSAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOworICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQo
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBl
eHRlbnNpb25zVmFsdWVzLmFwcGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KaW5kZXggOGVlZjNiMmVhNjA0YmQxOTgz
ZDc3ZDM4YmY1MjFhOGQyMWYyMGVkMC4uY2VhMTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYx
YzY0MmU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAt
NDMsMTIgKzQzLDkgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJW
aWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCi0vLyBFcXVpdmFsZW50IHRvIFdURl9ERUNMQVJFX0NG
X1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOwotLy8gTmVlZGVkIGR1ZSB0byByZXF1aXJlbWVu
dCBvZiBzcGVjaWZ5aW5nIHRoZSBQQUwgbmFtZXNwYWNlLgotdGVtcGxhdGUgPD4KLXN0cnVjdCBX
VEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVmZmVyUmVmPiB7Ci0gICAgc3RhdGljIGlubGluZSBD
RlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJ
RCgpOyB9Ci19OwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9U
UkFJVChDTVNhbXBsZUJ1ZmZlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzUsNyAr
NzIsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01U
aW1lYmFzZVJlZiB0aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fdGltZWJh
c2UpCi0gICAgICAgIFBBTDo6Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90
aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIENNVGltZWJhc2VS
ZW1vdmVUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2Uu
Z2V0KCkpOwogCiAgICAgbV90aW1lYmFzZSA9IHRpbWViYXNlOwogCkBAIC04Nyw3ICs4NCw3IEBA
IHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNl
UmVmIHRpbWViYXNlKQogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hY3Rp
dmF0ZShtX3RpbWVyU291cmNlLmdldCgpKTsKICAgICAgICAgfQotICAgICAgICBQQUw6OkNNVGlt
ZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3Vy
Y2UuZ2V0KCkpOworICAgICAgICBDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZShtX3Rp
bWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwNywx
MiArMTA0LDEyIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjptYXliZUJlY29t
ZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGJvb2wgZGlz
cGxheWluZykKIHsKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0Vy
ciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1
ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5vRXJyICE9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwg
Jml0ZW1Db3VudCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWlu
Z0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291
bnQpOwotICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRh
KCksIG51bGxwdHIpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDTUJ1ZmZlckNhbGxiYWNr
cyBjb250YWlucyA2NC1iaXQgcG9pbnRlcnMgdGhhdCBhcmVuJ3QgOC1ieXRlIGFsaWduZWQuIFRv
IHN1cHByZXNzIHRoZSBsaW5rZXIKQEAgLTEzNyw3ICsxMzQsNyBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXIsCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3Mu
dmVyc2lvbikgPT0gc2l6ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5
dGVzIik7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09
IDQsICJDTUJ1ZmZlckNhbGxiYWNrcyBzdHJ1Y3QgbXVzdCBoYXZlIDQgYnl0ZSBhbGlnbm1lbnQi
KTsKIAotICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7Cisg
ICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1D
YXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fcHJv
ZHVjZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTU5LDcgKzE1Niw3
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
Y2FsbGJhY2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lv
biBmaWVsZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9m
KEJ1ZmZlckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBhbGlnbm1l
bnQgbXVzdCBiZSA0Iik7CiAKLSAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAm
b3V0UXVldWUpOworICAgICAgICBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwog
ICAgICAgICBtX2NvbnN1bWVyUXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAg
LTE4MCwyMCArMTc3LDIwIEBAIGJvb2wgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91
bGREZWNvZGVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBiCiAgICAgaWYgKCFtX3Rp
bWViYXNlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gY3VycmVudFRpbWUgPSBQ
QUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOwotICAgIGF1dG8gcHJlc2Vu
dGF0aW9uU3RhcnRUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVT
dGFtcChzYW1wbGUpOwotICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RHVyYXRpb24oc2FtcGxlKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBQQUw6OkNN
VGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKLSAgICBpZiAoUEFMOjpD
TVRpbWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAwKQorICAg
IGF1dG8gY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsK
KyAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CisgICAgYXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVm
ZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBD
TVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1lLCBkdXJhdGlvbik7CisgICAgaWYgKENNVGlt
ZUNvbXBhcmUocHJlc2VudGF0aW9uRW5kVGltZSwgY3VycmVudFRpbWUpID49IDApCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENG
QXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICBmb3IgKENGSW5kZXggaW5kZXggPSAwLCBjb3VudCA9IENGQXJyYXlH
ZXRDb3VudChhdHRhY2htZW50cyk7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAg
Q0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0ID0gKENGRGljdGlvbmFyeVJlZilDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzLCBpbmRleCk7Ci0gICAgICAgIENGQm9vbGVhblJl
ZiBkZXBlbmRlZE9uID0gKENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2ht
ZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJz
KTsKKyAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGlj
dGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0lz
RGVwZW5kZWRPbkJ5T3RoZXJzKTsKICAgICAgICAgaWYgKGRlcGVuZGVkT24gJiYgIUNGQm9vbGVh
bkdldFZhbHVlKGRlcGVuZGVkT24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
QEAgLTIwNiwxNCArMjAzLDE0IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpl
bnN1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZShDTVNhbXBsZUJ1CiAgICAgaWYgKGlz
SW52YWxpZGF0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKKyAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24oc2FtcGxlKTsKICAgICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbiAmJiAhVlREZWNv
bXByZXNzaW9uU2Vzc2lvbkNhbkFjY2VwdEZvcm1hdERlc2NyaXB0aW9uKG1fZGVjb21wcmVzc2lv
blNlc3Npb24uZ2V0KCksIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgIFZURGVj
b21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKG1fZGVjb21wcmVzc2lv
blNlc3Npb24uZ2V0KCkpOwogICAgICAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAoIW1fZGVjb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICAgICAg
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKKyAgICAgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgICAgIGF1dG8gdmlkZW9E
ZWNvZGVyU3BlY2lmaWNhdGlvbiA9IEB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRGVj
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2Rlcjog
QCggbV9oYXJkd2FyZURlY29kZXJFbmFibGVkICkgfTsKIAogICAgICAgICBOU0RpY3Rpb25hcnkg
KmF0dHJpYnV0ZXM7CkBAIC0yNTksNyArMjU2LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmRlY29kZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGkK
IAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lV2l0aE91dHB1dEhhbmRsZXIobV9k
ZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwgc2FtcGxlLCBmbGFncywgbnVsbHB0ciwgW3RoaXMs
IGRpc3BsYXlpbmcsIHN0YXJ0VGltZV0oT1NTdGF0dXMgc3RhdHVzLCBWVERlY29kZUluZm9GbGFn
cyBpbmZvRmxhZ3MsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50
YXRpb25UaW1lU3RhbXAsIENNVGltZSBwcmVzZW50YXRpb25EdXJhdGlvbikgewotICAgICAgICBk
b3VibGUgZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vj
b25kcygpIC8gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKKyAg
ICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRp
bWUpLnNlY29uZHMoKSAvIENNVGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOwog
CiAgICAgICAgIHVwZGF0ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkZWx0YVJhdGlvKTsK
ICAgICAgICAgaGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChkaXNwbGF5aW5nLCBzdGF0dXMsIGlu
Zm9GbGFncywgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcHJlc2VudGF0aW9u
RHVyYXRpb24pOwpAQCAtMjkyLDcgKzI4OSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAg
ICAgICAgICsrbV9kcm9wcGVkVmlkZW9GcmFtZXM7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgaWYgKHN0
YXR1cyAhPSBub0VyciB8fCBub0VyciAhPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCAm
cmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8
IG5vRXJyICE9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlw
dGlvbikpIHsKICAgICAgICAgKyttX2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1f
ZnJhbWVzQmVpbmdEZWNvZGVkOwogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlh
RGF0YSgpOwpAQCAtMzA3LDcgKzMwNCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAg
fTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd0ltYWdlU2FtcGxlQnVmZmVyID0gbnVsbHB0
cjsKLSAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZl
ckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1
ZmZlcikpIHsKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZm
ZXJEZXNjcmlwdGlvbi5nZXQoKSwgJmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVC
dWZmZXIpKSB7CiAgICAgICAgICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1t
X2ZyYW1lc0JlaW5nRGVjb2RlZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRp
YURhdGEoKTsKQEAgLTMyMSwxMSArMzE4LDExIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAK
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmdldEZpcnN0VmlkZW9GcmFtZSgpCiB7Ci0gICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgUEFM
OjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKQorICAgIGlmICgh
bV9wcm9kdWNlclF1ZXVlIHx8IENNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1w
bGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNl
clF1ZXVlLmdldCgpKSkpOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1
ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkp
OworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVs
QnVmZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQo
KSk7CiAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVs
QnVmZmVyR2V0VHlwZUlEKCkpOwogCiAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURh
dGEoKTsKQEAgLTMzOCwyNSArMzM1LDI1IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjphdXRvbWF0aWNEZXF1ZXVlKCkKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNl
R2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CisgICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlh
VGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CiAgICAgTE9HKE1lZGlh
LCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHB1
cmdpbmcgYWxsIHNhbXBsZXMgYmVmb3JlIHRpbWUoJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSku
dXRmOCgpLmRhdGEoKSk7CiAKICAgICBNZWRpYVRpbWUgbmV4dEZpcmVUaW1lID0gTWVkaWFUaW1l
Ojpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMg
PSBmYWxzZTsKIAotICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNo
ZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVh
ZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewotICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0
aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJh
dGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZp
cnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0g
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQ
QUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsK
ICAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlv
blRpbWVzdGFtcCArIGR1cmF0aW9uOwogICAgICAgICBpZiAodGltZSA+IHByZXNlbnRhdGlvbkVu
ZFRpbWVzdGFtcCkgewotICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJRdWV1ZURl
cXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBDRlJl
bGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CiAgICAgICAgICAgICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBhdXRv
IGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNl
bnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBl
bmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBiZWdpbiA9
IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMs
IHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRh
KCkpOwogI2VuZGlmCiAKQEAgLTM2OCw3ICszNjUsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSgpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlG
b3JNb3JlTWVkaWFEYXRhKCk7CiAKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcXVldWUgZW1wdHkiLCB0aGlzKTsKLSAg
ICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGlt
ZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVU
aW1lKSwgMCk7CisgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRp
bWUobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShu
ZXh0RmlyZVRpbWUpLCAwKTsKIH0KIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaXNw
bGF5aW5nKQpAQCAtMzg2LDE3ICszODMsMTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAg
ICBib29sIHNob3VsZE5vdGlmeSA9IHRydWU7CiAKICAgICBpZiAoZGlzcGxheWluZyAmJiBtX3Rp
bWViYXNlKSB7Ci0gICAgICAgIGF1dG8gY3VycmVudFJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRS
YXRlKG1fdGltZWJhc2UuZ2V0KCkpOwotICAgICAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0
b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKLSAg
ICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7Ci0gICAgICAg
IGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHByZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkpOworICAg
ICAgICBhdXRvIGN1cnJlbnRSYXRlID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQo
KSk7CisgICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJh
c2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBwcmVzZW50YXRpb25T
dGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9u
VGltZVN0YW1wKHNhbXBsZSkpOworICAgICAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBw
cmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0
RHVyYXRpb24oc2FtcGxlKSk7CiAgICAgICAgIGlmIChjdXJyZW50VGltZSA8IHByZXNlbnRhdGlv
blN0YXJ0VGltZSB8fCBjdXJyZW50VGltZSA+PSBwcmVzZW50YXRpb25FbmRUaW1lKQogICAgICAg
ICAgICAgc2hvdWxkTm90aWZ5ID0gZmFsc2U7CiAKICAgICAgICAgaWYgKGN1cnJlbnRSYXRlID4g
MCAmJiBwcmVzZW50YXRpb25FbmRUaW1lIDwgY3VycmVudFRpbWUpIHsKICNpZiAhTE9HX0RJU0FC
TEVECi0gICAgICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKLSAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CisgICAgICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1
ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdl
dEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAg
ICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURl
Y29kZWRTYW1wbGUoJXApIC0gZHJvcHBpbmcgZnJhbWUgbGF0ZSBieSAlcywgZnJhbWVzQmVpbmdE
ZWNvZGVkKCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVz
ZW50YXRpb25FbmRUaW1lIC0gY3VycmVudFRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVp
bmdEZWNvZGVkLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51
dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogICAgICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1l
czsKQEAgLTQwNCwxNyArNDAxLDE3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSwgc2FtcGxlKTsKKyAgICBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVl
dWUuZ2V0KCksIHNhbXBsZSk7CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0byBiZWdpbiA9
IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0byBlbmQgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
c2FtcGxlKSk7CisgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1
ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwor
ICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2Vu
dGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIGF1dG8gcHJlc2Vu
dGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRp
b25UaW1lU3RhbXAoc2FtcGxlKSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBwcmVzZW50YXRpb25UaW1lKCVz
KSwgZnJhbWVzQmVpbmdEZWNvZGVkKCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlz
LCB0b1N0cmluZyhwcmVzZW50YXRpb25UaW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5n
RGVjb2RlZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRm
OCgpLmRhdGEoKSk7CiAjZW5kaWYKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBQQUw6
OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1l
YmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIENNVGltZWJhc2VTZXRU
aW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90
aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBpZiAoIW1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFj
aykKICAgICAgICAgcmV0dXJuOwpAQCAtNDI5LDcgKzQyNiw3IEBAIHZvaWQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGUsCiAKIGJvb2wgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9y
ZU1lZGlhRGF0YSgpIGNvbnN0CiB7Ci0gICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1f
cHJvZHVjZXJRdWV1ZSA/IFBBTDo6Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkgOiAwOworICAgIENNSXRlbUNvdW50IHByb2R1Y2VyQ291bnQgPSBtX3By
b2R1Y2VyUXVldWUgPyBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVl
LmdldCgpKSA6IDA7CiAgICAgcmV0dXJuIG1fZnJhbWVzQmVpbmdEZWNvZGVkICsgcHJvZHVjZXJD
b3VudCA8PSBrSGlnaFdhdGVyTWFyazsKIH0KIApAQCAtNDU1LDcgKzQ1Miw3IEBAIHZvaWQgV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzdG9wUmVxdWVzdGluZ01lZGlhRGF0YSgpCiAKIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlk
ZW9GcmFtZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKGNhbGxi
YWNrICYmIG1fcHJvZHVjZXJRdWV1ZSAmJiAhUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYgKGNhbGxiYWNrICYmIG1fcHJvZHVjZXJRdWV1
ZSAmJiAhQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAg
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrXSB7CiAgICAgICAgICAgICBj
YWxsYmFjaygpOwogICAgICAgICB9KTsKQEAgLTQ2Niw3ICs0NjMsNyBAQCB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3Rk
OjpmdW5jdGlvbgogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBJbWFnZUZv
clRpbWVGbGFncyBmbGFncykKIHsKLSAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eSht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gdGltZSglcyksIHF1ZXVlIGVtcHR5
IiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KQEAgLTQ3NCw5ICs0NzEsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVk
aQogICAgIGJvb2wgYWxsb3dFYXJsaWVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpBbGxvd0VhcmxpZXI7CiAgICAgYm9vbCBhbGxvd0xhdGVyID0gZmxhZ3MgPT0gV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpBbGxvd0xhdGVyOwogCi0gICAgTWVkaWFUaW1lIHN0
YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVz
ZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1l
IHN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2lmICFMT0dfRElTQUJM
RUQKLSAgICBNZWRpYVRpbWUgZW5kVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZl
clF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
OworICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVl
R2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2Vu
ZGlmCiAgICAgaWYgKCFhbGxvd0xhdGVyICYmIHRpbWUgPCBzdGFydFRpbWUpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXAp
IC0gdGltZSglcykgdG9vIGVhcmx5IGZvciBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmlu
Zyh0aW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhzdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCks
IHRvU3RyaW5nKGVuZFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDg1LDI0ICs0ODIsMjQgQEAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKIAogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMg
PSBmYWxzZTsKIAotICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNo
ZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVh
ZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewotICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0
aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJh
dGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZp
cnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0g
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQ
QUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsK
ICAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlv
blRpbWVzdGFtcCArIGR1cmF0aW9uOwogICAgICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgcHJlc2Vu
dGF0aW9uVGltZXN0YW1wID4gdGltZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBpZiAoIWFsbG93RWFybGllciAmJiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPCB0aW1l
KSB7Ci0gICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJl
dGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIENGUmVsZWFzZShDTUJ1
ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAg
ICAgICAgIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJy
ZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBB
TDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkp
OwotICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQ
aXhlbEJ1ZmZlclJlZilQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNh
bXBsZS5nZXQoKSk7CisgICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVu
dFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1
ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAg
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVm
ZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7
CiAgICAgICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhl
bEJ1ZmZlckdldFR5cGVJRCgpKTsKIAogICAgICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAg
ICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVs
eShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgICAgIENN
VGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFz
ZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICAgICAgbWF5YmVCZWNvbWVSZWFk
eUZvck1vcmVNZWRpYURhdGEoKTsKIApAQCAtNTExLDcgKzUwOCw3IEBAIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShj
b25zdCBNZWRpCiAgICAgfQogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIFBBTDo6Q01U
aW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNl
LmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVy
RGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVy
U291cmNlLmdldCgpKTsKIAogICAgIGlmIChyZWxlYXNlZEltYWdlQnVmZmVycykKICAgICAgICAg
bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTUyMyw5ICs1MjAsOSBAQCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpp
bWFnZUZvclRpbWUoY29uc3QgTWVkaQogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmZsdXNoKCkKIHsKICAgICBtX2RlY29tcHJlc3Npb25RdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIFBB
TDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSk7CisgICAgICAgIENNQnVmZmVyUXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2Vy
UXVldWUuZ2V0KCkpOwogICAgICAgICBtX2VucXVlaW5nUXVldWUtPmRpc3BhdGNoU3luYyhbcHJv
dGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsKLSAgICAgICAgICAgIFBBTDo6
Q01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7
CisgICAgICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1l
clF1ZXVlLmdldCgpKTsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fZnJhbWVzU2luY2VM
YXN0UW9zQ2hlY2sgPSAwOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jdXJyZW50UW9z
VGllciA9IDA7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZXNldFFvc1RpZXIoKTsKQEAg
LTUzNiwyNCArNTMzLDI0IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVz
aCgpCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKENN
QnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0g
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIENN
U2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldFByZXNlbnRhdGlvblRpbWUoQ01CdWZmZXJSZWYg
YnVmLCB2b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2Nm
X2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICByZXR1cm4gQ01TYW1w
bGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24oQ01CdWZmZXJSZWYgYnVmLCB2
b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8
Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXREdXJhdGlvbihzYW1wbGUpOworICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9u
KHNhbXBsZSk7CiB9CiAKIENGQ29tcGFyaXNvblJlc3VsdCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmNvbXBhcmVCdWZmZXJzKENNQnVmZmVyUmVmIGJ1ZjEsIENNQnVmZmVyUmVmIGJ1ZjIs
IHZvaWQqIHJlZmNvbikKIHsKLSAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClQQUw6OkNN
VGltZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50
YXRpb25UaW1lKGJ1ZjIsIHJlZmNvbikpOworICAgIHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0
KUNNVGltZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVz
ZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNvbikpOwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6cmVzZXRRb3NUaWVyKCkKQEAgLTYwNSw3ICs2MDIsNyBAQCB2b2lkIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6dXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNz
KGRvdWJsZSByYXRpbwogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZG91YmxlIHJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkp
OworICAgIGRvdWJsZSByYXRlID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7
CiAgICAgaWYgKCFyYXRlKQogICAgICAgICByYXRlID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9u
VlQubW0KaW5kZXggZjMxNjlhYmMwMjc3MDgyZjBjZmNlNDcyNjc5ZTExMDc5N2M4YzlmNi4uZTNm
MDkyNzAzNDhlN2E1YWVmNzI2NmViNDcyZGRiYWU3M2JjMzQwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29m
dExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAog
c3RhdGljIGlubGluZSBDRlN0cmluZ1JlZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKIHsKQEAg
LTEzNyw3ICsxMzgsNyBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKENWUGl4ZWxCdQogCiBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIo
Q01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewot
ICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOworICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZm
ZXIoQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKIH0K
IAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25z
dCBJbnRTaXplJiBzaXplKQpAQCAtMTQ1LDkgKzE0Niw5IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENN
U2FtCiAgICAgaWYgKCFzb3VyY2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgYXV0byBkZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihzb3VyY2VCdWZmZXIpOwotICAgIGF1dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShQQUw6
OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3Jp
cHRpb24sIHRydWUsIHRydWUpKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8
Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJj
ZUJ1ZmZlcikpOworICAgIGF1dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7CisgICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRT
aXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVz
Y3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VC
dWZmZXIpKTsKICAgICBpZiAoc2l6ZSA9PSBleHBhbmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYg
bV9waXhlbEZvcm1hdCA9PSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVm
ZmVyKSkKICAgICAgICAgcmV0dXJuIHJldGFpblB0cihzb3VyY2VCdWZmZXIpOwogCkBAIC0xNTks
NyArMTYwLDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGF1dG8gc3RhdHVzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIs
IDEsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRl
bUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBj
b2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTY4LDcgKzE2OSw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgQ01T
YW1wbGVUaW1pbmdJbmZvKiB0aW1laW5nSW5mb1B0ciA9IG51bGxwdHI7CiAgICAgaWYgKGl0ZW1D
b3VudCkgewogICAgICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgICAg
ICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNv
dXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsK
KyAgICAgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
c291cmNlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIp
OwogICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xP
RyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjog
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3Ig
Y29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC0xNzcsMTQgKzE3OCwxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQog
ICAgIH0KIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1
ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBzdGF0dXMgPSBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBj
b252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciByZXR1cm5lZDogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiByZXNpemVkU2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBj
b252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZv
UHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQ
aXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVz
aXplZFNhbXBsZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAg
ICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBmYWlsZWQgdG8gY3Jl
YXRlIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXR1cykpOwpAQCAtMjM2LDE2ICsyMzcsMTYgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVy
UmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDVlBpeGUK
ICAgICB9CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24gPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1
ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRv
IHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAm
Zm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZh
aWxlZCB0byBpbml0aWFsaXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yIGNv
ZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1
dG8gY21UaW1lID0gUEFMOjp0b0NNVGltZShzYW1wbGVUaW1lKTsKLSAgICBDTVNhbXBsZVRpbWlu
Z0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUg
fTsKLSAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIu
Z2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7Cisg
ICAgYXV0byBjbVRpbWUgPSB0b0NNVGltZShzYW1wbGVUaW1lKTsKKyAgICBDTVNhbXBsZVRpbWlu
Z0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUludmFsaWQsIGNtVGltZSwgY21UaW1lIH07Cisg
ICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVh
c2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6
IGZhaWxlZCB0byBpbml0aWFsaXplIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQi
LCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4
IDMyYTA0NDk2Y2ZmN2Q4NDExMTIwZmNkMTMzZTZkNjc0MjU0YTg2YjEuLmUwZGFhYzg1Yjg3M2Fk
NmFhOWI0YWIyZGI3YTAwOWNjMzdkNDc4OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KQEAg
LTQ3LDYgKzQ3LDcgQEAgU09GVExJTktfQVZLSVRfRlJBTUVXT1JLKCkKIFNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVktpdCwgQVZWYWx1ZVRpbWluZykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewor
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OlBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbk1vZGVsJiBtb2RlbCkK
ICAgICA6IG1fcGxheWVyQ29udHJvbGxlcihhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9sbGVy
IGFsbG9jXSBpbml0XSkpCkBAIC0xNDQsNyArMTQ1LDcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdDo6c2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmIHRp
bWUKICAgICAgICAgZG91YmxlIHN0YXJ0ID0gdGltZVJhbmdlcy5zdGFydChpKS5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKICAgICAgICAgZG91YmxlIGVuZCA9IHRpbWVSYW5nZXMuZW5kKGkpLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgICAgIENNVGltZVJhbmdlIHJhbmdlID0gUEFMOjpDTVRp
bWVSYW5nZU1ha2UoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBQQUw6
OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQtc3RhcnQsIDEwMDApKTsKKyAgICAgICAgQ01UaW1l
UmFuZ2UgcmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0
LCAxMDAwKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOwogICAgICAg
ICBbc2Vla2FibGVSYW5nZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdl
OnJhbmdlXV07CiAgICAgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IDVkZjM0OWZj
NmZjZGZjZmFlYTc1NTYzMjBmM2FlNmU2Njc2MzRlOWIuLmVhNDIzYzcxN2M3YWU5MWJkNGVlOTkw
ODdlMDdjNGU1YzM3ZTRjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQpAQCAtMzczLDYgKzM3Myw3
IEBAIC0gKHZvaWQpcGlwQWN0aW9uU3RvcDooUElQVmlld0NvbnRyb2xsZXIgKilwaXAKIEBlbmQK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlTWFjJiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgOiBtX3Bs
YXliYWNrU2Vzc2lvbkludGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKaW5kZXggZDQxOWUwZTE5MjU1NWQ3MzYw
ODU4NTFmNTRjYTAwNDBkNDZiNjYzZi4uODg0MDk0Mjk3OTI2YzhhZWJkZWY2ZjNlOTU3ODQyZjgz
NDI4Yjg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OmNyZWF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSwgY29uc3QgTWVkaWFSZWNvcmRl
clByaXZhdGVPcHRpb25zJiBvcHRpb25zKQogewpAQCAtODcsMTIgKzg4LDEyIEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYgc2FtcGxlQnVmZmVyCiB7CiAgICAgaWYgKHNob3VsZE11dGVWaWRlbygpKSB7CiAgICAgICAg
IGlmICghbV9ibGFja0ZyYW1lKSB7Ci0gICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIu
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwotICAgICAgICAgICAgYXV0
byBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
KG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFt
ZURlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVC
dWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgICAgICAg
ICAgYXV0byBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9u
cyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgICAgICBtX2JsYWNrRnJh
bWUgPSBjcmVhdGVCbGFja1BpeGVsQnVmZmVyKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMu
aGVpZ2h0KTsKIAogICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAg
ICAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdl
QnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUgOjp1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJh
bWUgZGVzY3JpcHRpb246ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAg
ICAgICAgICBtX2JsYWNrRnJhbWUgPSBudWxscHRyOwpAQCAtMTAyLDggKzEwMyw4IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNh
bXBsZSYgc2FtcGxlQnVmZmVyCiAgICAgICAgIH0KIAogICAgICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGUgPSBudWxscHRyOwotICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5m
byB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNl
bnRhdGlvblRpbWUoKSksIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkg
fTsKLSAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpbV9i
bGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRpbWluZ0lu
Zm8sICZzYW1wbGUpOworICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IGtD
TVRpbWVJbnZhbGlkLCB0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwg
dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKKyAgICAgICAgYXV0byBzdGF0
dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0Zy
YW1lRGVzY3JpcHRpb24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKIAogICAgICAgICBp
ZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUgLSB1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50
PihzdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0KaW5kZXggNWUxMTBlY2Q3ZGUzODQ2MWI0MjkwNGEwZWI0ODgzNDE4NDNlNzVhNC4uNTFh
M2UxOGEyY2VkZDNjZDVkYTkzZjM0ZWJmMzcxMWUwMjBmOGI2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTM2LDEyICszNiwxMyBAQAog
I2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KLSNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjZGVmaW5l
IExPV19XQVRFUl9USU1FX0lOX1NFQ09ORFMgMC4xCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
dXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoQ01CdWZmZXJR
dWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAg
ICAgYXV0byBjb21wcmVzc29yID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcj4obmV3IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpKTsKQEAgLTUxLDE1ICs1
MiwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZQogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCi0gICAgOiBtX3NlcmlhbERp
c3BhdGNoUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IiKSkKLSAgICAsIG1fbG93V2F0ZXJUaW1lKFBBTDo6Q01UaW1lTWFrZVdpdGhT
ZWNvbmRzKExPV19XQVRFUl9USU1FX0lOX1NFQ09ORFMsIDEwMDApKQorICAgIDogbV9zZXJpYWxE
aXNwYXRjaFF1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5BdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IiKSB9CisgICAgLCBtX2xvd1dhdGVyVGltZSB7IENNVGltZU1ha2VXaXRo
U2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAxMDAwKSB9CiB7CiB9CiAKIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7
CiAgICAgaWYgKG1fY29udmVydGVyKSB7Ci0gICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNw
b3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVy
dGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTY3LDE5
ICs2OCwxOSBAQCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IoKQogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxp
emUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tP
YmplY3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBpbnB1dEJ1ZmZlclF1ZXVlOwotICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVm
ZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IENNQnVm
ZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9pbnB1dEJ1ZmZlclF1ZXVlIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAg
IG1faW5wdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0YoaW5wdXRCdWZmZXJRdWV1ZSk7CiAKICAgICBD
TUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01C
dWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0
QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNv
cnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBD
TUJ1ZmZlclF1ZXVlQ3JlYXRlIGZvciBtX291dHB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVm
ZmVyUXVldWUgPSBhZG9wdENGKG91dHB1dEJ1ZmZlclF1ZXVlKTsKLSAgICBQQUw6OkNNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywg
Y2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFk
eSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CisgICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmln
Z2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwg
a0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywg
TlVMTCk7CiAKICAgICBtX2lzRW5jb2RpbmcgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAt
ODgsOCArODksOCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6
ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYQogdm9pZCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgpCiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5k
aXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExv
d1dhdGVyVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKTsKLSAgICAgICAgYXV0byBlcnJvciA9IFBB
TDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7
CisgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoa0NNVGltZUlu
dmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEo
bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZl
clF1ZXVlTWFya0VuZE9mRGF0YSBmYWlsZWQgJWQiLCBlcnJvcik7CiAgICAgICAgIG1faXNFbmNv
ZGluZyA9IGZhbHNlOwogICAgIH0pOwpAQCAtMTExLDcgKzExMiw3IEBAIFVJbnQzMiBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmRlZmF1bHRPdXRwdXRCaXRSYXRlKGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNECiAKIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9D
b252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBBdWRpb0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQogewotICAg
IGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0ZW0gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOworICAg
IGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX3Nv
dXJjZUZvcm1hdCA9IGF1ZGlvRm9ybWF0TGlzdEl0ZW0tPm1BU0JEOwogCiAgICAgbWVtc2V0KCZt
X2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
KSk7CkBAIC0xMjAsMzQgKzEyMSwzNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIG1f
ZGVzdGluYXRpb25Gb3JtYXQubUNoYW5uZWxzUGVyRnJhbWUgPSBtX3NvdXJjZUZvcm1hdC5tQ2hh
bm5lbHNQZXJGcmFtZTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25G
b3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0Zvcm1hdEdldFByb3BlcnR5
KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0
aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvRm9ybWF0R2V0UHJv
cGVydHkoa0F1ZGlvRm9ybWF0UHJvcGVydHlfRm9ybWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZt
X2Rlc3RpbmF0aW9uRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0Zvcm1hdEdldFByb3BlcnR5
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CiAgICAgQXVkaW9Db252ZXJ0ZXJSZWYgY29udmVydGVyOwotICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9y
bWF0LCAmY29udmVydGVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJO
ZXcoJm1fc291cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgQXVkaW9Db252ZXJ0ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7
CiAKICAgICBhdXRvIGNsZWFudXBJbkNhc2VPZkVycm9yID0gbWFrZVNjb3BlRXhpdChbJl0gewot
ICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAg
IEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVy
ID0gbnVsbHB0cjsKICAgICB9KTsKIAogICAgIHNpemVfdCBjb29raWVTaXplID0gMDsKLSAgICBj
b25zdCB2b2lkICpjb29raWUgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2lj
Q29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CisgICAgY29uc3Qgdm9pZCAq
Y29va2llID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVz
Y3JpcHRpb24sICZjb29raWVTaXplKTsKICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBp
ZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tp
ZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFn
aWNDb29raWUsIChVSW50MzIpY29va2llU2l6ZSwgY29va2llKSkgewogICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
c2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICB9CiAKICAgICBzaXplID0gc2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKLSAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VG
b3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlv
biwgJnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9D
b252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE1OCw3ICsxNTksNyBAQCBi
b29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291
cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9kZXN0
aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJl
YW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGlu
YXRpb25Gb3JtYXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVu
dE91dHB1dFN0cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTY2LDE0ICsxNjcsMTQgQEAgYm9vbCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERl
c2NyaXB0aW9uKEMKICAgICBpZiAobV9kZXN0aW5hdGlvbkZvcm1hdC5tRm9ybWF0SUQgPT0ga0F1
ZGlvRm9ybWF0TVBFRzRBQUMpIHsKICAgICAgICAgYm9vbCBzaG91bGRTZXREZWZhdWx0T3V0cHV0
Qml0UmF0ZSA9IHRydWU7CiAgICAgICAgIGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAg
ICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRl
KSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKKyAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBB
dWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNv
ZGVCaXRSYXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFs
dWUoKSk7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgc2hvdWxk
U2V0RGVmYXVsdE91dHB1dEJpdFJhdGUgPSAhIWVycm9yOwogICAgICAgICB9CiAgICAgICAgIGlm
IChzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSkgewogICAgICAgICAgICAgYXV0byBvdXRw
dXRCaXRSYXRlID0gZGVmYXVsdE91dHB1dEJpdFJhdGUobV9kZXN0aW5hdGlvbkZvcm1hdCk7CiAg
ICAgICAgICAgICBzaXplID0gc2l6ZW9mKG91dHB1dEJpdFJhdGUpOwotICAgICAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKKyAg
ICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJh
dGUpKQogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcgZGVmYXVsdCBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMTgyLDcgKzE4Myw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElm
IHRoZSBkZXN0aW5hdGlvbiBmb3JtYXQgaXMgVkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBw
ZXIgcGFja2V0IGZyb20gdGhlIGNvbnZlcnRlci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21h
eE91dHB1dFBhY2tldFNpemUpOwogCi0gICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkp
IHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1f
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXpl
LCAmc2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRp
bmcga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpA
QCAtMjEwLDggKzIxMSw2IEBAIHNpemVfdCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNv
bXB1dGVCdWZmZXJTaXplRm9yQXVkaW9Gb3JtYXQoQXVkaW9TdHJlYW1CCiAKIHZvaWQgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogICAgIGlm
IChDTVRJTUVfSVNfSU5WQUxJRChtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24pKSB7CiAgICAgICAg
IEF1ZGlvQ29udmVydGVyUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKICAgICAgICAgVUlu
dDMyIHNpemUgPSBzaXplb2YocHJpbWVJbmZvKTsKQEAgLTIzNywyNSArMjM2LDI1IEBAIFJldGFp
blB0cjxOU051bWJlcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2Rl
clJlZnJlc2hDb3VudCgpCiB7CiAgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJf
dCk7CiAgICAgdWludDMyX3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOwotICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7
CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxE
ZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5
TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CiAKICAgICB1aW50MzJfdCBvcHRpbWFsRGVsYXlNb2RlID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVf
T3B0aW1hbDsKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXpl
LCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUs
IGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1
ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBVSW50MzIgcHJpbWVTaXplID0gc2l6ZW9mKEF1
ZGlvQ29kZWNQcmltZUluZm8pOwogICAgIEF1ZGlvQ29kZWNQcmltZUluZm8gcHJpbWVJbmZvIHsg
MCwgMCB9OwotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3Bl
cnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXpl
LCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1l
U2l6ZSwgJnByaW1lSW5mbykpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3Bl
cnR5UHJpbWVJbmZvIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmls
OwogICAgIH0KIAotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNp
emUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1v
ZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5n
IGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpAQCAtMjY4LDE4ICsyNjcsMTggQEAgQ01TYW1wbGVC
dWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyhVSW50MzIKICAgICBpZiAoIW1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikg
ewogICAgICAgICBVSW50MzIgY29va2llU2l6ZSA9IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
bnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKKyAgICAg
ICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVM
TCk7CiAgICAgICAgIGlmICgoZXJyb3IgPT0gbm9FcnIpICYmICEhY29va2llU2l6ZSkgewogICAg
ICAgICAgICAgY29va2llLnJlc2l6ZShjb29raWVTaXplKTsKIAotICAgICAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUu
ZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29v
a2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBn
ZXR0aW5nIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCiAgICAgICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzdGluYXRpb25G
b3JtYXREZXNjcmlwdGlvbjsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlv
bkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwgY29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3Rp
bmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3Rp
bmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29raWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAm
ZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgICAgIH0KQEAgLTI5MSwyNiArMjkwLDI2IEBAIENNU2FtcGxl
QnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMoVUludDMyCiAgICAgc2l6ZV90IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1
ZmZlcnNbMF0ubURhdGFCeXRlU2l6ZTsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZm
ZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVt
b3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5v
d0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNp
emUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZl
ckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9j
a0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJsb2Nr
QnVmZmVyKTsKIAotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFj
ZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdl
dCgpLCAwLCBkYXRhU2l6ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRh
Qnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
fQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0
aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRp
dmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMu
ZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVm
ZmVyLmdldCgpLCB0cnVlLCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRp
b24uZ2V0KCksIG51bVBhY2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFt
cCwgbV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIp
OwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
V2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQot
ICAgICAgICBQQUw6OkNNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIsIFBBTDo6a0NNU2FtcGxl
QnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5
cGVSZWYpbV9nZHJDb3VudE51bS5nZXQoKSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFn
YXRlKTsKKyAgICAgICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlciwga0NNU2FtcGxlQnVm
ZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5cGVS
ZWYpbV9nZHJDb3VudE51bS5nZXQoKSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRl
KTsKIAogICAgIHJldHVybiBzYW1wbGVCdWZmZXI7CiB9CkBAIC0zNDIsMjQgKzM0MSwyNCBAQCBP
U1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVt
T3V0cHV0UGFja2V0cyhVSW50MzIqCiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAo
UEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAg
ICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGF1
dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8
dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1
ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0
QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZm
ZXIgPSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKICAg
ICAgICAgICAgICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAg
ICAgIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9z
YW1wbGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1f
c2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZl
ci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1
ZmZlciA9IDA7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChtX3NhbXBsZUJsb2Nr
QnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXpl
IC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBs
ZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBu
dW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZmZXIuZGF0YSgpICsgY3Vy
cmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBl
cnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0
KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJv
bVNhbXBsZUJidWYsIChtX3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3Vy
Y2VCdWZmZXIpKSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGVycm9yOwogICAgICAgICAgICAgICAgIH0KQEAgLTM5NCwyOCArMzkzLDI4IEBAIE9TU3Rh
dHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRw
dXRQYWNrZXRzKFVJbnQzMioKICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6
ZSA9IDA7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVl
dWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoQ01C
dWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChD
TVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVx
dWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAg
bV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KENGUmV0YWluKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBs
ZUJ1ZmZlci5nZXQoKSkpKSkpOworICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9w
dENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURl
cXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICAgICAgICAg
IG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9j
YXN0PHZvaWQqPihDRlJldGFpbihDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVm
ZmVyLmdldCgpKSkpKSk7CiAgICAgICAgICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsK
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFpbGVkIik7
CiAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAg
ICAgICAgIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zYW1wbGVCbG9j
a0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxv
Y2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXpl
ID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkg
LyAyOwogICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAg
ICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1C
eXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNN
QmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3Vy
cmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJi
dWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAg
ICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3Nh
bXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVy
LCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVudE9m
ZnNldEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVy
Q29weURhdGFCeXRlcyBmaXJzdCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJs
b2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9z
YW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNv
bmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9j
a0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2Ft
cGxlQmxvY2tCdWZmZXJTaXplLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25k
Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgc2Vjb25kIGNoYW5uZWwgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAg
ICAgfQpAQCAtNDM5LDggKzQzOCw2IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKIAogdm9pZCBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUoQ01UaW1lIGxvd1dhdGVyVGltZSkKIHsKLSAgICB1c2luZyBuYW1lc3BhY2UgUEFM
OyAvLyBGb3IgQ01USU1FX0NPTVBBUkVfSU5MSU5FCi0KICAgICBpZiAoIW1fY29udmVydGVyKSB7
CiAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0
KCkpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTA0LDcgKzUwMSw3IEBAIHZvaWQgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJU
aW1lKENNVGltZSBsCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNz
U2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKLSAgICBhdXRvIGVycm9y
ID0gUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1
ZmZlcik7CisgICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVu
cXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICBwcm9jZXNzU2FtcGxlQnVmZmVy
c1VudGlsTG93V2F0ZXJUaW1lKG1fbG93V2F0ZXJUaW1lKTsKQEAgLTUyMywxMiArNTIwLDEyIEBA
IHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1w
bGVCdWZmZXJSZWYgYnVmZmVyKQogCiBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNh
bXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVh
ZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBB
TDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVl
LmdldCgpKSkpKTsKIH0KIAogdW5zaWduZWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpi
aXRSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmgKaW5kZXggYjc1NThkMjgwYzJlZjc5NjA2OGNhYzBjYzk2YjUwMzNkYzM3
MDk3MS4uZjVmODU1ODcxZmM3MDg1NjZmN2VmOGI5YTE2MWUyN2I4ZTVkODllZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTEy
Nyw4ICsxMjcsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gbV92aWRlb0NvbXByZXNzb3I7CiAgICAgUmV0YWluUHRy
PEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQ7Ci0gICAgQ01UaW1l
IG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNv
ZGluZ1RpbWU7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSB7IGtDTVRp
bWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lIHsga0NNVGlt
ZUludmFsaWQgfTsKICAgICBib29sIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyB7IGZhbHNlIH07
CiAKICAgICBSZXRhaW5QdHI8V2ViQVZBc3NldFdyaXRlckRlbGVnYXRlPiBtX3dyaXRlckRlbGVn
YXRlOwpAQCAtMTM5LDkgKzEzOSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0b3BB
ZnRlckZsdXNoaW5nU2FtcGxlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ZpcnN0VmlkZW9GcmFt
ZSB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gbV92aWRl
b1RyYW5zZm9ybTsKLSAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lOwotICAgIENNVGltZSBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uOwotICAgIENNVGltZSBtX2N1cnJlbnRBdWRpb1NhbXBsZVRp
bWU7CisgICAgQ01UaW1lIG1fcmVzdW1lZFZpZGVvVGltZSB7IGtDTVRpbWVaZXJvIH07CisgICAg
Q01UaW1lIG1fY3VycmVudFZpZGVvRHVyYXRpb24geyBrQ01UaW1lWmVybyB9OworICAgIENNVGlt
ZSBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgeyBrQ01UaW1lWmVybyB9OwogICAgIGRvdWJsZSBt
X3RpbWVDb2RlIHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDZhZDIwYmU4Y2I1NzkyM2EwZTc4NDJlMzcw
MWQzM2E2YWEwM2FiNmMuLjYzYmQ2NTk4ZDAyYTVjNzAwNmRhOTI5ZmM5NGYxZjVmNjZhNzE2ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0KQEAgLTkzLDYgKzkzLDggQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7CisKIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4g
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBib29sIGhh
c1ZpZGVvLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAg
ICAgYXV0byB3cml0ZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
KGhhc0F1ZGlvLCBoYXNWaWRlbykpOwpAQCAtMTIwLDExICsxMjIsNiBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2
b2lkICptZWRpYQogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8pCiAgICAgOiBtX2hhc0F1ZGlv
KGhhc0F1ZGlvKQogICAgICwgbV9oYXNWaWRlbyhoYXNWaWRlbykKLSAgICAsIG1fbGFzdFZpZGVv
UHJlc2VudGF0aW9uVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKQotICAgICwgbV9sYXN0VmlkZW9E
ZWNvZGluZ1RpbWUoUEFMOjprQ01UaW1lSW52YWxpZCkKLSAgICAsIG1fcmVzdW1lZFZpZGVvVGlt
ZShQQUw6OmtDTVRpbWVaZXJvKQotICAgICwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbihQQUw6OmtD
TVRpbWVaZXJvKQotICAgICwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKFBBTDo6a0NNVGltZVpl
cm8pCiB7CiB9CiAKQEAgLTE4Miw3ICsxNzksNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygpCiB7CiAgICAg
QVNTRVJUKG1faGFzVmlkZW8pOwogICAgIGlmICghbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSB7
Ci0gICAgICAgIG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVm
ZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKG1fdmlkZW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVC
dWZmZXIoKSk7CiAKICAgICAgICAgaWYgKG1faGFzQXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNj
cmlwdGlvbikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5OSw3ICsxOTYsNyBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJlc3NlZEF1ZGlvU2FtcGxl
QnVmZmVycygpCiB7CiAgICAgQVNTRVJUKG1faGFzQXVkaW8pOwogICAgIGlmICghbV9hdWRpb0Zv
cm1hdERlc2NyaXB0aW9uKSB7Ci0gICAgICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+
Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29y
LT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAgICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFt
X3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI0MSw3
ICsyMzgsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3Jp
dGVyKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFttX3dyaXRlci5nZXQoKSBzdGFy
dFNlc3Npb25BdFNvdXJjZVRpbWU6UEFMOjprQ01UaW1lWmVyb107CisgICAgW21fd3JpdGVyLmdl
dCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTprQ01UaW1lWmVyb107CiAKICAgICBhcHBlbmRD
b21wcmVzc2VkU2FtcGxlQnVmZmVycygpOwogCkBAIC0zMDMsOCArMzAwLDggQEAgYm9vbCBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVy
SWZQb3NzaWJsZSgpCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21w
cmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAg
IEFTU0VSVChbbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFd
KTsKLSAgICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgbV9sYXN0VmlkZW9EZWNvZGlu
Z1RpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKGJ1ZmZlcik7Cisg
ICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50
YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IENN
U2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKGJ1ZmZlcik7CiAgICAgbV9oYXNFbmNvZGVk
VmlkZW9TYW1wbGVzID0gdHJ1ZTsKIAogICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQo
KSBhcHBlbmRTYW1wbGVCdWZmZXI6YnVmZmVyXTsKQEAgLTMxNywxNyArMzE0LDE3IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJz
KCkKIAogc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9u
TWFya2VyKEFWQXNzZXRXcml0ZXJJbnB1dCAqYXNzZXRXcml0ZXJJbnB1dCwgQ01UaW1lIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGRlY29kaW5nVGltZVN0YW1wKQogewotICAgIENNU2Ft
cGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBwcmVzZW50
YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKKyAgICBDTVNhbXBsZVRpbWluZ0lu
Zm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwg
ZGVjb2RpbmdUaW1lU3RhbXB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyID0gTlVM
TDsKLSAgICBhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5m
bywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IENNU2FtcGxlQnVmZmVyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAs
IDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlciBhcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01T
YW1wbGVCdWZmZXJDcmVhdGUgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAotICAgIFBBTDo6
Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJB
dHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uLCBrQ0ZCb29sZWFuVHJ1ZSwg
a0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKKyAgICBDTVNldEF0dGFjaG1lbnQo
c2FtcGxlQnVmZmVyLmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2
aW91c1NhbXBsZUR1cmF0aW9uLCBrQ0ZCb29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hv
dWxkUHJvcGFnYXRlKTsKICAgICBpZiAoIVthc3NldFdyaXRlcklucHV0IGFwcGVuZFNhbXBsZUJ1
ZmZlcjpzYW1wbGVCdWZmZXIuZ2V0KCldKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZFNhbXBsZUJ1ZmZlciB0
byB3cml0ZXIgaW5wdXQgZmFpbGVkIik7CiB9CkBAIC0zODUsMTggKzM4MiwxOCBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1
bmN0aW9uPHZvaWQoKT4mJgogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChDTVNhbXBsZUJ1ZmZlclJl
ZiBvcmlnaW5hbEJ1ZmZlciwgQ01UaW1lIHN0YXJ0VGltZSkKIHsKICAgICBDTUl0ZW1Db3VudCBj
b3VudCA9IDA7Ci0gICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQpOworICAgIENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CiAK
ICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1lSW5mbyhjb3VudCk7Ci0gICAgUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwg
Y291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKKyAgICBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEo
KSwgJmNvdW50KTsKIAogICAgIGZvciAoYXV0byBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAg
ICAgICAgdGltZUluZm9baV0uZGVjb2RlVGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsK
KyAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CiAg
ICAgICAgIHRpbWVJbmZvW2ldLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IHN0YXJ0VGltZTsKICAg
ICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdCdWZmZXIgPSBudWxscHRyOwotICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0
YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJD
cmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZl
ciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC00MDcsNyArNDA0LDcgQEAgdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBpZiAoIW1fZmlyc3RWaWRlb0ZyYW1lKSB7CiAgICAg
ICAgIG1fZmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsKLSAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1l
ID0gUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwor
ICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jaygpKTsKICAgICAgICAgaWYgKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfHwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkg
ewogICAgICAgICAgICAgbV92aWRlb1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVJv
dGF0aW9uKHN0YXRpY19jYXN0PGludD4oc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgKiBNX1BJIC8g
MTgwKTsKICAgICAgICAgICAgIGlmIChzYW1wbGUudmlkZW9NaXJyb3JlZCgpKQpAQCAtNDE1LDgg
KzQxMiw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2Ft
cGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBh
dXRvIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUo
UEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAg
ICBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9E
dXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dl
dFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7Cisg
ICAgc2FtcGxlVGltZSA9IENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0
aW9uKTsKICAgICBpZiAoYXV0byBidWZmZXJXaXRoQ3VycmVudFRpbWUgPSBjb3B5U2FtcGxlQnVm
ZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXAoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyLCBzYW1wbGVUaW1lKSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFk
ZFNhbXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQpAQCAtNDI1LDcg
KzQyMiw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxl
QnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3Vy
cmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQogICAgICAgICBtX2F1ZGlvQ29tcHJl
c3Nvci0+YWRkU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7Ci0gICAgbV9jdXJyZW50
QXVkaW9TYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
LCBQQUw6OnRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxl
UmF0ZSgpKSkpOworICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSA9IENNVGltZUFkZChtX2N1
cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVz
Y3JpcHRpb24uc2FtcGxlUmF0ZSgpKSkpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjpmaW5pc2hlZEZsdXNoaW5nU2FtcGxlcygpCkBAIC01MjYsMTAgKzUyMywxMCBAQCB2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wbGV0ZUZldGNoRGF0YSgpCiB7CiAg
ICAgYXV0byBjdXJyZW50VGltZUNvZGUgPSBtX3RpbWVDb2RlOwogICAgIGlmIChtX2hhc0F1ZGlv
KQotICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1
ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKG1f
Y3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxl
VGltZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwotICAgICAgICBtX3Rp
bWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUs
IG1fY3VycmVudFZpZGVvRHVyYXRpb24pKTsKKyAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01U
aW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1f
cmVzdW1lZFZpZGVvVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRz
KENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CiAgICAgfQog
ICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIodGFrZURhdGEoKSwgY3VycmVudFRpbWVD
b2RlKTsKIH0KQEAgLTU1MywxMyArNTUwLDEzIEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjp0YWtlRGF0YSgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OnBhdXNlKCkKIHsKLSAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFM
OjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RU
aW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7Ci0gICAgbV9jdXJyZW50VmlkZW9EdXJh
dGlvbiA9IFBBTDo6Q01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1
cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gQ01UaW1lU3VidHJhY3QoQ01D
bG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGlt
ZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IENNVGltZUFkZChyZWNvcmRpbmdEdXJh
dGlvbiwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OnJlc3VtZSgpCiB7Ci0gICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpD
TUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOworICAgIG1fcmVz
dW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkp
OwogfQogCiBjb25zdCBTdHJpbmcmIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjptaW1lVHlw
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Lm1tCmluZGV4IGQwNzYwZjA3ZTM3MDgxMjdmOWRlMmVmYWY5MmYwZTA3NzJmZDM4ZTcuLjc2ZDU2
ZDdiOGQxM2M3MmVhMzlmYzM0OTlkMTc5ODk5NzE3ZjBlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC0zNCwxMSArMzQsMTIgQEAKICNp
bXBvcnQgPFZpZGVvVG9vbGJveC9WVENvbXByZXNzaW9uU2Vzc2lvbi5oPgogI2ltcG9ydCA8d3Rm
L1NvZnRMaW5raW5nLmg+CiAKLSNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgog
I2ltcG9ydCA8cGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUo
U3RyaW5nIG1pbWVUeXBlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2
b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIHByb2ZpbGUgPSBQcm9maWxlOjpCYXNl
bGluZTsKQEAgLTY4LDcgKzY5LDcgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAg
ICAgaWYgKG1fdnRTZXNzaW9uKSB7Ci0gICAgICAgIFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25J
bnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgVlRDb21wcmVzc2lvblNlc3Np
b25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV92dFNlc3Npb24gPSBu
dWxscHRyOwogICAgIH0KIH0KQEAgLTc2LDEyICs3NywxMiBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogYm9vbCBWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFj
ayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJl
ZiBvdXRwdXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJR
dWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZm
ZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgdW5hYmxlIHRvIGNyZWF0
ZSBidWZmZXIgcXVldWUgJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIFBBTDo6
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNh
bGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVj
b21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKKyAgICBDTUJ1ZmZlclF1ZXVlSW5z
dGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNr
T2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRp
bWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC05NSwxMCArOTYsMTAgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnNldEJpdHNQZXJTZWNvbmQodW5zaWduZWQgYml0UmF0ZSkKIHZvaWQgVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpmaW5pc2goKQogewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlz
cGF0Y2hTeW5jKFt0aGlzXSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Np
b25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a0NNVGltZUlu
dmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0
ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwga0NNVGltZUludmFsaWQpOwogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKIAotICAgICAgICBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRP
ZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIGVycm9yID0gQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKIAogICAgICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKQEAgLTExMyw3ICsxMTQs
NyBAQCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dmlkZW9Db21wcmVzc2lvbkNh
bGxiYWNrKHZvaWQgKnJlZkNvbiwgdm9pZCosCiAKICAgICBWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgKmNvbXByZXNzb3IgPSBzdGF0aWNfY2FzdDxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IqPihyZWZDb24pOwogCi0gICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVl
dWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBh
dXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVu
cXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiB9CiAKQEAgLTEyOSw1MyArMTMwLDUzIEBA
IENGU3RyaW5nUmVmIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dnRQcm9maWxlTGV2ZWwo
KSBjb25zdAogewogICAgIHN3aXRjaCAobV9wcm9maWxlKSB7CiAgICAgY2FzZSBQcm9maWxlOjpC
YXNlbGluZToKLSAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxp
bmVfQXV0b0xldmVsOworICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxp
bmVfQXV0b0xldmVsOwogICAgIGNhc2UgUHJvZmlsZTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIFBB
TDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Ok1h
aW46Ci0gICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xl
dmVsOworICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7
CiAgICAgfQogfQogCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXBy
ZXNzaW9uU2Vzc2lvbihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24pCiB7Ci0gICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7CisgICAgQ01W
aWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERp
bWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBOU0Rp
Y3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IG5pbDsKICNlbHNlCi0gICAgTlNEaWN0
aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKVBB
TDo6a1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVk
VmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRp
b25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9u
X0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CiAjZW5kaWYKIAog
ICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHZ0U2Vzc2lvbjsKLSAgICBhdXRvIGVycm9yID0g
UEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1l
bnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2Jy
aWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24pOworICAgIGF1dG8gZXJy
b3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1l
bnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2Jy
aWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24pOwogICAgIGlmIChlcnJv
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIE5POwogICAgIH0KICAgICBtX3Z0U2Vzc2lvbiA9
IGFkb3B0Q0YodnRTZXNzaW9uKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHko
bV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGlt
ZSwga0NGQm9vbGVhblRydWUpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92
dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJv
b2xlYW5UcnVlKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0s
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0
aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CisgICAgZXJyb3IgPSBzZXRDb21w
cmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRl
cnZhbER1cmF0aW9uKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJl
YW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7Ci0gICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4
cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKKyAgICBlcnJvciA9IHNldENv
bXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgIGVy
cm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOworICAg
IGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Np
b25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIHByb2ZpbGUgJWQi
LCBlcnJvciwgbV9wcm9maWxlKTsKICAgICAgICAgaWYgKG1fcHJvZmlsZSAhPSBQcm9maWxlOjpC
YXNlbGluZSkgewotICAgICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZl
bCwgUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwpOworICAgICAg
ICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIGtWVFByb2ZpbGVMZXZlbF9IMjY0
X0Jhc2VsaW5lX0F1dG9MZXZlbCk7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihl
cnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9u
U2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVk
IHdpdGggJWQgZm9yIGRlZmF1bHQgcHJvZmlsZSIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVz
c2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKKyAgICAgICAg
ZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0
ZSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwog
ICAgIH0KIAotICAgIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0Vu
Y29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CisgICAgZXJyb3IgPSBWVENvbXByZXNzaW9u
U2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgcmV0dXJuIFlFUzsKQEAgLTE4NCwxNCArMTg1LDE0
IEBAIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNz
aW9uKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvCiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAg
ICAgaWYgKCFtX3Z0U2Vzc2lvbikgewotICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Np
b24oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAg
ICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXRE
ZXNjcmlwdGlvbihidWZmZXIpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBh
dXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZl
cik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgYXV0byBkdXJhdGlvbiA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOwotICAgIGF1dG8gZXJyb3IgPSBQ
QUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGlt
YWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBO
VUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihidWZmZXIpOworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZVN0YW1wID0gQ01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBhdXRvIGR1cmF0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBWVENv
bXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lKG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZl
ciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CiAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiB9CiAKQEAgLTIwNywxMiArMjA4LDEyIEBAIHZvaWQgVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVm
ZmVyKQogCiBDTVNhbXBsZUJ1ZmZlclJlZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omdl
dE91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZl
clF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkp
KSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRD
RigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1
ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0
dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZl
clF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0K
IAogdW5zaWduZWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0LmNwcAppbmRleCBhMDI0MDg0YzI0ZTZkMzYzOTYwOGE2NDY1MmVjYzVk
NmQ5ZWZhYzY4Li5jM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMxY2I1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiQ29yZUF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNlbmRpZgogCi0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNCw5ICsxMjMsOSBAQCB2b2lkIExvY2FsQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKICAgICBpZiAo
IW1fcmVtb3RlSU9Vbml0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9yZW1vdGVJT1VuaXQpKSB7CisgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3Ig
PSAlZCIsIGVycm9yKTsKLSAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3Nl
KG1fcmVtb3RlSU9Vbml0KTsKICAgICAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTQwLDExICsxMzksMTEgQEAgdm9pZCBMb2NhbEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKG1faXNTdGFydGVkKSB7Ci0gICAgICAgIFBBTDo6QXVkaW9PdXRwdXRV
bml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9y
ZW1vdGVJT1VuaXQpOwogICAgICAgICBtX2lzU3RhcnRlZCA9IGZhbHNlOwogICAgIH0KIAotICAg
IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAg
IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICBtX3Jl
bW90ZUlPVW5pdCA9IG51bGxwdHI7CiB9CiAKQEAgLTE2NCwxNCArMTYzLDE0IEBAIHZvaWQgTG9j
YWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9V
bml0SWZOZWVkZWQoKQogICAgIGlvVW5pdERlc2NyaXB0aW9uLmNvbXBvbmVudFN1YlR5cGUgPSBr
QXVkaW9Vbml0U3ViVHlwZV9EZWZhdWx0T3V0cHV0OwogI2VuZGlmCiAKLSAgICBBdWRpb0NvbXBv
bmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAm
aW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVk
aW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFT
U0VSVChpb0NvbXBvbmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBmaW5kIHJlbW90ZSBJTyB1bml0IGNv
bXBvbmVudCIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBlcnJvciA9IFBB
TDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7
CisgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQs
ICZyZW1vdGVJT1VuaXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgPSAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTc5LDcgKzE3OCw3IEBAIHZvaWQgTG9jYWxBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZO
ZWVkZWQoKQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBVSW50MzIgcGFyYW0gPSAx
OwotICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtB
dWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwg
MCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3Bl
cnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVk
aW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChl
cnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBl
bmFibGUgdnBpbyB1bml0IG91dHB1dCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIGlmIChtX2RldmljZUlEKSB7Ci0gICAgICAgIGVycm9yID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0
eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwg
c2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0
eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBr
QXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQp
KTsKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgdW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRz
KSIsIChpbnQpbV9kZXZpY2VJRCwgKGludCllcnJvciwgKGNoYXIqKSZlcnJvcik7CiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0xOTcsMTQgKzE5NiwxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkK
ICNlbmRpZgogCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgTG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6cmVuZGVyaW5nQ2FsbGJh
Y2ssIHRoaXMgfTsKLSAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3Rl
SU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRT
Y29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgZXJyb3Ig
PSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
ZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBz
aXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVy
cm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBVSW50MzIg
c2l6ZSA9IHNpemVvZihvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKTsKLSAg
ICBlcnJvciAgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0
cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgJnNpemUpOworICAgIGVycm9yICA9
IEF1ZGlvVW5pdEdldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0
cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24u
c3RyZWFtRGVzY3JpcHRpb24oKSwgJnNpemUpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZv
cm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjEyLDEzICsy
MTEsMTMgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICAgICBvdXRwdXREZXNjcmlwdGlvbi5z
dHJlYW1EZXNjcmlwdGlvbigpLm1TYW1wbGVSYXRlID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNz
aW9uKCkuc2FtcGxlUmF0ZSgpOwogCi0gICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3Bl
cnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlv
VW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24o
KSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpKTsKKyAgICBl
cnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3Jp
cHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVh
bURlc2NyaXB0aW9uKCkpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9y
ID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9IFBB
TDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJT1VuaXQpOworICAgIGVycm9yID0gQXVkaW9V
bml0SW5pdGlhbGl6ZShyZW1vdGVJT1VuaXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQs
IGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQppbmRleCA0ODVlNGNlNGM2ZDhjMzI0NWI3NzlkNjFhNjc2Y2JiYjk3YmFkOTEw
Li40Yjc4OGFlNWFhODdiNzI5ZTViZGNmOWNmNzEzODEyYzY3NzBhMzI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCkBAIC01MSw2ICs1MSw3IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1l
c3BhY2UgUEFMOwogCiBAaW50ZXJmYWNlIFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIDogTlNPYmplY3Q8QVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0U2FtcGxlQnVmZmVyRGVsZWdh
dGU+IHsKICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogbV9jYWxsYmFjazsKQEAgLTM1MCwxMCAr
MzUxLDEwIEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJh
bWVSYXRlKCkKICAgICAgICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZSkgewogICAgICAgICAgICAg
ICAgIG1fY3VycmVudEZyYW1lUmF0ZSA9IGNsYW1wVG8obV9jdXJyZW50RnJhbWVSYXRlLCBmcmFt
ZVJhdGVSYW5nZS5taW5GcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lUmF0ZSk7CiAK
LSAgICAgICAgICAgICAgICBhdXRvIGZyYW1lRHVyYXRpb24gPSBQQUw6OkNNVGltZU1ha2UoMSwg
bV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAgICAgICAgICAgICBpZiAoUEFMOjpDTVRpbWVDb21w
YXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lRHVyYXRpb24pIDwgMCkK
KyAgICAgICAgICAgICAgICBhdXRvIGZyYW1lRHVyYXRpb24gPSBDTVRpbWVNYWtlKDEsIG1fY3Vy
cmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVE
dXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQogICAgICAgICAg
ICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlv
bjsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJh
dGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikgPiAwKQorICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2Uu
bWF4RnJhbWVEdXJhdGlvbikgPiAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9u
ID0gZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbjsKIAogICAgICAgICAgICAgICAgIEFM
V0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJzZXR0aW5nIGZyYW1lIHJh
dGUgdG8gIiwgbV9jdXJyZW50RnJhbWVSYXRlLCAiLCBkdXJhdGlvbiAiLCBQQUw6OnRvTWVkaWFU
aW1lKGZyYW1lRHVyYXRpb24pKTsKQEAgLTQxNyw3ICs0MTgsNyBAQCBib29sIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQogCiAgICAgbV9zZXNzaW9uID0gYWRvcHROUyhbUEFM
OjphbGxvY0FWQ2FwdHVyZVNlc3Npb25JbnN0YW5jZSgpIGluaXRdKTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIFBBTDo6QVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNh
bWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5b3V0KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAg
QVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3Jv
dW5kQXBwTGF5b3V0KG1fc2Vzc2lvbi5nZXQoKSk7CiAjZW5kaWYKICAgICBbbV9zZXNzaW9uIGFk
ZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJydW5uaW5nIiBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKW5pbF07CiAK
QEAgLTQzMyw4ICs0MzQsNiBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Np
b24oKQogCiBBVkZyYW1lUmF0ZVJhbmdlKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZnJhbWVEdXJh
dGlvbkZvckZyYW1lUmF0ZShkb3VibGUgcmF0ZSkKIHsKLSAgICB1c2luZyBuYW1lc3BhY2UgUEFM
OyAvLyBGb3IgQ01USU1FX0NPTVBBUkVfSU5MSU5FCi0KICAgICBBVkZyYW1lUmF0ZVJhbmdlICpi
ZXN0RnJhbWVSYXRlUmFuZ2UgPSBuaWw7CiAgICAgZm9yIChBVkZyYW1lUmF0ZVJhbmdlICpmcmFt
ZVJhdGVSYW5nZSBpbiBbW2RldmljZSgpIGFjdGl2ZUZvcm1hdF0gdmlkZW9TdXBwb3J0ZWRGcmFt
ZVJhdGVSYW5nZXNdKSB7CiAgICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZUluY2x1ZGVzUmF0ZSh7
IFtmcmFtZVJhdGVSYW5nZSBtaW5GcmFtZVJhdGVdLCBbZnJhbWVSYXRlUmFuZ2UgbWF4RnJhbWVS
YXRlXSB9LCByYXRlKSkgewpAQCAtNTk5LDcgKzU5OCw3IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHBy
ZXNldHM7CiAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2VGb3JtYXQqIGZvcm1hdCBpbiBbZGV2aWNl
KCkgZm9ybWF0c10pIHsKIAotICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlv
bik7CiAgICAgICAgIEludFNpemUgc2l6ZSA9IHsgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9u
cy5oZWlnaHQgfTsKICAgICAgICAgYXV0byBpbmRleCA9IHByZXNldHMuZmluZE1hdGNoaW5nKFsm
c2l6ZV0oYXV0byYgcHJlc2V0KSB7CiAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PSBwcmVzZXQt
PnNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKaW5kZXggZTE1NTQ2MmY1
MTgxNTg4YmEzYmM5NDU2YzZiNmFlOWFmZTIxYjVjMS4uNmUyNmM4ZmE0ZWNkMzBhYzFlNTJmZWMz
OGFmNTdkMGUzM2Q5YmMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApA
QCAtMTksNyArMTksNyBAQAogICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRVBBTDo6TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IApAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBi
b29sIGdldERldmljZUluZm8odWludDMyX3QgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSwgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIFN0cmluZyYgbGFiZWwpCiB7CkBAIC0y
MDQsNyArMjA1LDcgQEAgUmV0YWluUHRyPENNQ2xvY2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2U6OmRldmljZUNsb2NrKCkKICAgICAgICAgcmV0dXJuIG1fZGV2aWNlQ2xvY2s7CiAKICAgICBD
TUNsb2NrUmVmIGNsb2NrOwotICAgIGF1dG8gZXJyID0gUEFMOjpDTUF1ZGlvRGV2aWNlQ2xvY2tD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgJmNsb2NrKTsKKyAgICBhdXRvIGVyciA9IENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwZXJzaXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpLCAmY2xvY2spOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRl
KCVwKSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggZjRiMzY1ODk0ZDM3Y2Q5
NGZmMjFiN2ZiNTRmZGIyNjQxZjM2ZmU5Ni4uMDNmM2U2MmEyNjM3YzNlOTAxYmFmNjk0ZDNjNTI2
NWVmYTc0YWViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDgs
OCArNDgsNiBAQAogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotI2luY2x1ZGUg
PHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU5LDYgKzU3LDcg
QEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwog
CiAjaWYgUExBVEZPUk0oTUFDKQogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQpAQCAtMjA0LDcgKzIwMyw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBtX0RU
U0NvbnZlcnNpb25SYXRpbyA9IDFlLTkgKiBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5m
by5udW1lcikgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5kZW5vbSk7CiAKICAg
ICBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIGlvVW5pdERlc2NyaXB0aW9uID0geyBrQXVkaW9V
bml0VHlwZV9PdXRwdXQsIGtBdWRpb1VuaXRTdWJUeXBlX1ZvaWNlUHJvY2Vzc2luZ0lPLCBrQXVk
aW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlLCAwLCAwIH07Ci0gICAgQXVkaW9Db21wb25lbnQgaW9D
b21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERl
c2NyaXB0aW9uKTsKKyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlvQ29tcG9u
ZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9D
b21wb25lbnQpOwogICAgIGlmICghaW9Db21wb25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVu
YWJsZSB0byBmaW5kIHZwaW8gdW5pdCBjb21wb25lbnQiLCB0aGlzKTsKQEAgLTIxMyw3ICsyMTIs
NyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNp
ZiAhTE9HX0RJU0FCTEVECiAgICAgQ0ZTdHJpbmdSZWYgbmFtZSA9IG51bGxwdHI7Ci0gICAgUEFM
OjpBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CisgICAgQXVkaW9D
b21wb25lbnRDb3B5TmFtZShpb0NvbXBvbmVudCwgJm5hbWUpOwogICAgIGlmIChuYW1lKSB7CiAg
ICAgICAgIG1faW9Vbml0TmFtZSA9IG5hbWU7CiAgICAgICAgIENGUmVsZWFzZShuYW1lKTsKQEAg
LTIyMSw3ICsyMjAsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlv
VW5pdCgpCiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25l
bnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IEF1
ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJv
ciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1
cm4gZXJyOwpAQCAtMjI5LDEzICsyMjgsMTMgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5p
dDo6c2V0dXBBdWRpb1VuaXQoKQogCiAgICAgaWYgKCFlbmFibGVFY2hvQ2FuY2VsbGF0aW9uKCkp
IHsKICAgICAgICAgdWludDMyX3QgcGFyYW0gPSAwOwotICAgICAgICBlcnIgPSBQQUw6OkF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNz
aW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBz
aXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3Jl
QXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIGF1
dG9tYXRpYyBnYWluIGNvbnRyb2wsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICB9CiAgICAgICAg
IHBhcmFtID0gMTsKLSAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lv
VW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5p
dFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAg
IGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlf
QnlwYXNzVm9pY2VQcm9jZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywg
JnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRp
b1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGVjaG8gY2FuY2VsbGF0aW9uLCBlcnJv
ciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAg
cmV0dXJuIGVycjsKQEAgLTI0NCw3ICsyNDMsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVp
bnQzMl90IHBhcmFtID0gMTsKLSAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29w
ZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFi
bGVJTywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFy
YW0pKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZW5hYmxl
IHZwaW8gdW5pdCBpbnB1dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI1Niw3ICsyNTUsNyBAQCBPU1N0YXR1
cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgICAgICAgICByZXR1
cm4gZXJyOwogICAgIH0KIAotICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0
dXJlRGV2aWNlSUQpKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZp
Y2VJRCkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQg
dnBpbyB1bml0IGNhcHR1cmUgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAo
aW50KW1fY2FwdHVyZURldmljZUlELCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICBy
ZXR1cm4gZXJyOwpAQCAtMjcxLDcgKzI3MCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBpZiAoZXJyKQogICAgICAgICByZXR1cm4gZXJyOwog
Ci0gICAgZXJyID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIg
PSBBdWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVk
aW9Vbml0KCVwKSBBdWRpb1VuaXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciAlZCAoJS40cyki
LCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAt
MjkzLDcgKzI5Miw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5kdWNrKCkKIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIHsKICAg
ICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBtaWNyb3Bob25lQ2FsbGJhY2ss
IHRoaXMgfTsKLSAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAg
ICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5w
dXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25m
aWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgbWljIHByb2Ms
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
IHJldHVybiBlcnI7CkBAIC0zMDIsMTQgKzMwMSwxNCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uIG1pY3JvcGhvbmVQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUg
PSBzaXplb2YobWljcm9waG9uZVByb2NGb3JtYXQpOwotICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZz
aXplKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMs
ICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJl
TWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBnZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVy
cm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJl
dHVybiBlcnI7CiAgICAgfQogCiAgICAgbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUg
PSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lv
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091
dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NG
b3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXAp
IHVuYWJsZSB0byBzZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMjQs
NyArMzIzLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9w
aG9uZVByb2MoKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtl
clByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IHNwZWFr
ZXJDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2sp
KTsKKyAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0
cHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29u
ZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJv
YywgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAg
ICAgcmV0dXJuIGVycjsKQEAgLTMzMywxNCArMzMyLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1No
YXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24gc3BlYWtlclByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNp
emVvZihzcGVha2VyUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5p
dFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAg
IGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlf
U3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQ
cm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygl
cCkgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0K
IAogICAgIHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAg
IGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3Bl
YWtlclByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVf
SW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVu
aXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBm
b3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgIHJldHVybiBlcnI7CkBAIC00NjAsNyArNDU5LDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFy
ZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KCkKICAgICB9CiAKICAgICBpZiAobV9pb1VuaXQpIHsK
LSAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7Cisg
ICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKICAgICAgICAg
bV9pb1VuaXQgPSBudWxscHRyOwogICAgIH0KIApAQCAtNDc4LDcgKzQ3Nyw3IEBAIE9TU3RhdHVz
IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBpZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IFBBTDo6
QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0
VW5pdFN0b3AobV9pb1VuaXQpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1
ZGlvVW5pdCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVy
cjsKQEAgLTQ5MSw3ICs0OTAsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNv
bmZpZ3VyZUF1ZGlvVW5pdCgpCiAgICAgICAgIHJldHVybiBlcnI7CiAKICAgICBpZiAobV9pb1Vu
aXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9p
b1VuaXQpOworICAgICAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAg
ICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1
dFVuaXRTdGFydCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTUxNSw3ICs1MTQsNyBA
QCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydEludGVybmFsKCkKIAogICAgIHVu
ZHVjaygpOwogCi0gICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7
CisgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwogICAgIGlmIChlcnIp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5p
dDo6c3RhcnQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICgl
LjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIGNsZWFudXBBdWRp
b1VuaXQoKTsKQEAgLTU1Miw3ICs1NTEsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0
b3BJbnRlcm5hbCgpCiAgICAgaWYgKCFtX2lvVW5pdCB8fCAhbV9pb1VuaXRTdGFydGVkKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcCht
X2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsK
ICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnN0b3AoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGgg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtNTY2LDcgKzU2NSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OmRlZmF1bHRJbnB1dERldmljZSh1aW50MzJfdCogZGV2aWNlSUQpCiAgICAgQVNTRVJUKG1faW9V
bml0KTsKIAogICAgIFVJbnQzMiBwcm9wZXJ0eVNpemUgPSBzaXplb2YoKmRldmljZUlEKTsKLSAg
ICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091
dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBp
bnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOworICAgIGF1dG8gZXJyID0gQXVkaW9V
bml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50
RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9w
ZXJ0eVNpemUpOwogICAgIGlmIChlcnIpCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSglcCkgdW5hYmxlIHRv
IGdldCBkZWZhdWx0IGlucHV0IGRldmljZSBJRCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGlu
dCllcnIsIChjaGFyKikmZXJyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCmluZGV4IDU4MmY0YjI2Y2YxMThjNDk3MWFjZDdkMTgzMDkyMTk3ZTFlNzY4MmEuLjNm
NGU0ZGNmNDJjMGZhOTNlZjlhYjYyZGQyMmE5N2M1MTM4NzA2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJD
b3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3Bh
Y2UgUEFMOwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggYjg2
YjA1ZThjNjY1YmMyZTgwNWYyN2IzOGIxYTRmZDMzMTNmOTJjMy4uYWE3ZmYwODc1MDU0MjU4MmYx
ZWY5MTY3YTgxZTZmYjVhNTQ4ZjE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAg
LTQ0LDEwICs0NCwxNCBAQAogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+
CiAjaW1wb3J0IDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KIAotI2ltcG9ydCA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KIAorU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCisKK1NPRlRfTElOSyhB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91
dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBv
dXRBdWRpb0NvbnZlcnRlcikpCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGFsaWduVG8xNkJ5dGVzKHNpemVfdCBzaXpl
KQogewpAQCAtMjE3LDcgKzIyMSw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25m
aWd1cmUoKQogICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KG1fc3RyZWFtRm9ybWF0LCBtX21heGltaXVtRnJhbWVDb3VudCk7CiAKICAgICBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIFBBTDo6Q01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwg
TlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoTlVMTCwgJm1fc3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxM
LCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENG
KGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIgKiByYXRl
OwpAQCAtMjM5LDcgKzI0Myw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBs
ZUJ1ZmZlcnModWludDMyX3QgZnJhbWVDb3VudCkKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKICAgICBBU1NFUlQobV9mb3JtYXREZXNjcmlwdGlvbik7CiAKLSAgICBDTVRpbWUgc3RhcnRU
aW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7Cisg
ICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxl
UmF0ZSgpKTsKICAgICBtX3NhbXBsZXNFbWl0dGVkICs9IGZyYW1lQ291bnQ7CiAKICAgICBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1
ZmZlckxpc3QsIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1l
Q291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGI2
MGI4ODY2ZmJiODA0ODhjMjNmZTJiNTc2OTJiMzBmODdlMzg2OTAuLmIwNTlhMzI1MWQ4Yjk2NTdi
YTkwMTRjNDRmODA2M2FmODI3YjFkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0KQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwog
CiBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCBhYTY5NmFkZGY3Zjc3OTI1OTE1
Mjk1ODNjMjE2MGMxMjQ5MTFkNTVkLi41ODA5NGIzNDIwZjM5YzhmMjZjMTc3N2EyYWVkMDEyM2Ri
ZWEyNjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VD
b2NvYS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29m
dExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAog
UmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFj
ZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQpCiB7CkBAIC0xMzAsNyArMTMx
LDcgQEAgdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKGNvbnN0
IHZvaWQqIGF1ZGlvRGF0YSwgaW50IGJpdHNQZXIKICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFt
ZXMgPSAwOwogICAgIH0KIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2Uo
bV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IENN
VGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYXV0byBtZWRpYVRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyAr
PSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZUNvY29hLm1tCmluZGV4IDBjNzFlMWRiMTBmYTQzN2E3YzAwNDNkMzY0ZjQ0YmY3MjM3
MTFjOTcuLjhkZjhmNjhmNmY3MjQwNDc1ZGJkNDMyMzA2YWEzYTU2OWY2ZTQ4Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTQyLDYg
KzQyLDcgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW1wb3J0IDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogUmVmPFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFj
a0ludGVyZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB0cmFja0lkKQogewpAQCAtMTcyLDE5
ICsxNzMsMTkgQEAgdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFt
ZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQogICAgIH0KIAogICAgIENNU2FtcGxl
VGltaW5nSW5mbyB0aW1pbmdJbmZvOwotICAgIHRpbWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0
YW1wID0gUEFMOjpDTVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAg
ICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7Ci0gICAg
dGltaW5nSW5mby5kdXJhdGlvbiA9IFBBTDo6a0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5m
by5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygp
LCAxMDAwMDAwKTsKKyAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZh
bGlkOworICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBrQ01UaW1lSW52YWxpZDsKIAogICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1
cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwg
JmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBPU1N0YXR1cyBvc3RhdHVzID0gQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENW
SW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYg
KG9zdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBM
T0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uIHdpdGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8aW50Pihvc3RhdHVzKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAg
b3N0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0g
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0
aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRp
b24pOwogICAgIGlmIChvc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihs
b2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBi
dWZmZXIgd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGUzM2Ji
NmRhOWRkZGQwMWEwMGQ5OTZmZDllZjAyYWM5ODE0YTFlYjUuLjZiZjBjYTQ4N2RkNjRkYmVmNTM5
ZDk0ODgwZjYyOGM3ZmExNjFiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNDUsNiArNDUsNyBAQCBBTExPV19VTlVTRURfUEFS
QU1FVEVSU19FTkQKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlPiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYgdmlkZW9Tb3VyY2UpCiB7CkBAIC04NCw3ICs4NSw3IEBAIHZv
aWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgfQogCiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9y
bVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0g
ICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8
Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxh
dGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBhdXRvIHBpeGVsRm9y
bWF0VHlwZSA9IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwog
CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNvbnZlcnRlZEJ1ZmZlciA9IHBpeGVs
QnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KaW5kZXggMTI5M2Rh
NTU5ZjkyOWE3YWVlYzU0ZDA3YWE5YWU0Zjk5NGY5NWI0NC4uNzhiYmNhZDEzOTk4NjJmNTViOTcw
YmU0NzdmMjUxNGM0ZjM0ODQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFj
Lm1tCkBAIC00Niw2ICs0Niw3IEBACiBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENHSW1hZ2Up
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMg
Ym9vbCBhbnlPZkNHV2luZG93KGNvbnN0IEZ1bmN0aW9uPGJvb2woQ0ZEaWN0aW9uYXJ5UmVmIGlu
Zm8sIHVuc2lnbmVkIGlkLCBjb25zdCBTdHJpbmcmIHRpdGxlKT4mIHByZWRpY2F0ZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KaW5kZXggZjZiM2Nl
OTFkNTI1NjIyZDFkYjFmMjAxN2U4MTExMTU1NTk2ZTNmNS4uNGVhM2RlODZjYmI0NDQxOWRhNmUx
ZjQ5M2JlYTgzOTA1NWRkMTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYkljb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklj
b25VdGlsaXRpZXMubW0KQEAgLTEyNCw3ICsxMjQsNyBAQCBSZXRhaW5QdHI8VUlJbWFnZT4gaWNv
bkZvclZpZGVvRmlsZShOU1VSTCAqZmlsZSkKICAgICBbZ2VuZXJhdG9yIHNldEFwcGxpZXNQcmVm
ZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwogCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0g
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNv
cHlDR0ltYWdlQXRUaW1lOlBBTDo6a0NNVGltZVplcm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVy
cm9yXSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2Vu
ZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1lOmtDTVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9y
OiZlcnJvcl0pOwogICAgIGlmICghaW1hZ2VSZWYpIHsKICAgICAgICAgTE9HX0VSUk9SKCJFcnJv
ciBjcmVhdGluZyBpbWFnZSBmb3IgdmlkZW8gJyVAJzogJUAiLCBmaWxlLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBmYWxsYmFja0ljb25Gb3JGaWxlKGZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdy
YXBwZWQuY3BwCmluZGV4IDBiYWMxZTI4OWU3NzcyZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMu
LmExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNlZWY0YWEyODE4ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29y
ZU1lZGlhV3JhcHBlZC5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogYm9vbCBjcmVhdGVXcmFwcGVyKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01C
YXNlVlRhYmxlKiBiYXNlVlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVj
dFJlZiogd3JhcHBlcikKIHsKLSAgICByZXR1cm4gUEFMOjpDTURlcml2ZWRPYmplY3RDcmVhdGUo
YWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBub0VycjsKKyAgICBy
ZXR1cm4gQ01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJ
RCwgd3JhcHBlcikgPT0gbm9FcnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJTdG9yYWdlKENNQmFzZU9i
amVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdldERlcml2
ZWRTdG9yYWdlKHdyYXBwZXIpOworICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3Rv
cmFnZSh3cmFwcGVyKTsKIH0KIAogY29uc3QgQ01CYXNlVlRhYmxlKiB3cmFwcGVyVlRhYmxlKENN
QmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdl
dFZUYWJsZSh3cmFwcGVyKTsKKyAgICByZXR1cm4gQ01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBw
ZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFk
ZXIuY3BwCmluZGV4IDVlNzc4Y2MwYjdiZGE3NGUzZjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEuLmMx
ODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZhZjc4NzNjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
Rm9ybWF0UmVhZGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKE1UUGx1Z2luRm9ybWF0UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0
IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKQEAgLTI0NCw3ICsyNDUsNyBAQCBPU1N0YXR1cyBN
ZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdAogICAgIGlmIChtX2R1cmF0aW9uLmlzSW5kZWZpbml0ZSgpKQogICAgICAg
ICByZXR1cm4ga0NNQmFzZU9iamVjdEVycm9yX1ZhbHVlTm90QXZhaWxhYmxlOwogCi0gICAgaWYg
KGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKFBBTDo6Q01UaW1lQ29weUFzRGljdGlvbmFy
eShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKKyAg
ICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9IGFkb3B0Q0YoQ01UaW1lQ29weUFzRGljdGlvbmFy
eShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKICAg
ICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4odmFsdWVDb3B5KSA9IGxl
YWtlZER1cmF0aW9uOwogICAgICAgICByZXR1cm4gbm9FcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0
ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXggNGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3
ZjU0NTA5ZmFjMDdhZC4uZDgzZWZjZjQ3NzVjZTk2YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBAIC0yNSwxMiArMjUsMTIg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQnl0ZVJhbmdl
LmgiCi0jaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBFTkFCTEUo
V0VCTV9GT1JNQVRfUkVBREVSKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAordXNpbmcgbmFtZXNw
YWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVNhbXBsZUJ5dGVSYW5n
ZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRl
U291cmNlUmVmIGJ5dGVTb3VyY2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBAIC01MCw3ICs1MCw3IEBA
IE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYg
c2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBs
ZS5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIHN3aXRjaCAocGxhdGZvcm1TYW1wbGUudHlwZSkgewog
ICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZToKLSAgICAgICAgbV9m
b3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlv
bihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgICAgICBtX2Zvcm1h
dERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9y
bVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFBsYXRmb3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1wbGVUeXBlOgogICAgICAgICBtX2Zvcm1hdERl
c2NyaXB0aW9uID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5nZVNhbXBsZS5zZWNvbmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFTYW1wbGVDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAppbmRleCBmYmU0MjI3MzA2ZjgwZjYxYzEy
N2MzMzhjNzFlZmE1NGEyZDIwYzg3Li5jZTI5MDZkYzQ0MjliODc1MTRhN2IwMGMzMjE3MzkyZDUw
N2IzZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKQEAgLTQzLDYgKzQzLDcg
QEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblNhbXBsZUN1cnNvcik7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCit1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIHN0YXRpYyBNZWRpYVRpbWUgYXNzdW1lZERlY29kZVRpbWUoY29uc3QgTWVk
aWFUaW1lJiBwcmVzZW50YXRpb25UaW1lLCBEZWNvZGVPcmRlclNhbXBsZU1hcCYgbWFwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
VHJhY2tSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCmluZGV4IDFkYzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2Qx
YWEzNzI1MzU3ZjIwZmEuLjkwODYxYzg0ZGRlNmM2NmRkYjg3NzkzYWIyMzA2YTY2ZTRkZWI3MzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVRyYWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgV1RGX0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblRyYWNrUmVhZGVyKTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogQ01CYXNlQ2xhc3NJRCBNZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVyQ2xhc3NJRCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3Jv
dXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KaW5kZXggMWUz
OGRlNWRiZGE5ZTE1NzEyOGYxZjQwZGFhZDFjNDkxOTBlMzAwYi4uMTdkNzlmMTYxMDU2YTAxMGE0
ZWFjNTgyZmQyNzg2OGYzODhhNjIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFj
dGl2aXRpZXNDb29yZGluYXRvci5tbQpAQCAtMTAyLDYgKzEwMiw4IEBAIEBlbmQKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKIFJlZjxHcm91cEFjdGl2aXRp
ZXNDb29yZGluYXRvcj4gR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OmNyZWF0ZShHcm91cEFj
dGl2aXRpZXNTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdy
b3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yKHNlc3Npb24pKTsKQEAgLTE1Miw3ICsxNTQsNyBAQCB2
b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpsZWF2ZSgpCiAKIHZvaWQgR3JvdXBBY3Rp
dml0aWVzQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgQ29vcmRpbmF0b3JDb21wbGV0
aW9uSGFuZGxlciYmIGNhbGxiYWNrKQogewotICAgIFttX3BsYXliYWNrQ29vcmRpbmF0b3IgY29v
cmRpbmF0ZVNlZWtUb1RpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgMTAwMCkg
b3B0aW9uczowXTsKKyAgICBbbV9wbGF5YmFja0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9U
aW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCAxMDAwKSBvcHRpb25zOjBdOwogICAgIGNh
bGxiYWNrKHN0ZDo6bnVsbG9wdCk7CiB9CiAKQEAgLTIwOSwxMCArMjExLDEwIEBAIHZvaWQgR3Jv
dXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlUGxheUNvbW1hbmQoQVZEZWxlZ2F0aW5nUGxh
eWJhY2tDb29yZGluYXRvCiAKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaXRlbVRpbWU7CiAg
ICAgaWYgKENNVElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5kLml0ZW1UaW1lKSkKLSAgICAgICAg
aXRlbVRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOwor
ICAgICAgICBpdGVtVGltZSA9IENNVGltZUdldFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUp
OwogICAgIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWU7CiAgICAgaWYgKENN
VElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKQotICAgICAgICBob3N0
VGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKFBBTDo6Q01DbG9ja0Nv
bnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMocGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOwor
ICAgICAgICBob3N0VGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKENN
Q2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1Rp
bWUpKTsKIAogICAgIGNsaWVudCgpLT5wbGF5U2Vzc2lvbihpdGVtVGltZSwgaG9zdFRpbWUsIFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgewogICAgICAgICBjYWxsYmFjaygp
OwpAQCAtMjQ0LDcgKzI0Niw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlz
c3VlU2Vla0NvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoUEFMOjpDTVRp
bWVHZXRTZWNvbmRzKHNlZWtDb21tYW5kLml0ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldIChib29sKSBtdXRhYmxlIHsKKyAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1Rp
bWUoQ01UaW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAg
ICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDE3MWQ5Y2E0ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1
MDRkNDI3OTUuLjQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2VhYjgyZDk1ZmQwYWJlZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNv
Y29hLm1tCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRp
b0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAK
LSAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwg
IVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJS
ZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFpc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFp
bGFibGUoKSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hT
ZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIG11dGFibGUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01l
ZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KaW5kZXggMmE4M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2
NTkzNGMyNjMwNTU1YS4uZjM3ODRmYzI3MTJiMGRmNjM4NzEyMDQ3Y2Q3MmY4NTMwYzc3NzIzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCkBAIC00Miw2ICs0Miw3IEBAIEBlbmQKIE5TX0FT
U1VNRV9OT05OVUxMX0VORAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQ
QUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wgdXNhZ2VUcmFja2lu
Z0F2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggZjg5MWE1MzMxNDUwYmYx
N2VhZjk1YjAwZTMxOGRhZTNjNzM4NzU0ZS4uYzMyM2E2YTc4YjQ1MDA1YjY3NzQwODYyYjYyOWIx
NmZiYjgwZjQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA4YTU5YWUxYTI4ZmE0M2E5YjJmMjE1
NzYyMTE4OWFlOTc2ZDEwMmRmLi45NWJiZDU0ODNjZmVhMTdjOTEyZWQ1YjVmMTNmNDMxZmFlMzcx
MjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggMGQ2ZGUxZjJhOTkwNjA5ZWU5YTA1MDJlOGQ5NDhjMzkwZmExMWRm
Ni4uYTFhODI3ZGYxZGQxZjE2MjI3YzEzZWM2ZWUzMDg0ZTlkMjYxZjQ1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzk1
LDcgKzEzOTUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lz
dHJhdGlvbnMoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAgIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKLSAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZh
aWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50
QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFpc0F1ZGlvVG9vbGJveENvcmVG
cmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29t
cG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGF1dG8gcmVnaXN0cmF0aW9ucyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>