<?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>227381</bug_id>
          
          <creation_ts>2021-06-24 17:32:26 -0700</creation_ts>
          <short_desc>REGRESSION (r279208): Windows build failing with errors in CoreMediaSoftLink</short_desc>
          <delta_ts>2021-06-25 10:13:19 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227250</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772505</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-06-24 17:32:26 -0700</bug_when>
    <thetext>The Windows build was broken by https://trac.webkit.org/changeset/279208/webkit
C:\cygwin\home\buildbot\worker\win10-debug\build\Source\WebCore\PAL\pal\cf\CoreMediaSoftLink.cpp(203,1): error C2061: syntax error: identifier &apos;CMClockRef&apos; [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\PAL\pal\PAL.vcxproj]
C:\cygwin\home\buildbot\worker\win10-debug\build\Source\WebCore\PAL\pal\cf\CoreMediaSoftLink.h(348,1): error C2061: syntax error: identifier &apos;CMClockRef&apos; (compiling source file C:\cygwin\home\buildbot\worker\win10-debug\build\Source\WebCore\PAL\pal\avfoundation\MediaTimeAVFoundation.cpp) [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\PAL\pal\PAL.vcxproj]
https://build.webkit.org/#/builders/56/builds/3037/steps/8/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772706</commentid>
    <comment_count>1</comment_count>
      <attachid>432279</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-06-25 09:19:41 -0700</bug_when>
    <thetext>Created attachment 432279
Revert patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772711</commentid>
    <comment_count>2</comment_count>
      <attachid>432281</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-06-25 09:37:08 -0700</bug_when>
    <thetext>Created attachment 432281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772721</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-25 10:12:19 -0700</bug_when>
    <thetext>Committed r279288 (239167@main): &lt;https://commits.webkit.org/239167@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432281.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772722</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-25 10:13:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/79784193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432279</attachid>
            <date>2021-06-25 09:19:41 -0700</date>
            <delta_ts>2021-06-25 09:42:13 -0700</delta_ts>
            <desc>Revert patch</desc>
            <filename>bug-227381-20210625091940.patch</filename>
            <type>text/plain</type>
            <size>298014</size>
            <attacher name="Ryan Haddad">ryanhaddad</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Mjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwMGNhNGU1MmY5Zjlm
MzFiNmU5NjlmNGFlMmEzOGZkMjA5YTM4Ni4uYjBkNDE0M2IyZDQxYTQ1NGI5Njg2ZGYwOWI3YzYy
NmZjODJkODc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTI1ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjc5MjA4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3MzgxCisKKyAgICAgICAgQnJva2UgdGhlIEFwcGxlIFdpbmRvd3MgYnVpbGQu
CisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJOb3QgYWxsIHVzZXMg
b2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5raW5nIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzkyMDgKKwogMjAyMS0wNi0yNSAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhi
b3hdIEltcHJvdmUgY29tcHV0YXRpb24gb2YgaW50cmluc2ljIHNpemVzIG9mIGZsZXggaXRlbXMg
d2l0aCBhc3BlY3QgcmF0aW8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDgxMWQ2ODY2YTM0MDc0YjNm
NDc0ZTQxNzNjZjQ3NzZmMDM1ODA5NmMuLjY0ZjRiNDA4OTE4NjZiMjhkZjk0NzRlZjA4MTkwYTIx
YzE0Y2MxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTI1
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjc5MjA4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MzgxCisKKyAgICAgICAgQnJva2UgdGhlIEFwcGxlIFdpbmRvd3Mg
YnVpbGQuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJOb3QgYWxs
IHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5raW5nIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAg
IGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzkyMDgKKwogMjAyMS0wNi0yMyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCBhbGwgdXNl
cyBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NDMxYzdmMzJjNDNkZjQ5ZTdjNzQwMzA3NjBlYjM1OWVmNWZlYTM5NC4uZWIxZTgwMjg0NzM2ZTBi
ZDM4MjAxZjkwODg2MTRiNDRiYTgyMGYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wNi0yNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KKworICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTIwOC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM4MQorCisgICAgICAgIEJyb2tlIHRoZSBBcHBsZSBX
aW5kb3dzIGJ1aWxkLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAi
Tm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZyIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAor
ICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjc5MjA4CisKIDIwMjEt
MDYtMjUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc5MjY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmlu
ZGV4IDA5YzJlYTMyOWMyYzBjYTZlZTZmN2JhM2EyYzQ0YWRmODM0OGU1ZjQuLjZhODIzZDYxYWQx
MDEwMzJiYmUxOTRhNjJiNWI2MTU2ZDIzY2FiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
QEAgLTUzLDYgKzUzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3Bh
Y2UgUEFMOworCiAjaWYgIVVTRShMSUJXRUJSVEMpCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBl
ZXJDb25uZWN0aW9uQmFja2VuZD4gY3JlYXRlTm9QZWVyQ29ubmVjdGlvbkJhY2tlbmQoUlRDUGVl
ckNvbm5lY3Rpb24mKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IDc0OTk0ZTJjNTEw
MGVjYWJhNjE1OTBmYjExODBhYTBiYzM3YjBkYjYuLjQwMGY5YjhkMTZiNTkzYjQ4NWUwMGM3Zjc4
ZjU5ZGU5OGRjMzdkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTU4LDYgKzU4LDcg
QEAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0Nv
bnRleHQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggZjFjMmFmMzNjNWZh
MmFiNmZjNTE2Njk5ODNmYTcwZTc2OTY0MDI4MC4uNWIxMzViMzlhNWEwYTFkODAxYmU2ODc4ZmJk
ZmY2NzY2YzJlOGFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtMzcsNiAr
MzcsOCBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUg
IkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gc3Ry
ZWFtRGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQpCkBA
IC02OSw3ICs3MSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlv
KEF1ZGlvQnVzJiBidXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJP
ZkZyYW1lcywgbV9jdXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3Rh
cnRUaW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5z
YW1wbGVSYXRlKCkpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFy
dFRpbWUpOwogICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5k
ZXggMzMzYWEyMjRjNzFhNzUwY2Q5YTBmNjlmNzgzZGQwMTU5NzUxMGFjNS4uNjdiNzhmNDZhNzgx
MTc4ODhmMDBkMDg5N2RiYTU3ZTdhYzUzODUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTI2LDQ2ICsyNiwyMCBAQAog
CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Nv
bXBvbmVudC5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgotI2lu
Y2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gv
QXVkaW9Gb3JtYXQuaD4KLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Vbml0Lmg+Ci0jaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CisKICNpbmNsdWRlIDx3dGYv
U29mdExpbmtpbmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQXVk
aW9Ub29sYm94KQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwg
QXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBC
b29sZWFuKiBvdXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91
dFNpemUsIG91dFdyaXRhYmxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9y
bWF0UHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0
IHZvaWQqIGluU3BlY2lmaWVyLCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0
UHJvcGVydHlEYXRhKSwgKGluUHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmll
ciwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0
YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQs
IGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwg
QXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBp
bkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBP
U1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0Nv
bnZlcnRlcikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJl
ZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSks
IChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Q
cm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVy
dHlJRCwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSks
IChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0
UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1
ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1l
cywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBv
dXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklu
cHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlckNv
bXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5JbnB1dERhdGFQcm9j
VXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVkaW9CdWZmZXJMaXN0
KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBvdXRQYWNrZXRE
ZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVByb2MsIGluSW5wdXRE
YXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRPdXRwdXREYXRhLCBv
dXRQYWNrZXREZXNjcmlwdGlvbikpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAoQXVkaW9Vbml0
IGNpKSwgKGNpKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkp
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b21wb25lbnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5j
ZSBpbkluc3RhbmNlKSwgKGluSW5zdGFuY2UpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAo
QXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29t
cG9uZW50LCBvdXROYW1lKSkKLQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNo
U2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lz
dHJhdGlvbnMpLCAob3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9v
bGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1
cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRp
b25zKSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVk
aW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2
b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0Zp
bGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXpl
RnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJ
RCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERh
dGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5j
LCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywg
KEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxl
R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBF
eHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5RGF0
YVNpemUsIHZvaWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0
eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwgT1NT
dGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiAqaW9OdW1iZXJG
cmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051bWJl
ckZyYW1lcywgaW9EYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0Zp
bGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJv
cGVydHlEYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQg
aW5GaWxlSUQsIEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1
ZGlvRmlsZSksIChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZU9wZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0
RXh0QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQotCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4
dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVk
aW9Db21wb25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQs
IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJ
bnN0YW5jZSkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVk
aW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRF
bGVtZW50IGluRWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGlu
VW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJ
bml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCBjb25zdCB2b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwg
aW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQogCiAjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29s
Ym94U29mdExpbmsuaAppbmRleCBkZGYxM2EwMjdhNDVhMjJiODM5OGQxMzVlOGUwYjNkZmM2ODU1
MmI3Li40OWUzMmUxNzk0MDM2M2I4NDk3NzQ0MzViZDIwOTVlNjRhYjQ4ODFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0yNiwx
MTQgKzI2LDI3IEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogCi0jaW5jbHVkZSA8Q29yZUF1
ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIHR5
cGVkZWYgVUludDMyIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRDsKIHR5cGVkZWYgVUludDMyIEF1
ZGlvRm9ybWF0UHJvcGVydHlJRDsKIHR5cGVkZWYgc3RydWN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247CiB0eXBlZGVmIHN0cnVjdCBPcGFx
dWVBdWRpb0NvbnZlcnRlciogQXVkaW9Db252ZXJ0ZXJSZWY7Ci10eXBlZGVmIHN0cnVjdCBBdWRp
b0J1ZmZlckxpc3QgQXVkaW9CdWZmZXJMaXN0OwotdHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvQ29u
dmVydGVyQ29tcGxleElucHV0RGF0YVByb2MpKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252
ZXJ0ZXIsCi0gICAgVUludDMyKiBpb051bWJlckRhdGFQYWNrZXRzLAotICAgIEF1ZGlvQnVmZmVy
TGlzdCogaW9EYXRhLAotICAgIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qKiBvdXREYXRh
UGFja2V0RGVzY3JpcHRpb24sCi0gICAgdm9pZCogaW5Vc2VyRGF0YSk7Ci0KLXR5cGVkZWYgc3Ry
dWN0IE9wYXF1ZUV4dEF1ZGlvRmlsZSogRXh0QXVkaW9GaWxlUmVmOwotdHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlQXVkaW9GaWxlSUQqIEF1ZGlvRmlsZUlEOwotdHlwZWRlZiBVSW50MzIgQXVkaW9GaWxl
VHlwZUlEOwotdHlwZWRlZiBVSW50MzIgRXh0QXVkaW9GaWxlUHJvcGVydHlJRDsKLXR5cGVkZWYg
T1NTdGF0dXMgKCpBdWRpb0ZpbGVfUmVhZFByb2MpKAotICAgIHZvaWQqIGluQ2xpZW50RGF0YSwK
LSAgICBTSW50NjQgaW5Qb3NpdGlvbiwKLSAgICBVSW50MzIgcmVxdWVzdENvdW50LAotICAgIHZv
aWQqIGJ1ZmZlciwKLSAgICBVSW50MzIqIGFjdHVhbENvdW50KTsKLXR5cGVkZWYgT1NTdGF0dXMg
KCpBdWRpb0ZpbGVfV3JpdGVQcm9jKSgKLSAgICB2b2lkKiBpbkNsaWVudERhdGEsCi0gICAgU0lu
dDY0IGluUG9zaXRpb24sCi0gICAgVUludDMyIHJlcXVlc3RDb3VudCwKLSAgICBjb25zdCB2b2lk
KiBidWZmZXIsCi0gICAgVUludDMyKiBhY3R1YWxDb3VudCk7Ci10eXBlZGVmIFNJbnQ2NCAoKkF1
ZGlvRmlsZV9HZXRTaXplUHJvYykoCi0gICAgdm9pZCogaW5DbGllbnREYXRhKTsKLXR5cGVkZWYg
T1NTdGF0dXMgKCpBdWRpb0ZpbGVfU2V0U2l6ZVByb2MpKAotICAgIHZvaWQqIGluQ2xpZW50RGF0
YSwKLSAgICBTSW50NjQgaW5TaXplKTsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29tcG9u
ZW50KiBBdWRpb0NvbXBvbmVudDsKLQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKGRlZmluZWQo
QVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpICYmIEFVRElPQ09NUE9ORU5UX05PQ0FS
Qk9OSU5TVEFOQ0VTKQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnRJbnN0YW5j
ZSogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKLSNlbHNlCi10eXBlZGVmIHN0cnVjdCBDb21wb25l
bnRJbnN0YW5jZVJlY29yZCogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKLSNlbmRpZgotdHlwZWRl
ZiBBdWRpb0NvbXBvbmVudEluc3RhbmNlIEF1ZGlvVW5pdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQXVk
aW9Db21wb25lbnREZXNjcmlwdGlvbiBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uOwotdHlwZWRl
ZiBVSW50MzIgQXVkaW9Vbml0UHJvcGVydHlJRDsKLXR5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFNj
b3BlOwotdHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0RWxlbWVudDsKIAogU09GVF9MSU5LX0ZSQU1F
V09SS19GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94KQogU09GVF9MSU5LX0ZSQU1FV09SS19G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZv
LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29u
dmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogb3V0U2l6ZSwgQm9vbGVhbiog
b3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBvdXRTaXplLCBv
dXRXcml0YWJsZSkpCi0jZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvIHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwg
QXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBpb1Byb3BlcnR5
RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblBy
b3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUg
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1
ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRB
dWRpb0NvbnZlcnRlcikpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyTmV3IHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb0NvbnZlcnRlck5ldwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRp
b0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyKSwgKGluQXVkaW9Db252ZXJ0ZXIpKQotI2Rl
ZmluZSBBdWRpb0NvbnZlcnRlckRpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29u
dmVydGVyRGlzcG9zZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVy
dHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURh
dGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUs
IGluUHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMy
IGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZpZXIsIFVJbnQzMiogaW9Qcm9w
ZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5Qcm9wZXJ0eUlELCBpblNw
ZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5
RGF0YSkpCiAjZGVmaW5lIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvRm9ybWF0R2V0UHJvcGVydHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBP
U1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51
bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9C
dWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENN
RnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi0jZGVmaW5lIEF1ZGlvQ29udmVy
dGVyQ29udmVydENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVy
dGVyQ29udmVydENvbXBsZXhCdWZmZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29t
cGxleElucHV0RGF0YVByb2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NV
c2VyRGF0YSwgVUludDMyKiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3Qq
IG91dE91dHB1dERhdGEsIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERl
c2NyaXB0aW9uKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERh
dGFQcm9jVXNlckRhdGEsIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91
dFBhY2tldERlc2NyaXB0aW9uKSkKLSNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1
ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZl
cgotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
T3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCi0jZGVmaW5l
IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVu
aXRTdGFydAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvT3V0cHV0VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKLSNk
ZWZpbmUgQXVkaW9PdXRwdXRVbml0U3RvcCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9PdXRw
dXRVbml0U3RvcAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKLSNkZWZpbmUgQXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50
SW5zdGFuY2VEaXNwb3NlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVu
dCBpbkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5h
bWUpKQotI2RlZmluZSBBdWRpb0NvbXBvbmVudENvcHlOYW1lIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbXBvbmVudENvcHlOYW1lCi0KIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25lbnRGZXRjaFNlcnZl
clJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBvdXRCdW5kbGVSZWdpc3RyYXRp
b25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRpb0NvbXBvbmVudEZl
dGNoU2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENvcmVBdWRpb0NvbXBv
bmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2Vy
dmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRp
b25zKSwgKGluQnVuZGxlUmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50QXBw
bHlTZXJ2ZXJSZWdpc3RyYXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9u
ZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0Zp
bGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCi0jZGVmaW5lIEF1ZGlvRmlsZUNsb3Nl
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVDbG9zZQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tz
LCBPU1N0YXR1cywgKHZvaWQqIGluQ2xpZW50RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVh
ZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXpl
UHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywg
QXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJRCogb3V0QXVkaW9GaWxl
KSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMs
IGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50LCBvdXRBdWRpb0ZpbGUpKQotI2RlZmluZSBB
dWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxl
T3BlbldpdGhDYWxsYmFja3MKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJl
ZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi0jZGVmaW5lIEV4dEF1ZGlvRmls
ZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZURpc3Bvc2UKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVH
ZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4
dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRh
U2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLSNkZWZpbmUgRXh0QXVk
aW9GaWxlR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZUdldFBy
b3BlcnR5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUsIFVJbnQzMiogaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKSwgKGlu
RXh0QXVkaW9GaWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKLSNkZWZpbmUgRXh0QXVkaW9G
aWxlUmVhZCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlUmVhZAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVk
aW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUs
IGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQotI2RlZmluZSBFeHRBdWRp
b0ZpbGVTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlU2V0UHJv
cGVydHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxl
SUQsIEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmls
ZSksIChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotI2RlZmluZSBF
eHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlv
RmlsZVdyYXBBdWRpb0ZpbGVJRAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5V
UkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRp
b0ZpbGUpKQotI2RlZmluZSBFeHRBdWRpb0ZpbGVPcGVuVVJMIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9FeHRBdWRpb0ZpbGVPcGVuVVJMCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwg
KEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0
aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCi0jZGVmaW5lIEF1ZGlvQ29tcG9u
ZW50RmluZE5leHQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50RmluZE5leHQK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50
LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0
SW5zdGFuY2UpKQotI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3IHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3Ci1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1Vu
aXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9pZCogb3V0RGF0
YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50
LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLSNkZWZpbmUgQXVkaW9Vbml0R2V0UHJvcGVydHkgc29m
dExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdEdldFByb3BlcnR5Ci1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCi0jZGVmaW5lIEF1ZGlvVW5pdElu
aXRpYWxpemUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdEluaXRpYWxpemUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCBjb25zdCB2b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwg
aW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQotI2RlZmluZSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0U2V0UHJvcGVydHkK
LQogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IGRmOTg3Y2Y3ODBmOWQ0OWU4ZDUwZTFh
ZWEzZjZhOWRjYjBkYTQwMGYuLmMxNDM5MmJhMmM5MTQyZDUxYjQ3NGU3ZDI0NDgwYjk3MTlmOGE0
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
Y3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlIDxDb3JlTWVkaWEvQ01CdWZmZXJRdWV1ZS5oPgog
I2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KICNlbmRpZgogCkBAIC00OCw4ICs0Nyw2
IEBAIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMs
IChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwg
c2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwg
b2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbiksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVm
ZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRh
Qnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMsIENNQmxvY2tCdWZmZXJS
ZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIHNpemVf
dCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1ZmZlciwgb2Zmc2V0SW50
b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNz
dXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAo
dGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9T
U3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVf
dCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRh
UG9pbnRlck91dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFs
TGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlw
dGlvbkdldEV4dGVuc2lvbnMsIENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwg
Q0ZUeXBlSUQsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyLCBDTUJsb2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVm
KSwgUEFMX0VYUE9SVCkKQEAgLTEwNyw5ICsxMDQsOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyLCBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNl
bnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRl
ciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ss
IENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0LCBVSW50MzIgZmxh
Z3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0LCBm
bGFncyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lciwg
T1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxp
c3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3Rp
ZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3RlbmVyLCBjYWxsYmFj
aywgbm90aWZpY2F0aW9uLCBvYmplY3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJl
ZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJl
YWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBD
TVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVm
ZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtl
RGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9u
LCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwg
bnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCksIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNi
dWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRl
bUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5n
QXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1w
bGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6
ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJl
ZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVt
U2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNh
bXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29w
eU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBs
ZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9y
LCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5
LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1h
Z2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENN
U2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1h
dERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFk
eSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGlt
aW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1h
Z2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5
UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wLCBDTVRpbWUs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTE5LDE0
ICsxMTYsMTQgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0UHJlc2UKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dER1cmF0aW9uLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1Ziwg
Y3JlYXRlSWZOZWNlc3NhcnkpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRl
bUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdBcnJh
eU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0
aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWlu
Z0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01JdGVt
Q291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVu
dHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMy
X3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3
VGltZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxT
YW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNR2V0QXR0YWNobWVudCwgQ0ZUeXBlUmVmLCAoQ01BdHRhY2htZW50
QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDTUF0dGFjaG1lbnRNb2RlKiBhdHRh
Y2htZW50TW9kZU91dCksICh0YXJnZXQsIGtleSwgYXR0YWNobWVudE1vZGVPdXQpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJn
ZXQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlLCBDTUF0dGFjaG1lbnRNb2RlIGF0
dGFjaG1lbnRNb2RlKSwgKHRhcmdldCwga2V5LCB2YWx1ZSwgYXR0YWNobWVudE1vZGUpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJlclJl
ZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWVi
YXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAq
dGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0UmF0ZSwgRmxvYXQ2
NCwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
VGltZWJhc2VTZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJhc2UsIEZsb2F0
NjQgcmF0ZSksICh0aW1lYmFzZSwgcmF0ZSksIFBBTF9FWFBPUlQpCkBAIC0xNDcsMTMgKzE0NCwx
MSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1ZXVlLCBPU1N0
YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZlciksIChxdWV1
ZSwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eSwgQm9vbGVhbiwg
KENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVy
UXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZm
ZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIsIE9T
U3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxs
YmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlv
biBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmln
Z2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlvbiwgdGltZSwg
dHJpZ2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdn
ZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
LCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCogdHJp
Z2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRpdGlv
biwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tl
biogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJSZWZj
b24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91dCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01C
dWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwg
UEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIENG
U3RyaW5nUmVmLCBQQUxfRVhQT1JUKQpAQCAtMTczLDQyICsxNjgsNDAgQEAgU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVk
aWFfa0NNU2FtcGwKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFu
Z2VkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9U
aW1lSnVtcGVkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
Q3JlYXRlV2l0aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVy
ZUFsbG9jYXRvciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxv
Y2F0b3JSZWYgYmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1Nv
dXJjZSogY3VzdG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRh
TGVuZ3RoLCBDTUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2Nr
QnVmZmVyT3V0KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3Ro
LCBibG9ja0FsbG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxl
bmd0aCwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1
ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFs
bG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5
QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJP
dXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZl
ckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFn
cywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9C
dWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJM
aXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVm
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3Is
IHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVm
LCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1
ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0
ZW1Db3VudCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBs
ZVJhbmdlLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNh
bXBsZVJhbmdlLCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVNpemVBcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3Vu
dCBzaXplQXJyYXlFbnRyaWVzLCBzaXplX3QqIHNpemVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNp
emVBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFy
cmF5T3V0LCBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29s
ZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRp
bWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVz
Y3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFC
dWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3Jp
cHRpb25zLCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBw
YWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAo
YWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNhbXBsZUJ1ZmZlck91dCks
IFBBTF9FWFBPUlQpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZm
ZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVm
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3Is
IHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3QpLCAoc2J1
ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZl
ckxpc3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9u
VGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRw
dXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0
YW1wKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tC
dWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFr
ZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFS
ZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01J
dGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFj
a2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNC
dWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlD
YWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBs
ZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywg
Y29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxv
Y2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVm
IGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENN
SXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01T
YW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIs
IGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBz
YW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwg
c2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRp
b0NoYW5uZWxMYXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9p
ZCogbWFnaWNDb29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBs
YXlvdXQsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2Mp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBj
b25zdCB2b2lkKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNp
emVPdXQpLCAoZGVzYywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRl
bSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBj
b25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01D
bG9ja1JlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGltZSwgQ01UaW1l
LCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jayksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZl
cnRIb3N0VGltZVRvU3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhv
c3RUaW1lKSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJV
RkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVm
LCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9j
a0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0
dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJS
ZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJl
ZmNvbiksIHZvaWQgKnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVND
QVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFu
ZGxlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiwg
Q0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9j
YXRvciwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGltZSwgKENN
VGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGlt
ZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVh
biwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSksIChyYW5nZSwgdGltZSksIFBBTF9F
WFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lLCBQQUxfRVhQT1JUKQorI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBQTEFURk9STShNQUMpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZT
dHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRl
dmljZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCos
IChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENNQmFzZVZUYWJsZSosIChDTUJhc2VPYmpl
Y3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRP
YmplY3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBD
TUJhc2VWVGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RS
ZWYqIGJhc2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3Qp
LCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oCmluZGV4IDk4Y2NiNzlhYTRkOTNlNTgzZmU1NjM1N2E2MTljYjgxN2JlMGNjNjcuLjc1
MjViOTE5YzY5NWQzNjA5N2IxMTEwMzJiOTRmNzQ3ZjE1MWYxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKQEAgLTUxLDEwICs1MSw2IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aCwgc2l6ZV90CiAjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3Ro
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJSZXBsYWNl
RGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBDTUJsb2NrQnVm
ZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBz
aXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZmZXIsIG9mZnNl
dEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCkpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJSZXBs
YWNlRGF0YUJ5dGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFC
eXRlcwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxv
Y2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRo
ZUJ1ZmZlciksICh0aGVCdWZmZXIpKQotI2RlZmluZSBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tN
ZW1vcnkgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwg
c2l6ZV90IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExl
bmd0aE91dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGhBdE9mZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSkKLSNkZWZpbmUg
Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVm
ZmVyR2V0RGF0YVBvaW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVm
LCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNj
cmlwdGlvbkdldEV4dGVuc2lvbnMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkp
CkBAIC02Nyw4ICs2Myw2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sCiAjZGVmaW5lIENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeSwgQm9vbGVhbiwgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyRGF0YUlz
UmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1
ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdF
bnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJy
YXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRh
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXpl
QXJyYXksIHNhbXBsZUJ1ZmZlck91dCkpCi0jZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUs
IENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRp
bmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSkKICNkZWZpbmUg
Q01UaW1lQ29udmVydFNjYWxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb252ZXJ0U2NhbGUK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVBZGQs
IENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCkBA
IC05MywyOSArODcsMjkgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZVJhbmdlRXF1YWwsIEJvb2xlYW4sIChDTVRpbWUKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zLCBDRlN0cmluZ1JlZikKICNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNp
b25BdG9tcyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBs
ZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJ
X1AzLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1h
cmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX0RDSV9QMygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZv
cm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdldF9Db3JlTWVkaWFfa0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19EQ0lfUDMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdS
ZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAy
MCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1Jf
MjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
SVRVX1JfMjAyMCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUsIENGU3RyaW5nUmVm
KQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1KCkKKyNk
ZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8sIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKCkKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
RnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlh
X2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwKCkKKyNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAy
MCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIx
MDBfSExHIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X0lUVV9SXzIxMDBfSExHKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHKCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fTGluZWFyLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NN
UFRFX1NUXzIwODRfUFEsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKKyNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVf
U1RfMjA4NF9QUSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xLCBD
RlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X1NNUFRFX1NUXzQyOF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQy
OF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xKCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbllD
YkNyTWF0cml4X0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZv
cm1hdCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3Rl
ZENvbnRlbnRPcmlnaW5hbEZvcm1hdCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX3NSR0IsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9zUkdCKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fc1JHQigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZikKICNkZWZp
bmUga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kIGdldF9Db3JlTWVkaWFfa0NNVGV4dE1h
cmt1cEFsaWdubWVudFR5cGVfRW5kKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5n
UmVmKQpAQCAtMTU3LDcgKzE1MSw3IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQsCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENN
VGltZSkKICNkZWZpbmUga0NNVGltZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lSW52YWxp
ZCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGlt
ZVplcm8sIENNVGltZSkKLSNkZWZpbmUga0NNVGltZVplcm8gZ2V0X0NvcmVNZWRpYV9rQ01UaW1l
WmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVy
bygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGlt
ZVBvc2l0aXZlSW5maW5pdHksIENNVGltZSkKICNkZWZpbmUga0NNVGltZVBvc2l0aXZlSW5maW5p
dHkgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUG9zaXRpdmVJbmZpbml0eSgpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01U
aW1lUmFuZ2UpOwpAQCAtMTc1LDEzICsxNjksMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIsIE8K
ICNkZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciBzb2Z0TGlua19Db3JlTWVk
aWFfQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVu
ZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lk
KiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYg
bm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2Fs
bGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSkKICNkZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZW1vdmVMaXN0ZW5lciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVMaXN0ZW5lcgotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01T
YW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2
b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVT
aXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1
ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZj
b24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJh
eSwgc0J1Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNh
bXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZv
aWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXks
IENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QgKnNhbXBsZVNp
emVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5
LCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxl
QnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0
b3IsIHNidWYsIHNidWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01T
YW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdF
bnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTVNh
bXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCkpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2Ft
cGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdB
cnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2lu
YWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNv
cHlPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBz
YW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1h
Z2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2Ft
cGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKICNkZWZp
bmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVklt
YWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZm
ZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtl
RGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyCkBAIC0xOTksNyArMTkzLDcgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW8KICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRp
b25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJl
c2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5LCBDRkFycmF5
UmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBjcmVhdGVJZk5lY2Vzc2FyeSks
IChzYnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVBdHRhY2htZW50c0FycmF5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRy
aWVzLCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCogdGlt
aW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGlt
aW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVt
Q291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8gKnRpbWluZ0FycmF5
T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRp
bWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRl
ZE91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwg
KHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUKQEAgLTIxMSw3ICsy
MDUsNyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
ZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZQogI2RlZmluZSBDTVNldEF0dGFjaG1lbnQg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2V0QXR0YWNobWVudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0
YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSkp
CiAjZGVmaW5lIENNUmVtb3ZlQXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01SZW1vdmVB
dHRhY2htZW50Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWVi
YXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0
aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9j
a1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9y
LCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpKQogI2RlZmluZSBDTVRpbWViYXNlQ3JlYXRlV2l0
aE1hc3RlckNsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3Rl
ckNsb2NrCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lYmFzZUdldFRpbWUsIENNVGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJh
c2UpKQogI2RlZmluZSBDTVRpbWViYXNlR2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
YmFzZUdldFRpbWUKQEAgLTIzMyw3ICsyMjcsNyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUbwog
I2RlZmluZSBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmly
ZUltbWVkaWF0ZWx5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lQ29weUFzRGljdGlvbmFyeSwgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01UaW1lIHRpbWUs
IENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksICh0aW1lLCBhbGxvY2F0b3IpKQogI2RlZmluZSBD
TVRpbWVDb3B5QXNEaWN0aW9uYXJ5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb3B5QXNEaWN0
aW9uYXJ5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZl
ciwgb3V0RGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVy
LCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgKm91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFn
ZUJ1ZmZlciwgb3V0RGVzYykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25DcmVhdGVGb3JJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMsIENNVmlk
ZW9EaW1lbnNpb25zLCAoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRGVzYyksICh2
aWRlb0Rlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
CkBAIC0yNTUsMTggKzI0OSwxNSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZQogI2RlZmluZSBD
TUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVl
dWVHZXRCdWZmZXJDb3VudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVyUXVl
dWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZm
ZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVu
c29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCkpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxs
YmFja3MgKiwgKCksICgpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0Q2Fs
bGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVT
dGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5l
IENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXIsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNvbmRpdGlvbiBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRv
a2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlv
biwgdGltZSwgdHJpZ2dlclRva2VuT3V0KSkKLSNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
SW5zdGFsbFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1
ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFj
aywgdm9pZCogdHJpZ2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJp
Z2dlckNvbmRpdGlvbiwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ss
IHRyaWdnZXJSZWZjb24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdn
ZXJUb2tlbk91dCkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRl
Z2VyVGhyZXNob2xkIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdn
ZXJXaXRoSW50ZWdlclRocmVzaG9sZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVm
ZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlTWFya0Vu
ZE9mRGF0YSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
R2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQot
I2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQnVm
ZmVyUXVldWVHZXREdXJhdGlvbgorCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSBnZXRfQ29y
ZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5
X05vdFN5bmMsIENGU3RyaW5nUmVmKQpAQCAtMzA0LDQ4ICsyOTUsNDYgQEAgU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxl
QnVmZmVyQXR0YWMKIAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBjb25zdCB2b2lkKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNpemVPdXQpLCAoZGVz
Yywgc2l6ZU91dCkpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29v
a2llIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nv
b2tpZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRT
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
aywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1l
bW9yeUJsb2NrLCBzaXplX3QgYmxvY2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2Nh
dG9yLCBjb25zdCBDTUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291
cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZl
ckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1
cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1
c3RvbUJsb2NrU291cmNlLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1
ZmZlck91dCkpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgc29m
dExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlv
QnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9j
YXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxs
b2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQp
LCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxp
c3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywg
YmxvY2tCdWZmZXJPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tC
dWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJM
aXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3Qg
YnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxs
b2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVm
ZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwg
YnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZN
ZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxv
Y2tCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBsZVJhbmdlLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNhbXBsZVJhbmdl
LCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFu
Z2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJh
bmdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQs
IENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJh
eUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCkpCiAjZGVm
aW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZl
ck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VE
YXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24s
IENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVh
bVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVm
KiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJl
YWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1T
YW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwg
Q01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29u
c3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNh
bXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFk
eSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNj
cmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0
KSkKICNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlv
bnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0
RGVzY3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVk
aW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVz
Y3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpKQotI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRE
YXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJl
ZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJM
aXN0KiBidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlB
bGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9y
UmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0
b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3QpLCAo
c2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1
ZmZlckxpc3QpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJG
cm9tQXVkaW9CdWZmZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVh
ZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5Ci1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01UaW1lIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzYnVmLCBvdXRwdXRQ
cmVzZW50YXRpb25UaW1lU3RhbXApKQotI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5uZWxMYXlvdXQq
IGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29raWUs
IENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYq
IG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQsIG1hZ2ljQ29v
a2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpKQogI2RlZmluZSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgp
KQotI2RlZmluZSBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jawogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRpbWUsIChD
TUNsb2NrUmVmIGNsb2NrKSwgKGNsb2NrKSkKLSNkZWZpbmUgQ01DbG9ja0dldFRpbWUgc29mdExp
bmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENNQ2xvY2tHZXRUaW1lICBzb2Z0
TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cywg
dWludDY0X3QsIChDTVRpbWUgaG9zdFRpbWUpLCAoaG9zdFRpbWUpKQogI2RlZmluZSBDTUNsb2Nr
Q29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cyBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0Nv
bnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNB
TExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxs
YmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxl
QnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBj
YWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRl
eCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24p
KQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNo
U2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheQ01T
QU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0
ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FNUExFQlVG
RkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQp
KSwgKHNidWYsIGhhbmRsZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVh
Y2hTYW1wbGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFj
aFNhbXBsZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxv
Y2F0b3IsIGNsb2NrT3V0KSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xvY2tPdXQp
LCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCiAjZGVmaW5lIENNQXVkaW9DbG9ja0NyZWF0ZSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01BdWRpb0Nsb2NrQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lTWF4aW11
bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWF4aW11bQpAQCAtMzU3LDE2ICszNDYsMTggQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdl
Q29udGFpbnNUaW1lLCBCb29sZWFuLAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJ
bmRlZmluaXRlIGdldF9Db3JlTWVkaWFfa0NNVGltZUluZGVmaW5pdGUoKQogCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKwogI2lmIFBMQVRGT1JNKE1BQykKIAotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSkKLSNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYg
KmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCisjZGVmaW5lIENN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VD
bG9ja0NyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBi
YXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVk
U3RvcmFnZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UK
KyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3Jl
TWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENN
QmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkK
LSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VP
YmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIFBBTDo6c29mdExp
bmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldFZUYWJsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBD
TUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxv
Y2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNRGVyaXZlZE9i
amVjdENyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCisjZGVm
aW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2
ZWRPYmplY3RDcmVhdGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA3MmY0
MTE0ZWVhYWRmNjIwY2UzNzAyMzA5OTQ3NjZiNDhjNzk1YjE2Li5mNTFjYmJiMTY2NjNiODFlY2Uy
MDFlOGFkNTcyNWMyNTEyMWY1NmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzQsMTkgKzM0LDEzIEBAIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmluZ1Jl
ZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgQ0ZTdHJp
bmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCi1TT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCi1TT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9Qcm9maWxlTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKLVNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxf
SDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQotU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hf
QXV0b0xldmVsLCBDRlN0cmluZ1JlZikKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZT
dHJpbmdSZWYpCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29s
Ym94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNU
eXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRp
Y3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBj
b21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1
dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Np
b25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQs
IGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmli
dXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxs
YmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRl
RnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNVGlt
ZSBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNlc3Npb24sIGNvbXBsZXRl
VW50aWxQcmVzZW50YXRpb25UaW1lU3RhbXApKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUsIE9T
U3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGR1cmF0
aW9uLCBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VGcmFtZVJl
ZmNvbiwgVlRFbmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBpbWFnZUJ1
ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0aWVzLCBz
b3VyY2VGcmFtZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0Vu
Y29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwg
KHNlc3Npb24pKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xi
b3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCiAKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJlc3RyaWN0
VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9ucyByZXN0
cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNUeXBlTGlz
dCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9uRmxhZ3Ms
IGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCBQQUxfRVhQT1JU
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5r
LmgKaW5kZXggNjBhOGZmMzc0MmQ0OTYxMDdiMTRmYWM3YzQxMzczYWJjNmQ2OTRhMi4uZWMwZmYw
MWNjMWZlMWEyMTA2Y2M3YTdmMDJlOGM4NGI3ZGQwZGE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaApAQCAtMzcsMjAgKzM3LDkgQEAg
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfTWF4S2UKICNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbigpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUmVhbFRpbWUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1JlYWxUaW1lKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmlu
Z1JlZikKLSNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSBn
ZXRfVmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUo
KQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9r
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCgpCiAKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVjaWZp
Y2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5nUmVm
KQogI2RlZmluZSBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNj
ZWxlcmF0ZWRWaWRlb0VuY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIoKQotU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRv
TGV2ZWwsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1
dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xl
dmVsKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZU
UHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwoKQotCiAKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGlu
dDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVm
IGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJB
dHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21w
cmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFj
a1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCks
IChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRp
b24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3Is
IG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9u
T3V0KSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCkBAIC02MCw4ICs0OSw2IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXBy
ZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNz
aW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogI2RlZmluZSBWVENvbXByZXNzaW9u
U2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21w
cmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRh
dGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQot
I2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUgc29mdExpbmtfVmlkZW9Ub29s
Ym94X1ZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZQogCiBTT0ZUX0xJTktfRlVOQ1RJT05f
TUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVj
b2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25G
bGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRl
bUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2Vk
Q29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCBk
NDQ0OTMxZWZkOGFlNTU2MGI4YzFiMjdmMjJhZDkyZTc5MzQ4NWUwLi42NzRlNjQ5NGEwYThiNTk2
OTAzZTNjYTVjZmI2YTIzZGRhYzM2MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtNDEsMTAgKzQxLDYgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBN
ZWRpYVRvb2xib3gsIE1UX0dldFNob3UKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmlj
YXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQp
CiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwKSwgKHRhcCkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3Mg
KmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVy
RnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0
LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBj
b25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmKiB0
YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpLCBQQUxfRVhQT1JU
KQotCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZv
cm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
aAppbmRleCAyNTVhNzY3YjU1ZWVmNGU4ZWVkMTlkZWYyOTcxNzg0OTBiZTkzZjE5Li5jN2RlMDJj
ZTYzYzJjMzAwZDk2NTRmNjY3MGJmYzEyNTAyMjkzNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCkBAIC00MSwxMyArNDEs
NiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9v
bGJveCwgTVRfR2V0U2hvdWxkUGxheUhEUlZpZAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlvbl9T
aG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1JlZikKIAotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKLSNk
ZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlIHNvZnRMaW5rX01lZGlhVG9vbGJv
eF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQg
bnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENN
SXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxp
c3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKLSNkZWZp
bmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyBzb2Z0TGlua19NZWRpYVRvb2xi
b3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbwotU09GVF9MSU5LX0ZVTkNUSU9O
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKLSNkZWZpbmUgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUgc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlCi0KICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UUGx1Z2luRm9ybWF0
UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggYzU2MmJlNzYzNWVhNmExNTg0MDgzM2FiYzJlMTkxMDEwY2MzMTc2Zi4uNTUyNGVl
YzU1ODdkMWU5MTcwZWY5ZjE0OTJjYzA3ZGUyNWM4MGVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0zNTAsNiArMzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKERvY3VtZW50KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
K3VzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogCiBz
dGF0aWMgY29uc3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9uRGVwdGggPSAyMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggODUwY2RlNzI3MGYwZDYx
ZGMyNTQ0OWMxZGE4OWE0OWExYWY0MzY4Yi4uOWY1NTYwODAyYmFjMzJiYjQ5OWVjOTdjOWIwYWUz
MmUxMWM2MjFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
QEAgLTEwOSw2ICsxMDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChIVE1MQ2FudmFzRWxlbWVudCk7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaGVzZSB2YWx1ZXMgY29tZSBmcm9t
IHRoZSBXaGF0V0cvVzNDIEhUTUwgc3BlYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCmluZGV4IDZhYzJkZmI5ZGQ2NGYwZjNmYzBkMGVmNWZjNTExNTkxZDI1ZjBiYWQu
LmUwNTE2YTRhZjI1ZDJiNWE0ZDQ5NGNlNDM1MDk2ODQxNDFiNjdkOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTkwLDYgKzE5MCw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNZWRpYUVsZW1l
bnQpOwogCit1c2luZyBuYW1lc3BhY2UgUEFMOworCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTZWVr
UmVwZWF0RGVsYXkgeyAxMDBfbXMgfTsKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1RpbWUgPSAw
LjI7CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTY2FuUmVwZWF0RGVsYXkgeyAxLjVfcyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVh
ZGVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuY3BwCmluZGV4IDVkNTZiOWVlMWEwZDNkNjdhNzljMzA3NjFkMTM4MTVk
N2MwNjQ0Y2UuLmZkM2QzZTAzYTAzZjA4MTA1MjEyODZiZDAyNmE5MTAxMTFkM2NjODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRl
ckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0ZpbGVSZWFkZXJDb2NvYS5jcHAKQEAgLTM2LDEzICszNiwyNSBAQAogI2luY2x1ZGUgIkF1ZGlv
RmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2luY2x1ZGUgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRp
Yy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCitTT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlv
RmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVP
cGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmls
ZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBB
dWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9j
IGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxl
SUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5j
LCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9G
aWxlKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3Rh
dHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkK
K1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJ
RCBpblByb3BlcnR5SUQsIFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9w
ZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFT
aXplLCBvdXRQcm9wZXJ0eURhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9G
aWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQz
MiAqaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4
dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1
ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblBy
b3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0
YXR1cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVk
aW9GaWxlUmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0
RXh0QXVkaW9GaWxlKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5V
UkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVk
aW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBBdWRpb0J1ZmZlckxpc3QqIHRy
eUNyZWF0ZUF1ZGlvQnVmZmVyTGlzdChzaXplX3QgbnVtYmVyT2ZCdWZmZXJzKQpAQCAtOTEsMjIg
KzEwMywyMiBAQCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0YVNp
emUoZGF0YVNpemUpCiB7Ci0gICAgaWYgKFBBTDo6QXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mo
dGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0ZpbGVJRCkgIT0g
bm9FcnIpCisgICAgaWYgKEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9j
LCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9h
dWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCisgICAgaWYg
KEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0
QXVkaW9GaWxlUmVmKSAhPSBub0VycikKICAgICAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwog
fQogCiBBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmIChtX2V4
dEF1ZGlvRmlsZVJlZikKLSAgICAgICAgUEFMOjpFeHRBdWRpb0ZpbGVEaXNwb3NlKG1fZXh0QXVk
aW9GaWxlUmVmKTsKKyAgICAgICAgRXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJl
Zik7CiAKICAgICBtX2V4dEF1ZGlvRmlsZVJlZiA9IDA7CiAKICAgICBpZiAobV9hdWRpb0ZpbGVJ
RCkKLSAgICAgICAgUEFMOjpBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsKKyAgICAgICAg
QXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CiAKICAgICBtX2F1ZGlvRmlsZUlEID0gMDsK
IH0KQEAgLTE0Myw3ICsxNTUsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6
Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAgICAgLy8gR2V0
IGZpbGUncyBkYXRhIGZvcm1hdAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZmlsZURhdGFG
b3JtYXQpOwotICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9G
aWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQsICZzaXplLCAmbV9m
aWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5
KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQs
ICZzaXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1D
aGFubmVsc1BlckZyYW1lOwpAQCAtMTUxLDcgKzE2Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVk
aW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8p
CiAgICAgLy8gTnVtYmVyIG9mIGZyYW1lcwogICAgIFNJbnQ2NCBudW1iZXJPZkZyYW1lczY0ID0g
MDsKICAgICBzaXplID0gc2l6ZW9mKG51bWJlck9mRnJhbWVzNjQpOwotICAgIGlmIChQQUw6OkV4
dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJv
cGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0Vy
ciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDApCisgICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3Bl
cnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZy
YW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1l
czY0IDw9IDApCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG91YmxlIGZpbGVTYW1w
bGVSYXRlID0gbV9maWxlRGF0YUZvcm1hdC5tU2FtcGxlUmF0ZTsKQEAgLTE3Myw3ICsxODUsNyBA
QCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBs
ZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIGlmIChzYW1wbGVSYXRlKQogICAgICAgICBtX2Ns
aWVudERhdGFGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOwogCi0gICAgaWYgKFBBTDo6
RXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQ
cm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKEV4dEF1ZGlvRmls
ZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xp
ZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2Ns
aWVudERhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IC8vIENoYW5nZSBudW1iZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRlCkBA
IC0yMzEsNyArMjQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0
ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIFJlYWQgZnJv
bSB0aGUgZmlsZSAob3IgaW4tbWVtb3J5IHZlcnNpb24pCiAgICAgVUludDMyIGZyYW1lc1RvUmVh
ZCA9IG51bWJlck9mRnJhbWVzOwotICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZVJlYWQobV9leHRB
dWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3QpICE9IG5vRXJyKSB7CisgICAg
aWYgKEV4dEF1ZGlvRmlsZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1
ZmZlckxpc3QpICE9IG5vRXJyKSB7CiAgICAgICAgIGRlc3Ryb3lBdWRpb0J1ZmZlckxpc3QoYnVm
ZmVyTGlzdCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2Nv
YS5oCmluZGV4IDBiYmJiYTI3ODU3ZDk3OWVjYzY4OGY4N2YwMzM5ZjY2NWVmNDI1MjkuLmI3Yjkx
NjNiNTZlMjZjMjljYWI4NGVlMjQ3NjllMjk3MTQxN2FmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
aApAQCAtMzEsMTIgKzMxLDEwIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaW5jbHVk
ZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1
ZGlvRmlsZS5oPgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotdXNpbmcgRXh0QXVkaW9GaWxlUmVmID0gc3RydWN0
IE9wYXF1ZUV4dEF1ZGlvRmlsZSo7Ci11c2luZyBBdWRpb0ZpbGVJRCA9IHN0cnVjdCBPcGFxdWVB
dWRpb0ZpbGVJRCo7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CkBA
IC02MCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgdm9pZCogbV9kYXRhID0geyBudWxs
cHRyIH07CiAgICAgc2l6ZV90IG1fZGF0YVNpemUgPSB7IDAgfTsKIAotICAgIEF1ZGlvRmlsZUlE
IG1fYXVkaW9GaWxlSUQgPSB7IG51bGxwdHIgfTsKKyAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmls
ZUlEID0geyAwIH07CiAgICAgRXh0QXVkaW9GaWxlUmVmIG1fZXh0QXVkaW9GaWxlUmVmID0geyBu
dWxscHRyIH07CiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9maWxlRGF0YUZv
cm1hdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKaW5kZXggMTQ4YjA1NWRiZWM4OTQzZWE1
YWFjNjhlNjg1OGRlN2QwYjgyMzEyMy4uNDc4NzUwNzJhNzg2ZWQ2ODZjMWQ0MDFlODJlNjI1OWNh
MjNjNTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKQEAgLTI4LDggKzI4LDYgQEAK
IAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb091dHB1dFVuaXRBZGFw
dG9yOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikK
QEAgLTQxLDEyICszOSwxMiBAQCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpBdWRpb091dHB1dFVu
aXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikKIEF1ZGlvT3V0cHV0VW5pdEFk
YXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKCkKIHsKICAgICBpZiAobV9vdXRwdXRVbml0
KQotICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5p
dCk7CisgICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5pdCk7
CiB9CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIHsKLSAgICBh
dXRvIHJlc3VsdCA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRVbml0KTsKKyAg
ICBhdXRvIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAgICAg
aWYgKHJlc3VsdCAhPSBub0VycikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJFUlJPUjogQXVkaW9P
dXRwdXRVbml0U3RhcnQoKSBjYWxsIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVsZCIsIHN0YXRp
Y19jYXN0PGxvbmc+KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01NCw3ICs1Miw3
IEBAIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIAogT1NTdGF0dXMg
QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3RvcCgpCiB7Ci0gICAgcmV0dXJuIFBBTDo6QXVkaW9P
dXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIHJldHVybiBBdWRpb091dHB1dFVuaXRT
dG9wKG1fb3V0cHV0VW5pdCk7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJMaXN0LmNwcAppbmRleCA0ZTkwNjRkMGM2ZTkzMDg5YWUwZWFhNmY5OThl
Y2Q2NTM3MzVkMWU3Li5mZGY2Nzc1N2QxYjQ3NzYwODA4YjEzZmI0MzRlNDBiM2RmZDMwZTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJW
ZWN0b3JNYXRoLmgiCiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+Ci0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTI3Myw3ICsyNzIsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3Qg
ZgogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGlucHV0Rm9ybWF0OwogICAgIFVJ
bnQzMiBwcm9wZXJ0eURhdGFTaXplID0gc2l6ZW9mKGlucHV0Rm9ybWF0KTsKLSAgICBQQUw6OkF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50
SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7
CisgICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0
Rm9ybWF0KTsKICAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBzb3VyY2UubUJ1ZmZlcnNbMF0ubURh
dGFCeXRlU2l6ZSAvIGlucHV0Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCk7CiAKICAgICBBdWRpb0Nv
bnZlcnRlckZyb21BQkxDb250ZXh0IGNvbnRleHQgeyBzb3VyY2UsIGZyYW1lQ291bnQsIGlucHV0
Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCB9OwpAQCAtMjgxLDcgKzI4MCw3IEBAIE9TU3RhdHVzIEF1
ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3Vy
Y2UsIHNpemVfdCBmCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBvdXRwdXRGb3JtYXQ7CiAgICAgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihvdXRw
dXRGb3JtYXQpOwotICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5
RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOworICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24s
ICZwcm9wZXJ0eURhdGFTaXplLCAmb3V0cHV0Rm9ybWF0KTsKIAogICAgIEFTU0VSVChDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24ob3V0cHV0Rm9ybWF0KS5udW1iZXJPZkNoYW5uZWxTdHJlYW1zKCkg
PT0gbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpOyArK2kpIHsKQEAgLTI5MSw3ICsyOTAs
NyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlv
QnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2VuZGlmCiAKICAgICBVSW50MzIgc2FtcGxl
c0NvbnZlcnRlZCA9IG1fc2FtcGxlQ2FwYWNpdHk7Ci0gICAgT1NTdGF0dXMgZXJyID0gUEFMOjpB
dWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJG
cm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0
LT5saXN0KCksIG51bGxwdHIpOworICAgIE9TU3RhdHVzIGVyciA9IEF1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywg
JmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0
cik7CiAgICAgaWYgKCFlcnIgfHwgZXJyID09IGtSYW5PdXRPZklucHV0RGF0YVN0YXR1cykgewog
ICAgICAgICBtX3NhbXBsZUNvdW50ID0gc2FtcGxlc0NvbnZlcnRlZDsKICAgICAgICAgcmV0dXJu
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggZDJiNWFjNDVmMzBmZDRhM2FmNTFiNDIw
ZGUzNzY0OWIxMTUxYzIyNy4uZTVlYzQ3Nzc4NTgxYTdhY2YwZTcyNTUzMzNmOWUyNjk0MWM0NzJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBSZWY8QXVkaW9TYW1wbGVE
YXRhU291cmNlPiBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShzaXplX3QgbWF4aW11bVNh
bXBsZUNvdW50LCBMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlciwgc2l6ZV90IHdhaXRUb1N0YXJ0
Rm9yUHVzaENvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKaW5kZXggMzBkZWIyZTRjNzQxZGY1NDg4
YjM4ZjVlZDU5ZWViZTVhMDI4OWJlYy4uODllY2VlZDYxY2IxOWJmZDdkNDIwYzc3OGFhYTEyMGFj
MzU2ZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
V2ViQXVkaW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJM
aXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogICAgIDogbV9ieXRl
c1BlckZyYW1lKGZvcm1hdC5ieXRlc1BlckZyYW1lKCkpCkBAIC0xMTUsNyArMTE2LDcgQEAgV2Vi
QXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBmb3JtYXQsIEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ01CbG9ja0J1ZmZl
clJlZiBidWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciA9PSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVy
LCBudWxscHRyLCBtX2Nhbm9uaWNhbExpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFs
bG9jYXRvclN5c3RlbURlZmF1bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBs
ZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZl
cikpCisgICAgaWYgKG5vRXJyID09IENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0
aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExp
c3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtD
RkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJM
aXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcikpCiAgICAgICAgIG1fYmxvY2tCdWZm
ZXIgPSBhZG9wdENGKGJ1ZmZlcik7CiAKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0
b3JJT1MuY3BwCmluZGV4IGY4OTEwN2ZmYjFjM2Y1M2JlMzE5YWEzODY4MTQ3NzRiYjRkMjdhNDcu
LjJlOTYzMGZiNjBmMjJiM2VlNTZkMjQyZDczMDQzNDg2Yjg3YjU2MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9T
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRV
bml0QWRhcHRvcklPUy5jcHAKQEAgLTMzLDcgKzMzLDE1IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgot
I2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2luY2x1ZGUgPHd0Zi9T
b2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKK1NPRlRf
TElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3Jp
cHRpb24gKmluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkKK1NPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25l
bnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgKm91dEluc3RhbmNlKSwgKGlu
Q29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1Vu
aXRBZGRQcm9wZXJ0eUxpc3RlbmVyLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlv
VW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0UHJvcGVydHlMaXN0ZW5lclByb2MgaW5Qcm9j
LCB2b2lkICppblByb2NVc2VyRGF0YSksIChpblVuaXQsIGluSUQsIGluUHJvYywgaW5Qcm9jVXNl
ckRhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9T
U3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRp
b1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9pZCAqb3V0
RGF0YSwgVUludDMyICppb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVt
ZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
VW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQor
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29w
ZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCAqaW5EYXRh
LCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwg
aW5EYXRhLCBpbkRhdGFTaXplKSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MCwxNSAr
NTgsMTUgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFy
ZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVm
YWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25l
bnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAg
PSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNvbXAgPSBBdWRp
b0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAg
IE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAm
bV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAg
IFVJbnQzMiBmbGFnID0gMTsKLSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5
KG1fb3V0cHV0VW5pdCwKKyAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsCiAgICAgICAgIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywKICAgICAg
ICAga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwKICAgICAgICAgMCwKQEAgLTY2LDIwICs3NCwyMCBA
QCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNh
bXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgICAgICBzaXplb2YoZmxhZykpOwogICAgIEFT
U0VSVCghcmVzdWx0KTsKIAotICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZSht
X291dHB1dFVuaXQpOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRV
bml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawog
ICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0g
aW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0
ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQs
IHNpemVvZihpbnB1dCkpOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0
cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1
bHQpOwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24gc3RyZWFtRm9ybWF0OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YoQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKTsKLSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEdldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZzaXplKTsKKyAg
ICByZXN1bHQgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQ
cm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikm
c3RyZWFtRm9ybWF0LCAmc2l6ZSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgY29uc3Rl
eHByIGludCBieXRlc1BlckZsb2F0ID0gc2l6ZW9mKEZsb2F0MzIpOwpAQCAtOTMsNyArMTAxLDcg
QEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVT
YW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVy
RnJhbWUgPSBudW1iZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1Bl
ckNoYW5uZWwgPSBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZv
cm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9
IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0
cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1h
dCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVz
dWx0KTsKIAogICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1
ZmZlclNpemUoa1ByZWZlcnJlZEJ1ZmZlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMu
Y3BwCmluZGV4IDcxNGNjZTg4NjI1NzUxODYxZDVlMmI4NTEzMTNhODlkMDQxMmVhY2IuLmM4ZWQz
ZWY3OGM4YzZhM2IxZTA3MGNiNDQwNTk2OWFkYTRhYzNkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRh
cHRvck1hYy5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAj
aW5jbHVkZSA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxwYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSwyMSAr
NDgsMjEgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFy
ZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVm
YWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25l
bnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAg
PSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNvbXAgPSBBdWRp
b0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAg
IE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAm
bV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAotICAg
IHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQpOworICAgIHJl
c3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKICAgICAvLyBTZXQgcmVuZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFj
a1N0cnVjdCBpbnB1dDsKICAgICBpbnB1dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5w
dXQuaW5wdXRQcm9jUmVmQ29uID0gdGhpczsKLSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxi
YWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwor
ICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAm
aW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNl
dCBzdHJlYW0gZm9ybWF0CkBAIC04MCw3ICs3OSw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRh
cHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVy
CiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFu
bmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBi
eXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291
dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29w
ZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAppbmRleCA3ODQ3NGQ4ZTVh
NWFjMDcwMzUzMzU5OTBjZGRmOGFmY2Q4MDU2MTk2Li5hNTMzMzJjZjdkYmQ2NDY2ZjQ0ZjU3NmQx
Y2Q3YWRlNzYxNTBhYTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0zMywxMSArMzMsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCit1c2luZyBuYW1lc3BhY2UgUEFMOworCiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlw
dGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9p
ZCogbWFnaWNDb29raWUpCiB7CiAgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51
bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwor
ICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXpl
LCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01MywxNCArNTUsMTQgQEAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3Jt
YXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZm
ZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRD
RihzYW1wbGVCdWZmZXIpOwogCi0gICAgZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyU2V0RGF0
YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGRhdGEpLmxpc3QoKSk7CisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJG
cm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NG
QWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5s
aXN0KCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDY0ZTMwYmMyOTNjYThm
OTM4ODQ4OGYxNDg4NTA2YzU3YmUwYTUxNWQuLjU3Y2YyOWQwZDc3ZTY3ODg5YmRjZWZkNDA1ODUx
MjllZDEyYTQ1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJD
b3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3Bh
Y2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRyYW5z
ZmVyQkdSQVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cikKIHsKQEAgLTg5LDcgKzkwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxl
PiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUKIHsKICAgICBB
U1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01T
YW1wbGVCdWZmZXJUeXBlKTsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwog
ICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEs
ICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
IHJldHVybmVkIG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggZGZmNGZhNGVk
ZjI2NGI0NTJiZjhkYTdhZmFlZjRjYmQ3YTAyN2IwMi4uOTgzOWIzNzBhNzEzYjdjMWQyM2Q4NDdm
YTg2NTA1ZDVhZTk3OWFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQpAQCAtNDYsMTMgKzQ2LDIyIEBACiAjaW1wb3J0IDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCi0jaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2EvTWVk
aWFUb29sYm94U29mdExpbmsuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gp
CitTT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKKworU09GVF9MSU5LKEF1ZGlvVG9v
bGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRp
b0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMs
IGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0
T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1
dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBp
blNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3Rp
bmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5T
b3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKKwor
U09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2
b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LKE1l
ZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMs
IChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywg
QXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxh
Z3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVt
YmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdz
T3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCitTT0ZUX0xJTktfTUFZX0ZBSUwo
TWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tz
ICpjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBSZWYgKnRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxh
Z3MsIHRhcE91dCkpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIFBB
TDsKIHN0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIGNsYXNz
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlPiB7CkBA
IC02NCw3ICs3Myw3IEBAIHB1YmxpYzoKIAogUmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFWUGxheWVySXRlbSAqaXRl
bSkKIHsKLSAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGUoKSkKKyAgICBpZiAoIWNhbkxvYWRNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9CkBAIC0xNDMsNyArMTUyLDcgQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBi
dXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1Byb2Nl
c3M7CiAKICAgICBpZiAobV9jb252ZXJ0ZXIpCi0gICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJD
b252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBt
X2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIEF1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0
LmdldCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMjE2
LDcgKzIyNSw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZU1peElm
TmVlZGVkKCkKICAgICB9OwogCiAgICAgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwID0gbnVs
bHB0cjsKLSAgICBPU1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOworICAgIE9TU3Rh
dHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgaWYgKHRhcCkKICAgICAgICAgICAgIENGUmVsZWFzZSh0YXApOwpAQCAtMjQ5LDE0ICsy
NTgsMTQgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6aW5pdENhbGxiYWNrKE1U
QXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgdm9pZCoKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQog
ewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFw
KSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2Uq
PihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAgICAgdGFwU3RvcmFnZS0+
ZGVyZWYoKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNh
bGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbWF4RnJhbWVz
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKnByb2Nlc3NpbmdGb3JtYXQpCiB7
CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19j
YXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXAp
KTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+
KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2Nr
ZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI2Nyw3ICsyNzYsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYgdGFwLCBDTQogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJl
Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogewogICAgIEFTU0VSVCh0YXAp
OwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4o
UEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFn
ZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+
bG9jayB9OwogCkBAIC0yNzgsNyArMjg3LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6dW5wcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogdm9p
ZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzc0NhbGxiYWNrKE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEZsYWdzIGZsYWdzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgQ01J
dGVtQ291bnQgKm51bWJlckZyYW1lc091dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxh
Z3NPdXQpCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9
IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExv
Y2tlciBsb2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTMwOCw3ICszMTcsNyBAQCB2
b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKENNSXRlbUNvdW50IG1heEZy
YW1lcywgY29uc3QgQXVkaW9TdHJlYQogCiAgICAgaWYgKCptX3RhcERlc2NyaXB0aW9uICE9ICpt
X291dHB1dERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUmVmIG91dENvbnZl
cnRlciA9IG51bGxwdHI7Ci0gICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcobV90YXBEZXNj
cmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENvbnZlcnRlcik7
CisgICAgICAgIEF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0
cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRl
ciA9IG91dENvbnZlcnRlcjsKICAgICB9CiAKQEAgLTM0OCw3ICszNTcsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCwgQ01JdGVtQ291bgogICAgIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7CiAgICAg
Q01UaW1lUmFuZ2UgcmFuZ2VPdXQ7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxp
c3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91dCwgJml0ZW1Db3VudCk7CisgICAgT1NTdGF0dXMg
c3RhdHVzID0gTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9m
RnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQp
OwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIWl0ZW1Db3VudCkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA1MzI5ZjFkOWQzYWVhN2M1NGQzMzY2YzMy
YWQxYTYwMzhhNzllYjJhLi4zMDViM2QyN2UzNDJmOTg3MjExMmYxMTc0YzE0ZmY0ZjNjNjA4NTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIzMiw2ICsyMzIsNyBAQCBzdHJ1Y3QgTG9n
QXJndW1lbnQ8QVZQbGF5ZXJUaW1lQ29udHJvbFN0YXR1cz4gewogfTsgLy8gbmFtZXNwYWNlIFdU
RgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMg
TlNBcnJheSAqYXNzZXRNZXRhZGF0YUtleU5hbWVzKCk7CiBzdGF0aWMgTlNBcnJheSAqaXRlbUtW
T1Byb3BlcnRpZXMoKTsKQEAgLTU3MSw2ICs1NzIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigp
CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVS
KTsKIAogICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5lcmF0b3IpCkBAIC01ODAsOCAr
NTgyLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJ
bWFnZUdlbmVyYXRvcigpCiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVy
ZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNm
b3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107Cisg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9y
ZTprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVk
VGltZVRvbGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAt
NjY5LDcgKzY3MSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpnZXRTdGFydERhdGUoKSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0dXJu
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFBB
TDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7
CisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gQ01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0
ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vjb25k
IG9mZnNldCBlcnJvciB3aGVuIHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6OmNy
ZWF0ZVdpdGhEb3VibGUocm91bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg3LDcgKzEw
ODksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
UGxheWVyKCkKIAogICAgIEFTU0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBhdXRv
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZl
ciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpD
TVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxv
Y2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKKyAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIg
PSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1h
a2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vh
a1RoaXNdIChDTVRpbWUgdGltZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRp
bWUpKTsKICAgICB9XTsKQEAgLTE0MjEsNyArMTQyMyw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xvY2tB
dENhY2hlZEN1cnJlbnRUaW1lKQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBB
TDo6dG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOworICAg
ICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKHRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRl
bS5nZXQoKSBjdXJyZW50VGltZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hlZEN1
cnJlbnRUaW1lKTsKIAogICAgIGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRpYVRp
bWU7CkBAIC0xNDY2LDggKzE0NjgsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIENN
VGltZSBjbUFmdGVyID0gUEFMOjp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAgICAv
LyBbQVZQbGF5ZXJJdGVtIHNlZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRv
bGVyYW5jZUJlZm9yZSBpcyBuZWdhdGl2ZS4KLSAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGNt
QmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8IDApCi0gICAgICAgIGNtQmVmb3JlID0gUEFMOjpr
Q01UaW1lWmVybzsKKyAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJlZm9yZSwga0NNVGltZVplcm8p
IDwgMCkKKyAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRvIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogCkBAIC0xNTg0LDggKzE1ODYsNiBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlvbkFs
Z29yaXRobShNZWRpYVBsYXllcgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2Vz
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGlt
ZVJhbmdlcygpIGNvbnN0CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElN
RVJBTkdFX0lTX0VNUFRZLgotCiAgICAgYXV0byB0aW1lUmFuZ2VzID0gbWFrZVVuaXF1ZTxQbGF0
Zm9ybVRpbWVSYW5nZXM+KCk7CiAKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQpAQCAtMTU5NCwx
NSArMTU5NCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybQogICAgIGZvciAoTlNWYWx1ZSAq
dGhpc1JhbmdlVmFsdWUgaW4gbV9jYWNoZWRMb2FkZWRSYW5nZXMuZ2V0KCkpIHsKICAgICAgICAg
Q01UaW1lUmFuZ2UgdGltZVJhbmdlID0gW3RoaXNSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFsdWVd
OwogICAgICAgICBpZiAoQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSAmJiAhQ01USU1F
UkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKLSAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFkZChQ
QUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CisgICAgICAgICAgICB0aW1lUmFuZ2VzLT5h
ZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFUaW1lKENN
VGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKICAgICB9CiAgICAgcmV0dXJuIHRpbWVSYW5n
ZXM7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1pblRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBB
TDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgotCiAgICAgaWYgKCFtX2NhY2hlZFNlZWth
YmxlUmFuZ2VzIHx8ICFbbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyBjb3VudF0pCiAgICAgICAgIHJl
dHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2MjMsOCArMTYyMSw2IEBAIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRpbWVT
ZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0gICAgdXNpbmcgbmFt
ZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgotCiAgICAgaWYgKCFtX2Nh
Y2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFuZ2VzID0gW21f
YXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzcsNyArMTYzMyw3IEBA
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1h
eFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQo
dGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAg
ICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0
RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwgZW5kT2ZSYW5n
ZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAgICAgfQpAQCAt
MTY0Niw4ICsxNjQyLDYgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNv
bnN0CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VN
UFRZLgotCiAgICAgaWYgKCFtX2NhY2hlZExvYWRlZFJhbmdlcykKICAgICAgICAgcmV0dXJuIE1l
ZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTY1Nyw3ICsxNjUxLDcgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgp
IGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSB8fCBD
TVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVkaWFUaW1lIGVu
ZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkp
OwogICAgICAgICBpZiAobWF4VGltZUxvYWRlZCA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBt
YXhUaW1lTG9hZGVkID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xODA5LDcgKzE4MDMsNyBAQCBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZQogICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGltdW1T
aXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJ
bWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6
UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJv
cjpuaWxdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vj
b25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwogICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JT
cGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwogCiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6
Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7CkBAIC0xOTk1LDcgKzE5ODksNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFN0b3BMb2FkaW5nUmVxdWVzdChB
VkFzc2V0UmVzb3VyY2VMbwogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKTsK
KyAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGlz
Q29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC0yOTA3LDcgKzI5MDEsNyBAQCBzdGF0aWMgTlNT
dHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllciAqcGxheWVy
KQogICAgIGlmICghUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgaWYgKGF1dG8gY29udGV4dCA9IFBBTDo6T3V0cHV0Q29u
dGV4dDo6c2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250ZXh0KCkpCisgICAgaWYgKGF1
dG8gY29udGV4dCA9IE91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0
Q29udGV4dCgpKQogICAgICAgICByZXR1cm4gY29udGV4dC0+ZGV2aWNlTmFtZSgpOwogCiAgICAg
aWYgKHBsYXllci5leHRlcm5hbFBsYXliYWNrVHlwZSAhPSBBVlBsYXllckV4dGVybmFsUGxheWJh
Y2tUeXBlQWlyUGxheSkKQEAgLTMyNDEsOSArMzIzNSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFHcm91cERpZEFycml2ZShjb25zdCBSZXRhaW5Q
dHI8CiAgICAgICAgIGZvciAoQVZNZXRhZGF0YUl0ZW0gKml0ZW0gaW4gZ3JvdXAuaXRlbXMpIHsK
ICAgICAgICAgICAgIFJldGFpblB0cjxBVk11dGFibGVNZXRhZGF0YUl0ZW0+IGl0ZW1Db3B5ID0g
YWRvcHROUyhbaXRlbSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNf
VkFMSUQoaXRlbUNvcHkuZ2V0KCkudGltZSkpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0
KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRp
YVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOworICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgp
LnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6
RGVmYXVsdFRpbWVTY2FsZSk7CiAgICAgICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChpdGVt
Q29weS5nZXQoKS5kdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVy
YXRpb24gPSBQQUw6OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOworICAgICAgICAgICAgICAgIGl0
ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CiAgICAgICAg
ICAgICBbZ3JvdXBDb3B5IGFkZE9iamVjdDppdGVtQ29weS5nZXQoKV07CiAgICAgICAgIH0KIApA
QCAtMzI4NSw3ICszMjc5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjptZXRhZGF0YURpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8TlNBcnIKIAogICAgICAgICBN
ZWRpYVRpbWUgZW5kID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwogICAgICAg
ICBhdXRvIGR1cmF0aW9uID0gaXRlbS5kdXJhdGlvbjsKLSAgICAgICAgaWYgKENNVElNRV9JU19W
QUxJRChkdXJhdGlvbikgJiYgUEFMOjpDTVRpbWVHZXRTZWNvbmRzKGR1cmF0aW9uKSA+IDAuMDAx
KQorICAgICAgICBpZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0aW9uKSAmJiBDTVRpbWVHZXRTZWNv
bmRzKGR1cmF0aW9uKSA+IDAuMDAxKQogICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBQQUw6OnRv
TWVkaWFUaW1lKGR1cmF0aW9uKTsKIAogICAgICAgICBBdG9tU3RyaW5nIHR5cGUgPSBudWxsQXRv
bSgpOwpAQCAtMzQ2NCw3ICszNDU4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm8KICAgICBp
ZiAobV90aW1lT2JzZXJ2ZXIpCiAgICAgICAgIFttX2F2UGxheWVyIHJlbW92ZVRpbWVPYnNlcnZl
cjptX3RpbWVPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxh
eWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhD
TVRpbWU6UEFMOjp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCkgdXNpbmdCbG9jazpeeworICAgIG1fdGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkQm91
bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NN
VGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpe
ewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQppbmRleCA3M2FkZWI5YmI3M2E3ODI4ZGY1YTNmNDg0YzVmOTBlMzMz
ZDI0MWIxLi41YTY5YWE2Nzk1MTg5Y2I0ZTA3NmQzMTk0NjlmOTk2NTA0ZmY5NDZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC02Niw2ICs2Niw3IEBACiBAZW5kCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVy
YXRpb25Ub1N0cmluZyhNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OlNlZWtT
dGF0ZSBlbnVtZXJhdGlvblZhbHVlKQogewpAQCAtMTE1LDE1ICsxMTYsMTUgQEAgc3RhdGljIHZv
aWQgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25D
ZW50ZXJSZWYsIGNvbnMKIAogdm9pZCBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpzdG9w
KENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiB7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYg
bmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0g
ICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRp
bWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlm
aWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOworICAgIENNTm90aWZpY2F0
aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50
ZXIoKTsKKyAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBD
TVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VOb3RpZmlj
YXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKIH0KIAogRWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNsaWVudCwgQ01UaW1lYmFzZVJlZiB0aW1lYmFz
ZSkKICAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCiB7Ci0gICAgQ01Ob3RpZmlj
YXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExv
Y2FsQ2VudGVyKCk7Ci0gICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5j
LCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01U
aW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwor
ICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXRE
ZWZhdWx0TG9jYWxDZW50ZXIoKTsKKyAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVy
KG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGlt
ZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKIH0K
IAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTE1Niw3ICsxNTcs
NyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwg
InN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vl
a2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7Cisg
ICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBm
b3IgIiwgdG9NZWRpYVRpbWUodGltZSksICIsIHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIsIHBl
bmRpbmcgPSAiLCAhIW1fcGVuZGluZ1NlZWspOwogCiAgICAgICAgIGlmIChtX3NlZWtpbmcgJiYg
IW1fcGVuZGluZ1NlZWspIHsKICAgICAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwpAQCAtMjM3
LDExICsyMzgsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3QKIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIFBB
TDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBQQUw6Omlz
Q29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAgJiYgUEFMOjpnZXRBVlN0cmVh
bURhdGFQYXJzZXJDbGFzcygpCi0gICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyQ2xhc3MoKQotICAgICAgICAmJiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyUmVuZGVy
U3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChQ
QUw6OmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRN
dXRlZDopKTsKKyAgICAgICAgJiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQorICAg
ICAgICAmJiBnZXRBVlN0cmVhbURhdGFQYXJzZXJDbGFzcygpCisgICAgICAgICYmIGdldEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkKKyAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZm
ZXJSZW5kZXJTeW5jaHJvbml6ZXJDbGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNl
TWV0aG9kKGdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3Rvcihz
ZXRNdXRlZDopKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+JiB0eXBlcykKQEAgLTQxNiw3ICs0MTcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CiAKIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmN1cnJlbnRNZWRp
YVRpbWUoKSBjb25zdAogewotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0
b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFz
ZV0pKTsKKyAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAgIGlmIChz
eW5jaHJvbml6ZXJUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQogICAgICAgICByZXR1cm4g
TWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogICAgIGlmIChzeW5jaHJvbml6ZXJUaW1lIDwgbV9sYXN0
U2Vla1RpbWUpCkBAIC00MjksNyArNDMwLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2soTWVkaWEKICAg
ICBtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAog
ICAgIGlmIChtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spIHsKLSAgICAgICAgbV90aW1l
Q2hhbmdlZE9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVy
Rm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFu
Z2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJ
bnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgewogICAgICAgICAgICAgaWYgKG1fY3VycmVudFRp
bWVEaWRDaGFuZ2VDYWxsYmFjaykKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRUaW1lRGlkQ2hh
bmdlQ2FsbGJhY2soQ01USU1FX0lTX05VTUVSSUModGltZSkgPyBQQUw6OnRvTWVkaWFUaW1lKHRp
bWUpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICAgICAgfV07CkBAIC00ODEsNyArNDgy
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNlZWtJbnRl
cm5hbCgpCiAgICAgaWYgKG1fbGFzdFNlZWtUaW1lLmhhc0RvdWJsZVZhbHVlKCkpCiAgICAgICAg
IG1fbGFzdFNlZWtUaW1lID0gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKG1fbGFzdFNlZWtU
aW1lLnRvRG91YmxlKCksIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CiAKLSAgICBNZWRp
YVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNl
R2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNo
cm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNo
cm9uaXplciB0aW1lYmFzZV0pKTsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAic2Vla1Rp
bWUgPSAiLCBtX2xhc3RTZWVrVGltZSwgIiwgc3luY2hyb25pemVyVGltZSA9ICIsIHN5bmNocm9u
aXplclRpbWUpOwogCiAgICAgYm9vbCBkb2VzTm90UmVxdWlyZVNlZWsgPSBzeW5jaHJvbml6ZXJU
aW1lID09IG1fbGFzdFNlZWtUaW1lOwpAQCAtNTk4LDcgKzU5OSw3IEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogICAg
IGlmIChtX3ZpZGVvT3V0cHV0KSB7CiAgICAgICAgIENNVGltZSBvdXRwdXRUaW1lOwogICAgICAg
ICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9PdXRwdXQgY29weVBpeGVs
QnVmZmVyRm9yU291cmNlVGltZTp0b0NNVGltZShjdXJyZW50TWVkaWFUaW1lKCkpIHNvdXJjZVRp
bWVGb3JEaXNwbGF5OiZvdXRwdXRUaW1lXSkpIHsKLSAgICAgICAgICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIsICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgUEFMOjp0b01lZGlh
VGltZShvdXRwdXRUaW1lKSk7CisgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
bmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIHRvTWVkaWFUaW1lKG91dHB1dFRpbWUp
KTsKICAgICAgICAgICAgIG1fbGFzdFBpeGVsQnVmZmVyID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA4LDcgKzgwOSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIo
KQogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3lu
Y2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFz
ZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVy
IHJlbW92ZVJlbmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpIGF0VGltZTpj
dXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8t
b3AuCiAgICAgfV07CkBAIC0xMDE3LDcgKzEwMTgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6Zmx1c2hQZW5kaW5nU2l6ZUNoYW5nZXMoKQogI2lmIEhBVkUo
QVZTVFJFQU1TRVNTSU9OKQogQVZTdHJlYW1TZXNzaW9uKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24oKQogewotICAgIGlmICghUEFMOjpnZXRBVlN0
cmVhbVNlc3Npb25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGlu
c3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3Rv
cnlBdFVSTDopXSkKKyAgICBpZiAoIWdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6
OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNl
bGVjdG9yKGluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICByZXR1cm4g
bmlsOwogCiAgICAgaWYgKCFtX3N0cmVhbVNlc3Npb24pIHsKQEAgLTEyMTYsNyArMTIxNyw3IEBA
IEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBD
TVRpbWUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXpl
ciB0aW1lYmFzZV0pOworICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1l
KFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwogICAgIFttX3N5bmNocm9uaXplciByZW1vdmVS
ZW5kZXJlcjphdWRpb1JlbmRlcmVyIGF0VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhh
bmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8tb3AuCiAgICAgfV07CkBAIC0xMzAwLDcgKzEz
MDEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9y
bVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPAogICAgIGlmIChtX3BlcmZvcm1UYXNrT2Jz
ZXJ2ZXIpCiAgICAgICAgIFttX3N5bmNocm9uaXplciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV9wZXJm
b3JtVGFza09ic2VydmVyLmdldCgpXTsKIAotICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZlciA9IFtt
X3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBb
bV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVl
IHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCkgdXNpbmdCbG9jazpeewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCA1NWI1MDBjNTdlOTNl
YmJhNDk2YWU3NDE2ZmQ1ZGY3OGQ3Yjk0NThlLi5lMWFkMTAyYmI5ODFiZjM3NGU2YmQ5MzdjMGM2
ZTJhODdmNDBmMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0zMiw3ICszMiw2
IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgog
I2ltcG9ydCAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKLSNpbXBvcnQgIk1lZGlh
UGxheWVyLmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQg
Ik1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5o
IgpAQCAtMTIyLDYgKzEyMSw3IEBACiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKSAm
JiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKKyAgICByZXR1cm4g
aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29y
a0F2YWlsYWJsZSgpICYmIGdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcykK
QEAgLTIzMCw3ICsyMzAsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogc3RhdGljIGlubGlu
ZSBDR0FmZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxl
JiBzYW1wbGUpCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gc2FtcGxl
LnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOwotICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CiAgICAgc2l6ZV90IHdpZHRo
ID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKICAgICBzaXplX3QgaGVpZ2h0
ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7CiAgICAgaWYgKCF3aWR0aCB8
fCAhaGVpZ2h0KQpAQCAtOTYwLDcgKzk2MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpCiAgICAgaWYgKCFtX2lt
YWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxh
dGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBtX2ltYWdlUGFpbnRlci5jZ0ltYWdlID0gTmF0aXZl
SW1hZ2U6OmNyZWF0ZShtX2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRl
SW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IGMwZjEzZDZlYTVjOTc1NzY3Y2U4
ZjYyYWI2ODQyZDdkNmYwZmJiNmIuLjJmNDk4Mzg3NjVkM2M5NDQxYjY5YmI5NTE4YjNiMWY5YTg3
OTUwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0K
QEAgLTM2LDEyICszNiw5IEBACiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLS8vIEVxdWl2YWxlbnQgdG8gV1RGX0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7Ci0vLyBOZWVkZWQgZHVlIHRvIHJl
cXVpcmVtZW50IG9mIHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCi10ZW1wbGF0ZSA8Pgot
c3RydWN0IFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKLSAgICBzdGF0aWMg
aW5saW5lIENGVHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0VHlwZUlEKCk7IH0KLX07Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitXVEZfREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC03MCwzNSArNjcsMzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5V
U0VEKHN0YXR1cywgIXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKKyAgICBzdGF0
dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcp
OwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRv
cHRDRihmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2Ft
cGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGlt
ZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8g
c2FtcGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxp
ZCwga0NNVGltZUludmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJS
YXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgp
LCBmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAmc2Ft
cGxlQnVmZmVyUmF3KTsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZv
cm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVC
dWZmZXJSYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9
IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNB
cnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQo
KSwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsK
LSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAg
ICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVy
biBjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2Ft
cGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lT
X0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgICAgIHRp
bWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBh
dXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAobV9z
YW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNv
ZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0
aW1lU3RhbXApKQogICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVy
biBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDYsMTUgKzEwMywxNSBAQCBNZWRp
YVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1l
IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkp
OworICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1f
c2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAg
ICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5n
ZXQoKSk7CisgICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3Nh
bXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQog
CiBzaXplX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUuZ2V0
KCkpOworICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBs
ZS5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZv
cm1TYW1wbGUoKQpAQCAtMTI1LDIzICsxMjIsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1w
bGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2Fz
dDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxl
LmdldCgpKSk7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4
ZWxCdWZmZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJh
bmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJu
ICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVB
dHRhY2htZW50S2V5X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNL
ZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAK
IHN0YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBi
b29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
KQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIApAQCAtMTU0LDEyICsxNTEsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJh
bmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNo
bWVudERpY3QpCiB7Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1l
bnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKKyAgICBy
ZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAg
IGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4OSwx
MSArMTg2LDExIEBAIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6
OmZsYWdzKCkgY29uc3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0
aW9uU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3NhbXBs
ZS5nZXQoKSk7Ci0gICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShm
b3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAg
ICAgICByZXR1cm4gRmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6
OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0
RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRp
b24sIHRydWUsIHRydWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKQEAgLTIwNCwxMiArMjAxLDEyIEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewog
ICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51
bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsK
LSAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9B
cnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBu
dWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWlu
ZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjE4LDcgKzIxNSw3IEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAg
ICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9F
cnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjcs
MTIgKzIyNCwxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5
KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRp
bWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29u
c3QgV1RGOjpNZWRpYVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50
KSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5
OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0
KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYg
KG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxl
LmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJy
YXkpIHsKQEAgLTI0MSw3ICsyMzgsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGlt
ZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0K
ICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNv
dW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ5LDEwICsy
NDYsMTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RG
OjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9i
akM6OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKENNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9zYW1w
bGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1
ZmZlckhhc05vU2FtcGxlU2l6ZXMpCisgICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6
ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVC
dWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2NSwxNyArMjYyLDE3IEBAIHN0ZDo6cGFpcjxSZWZQ
dHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6
OmRpdmlkZShjCiAKICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0g
MDsKIAotICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2Ft
cGxlLmdldCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291
bnQpIC0+IE9TU3RhdHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAg
Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgpLCBbJl0g
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9TU3RhdHVz
IHsKKyAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lO
VkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAg
IHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZUJ1ZmZlcik7CiAKICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7
Ci0gICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1
dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAg
aWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAgICAg
ICAgICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZm
ZXIpOwogCi0gICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZUFkZCh0
aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAgaWYg
KFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNl
bnRhdGlvblRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBp
ZiAoUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAg
ICAgICAgICByZXR1cm4gMTsKQEAgLTI4NiwxOSArMjgzLDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8
TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRp
dmlkZShjCiAgICAgaWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAg
cmV0dXJuIHsgbnVsbHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CisgICAg
Q01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9z
YW1wbGUuZ2V0KCkpOwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBz
YW1wbGVDb3VudCkKICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJh
bmdlQmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUp
OwotICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1NhbXBs
ZUJlZm9yZSkgIT0gbm9FcnIpCisgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9y
ZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIs
IG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9y
ZSA9IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJh
d1NhbXBsZUFmdGVyID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdl
TWFrZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVz
QmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5
U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCks
IHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAgaWYgKENNU2FtcGxl
QnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDgs
MTMgKzMwNSwxMyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlh
U2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIFBBTDo6Q01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCAm
bmV3U2FtcGxlQnVmZmVyKTsKKyAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VS
VChuZXdTYW1wbGVCdWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVm
ZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAg
ICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJh
eSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0g
Y2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwg
a0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50
cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsK
ICAgICB9CiAKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihu
ZXdTYW1wbGVCdWZmZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyOSw3ICszMjYsNyBAQCBSZWZQdHI8
SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VE
YXRhKCkgY29uc3QKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdl
dCgpLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIu
Z2V0KCkpOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIo
Y29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENW
UGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0
KCkpKTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNv
bnZlcnQocGl4ZWxCdWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFk
T25seSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDYsMTAgKzM0MywxMCBA
QCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRS
R0JBSW1hZ2VEYXRhKCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZl
ckFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsK
LSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJs
ZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7
Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAt
MzYwLDcgKzM1Nyw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1l
ZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6
aXNIb21vZ2VuZW91cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUu
Z2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAg
ICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg4
LDcgKzM4NSw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxl
VmVjdG9yID0gVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1w
bGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0
dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQyMSw3ICs0MTgs
NyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7
CiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAg
IGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0gbm9FcnIg
fHwgIXJhd1NhbXBsZSkKKyAgICAgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJh
d1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIHNhbXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3Jl
YXRlKGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQzNSwyNCAr
NDMyLDI0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZl
ciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZv
cm1hdERlc2NyaXB0aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAg
c3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1w
bGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7
CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8
Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5
Lmdyb3coaXRlbUNvdW50KTsKLSAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVs
bHB0cik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
Jm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDAy
MTkyMTZkN2MyZDg4ZWY1Nzc1MjZkODgyMzBjM2U1MDNmZDhjZGIuLjBiOWJiNjQ4NWYzZTllMjUz
NDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNiArMjU4LDcgQEAgQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUg
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
cAppbmRleCAzYjEwMmFiOGVmMzlmMzhkZjQ3MDYwNWZhOGQ3YmZkMjRjMDBlZTkyLi5iODJiOWEx
YTk4ZGViYjUwZTRjNWE3YTA2Yjg3ZmE2MDkxOWQ0ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
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
ZXRCeXRlc1JlYWQga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZm
ZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJM
RSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCAlZCIsIGVy
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJs
b2NrQnVmZmVyKTsKIAotICAgIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0
ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwgYnVmZmVyLmdldCgpLCAwLCBmdWxsUGFja2V0Qnl0ZXNS
ZWFkKTsKKyAgICBlcnIgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERh
dGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAsIGZ1bGxQYWNrZXRCeXRlc1JlYWQpOwogICAgIGlm
IChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1
ZmZlclJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVs
bHB0cjsKLSAgICBlcnIgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCBmb3Jt
YXREZXNjcmlwdGlvbigpLmdldCgpLCBtX3BhY2tldERlc2NyaXB0aW9ucy5zaXplKCksIG1fc2Ft
cGxlUHJlc2VudGF0aW9uVGltZSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmcmF3U2Ft
cGxlQnVmZmVyKTsKKyAgICBlcnIgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
UGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3Nh
bXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1Nh
bXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lG
X1BPU1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cyBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29j
b2EubW0KaW5kZXggYWE3MzZjZjE0OWE0NzRiYTI2M2NhYWNkNjY0MmRlNzhmNzc4ODc3YS4uZTlm
ODZkZWE0MzhlODk1ZTYzZGJkZTA3YzRkOTVmOWI1YWVmMThjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29j
b2EubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIHdlYm07CiAKIFZQOVRlc3RpbmdPdmVycmlk
ZXMmIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpCkBAIC0zNjEsMTEgKzM2MiwxMSBA
QCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01Db2xvclByaW1hcmllcyh1aW50OF90IHBy
aW1hcmllcykKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9T
VF8yNDA6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlckNvbG9yUHJpbWFyaWVzX1NNUFRF
X0M7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfUlBfNDMx
XzI6Ci0gICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfRENJX1AzOworICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1h
cmllc19EQ0lfUDM7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01Q
VEVfRUdfNDMyXzE6Ci0gICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29s
b3JQcmltYXJpZXNfUDNfRDY1OworICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19QM19ENjU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1h
cmllczo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBQQUw6
OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKKyAgICAgICAg
cmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKICAg
ICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQxOSwxOCArNDIwLDE4IEBAIHN0YXRpYyBD
RlN0cmluZ1JlZiBjb252ZXJ0VG9DTVRyYW5zZmVyRnVuY3Rpb24odWludDhfdCBjaGFyYWN0ZXJp
c3RpY3MpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6
U01QVEVfU1RfMjQwOgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJUcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFXzI0ME1fMTk5NTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hh
cmFjdGVyaXN0aWNzOjpTTVBURV9TVF8yMDg0OgotICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKKyAgICAgICAg
cmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0
X1BROwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJU
XzIwMjBfMTBiaXQ6CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3Rlcmlz
dGljczo6QlRfMjAyMF8xMmJpdDoKLSAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9TVF80MjhfMToKLSAgICAg
ICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRF
X1NUXzQyOF8xOworICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzQyOF8xOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6OkJUXzIxMDBfSExHOgotICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7CisgICAgICAgIHJl
dHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6SUVDXzYx
OTY2XzJfMToKLSAgICAgICAgcmV0dXJuIFBBTDo6Y2FuTG9hZF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA/IFBBTDo6Z2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpIDogbnVsbHB0cjsKKyAg
ICAgICAgcmV0dXJuIGNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7CiAgICAgY2FzZSBWUENvbmZpZ3Vy
YXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6TGluZWFyOgotICAgICAgICByZXR1cm4gUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyOworICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKICAgICB9
CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ2Niw3ICs0NjcsNyBAQCBzdGF0aWMgQ0ZTdHJp
bmdSZWYgY29udmVydFRvQ01ZQ2JDUk1hdHJpeCh1aW50OF90IGNvZWZmaWNpZW50cykKIHsKICAg
ICBzd2l0Y2ggKGNvZWZmaWNpZW50cykgewogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4
Q29lZmZpY2llbnRzOjpCVF8yMDIwX05vbmNvbnN0YW50X0x1bWluYW5jZToKLSAgICAgICAgcmV0
dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOworICAg
ICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOwog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF80NzBfN19CRzoK
ICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNjAxXzc6CiAg
ICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlcllDYkNyTWF0cml4X0lUVV9SXzYwMV80OwpAQCAt
NTQyLDExICs1NDMsMTEgQEAgc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVm
PiBjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVjQ29uZmkKICAgICBDRlR5cGVSZWYg
Y29uZmlndXJhdGlvblZhbHVlc1tdID0geyBkYXRhLmdldCgpIH07CiAgICAgYXV0byBjb25maWd1
cmF0aW9uRGljdCA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGNvbmZpZ3VyYXRpb25LZXlzLCBjb25maWd1cmF0aW9uVmFsdWVzLCBXVEZfQVJSQVlfTEVO
R1RIKGNvbmZpZ3VyYXRpb25LZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogCi0gICAgVmVjdG9yPENGVHlwZVJl
Zj4gZXh0ZW5zaW9uc0tleXMgeyBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Nh
bXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgfTsKKyAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBl
eHRlbnNpb25zS2V5cyB7IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMgfTsKICAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25z
VmFsdWVzID0geyBjb25maWd1cmF0aW9uRGljdC5nZXQoKSB9OwogCiAgICAgaWYgKHJlY29yZC52
aWRlb0Z1bGxSYW5nZUZsYWcgPT0gVlBDb25maWd1cmF0aW9uUmFuZ2U6OkZ1bGxSYW5nZSkgewot
ICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyk7CisgICAgICAgIGV4dGVuc2lvbnNLZXlzLmFwcGVuZChr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyk7CiAgICAgICAgIGV4
dGVuc2lvbnNWYWx1ZXMuYXBwZW5kKGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQppbmRleCA4ZWVmM2IyZWE2MDRiZDE5ODNk
NzdkMzhiZjUyMWE4ZDIxZjIwZWQwLi5jZWExNTZhZTJmYmUyNWFkYTAwNzY2OGU5MWQ1MGU1NjFj
NjQyZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCkBAIC00
MywxMiArNDMsOSBAQAogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgIlZp
ZGVvVG9vbGJveFNvZnRMaW5rLmgiCiAKLS8vIEVxdWl2YWxlbnQgdG8gV1RGX0RFQ0xBUkVfQ0Zf
VFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7Ci0vLyBOZWVkZWQgZHVlIHRvIHJlcXVpcmVtZW50
IG9mIHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFdU
Rjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKLSAgICBzdGF0aWMgaW5saW5lIENG
VHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VHlwZUlE
KCk7IH0KLX07Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitXVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKENNU2FtcGxlQnVmZmVyKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSw3ICs3
Miw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRp
bWViYXNlUmVmIHRpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV90aW1lYmFz
ZSkKLSAgICAgICAgUEFMOjpDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3Rp
bWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgQ01UaW1lYmFzZVJl
bW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5n
ZXQoKSk7CiAKICAgICBtX3RpbWViYXNlID0gdGltZWJhc2U7CiAKQEAgLTg3LDcgKzg0LDcgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VS
ZWYgdGltZWJhc2UpCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGRpc3BhdGNoX2FjdGl2
YXRlKG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogICAgICAgICB9Ci0gICAgICAgIFBBTDo6Q01UaW1l
YmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJj
ZS5nZXQoKSk7CisgICAgICAgIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGlt
ZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtMTA3LDEy
ICsxMDQsMTIgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om1heWJlQmVjb21l
UmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgYm9vbCBkaXNw
bGF5aW5nKQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJy
ICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVm
ZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAm
aXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5n
SW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3Vu
dCk7Ci0gICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCks
IG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGVCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENNQnVmZmVyQ2FsbGJhY2tz
IGNvbnRhaW5zIDY0LWJpdCBwb2ludGVycyB0aGF0IGFyZW4ndCA4LWJ5dGUgYWxpZ25lZC4gVG8g
c3VwcHJlc3MgdGhlIGxpbmtlcgpAQCAtMTM3LDcgKzEzNCw3IEBAIHZvaWQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxiYWNrcy52
ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJlIDQgYnl0
ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNrcykgPT0g
NCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBtdXN0IGhhdmUgNCBieXRlIGFsaWdubWVudCIp
OwogCi0gICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKKyAg
ICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNh
cGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9wcm9k
dWNlclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNTksNyArMTU2LDcg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihj
YWxsYmFja3MuY2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJzaW9u
IGZpZWxkIG11c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2Yo
QnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IGFsaWdubWVu
dCBtdXN0IGJlIDQiKTsKIAotICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZv
dXRRdWV1ZSk7CisgICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAg
ICAgICAgIG1fY29uc3VtZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAt
MTgwLDIwICsxNzcsMjAgQEAgYm9vbCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3Vs
ZERlY29kZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGIKICAgICBpZiAoIW1fdGlt
ZWJhc2UpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgYXV0byBjdXJyZW50VGltZSA9IFBB
TDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgYXV0byBwcmVzZW50
YXRpb25TdGFydFRpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0
YW1wKHNhbXBsZSk7Ci0gICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRE
dXJhdGlvbihzYW1wbGUpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IFBBTDo6Q01U
aW1lQWRkKHByZXNlbnRhdGlvblN0YXJ0VGltZSwgZHVyYXRpb24pOwotICAgIGlmIChQQUw6OkNN
VGltZUNvbXBhcmUocHJlc2VudGF0aW9uRW5kVGltZSwgY3VycmVudFRpbWUpID49IDApCisgICAg
YXV0byBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOwor
ICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50
YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IENN
VGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKKyAgICBpZiAoQ01UaW1l
Q29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50VGltZSkgPj0gMCkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZB
cnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIGZvciAoQ0ZJbmRleCBpbmRleCA9IDAsIGNvdW50ID0gQ0ZBcnJheUdl
dENvdW50KGF0dGFjaG1lbnRzKTsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBD
RkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QgPSAoQ0ZEaWN0aW9uYXJ5UmVmKUNGQXJyYXlH
ZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHMsIGluZGV4KTsKLSAgICAgICAgQ0ZCb29sZWFuUmVm
IGRlcGVuZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1l
bnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMp
OworICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0
aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNE
ZXBlbmRlZE9uQnlPdGhlcnMpOwogICAgICAgICBpZiAoZGVwZW5kZWRPbiAmJiAhQ0ZCb29sZWFu
R2V0VmFsdWUoZGVwZW5kZWRPbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMjA2LDE0ICsyMDMsMTQgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVu
c3VyZURlY29tcHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKENNU2FtcGxlQnUKICAgICBpZiAoaXNJ
bnZhbGlkYXRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRG
b3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihzYW1wbGUpOwogICAgIGlmIChtX2RlY29tcHJlc3Npb25TZXNzaW9uICYmICFWVERlY29t
cHJlc3Npb25TZXNzaW9uQ2FuQWNjZXB0Rm9ybWF0RGVzY3JpcHRpb24obV9kZWNvbXByZXNzaW9u
U2Vzc2lvbi5nZXQoKSwgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgVlREZWNv
bXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMobV9kZWNvbXByZXNzaW9u
U2Vzc2lvbi5nZXQoKSk7CiAgICAgICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRy
OwogICAgIH0KIAogICAgIGlmICghbV9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgICAgICBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxl
QnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKICAgICAgICAgYXV0byB2aWRlb0Rl
Y29kZXJTcGVjaWZpY2F0aW9uID0gQHsgKF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9EZWNv
ZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyOiBA
KCBtX2hhcmR3YXJlRGVjb2RlckVuYWJsZWQgKSB9OwogCiAgICAgICAgIE5TRGljdGlvbmFyeSAq
YXR0cmlidXRlczsKQEAgLTI1OSw3ICsyNTYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaQog
CiAgICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAg
ICBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWVXaXRoT3V0cHV0SGFuZGxlcihtX2Rl
Y29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCBzYW1wbGUsIGZsYWdzLCBudWxscHRyLCBbdGhpcywg
ZGlzcGxheWluZywgc3RhcnRUaW1lXShPU1N0YXR1cyBzdGF0dXMsIFZURGVjb2RlSW5mb0ZsYWdz
IGluZm9GbGFncywgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRh
dGlvblRpbWVTdGFtcCwgQ01UaW1lIHByZXNlbnRhdGlvbkR1cmF0aW9uKSB7Ci0gICAgICAgIGRv
dWJsZSBkZWx0YVJhdGlvID0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNv
bmRzKCkgLyBQQUw6OkNNVGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOworICAg
ICAgICBkb3VibGUgZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGlt
ZSkuc2Vjb25kcygpIC8gQ01UaW1lR2V0U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CiAK
ICAgICAgICAgdXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNzKGRlbHRhUmF0aW8pOwog
ICAgICAgICBoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGRpc3BsYXlpbmcsIHN0YXR1cywgaW5m
b0ZsYWdzLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBwcmVzZW50YXRpb25E
dXJhdGlvbik7CkBAIC0yOTIsNyArMjg5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAg
ICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiByYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBpZiAoc3Rh
dHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsICZy
YXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgeworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwg
bm9FcnIgIT0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0
aW9uKSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlkZW9GcmFtZXM7CiAgICAgICAgIC0tbV9m
cmFtZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFE
YXRhKCk7CkBAIC0zMDcsNyArMzA0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICB9
OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3SW1hZ2VTYW1wbGVCdWZmZXIgPSBudWxscHRy
OwotICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVy
RGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywgJnJhd0ltYWdlU2FtcGxlQnVm
ZmVyKSkgeworICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZl
ckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1
ZmZlcikpIHsKICAgICAgICAgKyttX2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1f
ZnJhbWVzQmVpbmdEZWNvZGVkOwogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlh
RGF0YSgpOwpAQCAtMzIxLDExICszMTgsMTEgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKIAog
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
Z2V0Rmlyc3RWaWRlb0ZyYW1lKCkKIHsKLSAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBQQUw6
OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCisgICAgaWYgKCFt
X3Byb2R1Y2VyUXVldWUgfHwgQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBs
ZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2Vy
UXVldWUuZ2V0KCkpKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVm
ZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
Y3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVm
PihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7
CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxC
dWZmZXJSZWYpQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgp
KTsKICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIuZ2V0KCkpID09IENWUGl4ZWxC
dWZmZXJHZXRUeXBlSUQoKSk7CiAKICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0
YSgpOwpAQCAtMzM4LDI1ICszMzUsMjUgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmF1dG9tYXRpY0RlcXVldWUoKQogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VH
ZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcHVy
Z2luZyBhbGwgc2FtcGxlcyBiZWZvcmUgdGltZSglcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51
dGY4KCkuZGF0YSgpKTsKIAogICAgIE1lZGlhVGltZSBuZXh0RmlyZVRpbWUgPSBNZWRpYVRpbWU6
OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7CiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9
IGZhbHNlOwogCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hl
Y2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFk
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRp
b25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0
aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmly
c3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBj
aGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7CisgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9u
VGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBB
TDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwog
ICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9u
VGltZXN0YW1wICsgZHVyYXRpb247CiAgICAgICAgIGlmICh0aW1lID4gcHJlc2VudGF0aW9uRW5k
VGltZXN0YW1wKSB7Ci0gICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVx
dWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIENGUmVs
ZWFzZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KTsKICAgICAgICAgICAgIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8g
YmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICBhdXRvIGVu
ZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICBhdXRvIGJlZ2luID0g
UEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01l
ZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcXVldWUoJXMgLT4gJXMpIiwgdGhpcywg
dG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEo
KSk7CiAjZW5kaWYKIApAQCAtMzY4LDcgKzM2NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCkKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZv
ck1vcmVNZWRpYURhdGEoKTsKIAogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBxdWV1ZSBlbXB0eSIsIHRoaXMpOwotICAg
IFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1l
YmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0RmlyZVRp
bWUpLCAwKTsKKyAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGlt
ZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5l
eHRGaXJlVGltZSksIDApOwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpc3Bs
YXlpbmcpCkBAIC0zODYsMTcgKzM4MywxNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogICAg
IGJvb2wgc2hvdWxkTm90aWZ5ID0gdHJ1ZTsKIAogICAgIGlmIChkaXNwbGF5aW5nICYmIG1fdGlt
ZWJhc2UpIHsKLSAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9IFBBTDo6Q01UaW1lYmFzZUdldFJh
dGUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwotICAg
ICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKLSAgICAgICAg
YXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9uU3RhcnRUaW1lICsgUEFMOjp0
b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7CisgICAg
ICAgIGF1dG8gY3VycmVudFJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgp
KTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFz
ZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOworICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0
YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAoc2FtcGxlKSk7CisgICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHBy
ZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRE
dXJhdGlvbihzYW1wbGUpKTsKICAgICAgICAgaWYgKGN1cnJlbnRUaW1lIDwgcHJlc2VudGF0aW9u
U3RhcnRUaW1lIHx8IGN1cnJlbnRUaW1lID49IHByZXNlbnRhdGlvbkVuZFRpbWUpCiAgICAgICAg
ICAgICBzaG91bGROb3RpZnkgPSBmYWxzZTsKIAogICAgICAgICBpZiAoY3VycmVudFJhdGUgPiAw
ICYmIHByZXNlbnRhdGlvbkVuZFRpbWUgPCBjdXJyZW50VGltZSkgewogI2lmICFMT0dfRElTQUJM
RUQKLSAgICAgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZm
ZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpOwotICAgICAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZm
ZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KTsKKyAgICAgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVl
dWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
KyAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0
RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAg
ICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVj
b2RlZFNhbXBsZSglcCkgLSBkcm9wcGluZyBmcmFtZSBsYXRlIGJ5ICVzLCBmcmFtZXNCZWluZ0Rl
Y29kZWQoJWQpLCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNl
bnRhdGlvbkVuZFRpbWUgLSBjdXJyZW50VGltZSkudXRmOCgpLmRhdGEoKSwgbV9mcmFtZXNCZWlu
Z0RlY29kZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0
ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVz
OwpAQCAtNDA0LDE3ICs0MDEsMTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICAgICAg
fQogICAgIH0KIAotICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9wcm9kdWNlclF1ZXVl
LmdldCgpLCBzYW1wbGUpOworICAgIENNQnVmZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSwgc2FtcGxlKTsKIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICBhdXRvIGJlZ2luID0g
UEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRp
bWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIGVuZCA9IFBBTDo6dG9N
ZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChz
YW1wbGUpKTsKKyAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVl
R2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Cisg
ICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBwcmVzZW50
YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChzYW1wbGUpKTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAtIHByZXNlbnRhdGlvblRpbWUoJXMp
LCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMs
IHRvU3RyaW5nKHByZXNlbnRhdGlvblRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdE
ZWNvZGVkLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4
KCkuZGF0YSgpKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIFBBTDo6
Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWVi
YXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgQ01UaW1lYmFzZVNldFRp
bWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3Rp
bWVyU291cmNlLmdldCgpKTsKIAogICAgIGlmICghbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNr
KQogICAgICAgICByZXR1cm47CkBAIC00MjksNyArNDI2LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSwKIAogYm9vbCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3Jl
TWVkaWFEYXRhKCkgY29uc3QKIHsKLSAgICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9w
cm9kdWNlclF1ZXVlID8gUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSA6IDA7CisgICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJv
ZHVjZXJRdWV1ZSA/IENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpIDogMDsKICAgICByZXR1cm4gbV9mcmFtZXNCZWluZ0RlY29kZWQgKyBwcm9kdWNlckNv
dW50IDw9IGtIaWdoV2F0ZXJNYXJrOwogfQogCkBAIC00NTUsNyArNDUyLDcgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OnN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhKCkKIAogdm9p
ZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjYWxsYmFjaykKIHsKLSAgICBpZiAoY2FsbGJh
Y2sgJiYgbV9wcm9kdWNlclF1ZXVlICYmICFQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVl
ICYmICFDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tdIHsKICAgICAgICAgICAgIGNh
bGxiYWNrKCk7CiAgICAgICAgIH0pOwpAQCAtNDY2LDcgKzQ2Myw3IEBAIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6
OmZ1bmN0aW9uCiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIEltYWdlRm9y
VGltZUZsYWdzIGZsYWdzKQogewotICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9w
cm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSwgcXVldWUgZW1wdHki
LCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQpAQCAtNDc0LDkgKzQ3MSw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRp
CiAgICAgYm9vbCBhbGxvd0VhcmxpZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OkFsbG93RWFybGllcjsKICAgICBib29sIGFsbG93TGF0ZXIgPSBmbGFncyA9PSBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93TGF0ZXI7CiAKLSAgICBNZWRpYVRpbWUgc3Rh
cnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNl
bnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRpYVRpbWUg
c3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAjaWYgIUxPR19ESVNBQkxF
RAotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVH
ZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAjZW5k
aWYKICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgdGltZSA8IHN0YXJ0VGltZSkgewogICAgICAgICBM
T0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkg
LSB0aW1lKCVzKSB0b28gZWFybHkgZm9yIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5n
KHRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0VGltZSkudXRmOCgpLmRhdGEoKSwg
dG9TdHJpbmcoZW5kVGltZSkudXRmOCgpLmRhdGEoKSk7CkBAIC00ODUsMjQgKzQ4MiwyNCBAQCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpp
bWFnZUZvclRpbWUoY29uc3QgTWVkaQogCiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9
IGZhbHNlOwogCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hl
Y2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFk
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRp
b25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0
aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmly
c3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBj
aGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7CisgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9u
VGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBB
TDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwog
ICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9u
VGltZXN0YW1wICsgZHVyYXRpb247CiAgICAgICAgIGlmICghYWxsb3dMYXRlciAmJiBwcmVzZW50
YXRpb25UaW1lc3RhbXAgPiB0aW1lKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIGlmICghYWxsb3dFYXJsaWVyICYmIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA8IHRpbWUp
IHsKLSAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVm
ZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAg
ICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KIAotICAgICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJl
bnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFM
OjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7
Ci0gICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBp
eGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2Ft
cGxlLmdldCgpKTsKKyAgICAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50
U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVm
ZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICAg
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZm
ZXJSZWYpQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsK
ICAgICAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVs
QnVmZmVyR2V0VHlwZUlEKCkpOwogCiAgICAgICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICAg
ICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICAgICAgQ01U
aW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNl
LmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgICAgICBtYXliZUJlY29tZVJlYWR5
Rm9yTW9yZU1lZGlhRGF0YSgpOwogCkBAIC01MTEsNyArNTA4LDcgQEAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNv
bnN0IE1lZGkKICAgICB9CiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgUEFMOjpDTVRp
bWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2Uu
Z2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJE
aXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKHJlbGVhc2VkSW1hZ2VCdWZmZXJzKQogICAgICAgICBt
YXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtNTIzLDkgKzUyMCw5IEBAIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Omlt
YWdlRm9yVGltZShjb25zdCBNZWRpCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
Zmx1c2goKQogewogICAgIG1fZGVjb21wcmVzc2lvblF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgUEFM
OjpDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVlLmdldCgp
KTsKKyAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSk7CiAgICAgICAgIG1fZW5xdWVpbmdRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFtwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgUEFMOjpD
TUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdldCgpKTsK
KyAgICAgICAgICAgIENNQnVmZmVyUXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX2NvbnN1bWVy
UXVldWUuZ2V0KCkpOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9mcmFtZXNTaW5jZUxh
c3RRb3NDaGVjayA9IDA7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2N1cnJlbnRRb3NU
aWVyID0gMDsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnJlc2V0UW9zVGllcigpOwpAQCAt
NTM2LDI0ICs1MzMsMjQgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNo
KCkKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUoQ01C
dWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBj
aGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxlKTsKKyAgICByZXR1cm4gQ01T
YW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZShDTUJ1ZmZlclJlZiBi
dWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2Zf
Y2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwogfQogCiBDTVRpbWUgV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREdXJhdGlvbihDTUJ1ZmZlclJlZiBidWYsIHZv
aWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxD
TVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dER1cmF0aW9uKHNhbXBsZSk7CisgICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24o
c2FtcGxlKTsKIH0KIAogQ0ZDb21wYXJpc29uUmVzdWx0IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6Y29tcGFyZUJ1ZmZlcnMoQ01CdWZmZXJSZWYgYnVmMSwgQ01CdWZmZXJSZWYgYnVmMiwg
dm9pZCogcmVmY29uKQogewotICAgIHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KVBBTDo6Q01U
aW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRh
dGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CisgICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1bHQp
Q01UaW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNl
bnRhdGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpyZXNldFFvc1RpZXIoKQpAQCAtNjA1LDcgKzYwMiw3IEBAIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3Mo
ZG91YmxlIHJhdGlvCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBkb3VibGUgcmF0ZSA9IFBBTDo6Q01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7
CisgICAgZG91YmxlIHJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsK
ICAgICBpZiAoIXJhdGUpCiAgICAgICAgIHJhdGUgPSAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQppbmRleCBmMzE2OWFiYzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2Li5lM2Yw
OTI3MDM0OGU3YTVhZWY3MjY2ZWI0NzJkZGJhZTczYmMzNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBz
dGF0aWMgaW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQogewpAQCAt
MTM3LDcgKzEzOCw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1CiAKIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihD
TVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0g
ICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VC
dWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZl
cihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOwogfQog
CiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0
IEludFNpemUmIHNpemUpCkBAIC0xNDUsOSArMTQ2LDkgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01T
YW0KICAgICBpZiAoIXNvdXJjZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBhdXRvIGRlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKHNvdXJjZUJ1ZmZlcik7Ci0gICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKFBBTDo6
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlw
dGlvbiwgdHJ1ZSwgdHJ1ZSkpOwotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNl
QnVmZmVyKSk7CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsKKyAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNp
emUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNj
cmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2Fz
dDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1
ZmZlcikpOwogICAgIGlmIChzaXplID09IGV4cGFuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBt
X3BpeGVsRm9ybWF0ID09IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZm
ZXIpKQogICAgICAgICByZXR1cm4gcmV0YWluUHRyKHNvdXJjZUJ1ZmZlcik7CiAKQEAgLTE1OSw3
ICsxNjAsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgYXV0byBzdGF0dXMgPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwg
MSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CisgICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVt
Q291bnQpOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IGZhaWxlZCB3aXRoIGVycm9yIGNv
ZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0xNjgsNyArMTY5LDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBDTVNh
bXBsZVRpbWluZ0luZm8qIHRpbWVpbmdJbmZvUHRyID0gbnVsbHB0cjsKICAgICBpZiAoaXRlbUNv
dW50KSB7CiAgICAgICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgICAg
IHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291
cmNlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwor
ICAgICAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShz
b3VyY2VCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7
CiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBj
b2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTE3NywxNCArMTc4LDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJl
Zj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAg
ICAgfQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
ID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVm
ZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIHN0YXR1cyA9IENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNv
bnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyIHJldHVybmVkOiAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHJlc2l6ZWRTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNv
bnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltZWluZ0luZm9Q
dHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBp
eGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNp
emVkU2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAg
IGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IGZhaWxlZCB0byBjcmVh
dGUgQ01TYW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7CkBAIC0yMzYsMTYgKzIzNywxNiBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKENWUGl4ZQog
ICAgIH0KIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVm
ZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8g
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksICZm
b3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xP
RyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFp
bGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgY29k
ZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0
byBjbVRpbWUgPSBQQUw6OnRvQ01UaW1lKHNhbXBsZVRpbWUpOwotICAgIENNU2FtcGxlVGltaW5n
SW5mbyB0aW1pbmdJbmZvID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9
OwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5n
ZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBhdXRvIGNtVGltZSA9IHRvQ01UaW1lKHNhbXBsZVRpbWUpOworICAgIENNU2FtcGxlVGltaW5n
SW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUgfTsKKyAg
ICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCBmb3Jt
YXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFz
ZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjog
ZmFpbGVkIHRvIGluaXRpYWxpemUgQ01TYW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIs
IHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KaW5kZXgg
MzJhMDQ0OTZjZmY3ZDg0MTExMjBmY2QxMzNlNmQ2NzQyNTRhODZiMS4uZTBkYWFjODViODczYWQ2
YWE5YjRhYjJkYjdhMDA5Y2MzN2Q0Nzg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQpAQCAt
NDcsNiArNDcsNyBAQCBTT0ZUTElOS19BVktJVF9GUkFNRVdPUksoKQogU09GVF9MSU5LX0NMQVNT
X09QVElPTkFMKEFWS2l0LCBBVlZhbHVlVGltaW5nKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1
c2luZyBuYW1lc3BhY2UgUEFMOwogCiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6UGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNzaW9uTW9kZWwmIG1vZGVsKQog
ICAgIDogbV9wbGF5ZXJDb250cm9sbGVyKGFkb3B0TlMoW1tXZWJBVlBsYXllckNvbnRyb2xsZXIg
YWxsb2NdIGluaXRdKSkKQEAgLTE0NCw3ICsxNDUsNyBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUFWS2l0OjpzZWVrYWJsZVJhbmdlc0NoYW5nZWQoY29uc3QgVGltZVJhbmdlcyYgdGlt
ZQogICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0YXJ0KGkpLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOwogICAgICAgICBkb3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSkucmVsZWFz
ZVJldHVyblZhbHVlKCk7CiAKLSAgICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBQQUw6OkNNVGlt
ZVJhbmdlTWFrZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIFBBTDo6
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOworICAgICAgICBDTVRpbWVS
YW5nZSByYW5nZSA9IENNVGltZVJhbmdlTWFrZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQs
IDEwMDApLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CiAgICAgICAg
IFtzZWVrYWJsZVJhbmdlcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lUmFuZ2U6
cmFuZ2VdXTsKICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXggNWRmMzQ5ZmM2
ZmNkZmNmYWVhNzU1NjMyMGYzYWU2ZTY2NzYzNGU5Yi4uZWE0MjNjNzE3YzdhZTkxYmQ0ZWU5OTA4
N2UwN2M0ZTVjMzdlNGMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCkBAIC0zNzMsNiArMzczLDcg
QEAgZW51bSBjbGFzcyBQSVBTdGF0ZSB7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6VmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjKFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyYgcGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlKQogICAgIDogbV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UocGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuY3BwCmluZGV4IGQ0MTllMGUxOTI1NTVkNzM2MDg1ODUxZjU0Y2EwMDQwZDQ2YjY2M2YuLjg4
NDA5NDI5NzkyNmM4YWViZGVmNmYzZTk1Nzg0MmY4MzQyOGI4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykK
IHsKQEAgLTg3LDEyICs4OCwxMiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogewogICAgIGlm
IChzaG91bGRNdXRlVmlkZW8oKSkgewogICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgewotICAg
ICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyKTsKLSAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5n
ZXQoKSk7CisgICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVm
ZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24u
Z2V0KCkpOwogICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZl
cihkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAgICAgICAgICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9ibGFja0ZyYW1lLmdldCgp
LCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgICAgICBp
ZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWEsICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
IDo6dW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRlc2NyaXB0aW9uOiAlZCIsIHN0YXRp
Y19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gbnVs
bHB0cjsKQEAgLTEwMiw4ICsxMDMsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogICAgICAg
ICB9CiAKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gbnVsbHB0cjsKLSAgICAg
ICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQ
QUw6OnRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCBQQUw6OnRvQ01U
aW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07Ci0gICAgICAgIGF1dG8gc3RhdHVzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0Zy
YW1lRGVzY3JpcHRpb24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKKyAgICAgICAgQ01T
YW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBrQ01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2Ft
cGxlQnVmZmVyLnByZXNlbnRhdGlvblRpbWUoKSksIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNv
ZGVUaW1lKCkpIH07CisgICAgICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJl
ZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGlt
aW5nSW5mbywgJnNhbXBsZSk7CiAKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNyZWF0ZSBhIGJs
YWNrIGZyYW1lOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDVlMTEwZWNkN2RlMzg0
NjFiNDI5MDRhMGViNDg4MzQxODQzZTc1YTQuLjUxYTNlMThhMmNlZGQzY2Q1ZGE5M2YzNGViZjM3
MTFlMDIwZjhiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLm1tCkBAIC0zNiwxMiArMzYsMTMgQEAKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAog
I2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KIAogI2RlZmluZSBMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRT
IDAuMQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJh
Y2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gY29tcHJlc3NvciA9IHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+KG5ldyBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IoKSk7CkBAIC01MSwxNSArNTIsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpj
cmVhdGUKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IoKQotICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlKFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikpCi0gICAgLCBtX2xv
d1dhdGVyVGltZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9T
RUNPTkRTLCAxMDAwKSkKKyAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikgfQorICAgICwg
bV9sb3dXYXRlclRpbWUgeyBDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVfSU5f
U0VDT05EUywgMTAwMCkgfQogewogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5B
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX2NvbnZlcnRlcikgewot
ICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAg
IEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVy
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC02NywxOSArNjgsMTkgQEAgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIGJvb2wgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIENNQnVmZmVyUXVl
dWVSZWYgaW5wdXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZm
ZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVH
ZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1
ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVD
cmVhdGUgZm9yIG1faW5wdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2lucHV0QnVmZmVyUXVldWUgPSBhZG9w
dENGKGlucHV0QnVmZmVyUXVldWUpOwogCiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZm
ZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JV
bnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBD
TUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRw
dXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9v
dXRwdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihvdXRwdXRC
dWZmZXJRdWV1ZSk7Ci0gICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRw
dXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJR
dWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwp
OworICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVu
RGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29kaW5n
ID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg4LDggKzg5LDggQEAgYm9vbCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxs
YmFjayBjYWxsYmEKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5pc2goKQog
ewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzXSB7Ci0gICAg
ICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoUEFMOjprQ01UaW1lSW52
YWxpZCk7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVNYXJrRW5kT2ZE
YXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVm
ZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJv
ciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkp
OwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgZmFpbGVk
ICVkIiwgZXJyb3IpOwogICAgICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKICAgICB9KTsKQEAg
LTExMSw3ICsxMTIsNyBAQCBVSW50MzIgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpkZWZh
dWx0T3V0cHV0Qml0UmF0ZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRAogCiBib29sIEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVz
Y3JpcHRpb24oQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQXVkaW9G
b3JtYXRJRCBvdXRwdXRGb3JtYXRJRCkKIHsKLSAgICBjb25zdCBhdXRvICphdWRpb0Zvcm1hdExp
c3RJdGVtID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxl
Rm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBhdXRvICphdWRpb0Zvcm1hdExp
c3RJdGVtID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1h
dChmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9zb3VyY2VGb3JtYXQgPSBhdWRpb0Zvcm1hdExp
c3RJdGVtLT5tQVNCRDsKIAogICAgIG1lbXNldCgmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgc2l6
ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwpAQCAtMTIwLDM0ICsxMjEsMzQgQEAg
Ym9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNv
dXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1DaGFubmVs
c1BlckZyYW1lID0gbV9zb3VyY2VGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CiAKICAgICBVSW50
MzIgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0eV9Gb3Jt
YXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CisgICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5
X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEF1ZGlvQ29udmVydGVyUmVmIGNv
bnZlcnRlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcoJm1f
c291cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKKyAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwgJm1fZGVz
dGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVydGVy
TmV3IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogICAgIG1fY29udmVydGVyID0gY29udmVydGVyOwogCiAgICAgYXV0byBjbGVhbnVwSW5DYXNl
T2ZFcnJvciA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRl
ckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9j
b252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CiAgICAgfSk7CiAKICAg
ICBzaXplX3QgY29va2llU2l6ZSA9IDA7Ci0gICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwg
JmNvb2tpZVNpemUpOworICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CiAg
ICAgaWYgKGNvb2tpZVNpemUpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlv
Q29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29tcHJl
c3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7CisgICAgICAg
IGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwg
a0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNp
emUsIGNvb2tpZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRGVj
b21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZiht
X3NvdXJjZUZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVh
bURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVy
dGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQp
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFt
RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC0xNTgsNyArMTU5LDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAg
ICB9CiAKICAgICBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9k
ZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJl
YW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAg
LTE2NiwxNCArMTY3LDE0IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgaWYgKG1fZGVz
dGluYXRpb25Gb3JtYXQubUZvcm1hdElEID09IGtBdWRpb0Zvcm1hdE1QRUc0QUFDKSB7CiAgICAg
ICAgIGJvb2wgc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUgPSB0cnVlOwogICAgICAgICBp
ZiAobV9vdXRwdXRCaXRSYXRlKSB7Ci0gICAgICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVC
aXRSYXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFsdWUo
KSk7CisgICAgICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSht
X2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZW9mKCptX291dHB1
dEJpdFJhdGUpLCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgICAgIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0g
ISFlcnJvcjsKICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJp
dFJhdGUpIHsKICAgICAgICAgICAgIGF1dG8gb3V0cHV0Qml0UmF0ZSA9IGRlZmF1bHRPdXRwdXRC
aXRSYXRlKG1fZGVzdGluYXRpb25Gb3JtYXQpOwogICAgICAgICAgICAgc2l6ZSA9IHNpemVvZihv
dXRwdXRCaXRSYXRlKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0Nv
bnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRS
YXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVu
Y29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBz
ZXR0aW5nIGRlZmF1bHQga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0KQEAgLTE4Miw3ICsxODMsNyBAQCBib29sIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9y
bWF0RGVzY3JpcHRpb24oQwogICAgICAgICAvLyBJZiB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlz
IFZCUiwgd2UgbmVlZCB0byBnZXQgbWF4IHNpemUgcGVyIHBhY2tldCBmcm9tIHRoZSBjb252ZXJ0
ZXIuCiAgICAgICAgIHNpemUgPSBzaXplb2YobV9tYXhPdXRwdXRQYWNrZXRTaXplKTsKIAotICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwg
JnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVy
UHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tl
dFNpemUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5
TWF4aW11bU91dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTIxMCw4ICsyMTEsNiBAQCBzaXplX3Qg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjb21wdXRlQnVmZmVyU2l6ZUZvckF1ZGlvRm9y
bWF0KEF1ZGlvU3RyZWFtQgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0
YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewotICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQobV9yZW1h
aW5pbmdQcmltZUR1cmF0aW9uKSkgewogICAgICAgICBBdWRpb0NvbnZlcnRlclByaW1lSW5mbyBw
cmltZUluZm8geyAwLCAwIH07CiAgICAgICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHByaW1lSW5m
byk7CkBAIC0yMzcsMjUgKzIzNiwyNSBAQCBSZXRhaW5QdHI8TlNOdW1iZXI+IEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQoKQogewogICAgIFVJ
bnQzMiBkZWxheVNpemUgPSBzaXplb2YodWludDMyX3QpOwogICAgIHVpbnQzMl90IG9yaWdpbmFs
RGVsYXlNb2RlID0gMDsKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgJmRl
bGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURl
bGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBn
ZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgdWludDMyX3Qgb3B0aW1hbERl
bGF5TW9kZSA9IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09wdGltYWw7Ci0gICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
ZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVy
LCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlN
b2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAg
ICAgVUludDMyIHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKICAgICBB
dWRpb0NvZGVjUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7
CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERl
bGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlN
b2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0K
QEAgLTI2OCwxOCArMjY3LDE4IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAgICAgaWYgKCFt
X2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgVUludDMyIGNvb2tpZVNp
emUgPSAwOwogCi0gICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJv
cGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29v
a2llLCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Np
b25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAgICBpZiAoKGVycm9yID09
IG5vRXJyKSAmJiAhIWNvb2tpZVNpemUpIHsKICAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29v
a2llU2l6ZSk7CiAKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1h
Z2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKKyAgICAgICAgICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1
ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5k
YXRhKCkpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDb21w
cmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247Ci0gICAgICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNvb2tpZVNp
emUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSkg
eworICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29v
a2llU2l6ZSwgY29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRp
b24pKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICB9
CkBAIC0yOTEsMjYgKzI5MCwyNiBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIHNpemVf
dCBkYXRhU2l6ZSA9IGZpbGxCdWZmZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemU7CiAK
ICAgICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyOwotICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1
bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBkYXRhU2l6
ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtD
RkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBO
VUxMLCAwLCBkYXRhU2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxv
Y2tCdWZmZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5Qmxv
Y2sgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQog
ICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdl
dCgpLCAwLCBkYXRhU2l6ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJS
ZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNpemUpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKLSAgICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIu
Z2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5n
ZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBt
X2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7Cisg
ICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3Jp
cHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVMTCwgTlVM
TCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRzLCBtX2N1
cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNrZXREZXNj
cmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAg
aWYgKFttX2dkckNvdW50TnVtIGludFZhbHVlXSkKLSAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1l
bnQoc2FtcGxlQnVmZmVyLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVh
bERlY29kZXJSZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCks
IGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIENNU2V0QXR0YWNo
bWVudChzYW1wbGVCdWZmZXIsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERl
Y29kZXJSZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtD
TUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAKICAgICByZXR1cm4gc2FtcGxlQnVm
ZmVyOwogfQpAQCAtMzQyLDI0ICszNDEsMjQgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAg
ICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHko
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAgICBpZiAoQ01CdWZmZXJR
dWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0Yo
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVE
ZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7Ci0gICAgICAgICAg
ICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVm
ZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZm
ZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZm
ZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAg
ICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3NhbXBs
ZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1
ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFM
OjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsK
KyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAg
IHNpemVfdCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNU
b0NvcHksIChtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxl
QmxvY2tCdWZmZXIpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01C
bG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJy
ZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1
ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZm
ZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgICAg
ICB9CkBAIC0zOTQsMjggKzM5MywyOCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqCiAgICAgICAg
ICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAg
IGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZl
clF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9w
dENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAg
ICAgICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNv
bnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gYWRv
cHRDRigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oQ01TYW1w
bGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOwogICAgICAgICAg
ICAgaWYgKCFtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01TYW1w
bGVCdWZmZXJHZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgIG1fc2FtcGxl
QmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNh
bXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2Nr
QnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CisgICAg
ICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKICAgICAgICAgICAgIG1fY3VycmVu
dE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgIHNpemVfdCBudW1CeXRlc1RvQ29w
eUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksIChtX3NhbXBsZUJsb2Nr
QnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIpKTsKLSAgICAg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyht
X3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVm
ZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVu
dE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0g
Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9j
dXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxl
QmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmlyc3QgY2hhbm5l
bCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9j
a0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50
T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplLCBudW1C
eXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJ
blNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tC
dWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9m
ZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0
ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5T
b3VyY2VCdWZmZXIpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0
YUJ5dGVzIHNlY29uZCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KQEAgLTQzOSw4ICs0MzgsNiBAQCBP
U1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVt
T3V0cHV0UGFja2V0cyhVSW50MzIqCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsb3dXYXRlclRp
bWUpCiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9DT01QQVJFX0lO
TElORQotCiAgICAgaWYgKCFtX2NvbnZlcnRlcikgewogICAgICAgICBpZiAoQ01CdWZmZXJRdWV1
ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTUwNCw3ICs1MDEsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJv
Y2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbAogCiB2b2lkIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZl
clJlZiBidWZmZXIpCiB7Ci0gICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVl
dWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBD
TUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CiAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogCiAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShtX2xvd1dh
dGVyVGltZSk7CkBAIC01MjMsMTIgKzUyMCwxMiBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIAogQ01T
YW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1w
bGVCdWZmZXIoKQogewotICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8
dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSkpKTsKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihD
TUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOwogfQogCiBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxl
QnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5k
UmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9wdENG
KChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVl
dWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAKIHVuc2lnbmVk
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCmluZGV4IGI3NTU4
ZDI4MGMyZWY3OTYwNjhjYWMwY2M5NmI1MDMzZGMzNzA5NzEuLmY1Zjg1NTg3MWZjNzA4NTY2Zjdl
ZjhiOWExNjFlMjdiOGU1ZDg5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC0xMjcsOCArMTI3LDggQEAgcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV92aWRlb0Zvcm1hdERlc2NyaXB0
aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IG1f
dmlkZW9Db21wcmVzc29yOwogICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5wdXQ+IG1fdmlk
ZW9Bc3NldFdyaXRlcklucHV0OwotICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRp
bWU7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOworICAgIENNVGltZSBtX2xh
c3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBt
X2xhc3RWaWRlb0RlY29kaW5nVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07CiAgICAgYm9vbCBtX2hh
c0VuY29kZWRWaWRlb1NhbXBsZXMgeyBmYWxzZSB9OwogCiAgICAgUmV0YWluUHRyPFdlYkFWQXNz
ZXRXcml0ZXJEZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0ZTsKQEAgLTEzOSw5ICsxMzksOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTdG9wQWZ0ZXJGbHVzaGluZ1NhbXBsZXMgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9maXJzdFZpZGVvRnJhbWUgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0
aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IG1fdmlkZW9UcmFuc2Zvcm07Ci0gICAgQ01UaW1lIG1f
cmVzdW1lZFZpZGVvVGltZTsKLSAgICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJhdGlvbjsKLSAg
ICBDTVRpbWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lOworICAgIENNVGltZSBtX3Jlc3VtZWRW
aWRlb1RpbWUgeyBrQ01UaW1lWmVybyB9OworICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0
aW9uIHsga0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
IHsga0NNVGltZVplcm8gfTsKICAgICBkb3VibGUgbV90aW1lQ29kZSB7IDAgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpp
bmRleCA2YWQyMGJlOGNiNTc5MjNhMGU3ODQyZTM3MDFkMzNhNmFhMDNhYjZjLi42M2JkNjU5OGQw
MmE1YzcwMDZkYTkyOWZjOTRmMWY1ZjY2YTcxNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05Myw2ICs5Myw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogUmVmUHRyPE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3Jl
YXRlKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2
YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpuZXcg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7CkBAIC0xMjAs
MTEgKzEyMiw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRB
dWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRpbywgYm9vbCBo
YXNWaWRlbykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hhc1ZpZGVvKGhh
c1ZpZGVvKQotICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6a0NNVGltZUlu
dmFsaWQpCi0gICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRpbWVJbnZhbGlk
KQotICAgICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCi0gICAgLCBtX2N1
cnJlbnRWaWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCi0gICAgLCBtX2N1cnJlbnRBdWRp
b1NhbXBsZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTgyLDcgKzE3OSw3IEBA
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkVmlk
ZW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAgICAgaWYgKCFt
X3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1hdERlc2NyaXB0
aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fdmlkZW9Db21w
cmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAgICAgIG1fdmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92aWRlb0Nv
bXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBpZiAobV9oYXNB
dWRpbyAmJiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTk5LDcgKzE5Niw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nl
c3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNB
dWRpbyk7CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV9h
dWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2Ny
aXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAg
ICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKICAg
ICAgICAgaWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAg
ICAgICAgIHJldHVybjsKIApAQCAtMjQxLDcgKzIzOCw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpQQUw6OmtDTVRp
bWVaZXJvXTsKKyAgICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOmtD
TVRpbWVaZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CiAKQEAg
LTMwMyw4ICszMDAsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRD
b21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcihDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1
dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9u
VGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVy
KTsKLSAgICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRE
ZWNvZGVUaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUg
PSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOworICAgIG1f
bGFzdFZpZGVvRGVjb2RpbmdUaW1lID0gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAo
YnVmZmVyKTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwogCiAgICAgW21f
dmlkZW9Bc3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZmZXJdOwpA
QCAtMzE3LDE3ICszMTQsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBw
ZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5k
RW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0ICphc3Nl
dFdyaXRlcklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgZGVjb2Rp
bmdUaW1lU3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBB
TDo6a0NNVGltZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3Rh
bXB9OworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxp
ZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5V
TEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsKKyAgICBhdXRv
IGVycm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwg
dHJ1ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZm
ZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBs
ZUR1cmF0aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRoICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRv
cHRDRihidWZmZXIpOwogCi0gICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdl
dCgpLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxl
RHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdh
dGUpOworICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIGtDTVNhbXBsZUJ1
ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5U
cnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlmICghW2Fzc2V0
V3JpdGVySW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0pCiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXIgYXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsKIH0KQEAg
LTM4NSwxOCArMzgyLDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNo
Q29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0aWMgaW5saW5l
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50
VGltZVN0YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRpbWUgc3RhcnRU
aW1lKQogewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3Vu
dCk7CisgICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxC
dWZmZXIsIDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+
IHRpbWVJbmZvKGNvdW50KTsKLSAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQp
OworICAgIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVm
ZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9yIChhdXRvIGkg
PSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1lU3Rh
bXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOworICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1l
U3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJlc2VudGF0aW9u
VGltZVN0YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5l
d0J1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3JpZ2luYWxC
dWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZuZXdCdWZmZXIpKSB7CisgICAgaWYgKGF1
dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3
QnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1p
bmcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KQEAgLTQwNyw3ICs0MDQsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjph
cHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIGlmICgh
bV9maXJzdFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUgPSB0cnVlOwot
ICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01D
bG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IENN
Q2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAgICBpZiAoc2Ft
cGxlLnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB8
fCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVvVHJhbnNmb3Jt
ID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50PihzYW1wbGUu
dmlkZW9Sb3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYgKHNhbXBsZS52
aWRlb01pcnJvcmVkKCkpCkBAIC00MTUsOCArNDEyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lU3Vi
dHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkp
LCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwotICAgIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZUFkZChz
YW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHNhbXBsZVRpbWUg
PSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygp
KSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICBzYW1wbGVUaW1lID0gQ01UaW1lQWRkKHNhbXBs
ZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1ZmZlcldpdGhD
dXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChzYW1wbGUu
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRpbWUpKQogICAg
ICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50
VGltZS5nZXQoKSk7CiB9CkBAIC00MjUsNyArNDIyLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZl
cihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3Vu
dCkpCiAgICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoc2FtcGxlQnVm
ZmVyLmdldCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBQQUw6OkNNVGltZUFk
ZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6dG9DTVRpbWUoTWVkaWFUaW1lKHNhbXBs
ZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CisgICAgbV9jdXJyZW50QXVkaW9T
YW1wbGVUaW1lID0gQ01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgdG9DTVRpbWUo
TWVkaWFUaW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CiB9CiAK
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hpbmdTYW1wbGVz
KCkKQEAgLTUyNiwxMCArNTIzLDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmNvbXBsZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29kZSA9IG1fdGlt
ZUNvZGU7CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUgPSBQQUw6OkNN
VGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKKyAgICAgICAgbV90aW1l
Q29kZSA9IENNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKICAgICBl
bHNlIHsKLSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6
OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1l
ZFZpZGVvVGltZSk7Ci0gICAgICAgIG1fdGltZUNvZGUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMo
UEFMOjpDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbikpOworICAg
ICAgICBhdXRvIHNhbXBsZVRpbWUgPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNs
b2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICAgICAgbV90
aW1lQ29kZSA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lQWRkKHNhbXBsZVRpbWUsIG1fY3VycmVu
dFZpZGVvRHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxl
cih0YWtlRGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUzLDEzICs1NTAsMTMgQEAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnRha2VEYXRh
KCkKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQogewotICAgIGF1
dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dl
dFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1l
KTsKLSAgICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gUEFMOjpDTVRpbWVBZGQocmVjb3JkaW5n
RHVyYXRpb24sIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOworICAgIGF1dG8gcmVjb3JkaW5nRHVy
YXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVD
bG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9u
ID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsK
IH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkKIHsKLSAgICBt
X3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhv
c3RUaW1lQ2xvY2soKSk7CisgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRpbWUo
Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9W
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggZDA3NjBmMDdlMzcwODEyN2Y5ZGUy
ZWZhZjkyZjBlMDc3MmZkMzhlNy4uNzZkNTZkN2I4ZDEzYzcyZWEzOWZjMzQ5OWQxNzk4OTk3MTdm
MGU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW0KQEAgLTM0LDExICszNCwxMiBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29tcHJlc3Np
b25TZXNzaW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAotI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgUEFMOwor
CiBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVmZmVyUXVldWVU
cmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1
dG8gcHJvZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjgsNyArNjksNyBAQCBWaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcihDTVZpZGVv
Q29kZWNUeXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsKLSAgICAgICAg
UEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOwor
ICAgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkp
OwogICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzYsMTIgKzc3
LDEyIEBAIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvcigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShD
TUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVj
dCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVy
cygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZl
clF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gb3V0
cHV0QnVmZmVyUXVldWU7Ci0gICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9v
dXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5V
TEwpOworICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVl
LmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9X
aGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29k
aW5nID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk1LDEwICs5NiwxMCBAQCB2b2lkIFZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNpZ25lZCBiaXRS
YXRlKQogdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgpCiB7CiAgICAg
bV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAgICAgYXV0
byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vz
c2lvbi5nZXQoKSwgUEFMOjprQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBW
VENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpLCBrQ01U
aW1lSW52YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0
cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvbkNv
bXBsZXRlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAgIGVycm9yID0g
UEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
KTsKKyAgICAgICAgZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1
ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1l
ZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJr
RW5kT2ZEYXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1faXNFbmNvZGlu
ZyA9IGZhbHNlOwpAQCAtMTEzLDcgKzExNCw3IEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2b2lkKiwKIAog
ICAgIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0YXRpY19jYXN0
PFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBhdXRvIGVycm9y
ID0gUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpLCBidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1
ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
IH0KIApAQCAtMTI5LDUzICsxMzAsNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3Byb2Zp
bGUpIHsKICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1cm4gUEFMOjpr
VlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2FzZSBQcm9maWxl
OjpIaWdoOgotICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1
dG9MZXZlbDsKKyAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xl
dmVsOwogICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJv
ZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBrVlRQcm9maWxl
TGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGltZW5zaW9ucyBk
aW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZv
cm1hdERlc2NyaXB0aW9uKTsKKyAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25z
ID0gbmlsOwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9
IEB7KF9fYnJpZGdlIE5TU3RyaW5nICopUEFMOjprVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9u
X0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CisgICAgTlNEaWN0
aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKWtW
VFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVv
RW5jb2RlcjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Npb25SZWYgdnRT
ZXNzaW9uOwotICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0
LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3Bl
Y2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywg
JnZ0U2Vzc2lvbik7CisgICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0
LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3Bl
Y2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywg
JnZ0U2Vzc2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25T
ZXNzaW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gTk87
CiAgICAgfQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwogCi0gICAgZXJy
b3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgZXJyb3Ig
PSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBW
VFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9u
UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0
aW9uKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNz
aW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxE
dXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZy
YW1lSW50ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9
IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhwZWN0ZWRGcmFt
ZVJhdGUpOworICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNl
c3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUs
IG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBN
ZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9w
ZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZl
bCwgdnRQcm9maWxlTGV2ZWwoKSk7CisgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eSht
X3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWws
IHZ0UHJvZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Np
b25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWls
ZWQgd2l0aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwogICAgICAgICBp
ZiAobV9wcm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAgICBlcnJvciA9
IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jh
c2VsaW5lX0F1dG9MZXZlbCk7CisgICAgICAgICAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3Bl
cnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVM
ZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsKICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBwcm9maWxlIiwg
ZXJyb3IpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewot
ICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9u
LmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsICpt
X291dHB1dEJpdFJhdGUpOworICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblBy
b3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJh
Z2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vz
c2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBQQUw6OlZUQ29t
cHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpKTsK
KyAgICBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1f
dnRTZXNzaW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25Q
cmVwYXJlVG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICByZXR1
cm4gWUVTOwpAQCAtMTg0LDE0ICsxODUsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW8KIHZv
aWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2Ft
cGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7Ci0gICAgICAg
IGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24oYnVmZmVyKSkpCisgICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lv
bihDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoYnVmZmVyKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblRpbWVT
dGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVy
KTsKLSAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1
ZmZlcik7Ci0gICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVG
cmFtZShtX3Z0U2Vzc2lvbi5nZXQoKSwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFt
cCwgZHVyYXRpb24sIE5VTEwsIHRoaXMsIE5VTEwpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRp
b25UaW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZm
ZXIpOworICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZl
cik7CisgICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92
dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0
aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNl
c3Npb25FbmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApAQCAtMjA3LDEy
ICsyMDgsMTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1
ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVmIFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICBy
ZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVy
UXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgcmV0dXJuIChD
TVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQo
bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZm
ZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2Fz
dDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZl
clF1ZXVlLmdldCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYp
KGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0
QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmluZGV4IGEwMjQw
ODRjMjRlNmQzNjM5NjA4YTY0NjUyZWNjNWQ2ZDllZmFjNjguLmMzZmU4MjFiOWM1MjBjOTIyNGU1
ZGU4ODhlNTE4YzMxOTZmMzFjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAgLTQyLDcgKzQy
LDYgQEAKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2VuZGlm
CiAKLSNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI0
LDkgKzEyMyw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX3Jl
bW90ZUlPVW5pdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0
KG1fcmVtb3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQgQXVkaW9PdXRw
dXRVbml0U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAgICBQQUw6OkF1
ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICAgICAgQXVk
aW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgICAgICBtX3Jl
bW90ZUlPVW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNDAsMTEg
KzEzOSwxMSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQ6OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0YXJ0ZWQpIHsK
LSAgICAgICAgUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0KTsKKyAgICAg
ICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1faXNTdGFy
dGVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlz
cG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Uo
bV9yZW1vdGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsKIH0KIApAQCAt
MTY0LDE0ICsxNjMsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9Vbml0RGVzY3Jp
cHRpb24uY29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1bHRPdXRwdXQ7
CiAjZW5kaWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gUEFMOjpBdWRpb0Nv
bXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CisgICAgQXVkaW9D
b21wb25lbnQgaW9Db21wb25lbnQgPSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZp
b1VuaXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBpZiAoIWlv
Q29tcG9uZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxl
IHRvIGZpbmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlv
Q29tcG9uZW50LCAmcmVtb3RlSU9Vbml0KTsKKyAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25l
bnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAgaWYgKGVycm9y
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIG9wZW4g
dnBpbyB1bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xNzks
NyArMTc4LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlP
LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAg
IGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwg
c2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpj
cmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0LCBlcnJvciA9
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODgsNyArMTg3LDcgQEAgdm9pZCBM
b2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGV2aWNlSUQp
IHsKLSAgICAgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5p
dCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOworICAgICAgICBl
cnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5p
dFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZtX2Rl
dmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB1bml0IGRl
dmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAoaW50KWVycm9y
LCAoY2hhciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5NywxNCArMTk2LDE0
IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRlckNhbGxiYWNr
U3RydWN0IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9yID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRS
ZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXpl
b2YoY2FsbGJhY2spKTsKKyAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlP
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2Nv
cGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJv
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQg
dnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9u
LnN0cmVhbURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlv
bigpLCAmc2l6ZSk7CisgICAgZXJyb3IgID0gQXVkaW9Vbml0R2V0UHJvcGVydHkocmVtb3RlSU9V
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6ZSk7CiAg
ICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5h
YmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm47CkBAIC0yMTIsMTMgKzIxMSwxMyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkK
IAogICAgIG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNhbXBsZVJhdGUg
PSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAKLSAgICBlcnJv
ciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNj
cmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3Ry
ZWFtRGVzY3JpcHRpb24oKSkpOworICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVt
b3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBzaXpl
b2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAgIGlmIChlcnJv
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQg
aW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlP
VW5pdCk7CisgICAgZXJyb3IgPSBBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5pdCk7CiAg
ICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgQXVk
aW9Vbml0SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDQ4NWU0Y2U0YzZkOGMz
MjQ1Yjc3OWQ2MWE2NzZjYmJiOTdiYWQ5MTAuLjRiNzg4YWU1YWE4N2I3MjllNWJkY2Y5Y2Y3MTM4
MTJjNjc3MGEzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUxLDYgKzUx
LDcgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZhY2UgV2ViQ29y
ZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1cmVWaWRlb0Rh
dGFPdXRwdXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0dXJlU291cmNl
KiBtX2NhbGxiYWNrOwpAQCAtMzUwLDEwICszNTEsMTAgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAgaWYgKGZyYW1l
UmF0ZVJhbmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRlID0gY2xhbXBU
byhtX2N1cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0ZSwgZnJhbWVS
YXRlUmFuZ2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVEdXJh
dGlvbiA9IFBBTDo6Q01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOwotICAgICAgICAg
ICAgICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFu
Z2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQorICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVEdXJh
dGlvbiA9IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKKyAgICAgICAgICAgICAg
ICBpZiAoQ01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFt
ZUR1cmF0aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFt
ZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBB
TDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1
cmF0aW9uKSA+IDApCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoQ01UaW1lQ29tcGFyZShmcmFt
ZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDApCiAgICAgICAg
ICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0
aW9uOwogCiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURF
TlRJRklFUiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFtZVJhdGUsICIs
IGR1cmF0aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpAQCAtNDE3LDcg
KzQxOCw3IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKICAg
ICBtX3Nlc3Npb24gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNl
KCkgaW5pdF0pOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUEFMOjpBVkNhcHR1cmVT
ZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlv
dXQobV9zZXNzaW9uLmdldCgpKTsKKyAgICBBVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRv
VXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9zZXNzaW9uLmdldCgpKTsK
ICNlbmRpZgogICAgIFttX3Nlc3Npb24gYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkg
Zm9yS2V5UGF0aDpAInJ1bm5pbmciIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5l
dyBjb250ZXh0Oih2b2lkICopbmlsXTsKIApAQCAtNDMzLDggKzQzNCw2IEBAIGJvb2wgQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKIEFWRnJhbWVSYXRlUmFuZ2UqIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKGRvdWJsZSByYXRlKQog
ewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUK
LQogICAgIEFWRnJhbWVSYXRlUmFuZ2UgKmJlc3RGcmFtZVJhdGVSYW5nZSA9IG5pbDsKICAgICBm
b3IgKEFWRnJhbWVSYXRlUmFuZ2UgKmZyYW1lUmF0ZVJhbmdlIGluIFtbZGV2aWNlKCkgYWN0aXZl
Rm9ybWF0XSB2aWRlb1N1cHBvcnRlZEZyYW1lUmF0ZVJhbmdlc10pIHsKICAgICAgICAgaWYgKGZy
YW1lUmF0ZVJhbmdlSW5jbHVkZXNSYXRlKHsgW2ZyYW1lUmF0ZVJhbmdlIG1pbkZyYW1lUmF0ZV0s
IFtmcmFtZVJhdGVSYW5nZSBtYXhGcmFtZVJhdGVdIH0sIHJhdGUpKSB7CkBAIC01OTksNyArNTk4
LDcgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKICAgICBW
ZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKICAgICBmb3IgKEFWQ2FwdHVyZURldmlj
ZUZvcm1hdCogZm9ybWF0IGluIFtkZXZpY2UoKSBmb3JtYXRzXSkgewogCi0gICAgICAgIENNVmlk
ZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgQ01WaWRlb0Rp
bWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lv
bnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgSW50U2l6ZSBzaXplID0geyBk
aW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCB9OwogICAgICAgICBhdXRvIGluZGV4
ID0gcHJlc2V0cy5maW5kTWF0Y2hpbmcoWyZzaXplXShhdXRvJiBwcmVzZXQpIHsKICAgICAgICAg
ICAgIHJldHVybiBzaXplID09IHByZXNldC0+c2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
RGV2aWNlLmNwcAppbmRleCBlMTU1NDYyZjUxODE1ODhiYTNiYzk0NTZjNmI2YWU5YWZlMjFiNWMx
Li42ZTI2YzhmYTRlY2QzMGFjMWU1MmZlYzM4YWY1N2QwZTMzZDliYzI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURl
dmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCkBAIC0xOSw3ICsxOSw3IEBACiAgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
ICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFUEFMOjpOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgZ2V0RGV2aWNlSW5mbyh1aW50MzJfdCBkZXZp
Y2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBTdHJpbmcmIHBlcnNpc3RlbnRJ
RCwgU3RyaW5nJiBsYWJlbCkKIHsKQEAgLTIwNCw3ICsyMDUsNyBAQCBSZXRhaW5QdHI8Q01DbG9j
a1JlZj4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlQ2xvY2soKQogICAgICAgICByZXR1
cm4gbV9kZXZpY2VDbG9jazsKIAogICAgIENNQ2xvY2tSZWYgY2xvY2s7Ci0gICAgYXV0byBlcnIg
PSBQQUw6OkNNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwZXJz
aXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOworICAgIGF1dG8gZXJy
ID0gQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBlcnNpc3Rl
bnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CiAgICAgaWYgKGVycikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNl
OjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoJXApIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBm
YWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIp
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmNwcAppbmRleCBmNGIzNjU4OTRkMzdjZDk0ZmYyMWI3ZmI1NGZkYjI2NDFmMzZmZTk2Li4wM2Yz
ZTYyYTI2MzdjM2U5MDFiYWY2OTRkM2M1MjY1ZWZhNzRhZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00OCw4ICs0OCw2IEBACiAjaW5jbHVkZSA8d3RmL0FsZ29y
aXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgotCi0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+
CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtNTksNiArNTcsNyBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShNQUMpCiBDb3JlQXVkaW9D
YXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmds
ZXRvbigpCkBAIC0yMDQsNyArMjAzLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoKQogICAgIG1fRFRTQ29udmVyc2lvblJhdGlvID0gMWUtOSAqIHN0YXRp
Y19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLm51bWVyKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4o
dGltZWJhc2VJbmZvLmRlbm9tKTsKIAogICAgIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gaW9V
bml0RGVzY3JpcHRpb24gPSB7IGtBdWRpb1VuaXRUeXBlX091dHB1dCwga0F1ZGlvVW5pdFN1YlR5
cGVfVm9pY2VQcm9jZXNzaW5nSU8sIGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGUsIDAsIDAg
fTsKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRG
aW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50
IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVz
Y3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVu
dCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRV
bml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGZpbmQgdnBpbyB1bml0IGNvbXBvbmVu
dCIsIHRoaXMpOwpAQCAtMjEzLDcgKzIxMiw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBDRlN0cmluZ1Jl
ZiBuYW1lID0gbnVsbHB0cjsKLSAgICBQQUw6OkF1ZGlvQ29tcG9uZW50Q29weU5hbWUoaW9Db21w
b25lbnQsICZuYW1lKTsKKyAgICBBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAm
bmFtZSk7CiAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgbV9pb1VuaXROYW1lID0gbmFtZTsKICAg
ICAgICAgQ0ZSZWxlYXNlKG5hbWUpOwpAQCAtMjIxLDcgKzIyMCw3IEBAIE9TU3RhdHVzIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICB9CiAjZW5kaWYKIAotICAgIGF1
dG8gZXJyID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50LCAmbV9p
b1VuaXQpOworICAgIGF1dG8gZXJyID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBv
bmVudCwgJm1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFi
bGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yMjksMTMgKzIyOCwxMyBAQCBP
U1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICAgICBpZiAo
IWVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSkgewogICAgICAgICB1aW50MzJfdCBwYXJhbSA9IDA7
Ci0gICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZv
aWNlSU9Qcm9wZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJv
Y2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJh
bSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gYXV0b21hdGljIGdhaW4gY29udHJvbCwgZXJyb3IgJWQg
KCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVy
biBlcnI7CiAgICAgICAgIH0KICAgICAgICAgcGFyYW0gPSAxOwotICAgICAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNz
Vm9pY2VQcm9jZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFt
LCBzaXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3Jl
QXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVu
aXQgZWNobyBjYW5jZWxsYXRpb24sIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjQ0LDcgKzI0Myw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDMyX3QgcGFyYW0gPSAxOwotICAgIGVyciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0
eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXpl
b2YocGFyYW0pKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1
ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlu
cHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRp
b1VuaXQoJXApIHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpA
QCAtMjU2LDcgKzI1NSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVk
aW9Vbml0KCkKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0gICAgZXJyID0gUEFM
OjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5
X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmbV9jYXB0
dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOworICAgIGVyciA9IEF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVu
dERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZp
Y2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1
ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgY2FwdHVyZSBkZXZpY2UgSUQgJWQs
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpbV9jYXB0dXJlRGV2aWNlSUQsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yNzEsNyArMjcwLDcgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIGlmIChl
cnIpCiAgICAgICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEluaXRp
YWxpemUobV9pb1VuaXQpOworICAgIGVyciA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9pb1VuaXQp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIEF1ZGlvVW5pdEluaXRpYWxpemUo
KSBmYWlsZWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7
CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yOTMsNyArMjkyLDcgQEAgdm9pZCBDb3JlQXVkaW9T
aGFyZWRVbml0Ojp1bmR1Y2soKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmln
dXJlTWljcm9waG9uZVByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJh
Y2sgPSB7IG1pY3JvcGhvbmVDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X1Nl
dElucHV0Q2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmY2FsbGJh
Y2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBr
QXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJh
Y2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUg
dG8gc2V0IHZwaW8gdW5pdCBtaWMgcHJvYywgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMwMiwxNCArMzAxLDE0
IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9j
KCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbWljcm9waG9uZVByb2NGb3JtYXQg
PSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtaWNyb3Bob25lUHJvY0Zvcm1hdCk7
Ci0gICAgZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMs
ICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IEF1ZGlvVW5pdEdldFBy
b3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9V
bml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7
CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3Jl
QXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIGdl
dCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAgICBtaWNyb3Bo
b25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9j
Rm9ybWF0LCBzaXplKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwg
aW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBvdXRwdXQgc3RyZWFtIGZv
cm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgcmV0dXJuIGVycjsKQEAgLTMyNCw3ICszMjMsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9T
aGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0YXR1cyBDb3JlQXVkaW9T
aGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFj
a1N0cnVjdCBjYWxsYmFjayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBl
cnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAm
Y2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxi
YWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRv
IHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzMzLDE0ICszMzIs
MTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2Mo
KQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzcGVha2VyUHJvY0Zvcm1hdCA9IHsg
fTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHNwZWFrZXJQcm9jRm9ybWF0KTsKLSAgICBl
cnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFr
ZXJQcm9jRm9ybWF0LCAmc2l6ZSk7CisgICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9J
bnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVu
aXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBm
b3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCiAgICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBs
ZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0
eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNj
b3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJy
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJl
YW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NG
b3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVu
YWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywg
KGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTQ2MCw3ICs0
NTksNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQoKQogICAg
IH0KIAogICAgIGlmIChtX2lvVW5pdCkgewotICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKKyAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UobV9pb1VuaXQpOwogICAgICAgICBtX2lvVW5pdCA9IG51bGxwdHI7CiAgICAgfQogCkBA
IC00NzgsNyArNDc3LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1
cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0
ZWQpIHsKLSAgICAgICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsK
KyAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CiAgICAgICAgIGlm
IChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdG9w
IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVy
cik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDkxLDcgKzQ5MCw3IEBAIE9TU3RhdHVz
IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0
dXJuIGVycjsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gUEFM
OjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9IEF1ZGlvT3V0
cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1
cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1
cm4gZXJyOwpAQCAtNTE1LDcgKzUxNCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OnN0YXJ0SW50ZXJuYWwoKQogCiAgICAgdW5kdWNrKCk7CiAKLSAgICBlcnIgPSBQQUw6OkF1ZGlv
T3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKKyAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdGFy
dChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydCglcCkgQXVkaW9PdXRwdXRVbml0U3Rh
cnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikm
ZXJyKTsKICAgICAgICAgY2xlYW51cEF1ZGlvVW5pdCgpOwpAQCAtNTUyLDcgKzU1MSw3IEBAIHZv
aWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKCkKICAgICBpZiAoIW1faW9Vbml0
IHx8ICFtX2lvVW5pdFN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gZXJyID0g
UEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IEF1ZGlv
T3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcCglcCkgQXVkaW9P
dXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm47CkBAIC01NjYsNyArNTY1LDcgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKHVpbnQzMl90KiBk
ZXZpY2VJRCkKICAgICBBU1NFUlQobV9pb1VuaXQpOwogCiAgICAgVUludDMyIHByb3BlcnR5U2l6
ZSA9IHNpemVvZigqZGV2aWNlSUQpOwotICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQ
cm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2Us
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6
ZSk7CisgICAgYXV0byBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CiAgICAgaWYgKGVycikKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVs
dElucHV0RGV2aWNlKCVwKSB1bmFibGUgdG8gZ2V0IGRlZmF1bHQgaW5wdXQgZGV2aWNlIElELCBl
cnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggNTgyZjRiMjZjZjExOGM0OTcx
YWNkN2QxODMwOTIxOTdlMWU3NjgyYS4uM2Y0ZTRkY2Y0MmMwZmE5M2VmOWFiNjJkZDIyYTk3YzUx
Mzg3MDY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAt
NTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9y
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJl
ZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1
ZGlvU2hhcmVkVW5pdC5tbQppbmRleCBiODZiMDVlOGM2NjViYzJlODA1ZjI3YjM4YjFhNGZkMzMx
M2Y5MmMzLi5hYTdmZjA4NzUwNTQyNTgyZjFlZjkxNjdhODFlNmZiNWE1NDhmMTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hh
cmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtNDQsMTAgKzQ0LDE0IEBACiAjaW1wb3J0IDxBdWRp
b1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVBdWRpby9Db3JlQXVkaW9U
eXBlcy5oPgogCi0jaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBv
cnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCitTT0ZUX0xJTktfRlJBTUVXT1JLKEF1
ZGlvVG9vbGJveCkKKworU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcs
IE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZv
cm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9y
bWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3Jt
YXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzaXplX3Qg
YWxpZ25UbzE2Qnl0ZXMoc2l6ZV90IHNpemUpCiB7CkBAIC0yMTcsNyArMjIxLDcgQEAgdm9pZCBN
b2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSgpCiAgICAgbV9hdWRpb0J1ZmZlckxpc3Qg
PSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fbWF4aW1p
dW1GcmFtZUNvdW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb247Ci0gICAgUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoTlVMTCwgJm1f
c3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVzY3JpcHRpb24p
OworICAgIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3Jt
YXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9m
b3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgc2l6
ZV90IHNhbXBsZUNvdW50ID0gMiAqIHJhdGU7CkBAIC0yMzksNyArMjQzLDcgQEAgdm9pZCBNb2Nr
QXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyh1aW50MzJfdCBmcmFtZUNvdW50KQog
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2Zvcm1hdERlc2NyaXB0
aW9uKTsKIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9zYW1wbGVz
RW1pdHRlZCwgc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFr
ZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOwogICAgIG1fc2FtcGxlc0VtaXR0ZWQg
Kz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShQQUw6OnRvTWVkaWFU
aW1lKHN0YXJ0VGltZSksICptX2F1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uKG1fc3RyZWFtRm9ybWF0KSwgZnJhbWVDb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYjYwYjg4NjZmYmI4MDQ4OGMyM2ZlMmI1NzY5MmIzMGY4
N2UzODY5MC4uYjA1OWEzMjUxZDhiOTY1N2JhOTAxNGM0NGY4MDYzYWY4MjdiMWQ0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNTEsNiArNTEsNyBAQAog
I2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3Bw
CmluZGV4IGFhNjk2YWRkZjdmNzc5MjU5MTUyOTU4M2MyMTYwYzEyNDkxMWQ1NWQuLjU4MDk0YjM0
MjBmMzljOGYyNmMxNzc3YTJhZWQwMTIzZGJlYTI2MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
PiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlv
VHJhY2tJZCkKIHsKQEAgLTEzMCw3ICsxMzEsNyBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZUNvY29hOjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1Blcgog
ICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IDA7CiAgICAgfQogCi0gICAgQ01UaW1lIHN0
YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsK
KyAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1w
bGVSYXRlKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1l
KTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVzOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggMGM3MWUxZGIx
MGZhNDM3YTdjMDA0M2QzNjRmNDRiZjcyMzcxMWM5Ny4uOGRmOGY2OGY2ZjcyNDA0NzVkYmQ0MzIz
MDZhYTNhNTY5ZjZlNDhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbQpAQCAtNDIsNiArNDIsNyBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVS
U19FTkQKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmlu
ZyYmIHRyYWNrSWQpCiB7CkBAIC0xNzIsMTkgKzE3MywxOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJh
bWUpCiAgICAgfQogCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm87Ci0gICAgdGlt
aW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNNVGltZU1ha2UoZnJhbWUudGlt
ZXN0YW1wX3VzKCksIDEwMDAwMDApOwotICAgIHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0g
UEFMOjprQ01UaW1lSW52YWxpZDsKLSAgICB0aW1pbmdJbmZvLmR1cmF0aW9uID0gUEFMOjprQ01U
aW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENNVGlt
ZU1ha2UoZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApOworICAgIHRpbWluZ0luZm8uZGVj
b2RlVGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5kdXJhdGlvbiA9
IGtDTVRpbWVJbnZhbGlkOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVklt
YWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIE9TU3Rh
dHVzIG9zdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZv
cm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0VycikgewogICAgICAgICBF
UlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJGYWlsZWQgdG8gaW5pdGlh
bGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxp
bnQ+KG9zdGF0dXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVm
ZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1w
bGVCdWZmZXIpOworICAgIG9zdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVm
ZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAg
IENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIp
IHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFp
bGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0
PGludD4ob3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5jcHAKaW5kZXggZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5NmZkOWVmMDJhYzk4MTRh
MWViNS4uNmJmMGNhNDg3ZGQ2NGRiZWY1MzlkOTQ4ODBmNjI4YzdmYTE2MWJmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC00NSw2
ICs0NSw3IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogI2luY2x1ZGUgIkNvcmVWaWRl
b1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
CiAKIFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJj
ZSkKIHsKQEAgLTg0LDcgKzg1LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICB9CiAK
ICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBs
ZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNh
bXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOworICAgIGF1dG8g
cGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcikpOwogICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVs
Rm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gY29udmVydGVkQnVmZmVyID0gcGl4ZWxCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlD
YXB0dXJlck1hYy5tbQppbmRleCAxMjkzZGE1NTlmOTI5YTdhZWVjNTRkMDdhYTlhZTRmOTk0Zjk1
YjQ0Li43OGJiY2FkMTM5OTg2MmY1NWI5NzBiZTQ3N2YyNTE0YzRmMzQ4NDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNh
cHR1cmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KQEAgLTQ2LDYgKzQ2LDcgQEAKIFdURl9ERUNM
QVJFX0NGX1RZUEVfVFJBSVQoQ0dJbWFnZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGFueU9mQ0dXaW5kb3coY29uc3QgRnVuY3Rp
b248Ym9vbChDRkRpY3Rpb25hcnlSZWYgaW5mbywgdW5zaWduZWQgaWQsIGNvbnN0IFN0cmluZyYg
dGl0bGUpPiYgcHJlZGljYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
aW9zL1dlYkljb25VdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNv
blV0aWxpdGllcy5tbQppbmRleCBmNmIzY2U5MWQ1MjU2MjJkMWRiMWYyMDE3ZTgxMTExNTU1OTZl
M2Y1Li40ZWEzZGU4NmNiYjQ0NDE5ZGE2ZTFmNDkzYmVhODM5MDU1ZGQxODVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQpAQCAtMTI0LDcgKzEyNCw3
IEBAIFJldGFpblB0cjxVSUltYWdlPiBpY29uRm9yVmlkZW9GaWxlKE5TVVJMICpmaWxlKQogICAg
IFtnZW5lcmF0b3Igc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107CiAKICAg
ICBOU0Vycm9yICplcnJvciA9IG5pbDsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2VS
ZWYgPSBhZG9wdENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRpbWU6UEFMOjprQ01UaW1lWmVy
byBhY3R1YWxUaW1lOm5pbCBlcnJvcjomZXJyb3JdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gaW1hZ2VSZWYgPSBhZG9wdENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRpbWU6a0NNVGlt
ZVplcm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKCFpbWFnZVJlZikg
ewogICAgICAgICBMT0dfRVJST1IoIkVycm9yIGNyZWF0aW5nIGltYWdlIGZvciB2aWRlbyAnJUAn
OiAlQCIsIGZpbGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbGxiYWNrSWNvbkZvckZpbGUo
ZmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKaW5kZXggMGJhYzFlMjg5ZTc3NzJl
YWU3ZTZiMzY5ODEwODU5NGI3YTY4Njg1My4uYTE2ZDI0MjU2NDFmMzdhMTlkMGMwOWU1NGJjM2Vl
ZjRhYTI4MThlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcApAQCAtMzQsMTcgKzM0
LDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGNyZWF0ZVdyYXBwZXIoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIGJhc2VWVGFibGUsIENNQmFzZUNs
YXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiB3cmFwcGVyKQogewotICAgIHJldHVybiBQ
QUw6OkNNRGVyaXZlZE9iamVjdENyZWF0ZShhbGxvY2F0b3IsIGJhc2VWVGFibGUsIGNsYXNzSUQs
IHdyYXBwZXIpID09IG5vRXJyOworICAgIHJldHVybiBDTURlcml2ZWRPYmplY3RDcmVhdGUoYWxs
b2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBub0VycjsKIH0KIAogdm9p
ZCogd3JhcHBlclN0b3JhZ2UoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIpCiB7Ci0gICAgcmV0dXJu
IFBBTDo6Q01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7CisgICAgcmV0dXJu
IENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOwogfQogCiBjb25zdCBDTUJh
c2VWVGFibGUqIHdyYXBwZXJWVGFibGUoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIpCiB7Ci0gICAg
cmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOworICAgIHJldHVybiBD
TUJhc2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L01lZGlhRm9ybWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKaW5kZXggNWU3NzhjYzBiN2JkYTc0ZTNm
NzVjOTliNThiYThiZmEyNTE3MjkyYS4uYzE4NGU0NDdiMmNkNDQyYTg0N2VjMzE2MjMzNmI2ZmFm
Nzg3M2M3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3
IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5Gb3JtYXRSZWFkZXIpOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQpAQCAt
MjQ0LDcgKzI0NSw3IEBAIE9TU3RhdHVzIE1lZGlhRm9ybWF0UmVhZGVyOjpjb3B5UHJvcGVydHko
Q0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0CiAgICAgaWYgKG1fZHVyYXRp
b24uaXNJbmRlZmluaXRlKCkpCiAgICAgICAgIHJldHVybiBrQ01CYXNlT2JqZWN0RXJyb3JfVmFs
dWVOb3RBdmFpbGFibGU7CiAKLSAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9IGFkb3B0Q0Yo
UEFMOjpDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJhdGlvbiksIGFs
bG9jYXRvcikpLmxlYWtSZWYoKSkgeworICAgIGlmIChhdXRvIGxlYWtlZER1cmF0aW9uID0gYWRv
cHRDRihDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJhdGlvbiksIGFs
bG9jYXRvcikpLmxlYWtSZWYoKSkgewogICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkRpY3Rp
b25hcnlSZWYqPih2YWx1ZUNvcHkpID0gbGVha2VkRHVyYXRpb247CiAgICAgICAgIHJldHVybiBu
b0VycjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAppbmRleCA0
ZGUxZDBlZDJhN2JlNDllM2NiYmI5NWUzNzdmNTQ1MDlmYWMwN2FkLi5kODNlZmNmNDc3NWNlOTZi
MTJhODc2MGY4ZDE3MjM0YWIwZjFlZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVS
YW5nZS5jcHAKQEAgLTI1LDEyICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTWVkaWFTYW1wbGVCeXRlUmFuZ2UuaCIKLSNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlh
U29mdExpbmsuaD4KIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCit1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNh
bXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSwgdWludDY0X3Qg
dHJhY2tJRCkKQEAgLTUwLDcgKzUwLDcgQEAgTWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2Ft
cGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXIKICAgICBh
dXRvIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgc3dpdGNo
IChwbGF0Zm9ybVNhbXBsZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1w
bGVCdWZmZXJUeXBlOgotICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlcik7CisgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdl
dEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkJ5dGVSYW5nZVNhbXBs
ZVR5cGU6CiAgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBwbGF0Zm9ybVNhbXBsZS5zYW1w
bGUuYnl0ZVJhbmdlU2FtcGxlLnNlY29uZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3Bw
CmluZGV4IGZiZTQyMjczMDZmODBmNjFjMTI3YzMzOGM3MWVmYTU0YTJkMjBjODcuLmNlMjkwNmRj
NDQyOWI4NzUxNGE3YjAwYzMyMTczOTJkNTA3YjNmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxl
Q3Vyc29yLmNwcApAQCAtNDMsNiArNDMsNyBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1U
UGx1Z2luU2FtcGxlQ3Vyc29yKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIE1lZGlhVGltZSBh
c3N1bWVkRGVjb2RlVGltZShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUsIERlY29k
ZU9yZGVyU2FtcGxlTWFwJiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKaW5kZXgg
MWRjMWNhZTAzMDA4ZTBhMjBhNDRhYzczZDFhYTM3MjUzNTdmMjBmYS4uOTA4NjFjODRkZGU2YzY2
ZGRiODc3OTNhYjIzMDZhNjZlNGRlYjczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNw
cApAQCAtNDcsNiArNDcsNyBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luVHJh
Y2tSZWFkZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBDTUJhc2VDbGFzc0lEIE1lZGlhVHJhY2tSZWFk
ZXI6OndyYXBwZXJDbGFzc0lEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRp
ZXNDb29yZGluYXRvci5tbQppbmRleCAxZTM4ZGU1ZGJkYTllMTU3MTI4ZjFmNDBkYWFkMWM0OTE5
MGUzMDBiLi4xN2Q3OWYxNjEwNTZhMDEwYTRlYWM1ODJmZDI3ODY4ZjM4OGE2MjExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBB
Y3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDIs
NiArMTAyLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
CisKIFJlZjxHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcj4gR3JvdXBBY3Rpdml0aWVzQ29vcmRp
bmF0b3I6OmNyZWF0ZShHcm91cEFjdGl2aXRpZXNTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yKHNlc3Npb24pKTsK
QEAgLTE1Miw3ICsxNTQsNyBAQCB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpsZWF2
ZSgpCiAKIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGlt
ZSwgQ29vcmRpbmF0b3JDb21wbGV0aW9uSGFuZGxlciYmIGNhbGxiYWNrKQogewotICAgIFttX3Bs
YXliYWNrQ29vcmRpbmF0b3IgY29vcmRpbmF0ZVNlZWtUb1RpbWU6UEFMOjpDTVRpbWVNYWtlV2l0
aFNlY29uZHModGltZSwgMTAwMCkgb3B0aW9uczowXTsKKyAgICBbbV9wbGF5YmFja0Nvb3JkaW5h
dG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCAxMDAw
KSBvcHRpb25zOjBdOwogICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7CiB9CiAKQEAgLTIwOSwx
MCArMjExLDEwIEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlUGxheUNv
bW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAKICAgICBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gaXRlbVRpbWU7CiAgICAgaWYgKENNVElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5k
Lml0ZW1UaW1lKSkKLSAgICAgICAgaXRlbVRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMocGxh
eUNvbW1hbmQuaXRlbVRpbWUpOworICAgICAgICBpdGVtVGltZSA9IENNVGltZUdldFNlY29uZHMo
cGxheUNvbW1hbmQuaXRlbVRpbWUpOwogICAgIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4g
aG9zdFRpbWU7CiAgICAgaWYgKENNVElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5kLmhvc3RDbG9j
a1RpbWUpKQotICAgICAgICBob3N0VGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1
dGVUaW1lKFBBTDo6Q01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMocGxheUNvbW1h
bmQuaG9zdENsb2NrVGltZSkpOworICAgICAgICBob3N0VGltZSA9IE1vbm90b25pY1RpbWU6OmZy
b21NYWNoQWJzb2x1dGVUaW1lKENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzKHBs
YXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsKIAogICAgIGNsaWVudCgpLT5wbGF5U2Vzc2lvbihp
dGVtVGltZSwgaG9zdFRpbWUsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkg
ewogICAgICAgICBjYWxsYmFjaygpOwpAQCAtMjQ0LDcgKzI0Niw3IEBAIHZvaWQgR3JvdXBBY3Rp
dml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlU2Vla0NvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tD
b29yZGluYXRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjbGllbnQoKS0+c2Vla1Nl
c3Npb25Ub1RpbWUoUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHNlZWtDb21tYW5kLml0ZW1UaW1lKSwg
W2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSBtdXRhYmxlIHsKKyAgICBjbGll
bnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoQ01UaW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFuZC5pdGVt
VGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0YWJsZSB7CiAg
ICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDE3MWQ5Y2E0ODQ5
MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRkNDI3OTUuLjQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2Vh
YjgyZDk1ZmQwYWJlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoKQogewogICAgIHVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJh
bWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlv
Q29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFpc0F1ZGlvVG9v
bGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hDb3Jl
X0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFU
Q0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KaW5kZXggMmE4M2Q5
NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkzNGMyNjMwNTU1YS4uZjM3ODRmYzI3MTJiMGRmNjM4NzEy
MDQ3Y2Q3MmY4NTMwYzc3NzIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCkBAIC00Miw2
ICs0Miw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQK
IAogbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBib29sIHVzYWdlVHJhY2tpbmdBdmFpbGFibGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGY4OTFhNTMzMTQ1MGJmMTdlYWY5NWIwMGUzMThkYWUz
YzczODc1NGUuLmMzMjNhNmE3OGI0NTAwNWI2Nzc0MDg2MmI2MjliMTZmYmI4MGY0MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eS5jcHAKaW5kZXggOGE1OWFlMWEyOGZhNDNhOWIyZjIxNTc2MjExODlhZTk3NmQxMDJk
Zi4uOTViYmQ1NDgzY2ZlYTE3YzkxMmVkNWI1ZjEzZjQzMWZhZTM3MTI2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5h
bWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5Ojp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4
IDBkNmRlMWYyYTk5MDYwOWVlOWEwNTAyZThkOTQ4YzM5MGZhMTFkZjYuLmExYTgyN2RmMWRkMWYx
NjIyN2MxM2VjNmVlMzA4NGU5ZDI2MWY0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5NSw3ICsxMzk1LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGEKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogCi0gICAg
aWYgKCFQQUw6OmlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFQQUw6
OmNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0
cmF0aW9ucygpKQorICAgIGlmICghaXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxl
KCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVy
UmVnaXN0cmF0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHJlZ2lzdHJhdGlv
bnMgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhLmRhdGEo
KSwgZGF0YS5zaXplKCkpKTsK
</data>
<flag name="commit-queue"
          id="454272"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432281</attachid>
            <date>2021-06-25 09:37:08 -0700</date>
            <delta_ts>2021-06-25 10:12:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227381-20210625093707.patch</filename>
            <type>text/plain</type>
            <size>298015</size>
            <attacher name="Ryan Haddad">ryanhaddad</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Mjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwMGNhNGU1MmY5Zjlm
MzFiNmU5NjlmNGFlMmEzOGZkMjA5YTM4Ni4uYjBkNDE0M2IyZDQxYTQ1NGI5Njg2ZGYwOWI3YzYy
NmZjODJkODc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTI1ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjc5MjA4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3MzgxCisKKyAgICAgICAgQnJva2UgdGhlIEFwcGxlIFdpbmRvd3MgYnVpbGQu
CisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJOb3QgYWxsIHVzZXMg
b2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5raW5nIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzkyMDgKKwogMjAyMS0wNi0yNSAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhi
b3hdIEltcHJvdmUgY29tcHV0YXRpb24gb2YgaW50cmluc2ljIHNpemVzIG9mIGZsZXggaXRlbXMg
d2l0aCBhc3BlY3QgcmF0aW8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDgxMWQ2ODY2YTM0MDc0YjNm
NDc0ZTQxNzNjZjQ3NzZmMDM1ODA5NmMuLjY0ZjRiNDA4OTE4NjZiMjhkZjk0NzRlZjA4MTkwYTIx
YzE0Y2MxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA2LTI1
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjc5MjA4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MzgxCisKKyAgICAgICAgQnJva2UgdGhlIEFwcGxlIFdpbmRvd3Mg
YnVpbGQuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJOb3QgYWxs
IHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5raW5nIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAg
IGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzkyMDgKKwogMjAyMS0wNi0yMyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCBhbGwgdXNl
cyBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NDMxYzdmMzJjNDNkZjQ5ZTdjNzQwMzA3NjBlYjM1OWVmNWZlYTM5NC4uZWIxZTgwMjg0NzM2ZTBi
ZDM4MjAxZjkwODg2MTRiNDRiYTgyMGYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wNi0yNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KKworICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTIwOC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM4MQorCisgICAgICAgIEJyb2tlIHRoZSBBcHBsZSBX
aW5kb3dzIGJ1aWxkLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAi
Tm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZyIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAor
ICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjc5MjA4CisKIDIwMjEt
MDYtMjUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc5MjY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmlu
ZGV4IDA5YzJlYTMyOWMyYzBjYTZlZTZmN2JhM2EyYzQ0YWRmODM0OGU1ZjQuLjZhODIzZDYxYWQx
MDEwMzJiYmUxOTRhNjJiNWI2MTU2ZDIzY2FiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
QEAgLTUzLDYgKzUzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3Bh
Y2UgUEFMOworCiAjaWYgIVVTRShMSUJXRUJSVEMpCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBl
ZXJDb25uZWN0aW9uQmFja2VuZD4gY3JlYXRlTm9QZWVyQ29ubmVjdGlvbkJhY2tlbmQoUlRDUGVl
ckNvbm5lY3Rpb24mKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IDc0OTk0ZTJjNTEw
MGVjYWJhNjE1OTBmYjExODBhYTBiYzM3YjBkYjYuLjQwMGY5YjhkMTZiNTkzYjQ4NWUwMGM3Zjc4
ZjU5ZGU5OGRjMzdkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTU4LDYgKzU4LDcg
QEAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0Nv
bnRleHQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggZjFjMmFmMzNjNWZh
MmFiNmZjNTE2Njk5ODNmYTcwZTc2OTY0MDI4MC4uNWIxMzViMzlhNWEwYTFkODAxYmU2ODc4ZmJk
ZmY2NzY2YzJlOGFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtMzcsNiAr
MzcsOCBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUg
IkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gc3Ry
ZWFtRGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQpCkBA
IC02OSw3ICs3MSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlv
KEF1ZGlvQnVzJiBidXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJP
ZkZyYW1lcywgbV9jdXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3Rh
cnRUaW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5z
YW1wbGVSYXRlKCkpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFy
dFRpbWUpOwogICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5k
ZXggMzMzYWEyMjRjNzFhNzUwY2Q5YTBmNjlmNzgzZGQwMTU5NzUxMGFjNS4uNjdiNzhmNDZhNzgx
MTc4ODhmMDBkMDg5N2RiYTU3ZTdhYzUzODUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTI2LDQ2ICsyNiwyMCBAQAog
CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Nv
bXBvbmVudC5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgotI2lu
Y2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gv
QXVkaW9Gb3JtYXQuaD4KLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Vbml0Lmg+Ci0jaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CisKICNpbmNsdWRlIDx3dGYv
U29mdExpbmtpbmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQXVk
aW9Ub29sYm94KQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwg
QXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBC
b29sZWFuKiBvdXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91
dFNpemUsIG91dFdyaXRhYmxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9y
bWF0UHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0
IHZvaWQqIGluU3BlY2lmaWVyLCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0
UHJvcGVydHlEYXRhKSwgKGluUHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmll
ciwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0
YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQs
IGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwg
QXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBp
bkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBP
U1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0Nv
bnZlcnRlcikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJl
ZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSks
IChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Q
cm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVy
dHlJRCwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSks
IChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0
UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1
ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1l
cywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBv
dXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklu
cHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlckNv
bXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5JbnB1dERhdGFQcm9j
VXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVkaW9CdWZmZXJMaXN0
KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBvdXRQYWNrZXRE
ZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVByb2MsIGluSW5wdXRE
YXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRPdXRwdXREYXRhLCBv
dXRQYWNrZXREZXNjcmlwdGlvbikpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAoQXVkaW9Vbml0
IGNpKSwgKGNpKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkp
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b21wb25lbnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5j
ZSBpbkluc3RhbmNlKSwgKGluSW5zdGFuY2UpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAo
QXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29t
cG9uZW50LCBvdXROYW1lKSkKLQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNo
U2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lz
dHJhdGlvbnMpLCAob3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9v
bGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1
cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRp
b25zKSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVk
aW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2
b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0Zp
bGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXpl
RnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJ
RCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERh
dGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5j
LCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywg
KEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxl
R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBF
eHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5RGF0
YVNpemUsIHZvaWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0
eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwgT1NT
dGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiAqaW9OdW1iZXJG
cmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051bWJl
ckZyYW1lcywgaW9EYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0Zp
bGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJv
cGVydHlEYXRhKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQg
aW5GaWxlSUQsIEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1
ZGlvRmlsZSksIChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZU9wZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0
RXh0QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQotCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4
dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVk
aW9Db21wb25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQs
IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJ
bnN0YW5jZSkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVk
aW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRF
bGVtZW50IGluRWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGlu
VW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJ
bml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCBjb25zdCB2b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwg
aW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQogCiAjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29s
Ym94U29mdExpbmsuaAppbmRleCBkZGYxM2EwMjdhNDVhMjJiODM5OGQxMzVlOGUwYjNkZmM2ODU1
MmI3Li40OWUzMmUxNzk0MDM2M2I4NDk3NzQ0MzViZDIwOTVlNjRhYjQ4ODFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0yNiwx
MTQgKzI2LDI3IEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogCi0jaW5jbHVkZSA8Q29yZUF1
ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIHR5
cGVkZWYgVUludDMyIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRDsKIHR5cGVkZWYgVUludDMyIEF1
ZGlvRm9ybWF0UHJvcGVydHlJRDsKIHR5cGVkZWYgc3RydWN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247CiB0eXBlZGVmIHN0cnVjdCBPcGFx
dWVBdWRpb0NvbnZlcnRlciogQXVkaW9Db252ZXJ0ZXJSZWY7Ci10eXBlZGVmIHN0cnVjdCBBdWRp
b0J1ZmZlckxpc3QgQXVkaW9CdWZmZXJMaXN0OwotdHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvQ29u
dmVydGVyQ29tcGxleElucHV0RGF0YVByb2MpKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252
ZXJ0ZXIsCi0gICAgVUludDMyKiBpb051bWJlckRhdGFQYWNrZXRzLAotICAgIEF1ZGlvQnVmZmVy
TGlzdCogaW9EYXRhLAotICAgIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qKiBvdXREYXRh
UGFja2V0RGVzY3JpcHRpb24sCi0gICAgdm9pZCogaW5Vc2VyRGF0YSk7Ci0KLXR5cGVkZWYgc3Ry
dWN0IE9wYXF1ZUV4dEF1ZGlvRmlsZSogRXh0QXVkaW9GaWxlUmVmOwotdHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlQXVkaW9GaWxlSUQqIEF1ZGlvRmlsZUlEOwotdHlwZWRlZiBVSW50MzIgQXVkaW9GaWxl
VHlwZUlEOwotdHlwZWRlZiBVSW50MzIgRXh0QXVkaW9GaWxlUHJvcGVydHlJRDsKLXR5cGVkZWYg
T1NTdGF0dXMgKCpBdWRpb0ZpbGVfUmVhZFByb2MpKAotICAgIHZvaWQqIGluQ2xpZW50RGF0YSwK
LSAgICBTSW50NjQgaW5Qb3NpdGlvbiwKLSAgICBVSW50MzIgcmVxdWVzdENvdW50LAotICAgIHZv
aWQqIGJ1ZmZlciwKLSAgICBVSW50MzIqIGFjdHVhbENvdW50KTsKLXR5cGVkZWYgT1NTdGF0dXMg
KCpBdWRpb0ZpbGVfV3JpdGVQcm9jKSgKLSAgICB2b2lkKiBpbkNsaWVudERhdGEsCi0gICAgU0lu
dDY0IGluUG9zaXRpb24sCi0gICAgVUludDMyIHJlcXVlc3RDb3VudCwKLSAgICBjb25zdCB2b2lk
KiBidWZmZXIsCi0gICAgVUludDMyKiBhY3R1YWxDb3VudCk7Ci10eXBlZGVmIFNJbnQ2NCAoKkF1
ZGlvRmlsZV9HZXRTaXplUHJvYykoCi0gICAgdm9pZCogaW5DbGllbnREYXRhKTsKLXR5cGVkZWYg
T1NTdGF0dXMgKCpBdWRpb0ZpbGVfU2V0U2l6ZVByb2MpKAotICAgIHZvaWQqIGluQ2xpZW50RGF0
YSwKLSAgICBTSW50NjQgaW5TaXplKTsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29tcG9u
ZW50KiBBdWRpb0NvbXBvbmVudDsKLQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKGRlZmluZWQo
QVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpICYmIEFVRElPQ09NUE9ORU5UX05PQ0FS
Qk9OSU5TVEFOQ0VTKQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnRJbnN0YW5j
ZSogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKLSNlbHNlCi10eXBlZGVmIHN0cnVjdCBDb21wb25l
bnRJbnN0YW5jZVJlY29yZCogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKLSNlbmRpZgotdHlwZWRl
ZiBBdWRpb0NvbXBvbmVudEluc3RhbmNlIEF1ZGlvVW5pdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQXVk
aW9Db21wb25lbnREZXNjcmlwdGlvbiBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uOwotdHlwZWRl
ZiBVSW50MzIgQXVkaW9Vbml0UHJvcGVydHlJRDsKLXR5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFNj
b3BlOwotdHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0RWxlbWVudDsKIAogU09GVF9MSU5LX0ZSQU1F
V09SS19GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94KQogU09GVF9MSU5LX0ZSQU1FV09SS19G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZv
LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29u
dmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogb3V0U2l6ZSwgQm9vbGVhbiog
b3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBvdXRTaXplLCBv
dXRXcml0YWJsZSkpCi0jZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvIHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwg
QXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBpb1Byb3BlcnR5
RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblBy
b3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUg
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1
ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRB
dWRpb0NvbnZlcnRlcikpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyTmV3IHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb0NvbnZlcnRlck5ldwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRp
b0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyKSwgKGluQXVkaW9Db252ZXJ0ZXIpKQotI2Rl
ZmluZSBBdWRpb0NvbnZlcnRlckRpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29u
dmVydGVyRGlzcG9zZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVy
dHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURh
dGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUs
IGluUHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMy
IGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZpZXIsIFVJbnQzMiogaW9Qcm9w
ZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5Qcm9wZXJ0eUlELCBpblNw
ZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5
RGF0YSkpCiAjZGVmaW5lIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvRm9ybWF0R2V0UHJvcGVydHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBP
U1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51
bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9C
dWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENN
RnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi0jZGVmaW5lIEF1ZGlvQ29udmVy
dGVyQ29udmVydENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVy
dGVyQ29udmVydENvbXBsZXhCdWZmZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29t
cGxleElucHV0RGF0YVByb2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NV
c2VyRGF0YSwgVUludDMyKiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3Qq
IG91dE91dHB1dERhdGEsIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERl
c2NyaXB0aW9uKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERh
dGFQcm9jVXNlckRhdGEsIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91
dFBhY2tldERlc2NyaXB0aW9uKSkKLSNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1
ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZl
cgotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
T3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCi0jZGVmaW5l
IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVu
aXRTdGFydAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvT3V0cHV0VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKLSNk
ZWZpbmUgQXVkaW9PdXRwdXRVbml0U3RvcCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9PdXRw
dXRVbml0U3RvcAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKLSNkZWZpbmUgQXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50
SW5zdGFuY2VEaXNwb3NlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVu
dCBpbkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5h
bWUpKQotI2RlZmluZSBBdWRpb0NvbXBvbmVudENvcHlOYW1lIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbXBvbmVudENvcHlOYW1lCi0KIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25lbnRGZXRjaFNlcnZl
clJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBvdXRCdW5kbGVSZWdpc3RyYXRp
b25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRpb0NvbXBvbmVudEZl
dGNoU2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENvcmVBdWRpb0NvbXBv
bmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2Vy
dmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRp
b25zKSwgKGluQnVuZGxlUmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50QXBw
bHlTZXJ2ZXJSZWdpc3RyYXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9u
ZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0Zp
bGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCi0jZGVmaW5lIEF1ZGlvRmlsZUNsb3Nl
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVDbG9zZQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tz
LCBPU1N0YXR1cywgKHZvaWQqIGluQ2xpZW50RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVh
ZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXpl
UHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywg
QXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJRCogb3V0QXVkaW9GaWxl
KSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMs
IGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50LCBvdXRBdWRpb0ZpbGUpKQotI2RlZmluZSBB
dWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxl
T3BlbldpdGhDYWxsYmFja3MKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJl
ZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi0jZGVmaW5lIEV4dEF1ZGlvRmls
ZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZURpc3Bvc2UKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVH
ZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4
dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRh
U2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLSNkZWZpbmUgRXh0QXVk
aW9GaWxlR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZUdldFBy
b3BlcnR5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUsIFVJbnQzMiogaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKSwgKGlu
RXh0QXVkaW9GaWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKLSNkZWZpbmUgRXh0QXVkaW9G
aWxlUmVhZCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlUmVhZAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVk
aW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUs
IGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQotI2RlZmluZSBFeHRBdWRp
b0ZpbGVTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlU2V0UHJv
cGVydHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxl
SUQsIEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmls
ZSksIChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotI2RlZmluZSBF
eHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlv
RmlsZVdyYXBBdWRpb0ZpbGVJRAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5V
UkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRp
b0ZpbGUpKQotI2RlZmluZSBFeHRBdWRpb0ZpbGVPcGVuVVJMIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9FeHRBdWRpb0ZpbGVPcGVuVVJMCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwg
KEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0
aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCi0jZGVmaW5lIEF1ZGlvQ29tcG9u
ZW50RmluZE5leHQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50RmluZE5leHQK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50
LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0
SW5zdGFuY2UpKQotI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3IHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3Ci1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1Vu
aXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9pZCogb3V0RGF0
YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50
LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLSNkZWZpbmUgQXVkaW9Vbml0R2V0UHJvcGVydHkgc29m
dExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdEdldFByb3BlcnR5Ci1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCi0jZGVmaW5lIEF1ZGlvVW5pdElu
aXRpYWxpemUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdEluaXRpYWxpemUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCBjb25zdCB2b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwg
aW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQotI2RlZmluZSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0U2V0UHJvcGVydHkK
LQogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IGRmOTg3Y2Y3ODBmOWQ0OWU4ZDUwZTFh
ZWEzZjZhOWRjYjBkYTQwMGYuLmMxNDM5MmJhMmM5MTQyZDUxYjQ3NGU3ZDI0NDgwYjk3MTlmOGE0
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
Y3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlIDxDb3JlTWVkaWEvQ01CdWZmZXJRdWV1ZS5oPgog
I2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KICNlbmRpZgogCkBAIC00OCw4ICs0Nyw2
IEBAIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMs
IChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwg
c2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwg
b2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbiksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVm
ZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRh
Qnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMsIENNQmxvY2tCdWZmZXJS
ZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIHNpemVf
dCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1ZmZlciwgb2Zmc2V0SW50
b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNz
dXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAo
dGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9T
U3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVf
dCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRh
UG9pbnRlck91dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFs
TGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlw
dGlvbkdldEV4dGVuc2lvbnMsIENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwg
Q0ZUeXBlSUQsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyLCBDTUJsb2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVm
KSwgUEFMX0VYUE9SVCkKQEAgLTEwNyw5ICsxMDQsOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyLCBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNl
bnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRl
ciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ss
IENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0LCBVSW50MzIgZmxh
Z3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0LCBm
bGFncyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lciwg
T1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxp
c3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3Rp
ZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3RlbmVyLCBjYWxsYmFj
aywgbm90aWZpY2F0aW9uLCBvYmplY3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJl
ZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJl
YWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBD
TVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVm
ZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtl
RGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9u
LCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwg
bnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCksIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNi
dWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRl
bUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5n
QXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1w
bGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6
ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJl
ZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVt
U2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNh
bXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29w
eU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBs
ZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9y
LCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5
LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1h
Z2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENN
U2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1h
dERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFk
eSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGlt
aW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1h
Z2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5
UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wLCBDTVRpbWUs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTE5LDE0
ICsxMTYsMTQgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0UHJlc2UKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dER1cmF0aW9uLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1Ziwg
Y3JlYXRlSWZOZWNlc3NhcnkpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRl
bUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdBcnJh
eU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0
aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWlu
Z0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01JdGVt
Q291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVu
dHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMy
X3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3
VGltZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxT
YW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNR2V0QXR0YWNobWVudCwgQ0ZUeXBlUmVmLCAoQ01BdHRhY2htZW50
QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDTUF0dGFjaG1lbnRNb2RlKiBhdHRh
Y2htZW50TW9kZU91dCksICh0YXJnZXQsIGtleSwgYXR0YWNobWVudE1vZGVPdXQpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJn
ZXQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlLCBDTUF0dGFjaG1lbnRNb2RlIGF0
dGFjaG1lbnRNb2RlKSwgKHRhcmdldCwga2V5LCB2YWx1ZSwgYXR0YWNobWVudE1vZGUpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJlclJl
ZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWVi
YXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAq
dGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0UmF0ZSwgRmxvYXQ2
NCwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
VGltZWJhc2VTZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJhc2UsIEZsb2F0
NjQgcmF0ZSksICh0aW1lYmFzZSwgcmF0ZSksIFBBTF9FWFBPUlQpCkBAIC0xNDcsMTMgKzE0NCwx
MSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1ZXVlLCBPU1N0
YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZlciksIChxdWV1
ZSwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eSwgQm9vbGVhbiwg
KENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVy
UXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZm
ZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIsIE9T
U3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxs
YmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlv
biBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmln
Z2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlvbiwgdGltZSwg
dHJpZ2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdn
ZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
LCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCogdHJp
Z2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRpdGlv
biwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tl
biogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJSZWZj
b24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91dCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01C
dWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwg
UEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIENG
U3RyaW5nUmVmLCBQQUxfRVhQT1JUKQpAQCAtMTczLDQyICsxNjgsNDAgQEAgU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVk
aWFfa0NNU2FtcGwKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFu
Z2VkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9U
aW1lSnVtcGVkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
Q3JlYXRlV2l0aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVy
ZUFsbG9jYXRvciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxv
Y2F0b3JSZWYgYmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1Nv
dXJjZSogY3VzdG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRh
TGVuZ3RoLCBDTUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2Nr
QnVmZmVyT3V0KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3Ro
LCBibG9ja0FsbG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxl
bmd0aCwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1
ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFs
bG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5
QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJP
dXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZl
ckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFn
cywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9C
dWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJM
aXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVm
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3Is
IHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVm
LCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1
ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0
ZW1Db3VudCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBs
ZVJhbmdlLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNh
bXBsZVJhbmdlLCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVNpemVBcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3Vu
dCBzaXplQXJyYXlFbnRyaWVzLCBzaXplX3QqIHNpemVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNp
emVBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFy
cmF5T3V0LCBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29s
ZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRp
bWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVz
Y3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFC
dWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3Jp
cHRpb25zLCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBw
YWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAo
YWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNhbXBsZUJ1ZmZlck91dCks
IFBBTF9FWFBPUlQpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZm
ZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVm
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3Is
IHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3QpLCAoc2J1
ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZl
ckxpc3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9u
VGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRw
dXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0
YW1wKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tC
dWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFr
ZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFS
ZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01J
dGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFj
a2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNC
dWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlD
YWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBs
ZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywg
Y29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxv
Y2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVm
IGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENN
SXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01T
YW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIs
IGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBz
YW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwg
c2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRp
b0NoYW5uZWxMYXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9p
ZCogbWFnaWNDb29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBs
YXlvdXQsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2Mp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBj
b25zdCB2b2lkKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNp
emVPdXQpLCAoZGVzYywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRl
bSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBj
b25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01D
bG9ja1JlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGltZSwgQ01UaW1l
LCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jayksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZl
cnRIb3N0VGltZVRvU3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhv
c3RUaW1lKSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJV
RkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVm
LCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9j
a0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0
dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJS
ZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJl
ZmNvbiksIHZvaWQgKnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVND
QVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFu
ZGxlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiwg
Q0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9j
YXRvciwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGltZSwgKENN
VGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGlt
ZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVh
biwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSksIChyYW5nZSwgdGltZSksIFBBTF9F
WFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lLCBQQUxfRVhQT1JUKQorI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBQTEFURk9STShNQUMpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZT
dHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRl
dmljZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCos
IChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENNQmFzZVZUYWJsZSosIChDTUJhc2VPYmpl
Y3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRP
YmplY3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBD
TUJhc2VWVGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RS
ZWYqIGJhc2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3Qp
LCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oCmluZGV4IDk4Y2NiNzlhYTRkOTNlNTgzZmU1NjM1N2E2MTljYjgxN2JlMGNjNjcuLjc1
MjViOTE5YzY5NWQzNjA5N2IxMTEwMzJiOTRmNzQ3ZjE1MWYxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKQEAgLTUxLDEwICs1MSw2IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aCwgc2l6ZV90CiAjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3Ro
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJSZXBsYWNl
RGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBDTUJsb2NrQnVm
ZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBz
aXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZmZXIsIG9mZnNl
dEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCkpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJSZXBs
YWNlRGF0YUJ5dGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFC
eXRlcwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxv
Y2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRo
ZUJ1ZmZlciksICh0aGVCdWZmZXIpKQotI2RlZmluZSBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tN
ZW1vcnkgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwg
c2l6ZV90IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExl
bmd0aE91dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGhBdE9mZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSkKLSNkZWZpbmUg
Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVm
ZmVyR2V0RGF0YVBvaW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVm
LCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNj
cmlwdGlvbkdldEV4dGVuc2lvbnMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkp
CkBAIC02Nyw4ICs2Myw2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sCiAjZGVmaW5lIENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeSwgQm9vbGVhbiwgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyRGF0YUlz
UmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1
ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdF
bnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJy
YXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRh
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXpl
QXJyYXksIHNhbXBsZUJ1ZmZlck91dCkpCi0jZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUs
IENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRp
bmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSkKICNkZWZpbmUg
Q01UaW1lQ29udmVydFNjYWxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb252ZXJ0U2NhbGUK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVBZGQs
IENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCkBA
IC05MywyOSArODcsMjkgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZVJhbmdlRXF1YWwsIEJvb2xlYW4sIChDTVRpbWUKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zLCBDRlN0cmluZ1JlZikKICNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNp
b25BdG9tcyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBs
ZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJ
X1AzLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1h
cmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX0RDSV9QMygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZv
cm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdldF9Db3JlTWVkaWFfa0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19EQ0lfUDMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdS
ZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAy
MCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1Jf
MjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
SVRVX1JfMjAyMCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUsIENGU3RyaW5nUmVm
KQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1KCkKKyNk
ZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8sIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKCkKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
RnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlh
X2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwKCkKKyNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAy
MCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIx
MDBfSExHIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X0lUVV9SXzIxMDBfSExHKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHKCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fTGluZWFyLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NN
UFRFX1NUXzIwODRfUFEsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKKyNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVf
U1RfMjA4NF9QUSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xLCBD
RlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X1NNUFRFX1NUXzQyOF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQy
OF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xKCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbllD
YkNyTWF0cml4X0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZv
cm1hdCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3Rl
ZENvbnRlbnRPcmlnaW5hbEZvcm1hdCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX3NSR0IsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9zUkdCKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fc1JHQigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZikKICNkZWZp
bmUga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kIGdldF9Db3JlTWVkaWFfa0NNVGV4dE1h
cmt1cEFsaWdubWVudFR5cGVfRW5kKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5n
UmVmKQpAQCAtMTU3LDcgKzE1MSw3IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQsCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENN
VGltZSkKICNkZWZpbmUga0NNVGltZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lSW52YWxp
ZCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGlt
ZVplcm8sIENNVGltZSkKLSNkZWZpbmUga0NNVGltZVplcm8gZ2V0X0NvcmVNZWRpYV9rQ01UaW1l
WmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVy
bygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGlt
ZVBvc2l0aXZlSW5maW5pdHksIENNVGltZSkKICNkZWZpbmUga0NNVGltZVBvc2l0aXZlSW5maW5p
dHkgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUG9zaXRpdmVJbmZpbml0eSgpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01U
aW1lUmFuZ2UpOwpAQCAtMTc1LDEzICsxNjksMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIsIE8K
ICNkZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciBzb2Z0TGlua19Db3JlTWVk
aWFfQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVu
ZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lk
KiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYg
bm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2Fs
bGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSkKICNkZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZW1vdmVMaXN0ZW5lciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVMaXN0ZW5lcgotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01T
YW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2
b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVT
aXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1
ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZj
b24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJh
eSwgc0J1Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNh
bXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZv
aWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXks
IENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QgKnNhbXBsZVNp
emVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5
LCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxl
QnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0
b3IsIHNidWYsIHNidWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01T
YW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdF
bnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTVNh
bXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCkpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2Ft
cGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdB
cnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2lu
YWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNv
cHlPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBz
YW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1h
Z2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2Ft
cGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKICNkZWZp
bmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVklt
YWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZm
ZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtl
RGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyCkBAIC0xOTksNyArMTkzLDcgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW8KICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRp
b25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJl
c2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5LCBDRkFycmF5
UmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBjcmVhdGVJZk5lY2Vzc2FyeSks
IChzYnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVBdHRhY2htZW50c0FycmF5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRy
aWVzLCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCogdGlt
aW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGlt
aW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVt
Q291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8gKnRpbWluZ0FycmF5
T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRp
bWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRl
ZE91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwg
KHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUKQEAgLTIxMSw3ICsy
MDUsNyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
ZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZQogI2RlZmluZSBDTVNldEF0dGFjaG1lbnQg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2V0QXR0YWNobWVudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0
YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSkp
CiAjZGVmaW5lIENNUmVtb3ZlQXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01SZW1vdmVB
dHRhY2htZW50Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWVi
YXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0
aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9j
a1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9y
LCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpKQogI2RlZmluZSBDTVRpbWViYXNlQ3JlYXRlV2l0
aE1hc3RlckNsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3Rl
ckNsb2NrCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lYmFzZUdldFRpbWUsIENNVGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJh
c2UpKQogI2RlZmluZSBDTVRpbWViYXNlR2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
YmFzZUdldFRpbWUKQEAgLTIzMyw3ICsyMjcsNyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUbwog
I2RlZmluZSBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmly
ZUltbWVkaWF0ZWx5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lQ29weUFzRGljdGlvbmFyeSwgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01UaW1lIHRpbWUs
IENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksICh0aW1lLCBhbGxvY2F0b3IpKQogI2RlZmluZSBD
TVRpbWVDb3B5QXNEaWN0aW9uYXJ5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb3B5QXNEaWN0
aW9uYXJ5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZl
ciwgb3V0RGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVy
LCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgKm91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFn
ZUJ1ZmZlciwgb3V0RGVzYykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25DcmVhdGVGb3JJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMsIENNVmlk
ZW9EaW1lbnNpb25zLCAoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRGVzYyksICh2
aWRlb0Rlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
CkBAIC0yNTUsMTggKzI0OSwxNSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZQogI2RlZmluZSBD
TUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVl
dWVHZXRCdWZmZXJDb3VudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVyUXVl
dWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZm
ZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVu
c29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCkpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxs
YmFja3MgKiwgKCksICgpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0Q2Fs
bGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVT
dGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5l
IENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXIsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNvbmRpdGlvbiBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRv
a2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlv
biwgdGltZSwgdHJpZ2dlclRva2VuT3V0KSkKLSNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
SW5zdGFsbFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1
ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFj
aywgdm9pZCogdHJpZ2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJp
Z2dlckNvbmRpdGlvbiwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ss
IHRyaWdnZXJSZWZjb24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdn
ZXJUb2tlbk91dCkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRl
Z2VyVGhyZXNob2xkIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdn
ZXJXaXRoSW50ZWdlclRocmVzaG9sZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVm
ZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlTWFya0Vu
ZE9mRGF0YSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
R2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQot
I2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQnVm
ZmVyUXVldWVHZXREdXJhdGlvbgorCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSBnZXRfQ29y
ZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5
X05vdFN5bmMsIENGU3RyaW5nUmVmKQpAQCAtMzA0LDQ4ICsyOTUsNDYgQEAgU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxl
QnVmZmVyQXR0YWMKIAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBjb25zdCB2b2lkKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNpemVPdXQpLCAoZGVz
Yywgc2l6ZU91dCkpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29v
a2llIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nv
b2tpZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRT
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
aywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1l
bW9yeUJsb2NrLCBzaXplX3QgYmxvY2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2Nh
dG9yLCBjb25zdCBDTUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291
cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZl
ckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1
cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1
c3RvbUJsb2NrU291cmNlLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1
ZmZlck91dCkpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgc29m
dExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlv
QnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9j
YXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxs
b2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQp
LCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxp
c3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywg
YmxvY2tCdWZmZXJPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tC
dWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJM
aXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3Qg
YnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxs
b2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVm
ZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwg
YnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZN
ZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxv
Y2tCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBsZVJhbmdlLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNhbXBsZVJhbmdl
LCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFu
Z2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJh
bmdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQs
IENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJh
eUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCkpCiAjZGVm
aW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZl
ck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VE
YXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24s
IENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVh
bVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVm
KiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJl
YWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1T
YW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwg
Q01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29u
c3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNh
bXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFk
eSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNj
cmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0
KSkKICNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlv
bnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0
RGVzY3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVk
aW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVz
Y3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpKQotI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRE
YXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJl
ZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJM
aXN0KiBidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlB
bGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9y
UmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0
b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3QpLCAo
c2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1
ZmZlckxpc3QpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJG
cm9tQXVkaW9CdWZmZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVh
ZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5Ci1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01UaW1lIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzYnVmLCBvdXRwdXRQ
cmVzZW50YXRpb25UaW1lU3RhbXApKQotI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5uZWxMYXlvdXQq
IGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29raWUs
IENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYq
IG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQsIG1hZ2ljQ29v
a2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpKQogI2RlZmluZSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgp
KQotI2RlZmluZSBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jawogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRpbWUsIChD
TUNsb2NrUmVmIGNsb2NrKSwgKGNsb2NrKSkKLSNkZWZpbmUgQ01DbG9ja0dldFRpbWUgc29mdExp
bmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENNQ2xvY2tHZXRUaW1lICBzb2Z0
TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cywg
dWludDY0X3QsIChDTVRpbWUgaG9zdFRpbWUpLCAoaG9zdFRpbWUpKQogI2RlZmluZSBDTUNsb2Nr
Q29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cyBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0Nv
bnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNB
TExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxs
YmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxl
QnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBj
YWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRl
eCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24p
KQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNo
U2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheQ01T
QU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0
ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FNUExFQlVG
RkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQp
KSwgKHNidWYsIGhhbmRsZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVh
Y2hTYW1wbGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFj
aFNhbXBsZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxv
Y2F0b3IsIGNsb2NrT3V0KSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xvY2tPdXQp
LCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCiAjZGVmaW5lIENNQXVkaW9DbG9ja0NyZWF0ZSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01BdWRpb0Nsb2NrQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lTWF4aW11
bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWF4aW11bQpAQCAtMzU3LDE2ICszNDYsMTggQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdl
Q29udGFpbnNUaW1lLCBCb29sZWFuLAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJ
bmRlZmluaXRlIGdldF9Db3JlTWVkaWFfa0NNVGltZUluZGVmaW5pdGUoKQogCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKwogI2lmIFBMQVRGT1JNKE1BQykKIAotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSkKLSNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYg
KmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCisjZGVmaW5lIENN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VD
bG9ja0NyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBi
YXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVk
U3RvcmFnZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UK
KyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3Jl
TWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENN
QmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkK
LSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VP
YmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIFBBTDo6c29mdExp
bmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldFZUYWJsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBD
TUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxv
Y2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNRGVyaXZlZE9i
amVjdENyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCisjZGVm
aW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2
ZWRPYmplY3RDcmVhdGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA3MmY0
MTE0ZWVhYWRmNjIwY2UzNzAyMzA5OTQ3NjZiNDhjNzk1YjE2Li5mNTFjYmJiMTY2NjNiODFlY2Uy
MDFlOGFkNTcyNWMyNTEyMWY1NmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzQsMTkgKzM0LDEzIEBAIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmluZ1Jl
ZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgQ0ZTdHJp
bmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCi1TT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCi1TT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9Qcm9maWxlTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKLVNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxf
SDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQotU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hf
QXV0b0xldmVsLCBDRlN0cmluZ1JlZikKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZT
dHJpbmdSZWYpCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29s
Ym94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNU
eXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRp
Y3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBj
b21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1
dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Np
b25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQs
IGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmli
dXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxs
YmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRl
RnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNVGlt
ZSBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNlc3Npb24sIGNvbXBsZXRl
VW50aWxQcmVzZW50YXRpb25UaW1lU3RhbXApKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUsIE9T
U3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGR1cmF0
aW9uLCBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VGcmFtZVJl
ZmNvbiwgVlRFbmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBpbWFnZUJ1
ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0aWVzLCBz
b3VyY2VGcmFtZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0Vu
Y29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwg
KHNlc3Npb24pKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xi
b3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCiAKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJlc3RyaWN0
VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9ucyByZXN0
cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNUeXBlTGlz
dCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9uRmxhZ3Ms
IGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCBQQUxfRVhQT1JU
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5r
LmgKaW5kZXggNjBhOGZmMzc0MmQ0OTYxMDdiMTRmYWM3YzQxMzczYWJjNmQ2OTRhMi4uZWMwZmYw
MWNjMWZlMWEyMTA2Y2M3YTdmMDJlOGM4NGI3ZGQwZGE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaApAQCAtMzcsMjAgKzM3LDkgQEAg
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfTWF4S2UKICNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbigpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUmVhbFRpbWUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1JlYWxUaW1lKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmlu
Z1JlZikKLSNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSBn
ZXRfVmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUo
KQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9r
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCgpCiAKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVjaWZp
Y2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5nUmVm
KQogI2RlZmluZSBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNj
ZWxlcmF0ZWRWaWRlb0VuY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIoKQotU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRv
TGV2ZWwsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1
dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xl
dmVsKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZU
UHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwoKQotCiAKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGlu
dDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVm
IGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJB
dHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21w
cmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFj
a1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCks
IChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRp
b24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3Is
IG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9u
T3V0KSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCkBAIC02MCw4ICs0OSw2IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXBy
ZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNz
aW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogI2RlZmluZSBWVENvbXByZXNzaW9u
U2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21w
cmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRh
dGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQot
I2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUgc29mdExpbmtfVmlkZW9Ub29s
Ym94X1ZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZQogCiBTT0ZUX0xJTktfRlVOQ1RJT05f
TUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVj
b2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25G
bGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRl
bUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2Vk
Q29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCBk
NDQ0OTMxZWZkOGFlNTU2MGI4YzFiMjdmMjJhZDkyZTc5MzQ4NWUwLi42NzRlNjQ5NGEwYThiNTk2
OTAzZTNjYTVjZmI2YTIzZGRhYzM2MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtNDEsMTAgKzQxLDYgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBN
ZWRpYVRvb2xib3gsIE1UX0dldFNob3UKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmlj
YXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQp
CiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwKSwgKHRhcCkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3Mg
KmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVy
RnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0
LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBj
b25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmKiB0
YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpLCBQQUxfRVhQT1JU
KQotCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZv
cm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
aAppbmRleCAyNTVhNzY3YjU1ZWVmNGU4ZWVkMTlkZWYyOTcxNzg0OTBiZTkzZjE5Li5jN2RlMDJj
ZTYzYzJjMzAwZDk2NTRmNjY3MGJmYzEyNTAyMjkzNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCkBAIC00MSwxMyArNDEs
NiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9v
bGJveCwgTVRfR2V0U2hvdWxkUGxheUhEUlZpZAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlvbl9T
aG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1JlZikKIAotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKLSNk
ZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlIHNvZnRMaW5rX01lZGlhVG9vbGJv
eF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQg
bnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENN
SXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxp
c3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKLSNkZWZp
bmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyBzb2Z0TGlua19NZWRpYVRvb2xi
b3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbwotU09GVF9MSU5LX0ZVTkNUSU9O
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKLSNkZWZpbmUgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUgc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlCi0KICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UUGx1Z2luRm9ybWF0
UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggYzU2MmJlNzYzNWVhNmExNTg0MDgzM2FiYzJlMTkxMDEwY2MzMTc2Zi4uNTUyNGVl
YzU1ODdkMWU5MTcwZWY5ZjE0OTJjYzA3ZGUyNWM4MGVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0zNTAsNiArMzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKERvY3VtZW50KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
K3VzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogCiBz
dGF0aWMgY29uc3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9uRGVwdGggPSAyMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggODUwY2RlNzI3MGYwZDYx
ZGMyNTQ0OWMxZGE4OWE0OWExYWY0MzY4Yi4uOWY1NTYwODAyYmFjMzJiYjQ5OWVjOTdjOWIwYWUz
MmUxMWM2MjFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
QEAgLTEwOSw2ICsxMDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChIVE1MQ2FudmFzRWxlbWVudCk7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaGVzZSB2YWx1ZXMgY29tZSBmcm9t
IHRoZSBXaGF0V0cvVzNDIEhUTUwgc3BlYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCmluZGV4IDZhYzJkZmI5ZGQ2NGYwZjNmYzBkMGVmNWZjNTExNTkxZDI1ZjBiYWQu
LmUwNTE2YTRhZjI1ZDJiNWE0ZDQ5NGNlNDM1MDk2ODQxNDFiNjdkOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTkwLDYgKzE5MCw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNZWRpYUVsZW1l
bnQpOwogCit1c2luZyBuYW1lc3BhY2UgUEFMOworCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTZWVr
UmVwZWF0RGVsYXkgeyAxMDBfbXMgfTsKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1RpbWUgPSAw
LjI7CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTY2FuUmVwZWF0RGVsYXkgeyAxLjVfcyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVh
ZGVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuY3BwCmluZGV4IDVkNTZiOWVlMWEwZDNkNjdhNzljMzA3NjFkMTM4MTVk
N2MwNjQ0Y2UuLmZkM2QzZTAzYTAzZjA4MTA1MjEyODZiZDAyNmE5MTAxMTFkM2NjODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRl
ckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0ZpbGVSZWFkZXJDb2NvYS5jcHAKQEAgLTM2LDEzICszNiwyNSBAQAogI2luY2x1ZGUgIkF1ZGlv
RmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2luY2x1ZGUgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRp
Yy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCitTT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlv
RmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVP
cGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmls
ZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBB
dWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9j
IGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxl
SUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5j
LCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9G
aWxlKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3Rh
dHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkK
K1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJ
RCBpblByb3BlcnR5SUQsIFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9w
ZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFT
aXplLCBvdXRQcm9wZXJ0eURhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9G
aWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQz
MiAqaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4
dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1
ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblBy
b3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0
YXR1cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVk
aW9GaWxlUmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0
RXh0QXVkaW9GaWxlKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5V
UkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVk
aW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBBdWRpb0J1ZmZlckxpc3QqIHRy
eUNyZWF0ZUF1ZGlvQnVmZmVyTGlzdChzaXplX3QgbnVtYmVyT2ZCdWZmZXJzKQpAQCAtOTEsMjIg
KzEwMywyMiBAQCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0YVNp
emUoZGF0YVNpemUpCiB7Ci0gICAgaWYgKFBBTDo6QXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mo
dGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0ZpbGVJRCkgIT0g
bm9FcnIpCisgICAgaWYgKEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9j
LCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9h
dWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCisgICAgaWYg
KEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0
QXVkaW9GaWxlUmVmKSAhPSBub0VycikKICAgICAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwog
fQogCiBBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmIChtX2V4
dEF1ZGlvRmlsZVJlZikKLSAgICAgICAgUEFMOjpFeHRBdWRpb0ZpbGVEaXNwb3NlKG1fZXh0QXVk
aW9GaWxlUmVmKTsKKyAgICAgICAgRXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJl
Zik7CiAKICAgICBtX2V4dEF1ZGlvRmlsZVJlZiA9IDA7CiAKICAgICBpZiAobV9hdWRpb0ZpbGVJ
RCkKLSAgICAgICAgUEFMOjpBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsKKyAgICAgICAg
QXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CiAKICAgICBtX2F1ZGlvRmlsZUlEID0gMDsK
IH0KQEAgLTE0Myw3ICsxNTUsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6
Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAgICAgLy8gR2V0
IGZpbGUncyBkYXRhIGZvcm1hdAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZmlsZURhdGFG
b3JtYXQpOwotICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9G
aWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQsICZzaXplLCAmbV9m
aWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5
KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQs
ICZzaXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1D
aGFubmVsc1BlckZyYW1lOwpAQCAtMTUxLDcgKzE2Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVk
aW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8p
CiAgICAgLy8gTnVtYmVyIG9mIGZyYW1lcwogICAgIFNJbnQ2NCBudW1iZXJPZkZyYW1lczY0ID0g
MDsKICAgICBzaXplID0gc2l6ZW9mKG51bWJlck9mRnJhbWVzNjQpOwotICAgIGlmIChQQUw6OkV4
dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJv
cGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0Vy
ciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDApCisgICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3Bl
cnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZy
YW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1l
czY0IDw9IDApCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG91YmxlIGZpbGVTYW1w
bGVSYXRlID0gbV9maWxlRGF0YUZvcm1hdC5tU2FtcGxlUmF0ZTsKQEAgLTE3Myw3ICsxODUsNyBA
QCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBs
ZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIGlmIChzYW1wbGVSYXRlKQogICAgICAgICBtX2Ns
aWVudERhdGFGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOwogCi0gICAgaWYgKFBBTDo6
RXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQ
cm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKEV4dEF1ZGlvRmls
ZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xp
ZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2Ns
aWVudERhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IC8vIENoYW5nZSBudW1iZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRlCkBA
IC0yMzEsNyArMjQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0
ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIFJlYWQgZnJv
bSB0aGUgZmlsZSAob3IgaW4tbWVtb3J5IHZlcnNpb24pCiAgICAgVUludDMyIGZyYW1lc1RvUmVh
ZCA9IG51bWJlck9mRnJhbWVzOwotICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZVJlYWQobV9leHRB
dWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3QpICE9IG5vRXJyKSB7CisgICAg
aWYgKEV4dEF1ZGlvRmlsZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1
ZmZlckxpc3QpICE9IG5vRXJyKSB7CiAgICAgICAgIGRlc3Ryb3lBdWRpb0J1ZmZlckxpc3QoYnVm
ZmVyTGlzdCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2Nv
YS5oCmluZGV4IDBiYmJiYTI3ODU3ZDk3OWVjYzY4OGY4N2YwMzM5ZjY2NWVmNDI1MjkuLmI3Yjkx
NjNiNTZlMjZjMjljYWI4NGVlMjQ3NjllMjk3MTQxN2FmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
aApAQCAtMzEsMTIgKzMxLDEwIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaW5jbHVk
ZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1
ZGlvRmlsZS5oPgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotdXNpbmcgRXh0QXVkaW9GaWxlUmVmID0gc3RydWN0
IE9wYXF1ZUV4dEF1ZGlvRmlsZSo7Ci11c2luZyBBdWRpb0ZpbGVJRCA9IHN0cnVjdCBPcGFxdWVB
dWRpb0ZpbGVJRCo7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CkBA
IC02MCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgdm9pZCogbV9kYXRhID0geyBudWxs
cHRyIH07CiAgICAgc2l6ZV90IG1fZGF0YVNpemUgPSB7IDAgfTsKIAotICAgIEF1ZGlvRmlsZUlE
IG1fYXVkaW9GaWxlSUQgPSB7IG51bGxwdHIgfTsKKyAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmls
ZUlEID0geyAwIH07CiAgICAgRXh0QXVkaW9GaWxlUmVmIG1fZXh0QXVkaW9GaWxlUmVmID0geyBu
dWxscHRyIH07CiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9maWxlRGF0YUZv
cm1hdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKaW5kZXggMTQ4YjA1NWRiZWM4OTQzZWE1
YWFjNjhlNjg1OGRlN2QwYjgyMzEyMy4uNDc4NzUwNzJhNzg2ZWQ2ODZjMWQ0MDFlODJlNjI1OWNh
MjNjNTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKQEAgLTI4LDggKzI4LDYgQEAK
IAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb091dHB1dFVuaXRBZGFw
dG9yOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikK
QEAgLTQxLDEyICszOSwxMiBAQCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpBdWRpb091dHB1dFVu
aXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikKIEF1ZGlvT3V0cHV0VW5pdEFk
YXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKCkKIHsKICAgICBpZiAobV9vdXRwdXRVbml0
KQotICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5p
dCk7CisgICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5pdCk7
CiB9CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIHsKLSAgICBh
dXRvIHJlc3VsdCA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRVbml0KTsKKyAg
ICBhdXRvIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAgICAg
aWYgKHJlc3VsdCAhPSBub0VycikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJFUlJPUjogQXVkaW9P
dXRwdXRVbml0U3RhcnQoKSBjYWxsIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVsZCIsIHN0YXRp
Y19jYXN0PGxvbmc+KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01NCw3ICs1Miw3
IEBAIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIAogT1NTdGF0dXMg
QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3RvcCgpCiB7Ci0gICAgcmV0dXJuIFBBTDo6QXVkaW9P
dXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIHJldHVybiBBdWRpb091dHB1dFVuaXRT
dG9wKG1fb3V0cHV0VW5pdCk7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJMaXN0LmNwcAppbmRleCA0ZTkwNjRkMGM2ZTkzMDg5YWUwZWFhNmY5OThl
Y2Q2NTM3MzVkMWU3Li5mZGY2Nzc1N2QxYjQ3NzYwODA4YjEzZmI0MzRlNDBiM2RmZDMwZTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJW
ZWN0b3JNYXRoLmgiCiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+Ci0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTI3Myw3ICsyNzIsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3Qg
ZgogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGlucHV0Rm9ybWF0OwogICAgIFVJ
bnQzMiBwcm9wZXJ0eURhdGFTaXplID0gc2l6ZW9mKGlucHV0Rm9ybWF0KTsKLSAgICBQQUw6OkF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50
SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7
CisgICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0
Rm9ybWF0KTsKICAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBzb3VyY2UubUJ1ZmZlcnNbMF0ubURh
dGFCeXRlU2l6ZSAvIGlucHV0Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCk7CiAKICAgICBBdWRpb0Nv
bnZlcnRlckZyb21BQkxDb250ZXh0IGNvbnRleHQgeyBzb3VyY2UsIGZyYW1lQ291bnQsIGlucHV0
Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCB9OwpAQCAtMjgxLDcgKzI4MCw3IEBAIE9TU3RhdHVzIEF1
ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3Vy
Y2UsIHNpemVfdCBmCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBvdXRwdXRGb3JtYXQ7CiAgICAgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihvdXRw
dXRGb3JtYXQpOwotICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5
RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOworICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24s
ICZwcm9wZXJ0eURhdGFTaXplLCAmb3V0cHV0Rm9ybWF0KTsKIAogICAgIEFTU0VSVChDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24ob3V0cHV0Rm9ybWF0KS5udW1iZXJPZkNoYW5uZWxTdHJlYW1zKCkg
PT0gbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpOyArK2kpIHsKQEAgLTI5MSw3ICsyOTAs
NyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlv
QnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2VuZGlmCiAKICAgICBVSW50MzIgc2FtcGxl
c0NvbnZlcnRlZCA9IG1fc2FtcGxlQ2FwYWNpdHk7Ci0gICAgT1NTdGF0dXMgZXJyID0gUEFMOjpB
dWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJG
cm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0
LT5saXN0KCksIG51bGxwdHIpOworICAgIE9TU3RhdHVzIGVyciA9IEF1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywg
JmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0
cik7CiAgICAgaWYgKCFlcnIgfHwgZXJyID09IGtSYW5PdXRPZklucHV0RGF0YVN0YXR1cykgewog
ICAgICAgICBtX3NhbXBsZUNvdW50ID0gc2FtcGxlc0NvbnZlcnRlZDsKICAgICAgICAgcmV0dXJu
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggZDJiNWFjNDVmMzBmZDRhM2FmNTFiNDIw
ZGUzNzY0OWIxMTUxYzIyNy4uZTVlYzQ3Nzc4NTgxYTdhY2YwZTcyNTUzMzNmOWUyNjk0MWM0NzJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBSZWY8QXVkaW9TYW1wbGVE
YXRhU291cmNlPiBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShzaXplX3QgbWF4aW11bVNh
bXBsZUNvdW50LCBMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlciwgc2l6ZV90IHdhaXRUb1N0YXJ0
Rm9yUHVzaENvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKaW5kZXggMzBkZWIyZTRjNzQxZGY1NDg4
YjM4ZjVlZDU5ZWViZTVhMDI4OWJlYy4uODllY2VlZDYxY2IxOWJmZDdkNDIwYzc3OGFhYTEyMGFj
MzU2ZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
V2ViQXVkaW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJM
aXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogICAgIDogbV9ieXRl
c1BlckZyYW1lKGZvcm1hdC5ieXRlc1BlckZyYW1lKCkpCkBAIC0xMTUsNyArMTE2LDcgQEAgV2Vi
QXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBmb3JtYXQsIEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ01CbG9ja0J1ZmZl
clJlZiBidWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciA9PSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVy
LCBudWxscHRyLCBtX2Nhbm9uaWNhbExpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFs
bG9jYXRvclN5c3RlbURlZmF1bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBs
ZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZl
cikpCisgICAgaWYgKG5vRXJyID09IENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0
aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExp
c3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtD
RkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJM
aXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcikpCiAgICAgICAgIG1fYmxvY2tCdWZm
ZXIgPSBhZG9wdENGKGJ1ZmZlcik7CiAKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0
b3JJT1MuY3BwCmluZGV4IGY4OTEwN2ZmYjFjM2Y1M2JlMzE5YWEzODY4MTQ3NzRiYjRkMjdhNDcu
LjJlOTYzMGZiNjBmMjJiM2VlNTZkMjQyZDczMDQzNDg2Yjg3YjU2MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9T
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRV
bml0QWRhcHRvcklPUy5jcHAKQEAgLTMzLDcgKzMzLDE1IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgot
I2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2luY2x1ZGUgPHd0Zi9T
b2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKK1NPRlRf
TElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3Jp
cHRpb24gKmluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkKK1NPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25l
bnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgKm91dEluc3RhbmNlKSwgKGlu
Q29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCitTT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1Vu
aXRBZGRQcm9wZXJ0eUxpc3RlbmVyLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlv
VW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0UHJvcGVydHlMaXN0ZW5lclByb2MgaW5Qcm9j
LCB2b2lkICppblByb2NVc2VyRGF0YSksIChpblVuaXQsIGluSUQsIGluUHJvYywgaW5Qcm9jVXNl
ckRhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9T
U3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRp
b1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9pZCAqb3V0
RGF0YSwgVUludDMyICppb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVt
ZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
VW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQor
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29w
ZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCAqaW5EYXRh
LCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwg
aW5EYXRhLCBpbkRhdGFTaXplKSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MCwxNSAr
NTgsMTUgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFy
ZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVm
YWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25l
bnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAg
PSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNvbXAgPSBBdWRp
b0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAg
IE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAm
bV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAg
IFVJbnQzMiBmbGFnID0gMTsKLSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5
KG1fb3V0cHV0VW5pdCwKKyAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsCiAgICAgICAgIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywKICAgICAg
ICAga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwKICAgICAgICAgMCwKQEAgLTY2LDIwICs3NCwyMCBA
QCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNh
bXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgICAgICBzaXplb2YoZmxhZykpOwogICAgIEFT
U0VSVCghcmVzdWx0KTsKIAotICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZSht
X291dHB1dFVuaXQpOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRV
bml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawog
ICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0g
aW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0
ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQs
IHNpemVvZihpbnB1dCkpOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0
cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1
bHQpOwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24gc3RyZWFtRm9ybWF0OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YoQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKTsKLSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEdldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZzaXplKTsKKyAg
ICByZXN1bHQgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQ
cm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikm
c3RyZWFtRm9ybWF0LCAmc2l6ZSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgY29uc3Rl
eHByIGludCBieXRlc1BlckZsb2F0ID0gc2l6ZW9mKEZsb2F0MzIpOwpAQCAtOTMsNyArMTAxLDcg
QEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVT
YW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVy
RnJhbWUgPSBudW1iZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1Bl
ckNoYW5uZWwgPSBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZv
cm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9
IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0
cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1h
dCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVz
dWx0KTsKIAogICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1
ZmZlclNpemUoa1ByZWZlcnJlZEJ1ZmZlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMu
Y3BwCmluZGV4IDcxNGNjZTg4NjI1NzUxODYxZDVlMmI4NTEzMTNhODlkMDQxMmVhY2IuLmM4ZWQz
ZWY3OGM4YzZhM2IxZTA3MGNiNDQwNTk2OWFkYTRhYzNkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRh
cHRvck1hYy5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAj
aW5jbHVkZSA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxwYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSwyMSAr
NDgsMjEgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFy
ZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVm
YWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25l
bnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAg
PSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNvbXAgPSBBdWRp
b0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAg
IE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAm
bV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAotICAg
IHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQpOworICAgIHJl
c3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKICAgICAvLyBTZXQgcmVuZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFj
a1N0cnVjdCBpbnB1dDsKICAgICBpbnB1dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5w
dXQuaW5wdXRQcm9jUmVmQ29uID0gdGhpczsKLSAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxi
YWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwor
ICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAm
aW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNl
dCBzdHJlYW0gZm9ybWF0CkBAIC04MCw3ICs3OSw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRh
cHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVy
CiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFu
bmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBi
eXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291
dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29w
ZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAppbmRleCA3ODQ3NGQ4ZTVh
NWFjMDcwMzUzMzU5OTBjZGRmOGFmY2Q4MDU2MTk2Li5hNTMzMzJjZjdkYmQ2NDY2ZjQ0ZjU3NmQx
Y2Q3YWRlNzYxNTBhYTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0zMywxMSArMzMsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCit1c2luZyBuYW1lc3BhY2UgUEFMOworCiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlw
dGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9p
ZCogbWFnaWNDb29raWUpCiB7CiAgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51
bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwor
ICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXpl
LCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01MywxNCArNTUsMTQgQEAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3Jt
YXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZm
ZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRD
RihzYW1wbGVCdWZmZXIpOwogCi0gICAgZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyU2V0RGF0
YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGRhdGEpLmxpc3QoKSk7CisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJG
cm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NG
QWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5s
aXN0KCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDY0ZTMwYmMyOTNjYThm
OTM4ODQ4OGYxNDg4NTA2YzU3YmUwYTUxNWQuLjU3Y2YyOWQwZDc3ZTY3ODg5YmRjZWZkNDA1ODUx
MjllZDEyYTQ1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJD
b3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3Bh
Y2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRyYW5z
ZmVyQkdSQVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cikKIHsKQEAgLTg5LDcgKzkwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxl
PiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUKIHsKICAgICBB
U1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01T
YW1wbGVCdWZmZXJUeXBlKTsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwog
ICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEs
ICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
IHJldHVybmVkIG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggZGZmNGZhNGVk
ZjI2NGI0NTJiZjhkYTdhZmFlZjRjYmQ3YTAyN2IwMi4uOTgzOWIzNzBhNzEzYjdjMWQyM2Q4NDdm
YTg2NTA1ZDVhZTk3OWFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQpAQCAtNDYsMTMgKzQ2LDIyIEBACiAjaW1wb3J0IDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCi0jaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2EvTWVk
aWFUb29sYm94U29mdExpbmsuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gp
CitTT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKKworU09GVF9MSU5LKEF1ZGlvVG9v
bGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRp
b0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMs
IGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0
T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1
dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBp
blNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3Rp
bmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5T
b3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKKwor
U09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2
b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LKE1l
ZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMs
IChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywg
QXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxh
Z3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVt
YmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdz
T3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCitTT0ZUX0xJTktfTUFZX0ZBSUwo
TWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tz
ICpjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBSZWYgKnRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxh
Z3MsIHRhcE91dCkpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIFBB
TDsKIHN0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIGNsYXNz
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlPiB7CkBA
IC02NCw3ICs3Myw3IEBAIHB1YmxpYzoKIAogUmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFWUGxheWVySXRlbSAqaXRl
bSkKIHsKLSAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGUoKSkKKyAgICBpZiAoIWNhbkxvYWRNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9CkBAIC0xNDMsNyArMTUyLDcgQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBi
dXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1Byb2Nl
c3M7CiAKICAgICBpZiAobV9jb252ZXJ0ZXIpCi0gICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJD
b252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBt
X2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIEF1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0
LmdldCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMjE2
LDcgKzIyNSw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZU1peElm
TmVlZGVkKCkKICAgICB9OwogCiAgICAgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwID0gbnVs
bHB0cjsKLSAgICBPU1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOworICAgIE9TU3Rh
dHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgaWYgKHRhcCkKICAgICAgICAgICAgIENGUmVsZWFzZSh0YXApOwpAQCAtMjQ5LDE0ICsy
NTgsMTQgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6aW5pdENhbGxiYWNrKE1U
QXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgdm9pZCoKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQog
ewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFw
KSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2Uq
PihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAgICAgdGFwU3RvcmFnZS0+
ZGVyZWYoKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNh
bGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbWF4RnJhbWVz
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKnByb2Nlc3NpbmdGb3JtYXQpCiB7
CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19j
YXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXAp
KTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+
KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2Nr
ZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI2Nyw3ICsyNzYsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYgdGFwLCBDTQogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJl
Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogewogICAgIEFTU0VSVCh0YXAp
OwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4o
UEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFn
ZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+
bG9jayB9OwogCkBAIC0yNzgsNyArMjg3LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6dW5wcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogdm9p
ZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzc0NhbGxiYWNrKE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEZsYWdzIGZsYWdzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgQ01J
dGVtQ291bnQgKm51bWJlckZyYW1lc091dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxh
Z3NPdXQpCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9
IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExv
Y2tlciBsb2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTMwOCw3ICszMTcsNyBAQCB2
b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKENNSXRlbUNvdW50IG1heEZy
YW1lcywgY29uc3QgQXVkaW9TdHJlYQogCiAgICAgaWYgKCptX3RhcERlc2NyaXB0aW9uICE9ICpt
X291dHB1dERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUmVmIG91dENvbnZl
cnRlciA9IG51bGxwdHI7Ci0gICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcobV90YXBEZXNj
cmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENvbnZlcnRlcik7
CisgICAgICAgIEF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0
cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRl
ciA9IG91dENvbnZlcnRlcjsKICAgICB9CiAKQEAgLTM0OCw3ICszNTcsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCwgQ01JdGVtQ291bgogICAgIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7CiAgICAg
Q01UaW1lUmFuZ2UgcmFuZ2VPdXQ7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxp
c3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91dCwgJml0ZW1Db3VudCk7CisgICAgT1NTdGF0dXMg
c3RhdHVzID0gTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9m
RnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQp
OwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIWl0ZW1Db3VudCkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA1MzI5ZjFkOWQzYWVhN2M1NGQzMzY2YzMy
YWQxYTYwMzhhNzllYjJhLi4zMDViM2QyN2UzNDJmOTg3MjExMmYxMTc0YzE0ZmY0ZjNjNjA4NTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIzMiw2ICsyMzIsNyBAQCBzdHJ1Y3QgTG9n
QXJndW1lbnQ8QVZQbGF5ZXJUaW1lQ29udHJvbFN0YXR1cz4gewogfTsgLy8gbmFtZXNwYWNlIFdU
RgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMg
TlNBcnJheSAqYXNzZXRNZXRhZGF0YUtleU5hbWVzKCk7CiBzdGF0aWMgTlNBcnJheSAqaXRlbUtW
T1Byb3BlcnRpZXMoKTsKQEAgLTU3MSw2ICs1NzIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigp
CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVS
KTsKIAogICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5lcmF0b3IpCkBAIC01ODAsOCAr
NTgyLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJ
bWFnZUdlbmVyYXRvcigpCiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVy
ZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNm
b3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107Cisg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9y
ZTprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVk
VGltZVRvbGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAt
NjY5LDcgKzY3MSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpnZXRTdGFydERhdGUoKSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0dXJu
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFBB
TDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7
CisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gQ01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0
ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vjb25k
IG9mZnNldCBlcnJvciB3aGVuIHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6OmNy
ZWF0ZVdpdGhEb3VibGUocm91bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg3LDcgKzEw
ODksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
UGxheWVyKCkKIAogICAgIEFTU0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBhdXRv
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZl
ciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpD
TVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxv
Y2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKKyAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIg
PSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1h
a2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vh
a1RoaXNdIChDTVRpbWUgdGltZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRp
bWUpKTsKICAgICB9XTsKQEAgLTE0MjEsNyArMTQyMyw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xvY2tB
dENhY2hlZEN1cnJlbnRUaW1lKQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBB
TDo6dG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOworICAg
ICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKHRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRl
bS5nZXQoKSBjdXJyZW50VGltZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hlZEN1
cnJlbnRUaW1lKTsKIAogICAgIGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRpYVRp
bWU7CkBAIC0xNDY2LDggKzE0NjgsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIENN
VGltZSBjbUFmdGVyID0gUEFMOjp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAgICAv
LyBbQVZQbGF5ZXJJdGVtIHNlZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRv
bGVyYW5jZUJlZm9yZSBpcyBuZWdhdGl2ZS4KLSAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGNt
QmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8IDApCi0gICAgICAgIGNtQmVmb3JlID0gUEFMOjpr
Q01UaW1lWmVybzsKKyAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJlZm9yZSwga0NNVGltZVplcm8p
IDwgMCkKKyAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRvIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogCkBAIC0xNTg0LDggKzE1ODYsNiBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlvbkFs
Z29yaXRobShNZWRpYVBsYXllcgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2Vz
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGlt
ZVJhbmdlcygpIGNvbnN0CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElN
RVJBTkdFX0lTX0VNUFRZLgotCiAgICAgYXV0byB0aW1lUmFuZ2VzID0gbWFrZVVuaXF1ZTxQbGF0
Zm9ybVRpbWVSYW5nZXM+KCk7CiAKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQpAQCAtMTU5NCwx
NSArMTU5NCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybQogICAgIGZvciAoTlNWYWx1ZSAq
dGhpc1JhbmdlVmFsdWUgaW4gbV9jYWNoZWRMb2FkZWRSYW5nZXMuZ2V0KCkpIHsKICAgICAgICAg
Q01UaW1lUmFuZ2UgdGltZVJhbmdlID0gW3RoaXNSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFsdWVd
OwogICAgICAgICBpZiAoQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSAmJiAhQ01USU1F
UkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKLSAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFkZChQ
QUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CisgICAgICAgICAgICB0aW1lUmFuZ2VzLT5h
ZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFUaW1lKENN
VGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKICAgICB9CiAgICAgcmV0dXJuIHRpbWVSYW5n
ZXM7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1pblRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBB
TDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgotCiAgICAgaWYgKCFtX2NhY2hlZFNlZWth
YmxlUmFuZ2VzIHx8ICFbbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyBjb3VudF0pCiAgICAgICAgIHJl
dHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2MjMsOCArMTYyMSw2IEBAIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRpbWVT
ZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0gICAgdXNpbmcgbmFt
ZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgotCiAgICAgaWYgKCFtX2Nh
Y2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFuZ2VzID0gW21f
YXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzcsNyArMTYzMyw3IEBA
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1h
eFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQo
dGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAg
ICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0
RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwgZW5kT2ZSYW5n
ZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAgICAgfQpAQCAt
MTY0Niw4ICsxNjQyLDYgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNv
bnN0CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VN
UFRZLgotCiAgICAgaWYgKCFtX2NhY2hlZExvYWRlZFJhbmdlcykKICAgICAgICAgcmV0dXJuIE1l
ZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTY1Nyw3ICsxNjUxLDcgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgp
IGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSB8fCBD
TVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVkaWFUaW1lIGVu
ZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkp
OwogICAgICAgICBpZiAobWF4VGltZUxvYWRlZCA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBt
YXhUaW1lTG9hZGVkID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xODA5LDcgKzE4MDMsNyBAQCBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZQogICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGltdW1T
aXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJ
bWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6
UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJv
cjpuaWxdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vj
b25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwogICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JT
cGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwogCiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6
Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7CkBAIC0xOTk1LDcgKzE5ODksNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFN0b3BMb2FkaW5nUmVxdWVzdChB
VkFzc2V0UmVzb3VyY2VMbwogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKTsK
KyAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGlz
Q29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC0yOTA3LDcgKzI5MDEsNyBAQCBzdGF0aWMgTlNT
dHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllciAqcGxheWVy
KQogICAgIGlmICghUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgaWYgKGF1dG8gY29udGV4dCA9IFBBTDo6T3V0cHV0Q29u
dGV4dDo6c2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250ZXh0KCkpCisgICAgaWYgKGF1
dG8gY29udGV4dCA9IE91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0
Q29udGV4dCgpKQogICAgICAgICByZXR1cm4gY29udGV4dC0+ZGV2aWNlTmFtZSgpOwogCiAgICAg
aWYgKHBsYXllci5leHRlcm5hbFBsYXliYWNrVHlwZSAhPSBBVlBsYXllckV4dGVybmFsUGxheWJh
Y2tUeXBlQWlyUGxheSkKQEAgLTMyNDEsOSArMzIzNSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFHcm91cERpZEFycml2ZShjb25zdCBSZXRhaW5Q
dHI8CiAgICAgICAgIGZvciAoQVZNZXRhZGF0YUl0ZW0gKml0ZW0gaW4gZ3JvdXAuaXRlbXMpIHsK
ICAgICAgICAgICAgIFJldGFpblB0cjxBVk11dGFibGVNZXRhZGF0YUl0ZW0+IGl0ZW1Db3B5ID0g
YWRvcHROUyhbaXRlbSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNf
VkFMSUQoaXRlbUNvcHkuZ2V0KCkudGltZSkpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0
KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRp
YVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOworICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgp
LnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6
RGVmYXVsdFRpbWVTY2FsZSk7CiAgICAgICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChpdGVt
Q29weS5nZXQoKS5kdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVy
YXRpb24gPSBQQUw6OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOworICAgICAgICAgICAgICAgIGl0
ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CiAgICAgICAg
ICAgICBbZ3JvdXBDb3B5IGFkZE9iamVjdDppdGVtQ29weS5nZXQoKV07CiAgICAgICAgIH0KIApA
QCAtMzI4NSw3ICszMjc5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjptZXRhZGF0YURpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8TlNBcnIKIAogICAgICAgICBN
ZWRpYVRpbWUgZW5kID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwogICAgICAg
ICBhdXRvIGR1cmF0aW9uID0gaXRlbS5kdXJhdGlvbjsKLSAgICAgICAgaWYgKENNVElNRV9JU19W
QUxJRChkdXJhdGlvbikgJiYgUEFMOjpDTVRpbWVHZXRTZWNvbmRzKGR1cmF0aW9uKSA+IDAuMDAx
KQorICAgICAgICBpZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0aW9uKSAmJiBDTVRpbWVHZXRTZWNv
bmRzKGR1cmF0aW9uKSA+IDAuMDAxKQogICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBQQUw6OnRv
TWVkaWFUaW1lKGR1cmF0aW9uKTsKIAogICAgICAgICBBdG9tU3RyaW5nIHR5cGUgPSBudWxsQXRv
bSgpOwpAQCAtMzQ2NCw3ICszNDU4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm8KICAgICBp
ZiAobV90aW1lT2JzZXJ2ZXIpCiAgICAgICAgIFttX2F2UGxheWVyIHJlbW92ZVRpbWVPYnNlcnZl
cjptX3RpbWVPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxh
eWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhD
TVRpbWU6UEFMOjp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCkgdXNpbmdCbG9jazpeeworICAgIG1fdGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkQm91
bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NN
VGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpe
ewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQppbmRleCA3M2FkZWI5YmI3M2E3ODI4ZGY1YTNmNDg0YzVmOTBlMzMz
ZDI0MWIxLi41YTY5YWE2Nzk1MTg5Y2I0ZTA3NmQzMTk0NjlmOTk2NTA0ZmY5NDZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC02Niw2ICs2Niw3IEBACiBAZW5kCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVy
YXRpb25Ub1N0cmluZyhNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OlNlZWtT
dGF0ZSBlbnVtZXJhdGlvblZhbHVlKQogewpAQCAtMTE1LDE1ICsxMTYsMTUgQEAgc3RhdGljIHZv
aWQgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25D
ZW50ZXJSZWYsIGNvbnMKIAogdm9pZCBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpzdG9w
KENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiB7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYg
bmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0g
ICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRp
bWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlm
aWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOworICAgIENNTm90aWZpY2F0
aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50
ZXIoKTsKKyAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBD
TVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VOb3RpZmlj
YXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKIH0KIAogRWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNsaWVudCwgQ01UaW1lYmFzZVJlZiB0aW1lYmFz
ZSkKICAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCiB7Ci0gICAgQ01Ob3RpZmlj
YXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExv
Y2FsQ2VudGVyKCk7Ci0gICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5j
LCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01U
aW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwor
ICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXRE
ZWZhdWx0TG9jYWxDZW50ZXIoKTsKKyAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVy
KG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGlt
ZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKIH0K
IAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTE1Niw3ICsxNTcs
NyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwg
InN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vl
a2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7Cisg
ICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBm
b3IgIiwgdG9NZWRpYVRpbWUodGltZSksICIsIHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIsIHBl
bmRpbmcgPSAiLCAhIW1fcGVuZGluZ1NlZWspOwogCiAgICAgICAgIGlmIChtX3NlZWtpbmcgJiYg
IW1fcGVuZGluZ1NlZWspIHsKICAgICAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwpAQCAtMjM3
LDExICsyMzgsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3QKIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIFBB
TDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBQQUw6Omlz
Q29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAgJiYgUEFMOjpnZXRBVlN0cmVh
bURhdGFQYXJzZXJDbGFzcygpCi0gICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyQ2xhc3MoKQotICAgICAgICAmJiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyUmVuZGVy
U3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChQ
QUw6OmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRN
dXRlZDopKTsKKyAgICAgICAgJiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQorICAg
ICAgICAmJiBnZXRBVlN0cmVhbURhdGFQYXJzZXJDbGFzcygpCisgICAgICAgICYmIGdldEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkKKyAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZm
ZXJSZW5kZXJTeW5jaHJvbml6ZXJDbGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNl
TWV0aG9kKGdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3Rvcihz
ZXRNdXRlZDopKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+JiB0eXBlcykKQEAgLTQxNiw3ICs0MTcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CiAKIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmN1cnJlbnRNZWRp
YVRpbWUoKSBjb25zdAogewotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0
b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFz
ZV0pKTsKKyAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAgIGlmIChz
eW5jaHJvbml6ZXJUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQogICAgICAgICByZXR1cm4g
TWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogICAgIGlmIChzeW5jaHJvbml6ZXJUaW1lIDwgbV9sYXN0
U2Vla1RpbWUpCkBAIC00MjksNyArNDMwLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2soTWVkaWEKICAg
ICBtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAog
ICAgIGlmIChtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spIHsKLSAgICAgICAgbV90aW1l
Q2hhbmdlZE9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVy
Rm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFu
Z2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJ
bnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgewogICAgICAgICAgICAgaWYgKG1fY3VycmVudFRp
bWVEaWRDaGFuZ2VDYWxsYmFjaykKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRUaW1lRGlkQ2hh
bmdlQ2FsbGJhY2soQ01USU1FX0lTX05VTUVSSUModGltZSkgPyBQQUw6OnRvTWVkaWFUaW1lKHRp
bWUpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICAgICAgfV07CkBAIC00ODEsNyArNDgy
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNlZWtJbnRl
cm5hbCgpCiAgICAgaWYgKG1fbGFzdFNlZWtUaW1lLmhhc0RvdWJsZVZhbHVlKCkpCiAgICAgICAg
IG1fbGFzdFNlZWtUaW1lID0gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKG1fbGFzdFNlZWtU
aW1lLnRvRG91YmxlKCksIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CiAKLSAgICBNZWRp
YVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNl
R2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNo
cm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNo
cm9uaXplciB0aW1lYmFzZV0pKTsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAic2Vla1Rp
bWUgPSAiLCBtX2xhc3RTZWVrVGltZSwgIiwgc3luY2hyb25pemVyVGltZSA9ICIsIHN5bmNocm9u
aXplclRpbWUpOwogCiAgICAgYm9vbCBkb2VzTm90UmVxdWlyZVNlZWsgPSBzeW5jaHJvbml6ZXJU
aW1lID09IG1fbGFzdFNlZWtUaW1lOwpAQCAtNTk4LDcgKzU5OSw3IEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogICAg
IGlmIChtX3ZpZGVvT3V0cHV0KSB7CiAgICAgICAgIENNVGltZSBvdXRwdXRUaW1lOwogICAgICAg
ICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9PdXRwdXQgY29weVBpeGVs
QnVmZmVyRm9yU291cmNlVGltZTp0b0NNVGltZShjdXJyZW50TWVkaWFUaW1lKCkpIHNvdXJjZVRp
bWVGb3JEaXNwbGF5OiZvdXRwdXRUaW1lXSkpIHsKLSAgICAgICAgICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIsICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgUEFMOjp0b01lZGlh
VGltZShvdXRwdXRUaW1lKSk7CisgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
bmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIHRvTWVkaWFUaW1lKG91dHB1dFRpbWUp
KTsKICAgICAgICAgICAgIG1fbGFzdFBpeGVsQnVmZmVyID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA4LDcgKzgwOSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIo
KQogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3lu
Y2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFz
ZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVy
IHJlbW92ZVJlbmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpIGF0VGltZTpj
dXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8t
b3AuCiAgICAgfV07CkBAIC0xMDE3LDcgKzEwMTgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6Zmx1c2hQZW5kaW5nU2l6ZUNoYW5nZXMoKQogI2lmIEhBVkUo
QVZTVFJFQU1TRVNTSU9OKQogQVZTdHJlYW1TZXNzaW9uKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24oKQogewotICAgIGlmICghUEFMOjpnZXRBVlN0
cmVhbVNlc3Npb25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGlu
c3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3Rv
cnlBdFVSTDopXSkKKyAgICBpZiAoIWdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6
OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNl
bGVjdG9yKGluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICByZXR1cm4g
bmlsOwogCiAgICAgaWYgKCFtX3N0cmVhbVNlc3Npb24pIHsKQEAgLTEyMTYsNyArMTIxNyw3IEBA
IEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBD
TVRpbWUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXpl
ciB0aW1lYmFzZV0pOworICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1l
KFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwogICAgIFttX3N5bmNocm9uaXplciByZW1vdmVS
ZW5kZXJlcjphdWRpb1JlbmRlcmVyIGF0VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhh
bmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8tb3AuCiAgICAgfV07CkBAIC0xMzAwLDcgKzEz
MDEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9y
bVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPAogICAgIGlmIChtX3BlcmZvcm1UYXNrT2Jz
ZXJ2ZXIpCiAgICAgICAgIFttX3N5bmNocm9uaXplciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV9wZXJm
b3JtVGFza09ic2VydmVyLmdldCgpXTsKIAotICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZlciA9IFtt
X3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBb
bV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVl
IHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCkgdXNpbmdCbG9jazpeewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCA1NWI1MDBjNTdlOTNl
YmJhNDk2YWU3NDE2ZmQ1ZGY3OGQ3Yjk0NThlLi5lMWFkMTAyYmI5ODFiZjM3NGU2YmQ5MzdjMGM2
ZTJhODdmNDBmMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0zMiw3ICszMiw2
IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgog
I2ltcG9ydCAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKLSNpbXBvcnQgIk1lZGlh
UGxheWVyLmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQg
Ik1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5o
IgpAQCAtMTIyLDYgKzEyMSw3IEBACiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKSAm
JiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKKyAgICByZXR1cm4g
aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29y
a0F2YWlsYWJsZSgpICYmIGdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcykK
QEAgLTIzMCw3ICsyMzAsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogc3RhdGljIGlubGlu
ZSBDR0FmZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxl
JiBzYW1wbGUpCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gc2FtcGxl
LnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOwotICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CiAgICAgc2l6ZV90IHdpZHRo
ID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKICAgICBzaXplX3QgaGVpZ2h0
ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7CiAgICAgaWYgKCF3aWR0aCB8
fCAhaGVpZ2h0KQpAQCAtOTYwLDcgKzk2MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpCiAgICAgaWYgKCFtX2lt
YWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxh
dGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBtX2ltYWdlUGFpbnRlci5jZ0ltYWdlID0gTmF0aXZl
SW1hZ2U6OmNyZWF0ZShtX2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRl
SW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IGMwZjEzZDZlYTVjOTc1NzY3Y2U4
ZjYyYWI2ODQyZDdkNmYwZmJiNmIuLjJmNDk4Mzg3NjVkM2M5NDQxYjY5YmI5NTE4YjNiMWY5YTg3
OTUwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0K
QEAgLTM2LDEyICszNiw5IEBACiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLS8vIEVxdWl2YWxlbnQgdG8gV1RGX0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7Ci0vLyBOZWVkZWQgZHVlIHRvIHJl
cXVpcmVtZW50IG9mIHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCi10ZW1wbGF0ZSA8Pgot
c3RydWN0IFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKLSAgICBzdGF0aWMg
aW5saW5lIENGVHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0VHlwZUlEKCk7IH0KLX07Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitXVEZfREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC03MCwzNSArNjcsMzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5V
U0VEKHN0YXR1cywgIXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKKyAgICBzdGF0
dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcp
OwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRv
cHRDRihmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2Ft
cGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGlt
ZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8g
c2FtcGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxp
ZCwga0NNVGltZUludmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJS
YXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgp
LCBmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAmc2Ft
cGxlQnVmZmVyUmF3KTsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZv
cm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVC
dWZmZXJSYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9
IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNB
cnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQo
KSwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsK
LSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAg
ICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVy
biBjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2Ft
cGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lT
X0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgICAgIHRp
bWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBh
dXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAobV9z
YW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNv
ZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0
aW1lU3RhbXApKQogICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVy
biBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDYsMTUgKzEwMywxNSBAQCBNZWRp
YVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1l
IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkp
OworICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1f
c2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAg
ICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5n
ZXQoKSk7CisgICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3Nh
bXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQog
CiBzaXplX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUuZ2V0
KCkpOworICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBs
ZS5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZv
cm1TYW1wbGUoKQpAQCAtMTI1LDIzICsxMjIsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1w
bGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2Fz
dDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxl
LmdldCgpKSk7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4
ZWxCdWZmZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJh
bmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJu
ICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVB
dHRhY2htZW50S2V5X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNL
ZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAK
IHN0YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBi
b29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
KQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIApAQCAtMTU0LDEyICsxNTEsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJh
bmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNo
bWVudERpY3QpCiB7Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1l
bnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKKyAgICBy
ZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAg
IGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4OSwx
MSArMTg2LDExIEBAIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6
OmZsYWdzKCkgY29uc3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0
aW9uU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3NhbXBs
ZS5nZXQoKSk7Ci0gICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShm
b3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAg
ICAgICByZXR1cm4gRmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6
OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0
RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRp
b24sIHRydWUsIHRydWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKQEAgLTIwNCwxMiArMjAxLDEyIEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewog
ICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51
bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsK
LSAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9B
cnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBu
dWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWlu
ZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjE4LDcgKzIxNSw3IEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAg
ICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9F
cnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjcs
MTIgKzIyNCwxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5
KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRp
bWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29u
c3QgV1RGOjpNZWRpYVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50
KSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5
OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0
KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYg
KG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxl
LmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJy
YXkpIHsKQEAgLTI0MSw3ICsyMzgsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGlt
ZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0K
ICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNv
dW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ5LDEwICsy
NDYsMTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RG
OjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9i
akM6OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKENNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9zYW1w
bGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1
ZmZlckhhc05vU2FtcGxlU2l6ZXMpCisgICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6
ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVC
dWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2NSwxNyArMjYyLDE3IEBAIHN0ZDo6cGFpcjxSZWZQ
dHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6
OmRpdmlkZShjCiAKICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0g
MDsKIAotICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2Ft
cGxlLmdldCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291
bnQpIC0+IE9TU3RhdHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAg
Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgpLCBbJl0g
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9TU3RhdHVz
IHsKKyAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lO
VkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAg
IHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZUJ1ZmZlcik7CiAKICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7
Ci0gICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1
dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAg
aWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAgICAg
ICAgICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZm
ZXIpOwogCi0gICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZUFkZCh0
aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAgaWYg
KFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNl
bnRhdGlvblRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBp
ZiAoUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAg
ICAgICAgICByZXR1cm4gMTsKQEAgLTI4NiwxOSArMjgzLDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8
TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRp
dmlkZShjCiAgICAgaWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAg
cmV0dXJuIHsgbnVsbHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CisgICAg
Q01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9z
YW1wbGUuZ2V0KCkpOwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBz
YW1wbGVDb3VudCkKICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJh
bmdlQmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUp
OwotICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1NhbXBs
ZUJlZm9yZSkgIT0gbm9FcnIpCisgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9y
ZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIs
IG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9y
ZSA9IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJh
d1NhbXBsZUFmdGVyID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdl
TWFrZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVz
QmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5
U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCks
IHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAgaWYgKENNU2FtcGxl
QnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDgs
MTMgKzMwNSwxMyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlh
U2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIFBBTDo6Q01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCAm
bmV3U2FtcGxlQnVmZmVyKTsKKyAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VS
VChuZXdTYW1wbGVCdWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVm
ZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAg
ICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJh
eSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0g
Y2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwg
a0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50
cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsK
ICAgICB9CiAKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihu
ZXdTYW1wbGVCdWZmZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyOSw3ICszMjYsNyBAQCBSZWZQdHI8
SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VE
YXRhKCkgY29uc3QKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdl
dCgpLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIu
Z2V0KCkpOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIo
Y29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENW
UGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0
KCkpKTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNv
bnZlcnQocGl4ZWxCdWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFk
T25seSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDYsMTAgKzM0MywxMCBA
QCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRS
R0JBSW1hZ2VEYXRhKCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZl
ckFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsK
LSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJs
ZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7
Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAt
MzYwLDcgKzM1Nyw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1l
ZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6
aXNIb21vZ2VuZW91cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUu
Z2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAg
ICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg4
LDcgKzM4NSw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxl
VmVjdG9yID0gVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1w
bGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0
dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQyMSw3ICs0MTgs
NyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7
CiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAg
IGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0gbm9FcnIg
fHwgIXJhd1NhbXBsZSkKKyAgICAgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJh
d1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIHNhbXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3Jl
YXRlKGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQzNSwyNCAr
NDMyLDI0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZl
ciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZv
cm1hdERlc2NyaXB0aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAg
c3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1w
bGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7
CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8
Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5
Lmdyb3coaXRlbUNvdW50KTsKLSAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVs
bHB0cik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
Jm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDAy
MTkyMTZkN2MyZDg4ZWY1Nzc1MjZkODgyMzBjM2U1MDNmZDhjZGIuLjBiOWJiNjQ4NWYzZTllMjUz
NDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNiArMjU4LDcgQEAgQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUg
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
IEBAIGVudW0gY2xhc3MgUElQU3RhdGUgewogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1
c2luZyBuYW1lc3BhY2UgUEFMOwogCiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYyhQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMmIHBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKHBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsLmNwcAppbmRleCBkNDE5ZTBlMTkyNTU1ZDczNjA4NTg1MWY1NGNhMDA0MGQ0NmI2NjNmLi44
ODQwOTQyOTc5MjZjOGFlYmRlZjZmM2U5NTc4NDJmODM0MjhiODkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMp
CiB7CkBAIC04NywxMiArODgsMTIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKIHsKICAgICBp
ZiAoc2hvdWxkTXV0ZVZpZGVvKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsKLSAg
ICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcik7Ci0gICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24u
Z2V0KCkpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1
ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9u
LmdldCgpKTsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxCdWZm
ZXIoZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAgICAgICAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwot
ICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQo
KSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9ibGFja0ZyYW1lLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICAgICAg
aWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhLCAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJs
ZSA6OnVuYWJsZSB0byBjcmVhdGUgYSBibGFjayBmcmFtZSBkZXNjcmlwdGlvbjogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IG51
bGxwdHI7CkBAIC0xMDIsOCArMTAzLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKICAgICAg
ICAgfQogCiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IG51bGxwdHI7Ci0gICAg
ICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsgUEFMOjprQ01UaW1lSW52YWxpZCwg
UEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwgUEFMOjp0b0NN
VGltZShzYW1wbGVCdWZmZXIuZGVjb2RlVGltZSgpKSB9OwotICAgICAgICBhdXRvIHN0YXR1cyA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tG
cmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CisgICAgICAgIENN
U2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsga0NNVGltZUludmFsaWQsIHRvQ01UaW1lKHNh
bXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCB0b0NNVGltZShzYW1wbGVCdWZmZXIuZGVj
b2RlVGltZSgpKSB9OworICAgICAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJS
ZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRp
bWluZ0luZm8sICZzYW1wbGUpOwogCiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSAtIHVuYWJsZSB0byBjcmVhdGUgYSBi
bGFjayBmcmFtZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA1ZTExMGVjZDdkZTM4
NDYxYjQyOTA0YTBlYjQ4ODM0MTg0M2U3NWE0Li41MWEzZTE4YTJjZWRkM2NkNWRhOTNmMzRlYmYz
NzExZTAyMGY4YjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvci5tbQpAQCAtMzYsMTIgKzM2LDEzIEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAK
ICNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgotI2ltcG9ydCA8cGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05E
UyAwLjEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgUEFMOworCiBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIGNvbXByZXNzb3IgPSBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yKCkpOwpAQCAtNTEsMTUgKzUyLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
Y3JlYXRlCiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yKCkKLSAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIpKQotICAgICwgbV9s
b3dXYXRlclRpbWUoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVfSU5f
U0VDT05EUywgMTAwMCkpCisgICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUgeyBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIpIH0KKyAgICAs
IG1fbG93V2F0ZXJUaW1lIHsgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9USU1FX0lO
X1NFQ09ORFMsIDEwMDApIH0KIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIpIHsK
LSAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAg
ICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRl
ciA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNjcsMTkgKzY4LDE5IEBAIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNh
bGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1
ZXVlUmVmIGlucHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVm
ZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVl
R2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVl
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVC
dWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVl
Q3JlYXRlIGZvciBtX2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0gYWRv
cHRDRihpbnB1dEJ1ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVm
ZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9y
VW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwg
Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0
cHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9yIG1f
b3V0cHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0cHV0
QnVmZmVyUXVldWUpOwotICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0
cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVy
UXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxM
KTsKKyAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5n
ZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hl
bkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGlu
ZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC04OCw4ICs4OSw4IEBAIGJvb2wgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2sgY2FsbGJhCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkK
IHsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAg
ICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKFBBTDo6a0NNVGltZUlu
dmFsaWQpOwotICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9m
RGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1
ZmZlcnNVbnRpbExvd1dhdGVyVGltZShrQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
KTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxl
ZCAlZCIsIGVycm9yKTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7CkBA
IC0xMTEsNyArMTEyLDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZGVm
YXVsdE91dHB1dEJpdFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERl
c2NyaXB0aW9uKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1ZGlv
Rm9ybWF0SUQgb3V0cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRM
aXN0SXRlbSA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJs
ZUZvcm1hdChmb3JtYXREZXNjcmlwdGlvbik7CisgICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRM
aXN0SXRlbSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3Jt
YXQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3JtYXRM
aXN0SXRlbS0+bUFTQkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMCwzNCArMTIxLDM0IEBA
IGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JT
b3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5l
bHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAgVUlu
dDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvRm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9ybWF0UHJvcGVydHlfRm9y
bWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0
eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJlZiBj
b252ZXJ0ZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KCZt
X3NvdXJjZUZvcm1hdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIpKSB7CisgICAg
aWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rl
c3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRl
ck5ldyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cEluQ2Fz
ZU9mRXJyb3IgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0
ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1f
Y29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwogCiAg
ICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IFBBTDo6
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24s
ICZjb29raWVTaXplKTsKKyAgICBjb25zdCB2b2lkICpjb29raWUgPSBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOwog
ICAgIGlmIChjb29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXBy
ZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIpY29va2llU2l6ZSwgY29va2llKSkgeworICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVT
aXplLCBjb29raWUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckRl
Y29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2Yo
bV9zb3VyY2VGb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJl
YW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBl
cnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVh
bURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtMTU4LDcgKzE1OSw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAg
ICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwg
a0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1f
ZGVzdGluYXRpb25Gb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3Ry
ZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24g
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBA
IC0xNjYsMTQgKzE2NywxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5p
dEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmIChtX2Rl
c3RpbmF0aW9uRm9ybWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewogICAg
ICAgICBib29sIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAgICAg
aWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVk
aW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2Rl
Qml0UmF0ZSwgc2l6ZW9mKCptX291dHB1dEJpdFJhdGUpLCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVl
KCkpOworICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRw
dXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9
ICEhZXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRwdXRC
aXRSYXRlKSB7CiAgICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0cHV0
Qml0UmF0ZShtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXplb2Yo
b3V0cHV0Qml0UmF0ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0
UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
c2V0dGluZyBkZWZhdWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODIsNyArMTgzLDcgQEAgYm9vbCBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZv
cm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBp
cyBWQlIsIHdlIG5lZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29udmVy
dGVyLgogICAgICAgICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAKLSAg
ICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUs
ICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRTaXplKSkgeworICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
clByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNr
ZXRTaXplKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eU1heGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMTAsOCArMjExLDYgQEAgc2l6ZV90
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zv
cm1hdChBdWRpb1N0cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKLSAg
ICB1c2luZyBuYW1lc3BhY2UgUEFMOwotCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVt
YWluaW5nUHJpbWVEdXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8g
cHJpbWVJbmZvIHsgMCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUlu
Zm8pOwpAQCAtMjM3LDI1ICsyMzYsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBV
SW50MzIgZGVsYXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5h
bERlbGF5TW9kZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsICZk
ZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlE
ZWxheU1vZGUsICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
Z2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGltYWxE
ZWxheU1vZGUgPSBrQXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5
TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2Rl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAog
ICAgIFVJbnQzMiBwcmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAgICAg
QXVkaW9Db2RlY1ByaW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
ZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxE
ZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5
TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CkBAIC0yNjgsMTggKzI2NywxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlmICgh
bV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29raWVT
aXplID0gMDsKIAotICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nv
b2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOworICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNz
aW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9
PSBub0VycikgJiYgISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXplKGNv
b2tpZVNpemUpOwogCi0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25N
YWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUu
ZGF0YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29t
cHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29raWVT
aXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikp
IHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNv
b2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0
aW9uKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAg
fQpAQCAtMjkxLDI2ICsyOTAsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBzaXpl
X3QgZGF0YVNpemUgPSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplOwog
CiAgICAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0YVNp
emUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
TlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJs
b2NrQnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJs
b2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0K
ICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5n
ZXQoKSwgMCwgZGF0YVNpemUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVy
UmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZl
ckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVy
LmdldCgpLCB0cnVlLCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24u
Z2V0KCksIG51bVBhY2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwg
bV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOwor
ICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2Ny
aXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5V
TEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9j
dXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVz
Y3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAg
IGlmIChbbV9nZHJDb3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIFBBTDo6Q01TZXRBdHRhY2ht
ZW50KHNhbXBsZUJ1ZmZlciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1
YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgp
LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworICAgICAgICBDTVNldEF0dGFj
aG1lbnQoc2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxE
ZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBr
Q01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBsZUJ1
ZmZlcjsKIH0KQEAgLTM0MiwyNCArMzQxLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKICAg
ICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5
KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKENNQnVmZmVy
UXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENG
KChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVl
RGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAg
ICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1
ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVm
ZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVm
ZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7Cisg
ICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9zYW1w
bGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBB
TDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSk7
CisgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAg
ICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAg
ICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVz
VG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNN
QmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3Vy
cmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJi
dWYsIChtX3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIp
KSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlE
YXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVm
ZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICAg
ICAgfQpAQCAtMzk0LDI4ICszOTMsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAg
ICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1
ZXVlLmdldCgpKSkKKyAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0
QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAg
ICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9j
YXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gYWRv
cHRDRigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CisgICAg
ICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShj
b25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFk
b3B0Q0YoKENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAgICAg
ICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3NhbXBs
ZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01CbG9j
a0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOworICAg
ICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxl
bmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1cnJl
bnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb0Nv
cHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9j
a0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAg
ICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMo
bV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1
ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJl
bnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNoYW5u
ZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9y
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxv
Y2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVu
dE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwgbnVt
Qnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0
SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5
dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldElu
U291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyBzZWNvbmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzksOCArNDM4LDYgQEAg
T1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51
bU91dHB1dFBhY2tldHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0ZXJU
aW1lKQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9J
TkxJTkUKLQogICAgIGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVyUXVl
dWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC01MDQsNyArNTAxLDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnBy
b2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZm
ZXJSZWYgYnVmZmVyKQogewotICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVFbnF1
ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0g
Q01CdWZmZXJRdWV1ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwog
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKIAogICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9sb3dX
YXRlclRpbWUpOwpAQCAtNTIzLDEyICs1MjAsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENN
U2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2Ft
cGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0
KCkpKSk7CisgICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4o
Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAog
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBs
ZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRD
RigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25l
ZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBiNzU1
OGQyODBjMmVmNzk2MDY4Y2FjMGNjOTZiNTAzM2RjMzcwOTcxLi5mNWY4NTU4NzFmYzcwODU2NmY3
ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlw
dGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBt
X3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3Zp
ZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25U
aW1lOwotICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZTsKKyAgICBDTVRpbWUgbV9s
YXN0VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUg
bV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01UaW1lSW52YWxpZCB9OwogICAgIGJvb2wgbV9o
YXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFz
c2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGltZSBt
X3Jlc3VtZWRWaWRlb1RpbWU7Ci0gICAgQ01UaW1lIG1fY3VycmVudFZpZGVvRHVyYXRpb247Ci0g
ICAgQ01UaW1lIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZTsKKyAgICBDTVRpbWUgbV9yZXN1bWVk
VmlkZW9UaW1lIHsga0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJh
dGlvbiB7IGtDTVRpbWVaZXJvIH07CisgICAgQ01UaW1lIG1fY3VycmVudEF1ZGlvU2FtcGxlVGlt
ZSB7IGtDTVRpbWVaZXJvIH07CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
aW5kZXggNmFkMjBiZThjYjU3OTIzYTBlNzg0MmUzNzAxZDMzYTZhYTAzYWI2Yy4uNjNiZDY1OThk
MDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsNiArOTMsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKIFJlZlB0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNy
ZWF0ZShib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBjb25zdCBNZWRpYVJlY29yZGVyUHJp
dmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byB3cml0ZXIgPSBhZG9wdFJlZigqbmV3
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGhhc0F1ZGlvLCBoYXNWaWRlbykpOwpAQCAtMTIw
LDExICsxMjIsNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2Vk
QXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICptZWRpYQogTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGJvb2wgaGFzQXVkaW8sIGJvb2wg
aGFzVmlkZW8pCiAgICAgOiBtX2hhc0F1ZGlvKGhhc0F1ZGlvKQogICAgICwgbV9oYXNWaWRlbyho
YXNWaWRlbykKLSAgICAsIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZShQQUw6OmtDTVRpbWVJ
bnZhbGlkKQotICAgICwgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUoUEFMOjprQ01UaW1lSW52YWxp
ZCkKLSAgICAsIG1fcmVzdW1lZFZpZGVvVGltZShQQUw6OmtDTVRpbWVaZXJvKQotICAgICwgbV9j
dXJyZW50VmlkZW9EdXJhdGlvbihQQUw6OmtDTVRpbWVaZXJvKQotICAgICwgbV9jdXJyZW50QXVk
aW9TYW1wbGVUaW1lKFBBTDo6a0NNVGltZVplcm8pCiB7CiB9CiAKQEAgLTE4Miw3ICsxNzksNyBA
QCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJlc3NlZFZp
ZGVvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJUKG1faGFzVmlkZW8pOwogICAgIGlmICgh
bV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAgICAgIG1fdmlkZW9Gb3JtYXREZXNjcmlw
dGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29t
cHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9ybWF0
RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fdmlkZW9D
b21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAKICAgICAgICAgaWYgKG1faGFz
QXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTE5OSw3ICsxOTYsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9j
ZXNzTmV3Q29tcHJlc3NlZEF1ZGlvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJUKG1faGFz
QXVkaW8pOwogICAgIGlmICghbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAgICAgIG1f
YXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNj
cmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAg
ICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAg
ICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pCiAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTI0MSw3ICsyMzgsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJjZVRpbWU6UEFMOjprQ01U
aW1lWmVyb107CisgICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpr
Q01UaW1lWmVyb107CiAKICAgICBhcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVmZmVycygpOwogCkBA
IC0zMDMsOCArMzAwLDggQEAgYm9vbCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5k
Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVySWZQb3NzaWJsZSgpCiB2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIoQ01TYW1w
bGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAgIEFTU0VSVChbbV92aWRlb0Fzc2V0V3JpdGVySW5w
dXQgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFdKTsKLSAgICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlv
blRpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZl
cik7Ci0gICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGVjb2RlVGltZVN0YW1wKGJ1ZmZlcik7CisgICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1l
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBt
X2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1w
KGJ1ZmZlcik7CiAgICAgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzID0gdHJ1ZTsKIAogICAgIFtt
X3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSBhcHBlbmRTYW1wbGVCdWZmZXI6YnVmZmVyXTsK
QEAgLTMxNywxNyArMzE0LDE3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFw
cGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCkKIAogc3RhdGljIGlubGluZSB2b2lkIGFwcGVu
ZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyKEFWQXNzZXRXcml0ZXJJbnB1dCAqYXNz
ZXRXcml0ZXJJbnB1dCwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGRlY29k
aW5nVGltZVN0YW1wKQogewotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQ
QUw6OmtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0
YW1wfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUludmFs
aWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3RhbXB9OwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgYnVmZmVyID0gTlVMTDsKLSAgICBhdXRvIGVycm9yID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBO
VUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAgYXV0
byBlcnJvciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEws
IHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVm
ZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBhcHBlbmRFbmRzUHJldmlvdXNTYW1w
bGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVCdWZmZXJDcmVhdGUgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFk
b3B0Q0YoYnVmZmVyKTsKIAotICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5n
ZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBs
ZUR1cmF0aW9uLCBrQ0ZCb29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFn
YXRlKTsKKyAgICBDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBrQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uLCBrQ0ZCb29sZWFu
VHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKICAgICBpZiAoIVthc3Nl
dFdyaXRlcklucHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpzYW1wbGVCdWZmZXIuZ2V0KCldKQogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIGFwcGVuZFNhbXBsZUJ1ZmZlciB0byB3cml0ZXIgaW5wdXQgZmFpbGVkIik7CiB9CkBA
IC0zODUsMTggKzM4MiwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmbHVz
aENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1bmN0aW9uPHZvaWQoKT4mJgogc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVu
dFRpbWVTdGFtcChDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbEJ1ZmZlciwgQ01UaW1lIHN0YXJ0
VGltZSkKIHsKICAgICBDTUl0ZW1Db3VudCBjb3VudCA9IDA7Ci0gICAgUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291
bnQpOworICAgIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFs
QnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CiAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1lSW5mbyhjb3VudCk7Ci0gICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50
KTsKKyAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1
ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKIAogICAgIGZvciAoYXV0byBp
ID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGltZVN0
YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGlt
ZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CiAgICAgICAgIHRpbWVJbmZvW2ldLnByZXNlbnRhdGlv
blRpbWVTdGFtcCA9IHN0YXJ0VGltZTsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBu
ZXdCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFs
QnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5l
d0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGlt
aW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CkBAIC00MDcsNyArNDA0LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6
YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBpZiAo
IW1fZmlyc3RWaWRlb0ZyYW1lKSB7CiAgICAgICAgIG1fZmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsK
LSAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNN
Q2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOworICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBD
TUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKICAgICAgICAgaWYgKHNh
bXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUg
fHwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkgewogICAgICAgICAgICAgbV92aWRlb1RyYW5zZm9y
bSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVJvdGF0aW9uKHN0YXRpY19jYXN0PGludD4oc2FtcGxl
LnZpZGVvUm90YXRpb24oKSkgKiBNX1BJIC8gMTgwKTsKICAgICAgICAgICAgIGlmIChzYW1wbGUu
dmlkZW9NaXJyb3JlZCgpKQpAQCAtNDE1LDggKzQxMiw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1
YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygp
KSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQo
c2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1l
ID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2so
KSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IENNVGltZUFkZChzYW1w
bGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKICAgICBpZiAoYXV0byBidWZmZXJXaXRo
Q3VycmVudFRpbWUgPSBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXAoc2FtcGxl
LnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBzYW1wbGVUaW1lKSkKICAg
ICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVu
dFRpbWUuZ2V0KCkpOwogfQpAQCAtNDI1LDcgKzQyMiw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZm
ZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291
bnQpKQogICAgICAgICBtX2F1ZGlvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKHNhbXBsZUJ1
ZmZlci5nZXQoKSk7Ci0gICAgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVB
ZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBQQUw6OnRvQ01UaW1lKE1lZGlhVGltZShzYW1w
bGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpKSkpOworICAgIG1fY3VycmVudEF1ZGlv
U2FtcGxlVGltZSA9IENNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHRvQ01UaW1l
KE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpKSkpOwogfQog
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmaW5pc2hlZEZsdXNoaW5nU2FtcGxl
cygpCkBAIC01MjYsMTAgKzUyMywxMCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpjb21wbGV0ZUZldGNoRGF0YSgpCiB7CiAgICAgYXV0byBjdXJyZW50VGltZUNvZGUgPSBtX3Rp
bWVDb2RlOwogICAgIGlmIChtX2hhc0F1ZGlvKQotICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpD
TVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1fdGlt
ZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFM
OjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3Vt
ZWRWaWRlb1RpbWUpOwotICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRz
KFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pKTsKKyAg
ICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUoQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgICAgIG1f
dGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJl
bnRWaWRlb0R1cmF0aW9uKSk7CiAgICAgfQogICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRs
ZXIodGFrZURhdGEoKSwgY3VycmVudFRpbWVDb2RlKTsKIH0KQEAgLTU1MywxMyArNTUwLDEzIEBA
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjp0YWtlRGF0
YSgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnBhdXNlKCkKIHsKLSAgICBh
dXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tH
ZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGlt
ZSk7Ci0gICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IFBBTDo6Q01UaW1lQWRkKHJlY29yZGlu
Z0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1
cmF0aW9uID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1l
Q2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJhdGlv
biA9IENNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlvbiwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7
CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnJlc3VtZSgpCiB7Ci0gICAg
bV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRI
b3N0VGltZUNsb2NrKCkpOworICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1l
KENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogfQogCiBjb25zdCBTdHJpbmcmIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjptaW1lVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IGQwNzYwZjA3ZTM3MDgxMjdmOWRl
MmVmYWY5MmYwZTA3NzJmZDM4ZTcuLjc2ZDU2ZDdiOGQxM2M3MmVhMzlmYzM0OTlkMTc5ODk5NzE3
ZjBlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Lm1tCkBAIC0zNCwxMSArMzQsMTIgQEAKICNpbXBvcnQgPFZpZGVvVG9vbGJveC9WVENvbXByZXNz
aW9uU2Vzc2lvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNpbXBvcnQgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL1ZpZGVvVG9vbGJveFNv
ZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsK
Kwogc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoU3RyaW5nIG1pbWVUeXBlLCBDTUJ1ZmZlclF1ZXVl
VHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBh
dXRvIHByb2ZpbGUgPSBQcm9maWxlOjpCYXNlbGluZTsKQEAgLTY4LDcgKzY5LDcgQEAgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRl
b0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fdnRTZXNzaW9uKSB7Ci0gICAgICAg
IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsK
KyAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgp
KTsKICAgICAgICAgbV92dFNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTc2LDEyICs3
NywxMiBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IoKQogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUo
Q01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmpl
Y3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZl
cnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZm
ZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2Fs
bGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgdW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgcXVldWUgJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IG91
dHB1dEJ1ZmZlclF1ZXVlOwotICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVm
ZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBO
VUxMKTsKKyAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1
ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJf
V2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNv
ZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC05NSwxMCArOTYsMTAgQEAgdm9pZCBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNldEJpdHNQZXJTZWNvbmQodW5zaWduZWQgYml0
UmF0ZSkKIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5pc2goKQogewogICAg
IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzXSB7Ci0gICAgICAgIGF1
dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNl
c3Npb24uZ2V0KCksIFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0g
VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwga0NN
VGltZUludmFsaWQpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25D
b21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgICAgICBlcnJvciA9
IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSk7CisgICAgICAgIGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBN
ZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlTWFy
a0VuZE9mRGF0YSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAgICAgICBtX2lzRW5jb2Rp
bmcgPSBmYWxzZTsKQEAgLTExMyw3ICsxMTQsNyBAQCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6dmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrKHZvaWQgKnJlZkNvbiwgdm9pZCosCiAK
ICAgICBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgKmNvbXByZXNzb3IgPSBzdGF0aWNfY2Fz
dDxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IqPihyZWZDb24pOwogCi0gICAgYXV0byBlcnJv
ciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVl
dWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiB9CiAKQEAgLTEyOSw1MyArMTMwLDUzIEBAIENGU3RyaW5nUmVmIFZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6dnRQcm9maWxlTGV2ZWwoKSBjb25zdAogewogICAgIHN3aXRjaCAobV9wcm9m
aWxlKSB7CiAgICAgY2FzZSBQcm9maWxlOjpCYXNlbGluZToKLSAgICAgICAgcmV0dXJuIFBBTDo6
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1cm4g
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOwogICAgIGNhc2UgUHJvZmls
ZTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9B
dXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9M
ZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Ok1haW46Ci0gICAgICAgIHJldHVybiBQQUw6OmtWVFBy
b2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4ga1ZUUHJvZmls
ZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CiAgICAgfQogfQogCiBib29sIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24pCiB7Ci0gICAgQ01WaWRlb0RpbWVuc2lvbnMg
ZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9u
cyA9IG5pbDsKICNlbHNlCi0gICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMg
PSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKVBBTDo6a1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlv
bl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5TRGlj
dGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilr
VlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRl
b0VuY29kZXI6QFlFU307CiAjZW5kaWYKIAogICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHZ0
U2Vzc2lvbjsKLSAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdo
dCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNw
ZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMs
ICZ2dFNlc3Npb24pOworICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdo
dCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNw
ZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMs
ICZ2dFNlc3Npb24pOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9u
U2Vzc2lvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIE5P
OwogICAgIH0KICAgICBtX3Z0U2Vzc2lvbiA9IGFkb3B0Q0YodnRTZXNzaW9uKTsKIAotICAgIGVy
cm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVycm9y
ID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
VlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lv
blByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJh
dGlvbik7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vz
c2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFs
RHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uKTsKICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgZXJyb3Ig
PSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjpr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJh
bWVSYXRlKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRT
ZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRl
LCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJv
cGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92
dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2
ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHko
bV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVs
LCB2dFByb2ZpbGVMZXZlbCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNz
aW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFp
bGVkIHdpdGggJWQgZm9yIHByb2ZpbGUgJWQiLCBlcnJvciwgbV9wcm9maWxlKTsKICAgICAgICAg
aWYgKG1fcHJvZmlsZSAhPSBQcm9maWxlOjpCYXNlbGluZSkgewotICAgICAgICAgICAgZXJyb3Ig
PSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9C
YXNlbGluZV9BdXRvTGV2ZWwpOworICAgICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCk7CiAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIGRlZmF1bHQgcHJvZmlsZSIs
IGVycm9yKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChtX291dHB1dEJpdFJhdGUpIHsK
LSAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAq
bV9vdXRwdXRCaXRSYXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Q
cm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVy
YWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNl
c3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgIH0KIAotICAgIGVycm9yID0gUEFMOjpWVENv
bXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7
CisgICAgZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyht
X3Z0U2Vzc2lvbi5nZXQoKSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlh
U3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9u
UHJlcGFyZVRvRW5jb2RlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgcmV0
dXJuIFlFUzsKQEAgLTE4NCwxNCArMTg1LDE0IEBAIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvCiB2
b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgaWYgKCFtX3Z0U2Vzc2lvbikgewotICAgICAg
ICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Np
b24oQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihidWZmZXIpKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZl
cik7Ci0gICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihi
dWZmZXIpOwotICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2Rl
RnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3Rh
bXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0g
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOworICAgIGF1dG8gcHJlc2VudGF0
aW9uVGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVm
ZmVyKTsKKyAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZm
ZXIpOworICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lKG1f
dnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJh
dGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3Is
IE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25T
ZXNzaW9uRW5jb2RlRnJhbWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiB9CiAKQEAgLTIwNywx
MiArMjA4LDEyIEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVC
dWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogCiBDTVNhbXBsZUJ1ZmZlclJlZiBWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAg
cmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZl
clF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAo
Q01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRIZWFk
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVm
ZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAogdW5zaWduZWQgVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29h
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcAppbmRleCBhMDI0
MDg0YzI0ZTZkMzYzOTYwOGE2NDY1MmVjYzVkNmQ5ZWZhYzY4Li5jM2ZlODIxYjljNTIwYzkyMjRl
NWRlODg4ZTUxOGMzMTk2ZjMxY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCkBAIC00Miw3ICs0
Miw2IEBACiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNlbmRp
ZgogCi0jaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEy
NCw5ICsxMjMsOSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQ6OnN0YXJ0KCkKICAgICBpZiAoIW1fcmVtb3RlSU9Vbml0KQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9y
ZW1vdGVJT1VuaXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRTdGFy
dChtX3JlbW90ZUlPVW5pdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0IEF1ZGlvT3V0
cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKLSAgICAgICAgUEFMOjpB
dWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIEF1
ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICAgICAgbV9y
ZW1vdGVJT1VuaXQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTQwLDEx
ICsxMzksMTEgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faXNTdGFydGVkKSB7
Ci0gICAgICAgIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAg
ICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOwogICAgICAgICBtX2lzU3Rh
cnRlZCA9IGZhbHNlOwogICAgIH0KIAotICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3Nl
KG1fcmVtb3RlSU9Vbml0KTsKICAgICBtX3JlbW90ZUlPVW5pdCA9IG51bGxwdHI7CiB9CiAKQEAg
LTE2NCwxNCArMTYzLDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogICAgIGlvVW5pdERlc2Ny
aXB0aW9uLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9Vbml0U3ViVHlwZV9EZWZhdWx0T3V0cHV0
OwogI2VuZGlmCiAKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9D
b21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlv
Q29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAm
aW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAgaWYgKCFp
b0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJs
ZSB0byBmaW5kIHJlbW90ZSBJTyB1bml0IGNvbXBvbmVudCIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhp
b0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOwogICAgIGlmIChlcnJv
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBvcGVu
IHZwaW8gdW5pdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTc5
LDcgKzE3OCw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBVSW50MzIgcGFyYW0gPSAxOwotICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJ
Tywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAg
ICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0
VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0s
IHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IG91dHB1dCwgZXJyb3Ig
PSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIHZvaWQg
TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChtX2RldmljZUlE
KSB7Ci0gICAgICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1Vu
aXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2Nv
cGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAg
ZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9k
ZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgdW5pdCBk
ZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChpbnQpbV9kZXZpY2VJRCwgKGludCllcnJv
ciwgKGNoYXIqKSZlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTcsMTQgKzE5Niwx
NCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICNlbmRpZgogCiAgICAgQVVSZW5kZXJDYWxsYmFj
a1N0cnVjdCBjYWxsYmFjayA9IHsgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdDo6cmVuZGVyaW5nQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBlcnJvciA9IFBBTDo6
QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0
UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6
ZW9mKGNhbGxiYWNrKSk7CisgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJ
T1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJy
b3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0
IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihvdXRwdXREZXNjcmlwdGlv
bi5zdHJlYW1EZXNjcmlwdGlvbigpKTsKLSAgICBlcnJvciAgPSBQQUw6OkF1ZGlvVW5pdEdldFBy
b3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRp
b24oKSwgJnNpemUpOworICAgIGVycm9yICA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KHJlbW90ZUlP
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lu
cHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgJnNpemUpOwog
ICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVu
YWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjEyLDEzICsyMTEsMTMgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgp
CiAKICAgICBvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLm1TYW1wbGVSYXRl
ID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpOwogCi0gICAgZXJy
b3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFBy
b3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVz
Y3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0
cmVhbURlc2NyaXB0aW9uKCkpKTsKKyAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJl
bW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNj
b3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6
ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpKTsKICAgICBpZiAoZXJy
b3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0
IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJ
T1VuaXQpOworICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJT1VuaXQpOwog
ICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IEF1
ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA0ODVlNGNlNGM2ZDhj
MzI0NWI3NzlkNjFhNjc2Y2JiYjk3YmFkOTEwLi40Yjc4OGFlNWFhODdiNzI5ZTViZGNmOWNmNzEz
ODEyYzY3NzBhMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC01MSw2ICs1
MSw3IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBAaW50ZXJmYWNlIFdlYkNv
cmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDogTlNPYmplY3Q8QVZDYXB0dXJlVmlkZW9E
YXRhT3V0cHV0U2FtcGxlQnVmZmVyRGVsZWdhdGU+IHsKICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZSogbV9jYWxsYmFjazsKQEAgLTM1MCwxMCArMzUxLDEwIEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKCkKICAgICAgICAgICAgIGlmIChmcmFt
ZVJhdGVSYW5nZSkgewogICAgICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lUmF0ZSA9IGNsYW1w
VG8obV9jdXJyZW50RnJhbWVSYXRlLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZVJhdGUsIGZyYW1l
UmF0ZVJhbmdlLm1heEZyYW1lUmF0ZSk7CiAKLSAgICAgICAgICAgICAgICBhdXRvIGZyYW1lRHVy
YXRpb24gPSBQQUw6OkNNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAgICAg
ICAgICAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJh
bmdlLm1pbkZyYW1lRHVyYXRpb24pIDwgMCkKKyAgICAgICAgICAgICAgICBhdXRvIGZyYW1lRHVy
YXRpb24gPSBDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAgICAg
ICAgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWluRnJh
bWVEdXJhdGlvbikgPCAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJh
bWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbjsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChQ
QUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVE
dXJhdGlvbikgPiAwKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKENNVGltZUNvbXBhcmUoZnJh
bWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikgPiAwKQogICAgICAg
ICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJh
dGlvbjsKIAogICAgICAgICAgICAgICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lE
RU5USUZJRVIsICJzZXR0aW5nIGZyYW1lIHJhdGUgdG8gIiwgbV9jdXJyZW50RnJhbWVSYXRlLCAi
LCBkdXJhdGlvbiAiLCBQQUw6OnRvTWVkaWFUaW1lKGZyYW1lRHVyYXRpb24pKTsKQEAgLTQxNyw3
ICs0MTgsNyBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQogCiAg
ICAgbV9zZXNzaW9uID0gYWRvcHROUyhbUEFMOjphbGxvY0FWQ2FwdHVyZVNlc3Npb25JbnN0YW5j
ZSgpIGluaXRdKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFBBTDo6QVZDYXB0dXJl
U2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5
b3V0KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgQVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRU
b1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5b3V0KG1fc2Vzc2lvbi5nZXQoKSk7
CiAjZW5kaWYKICAgICBbbV9zZXNzaW9uIGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgp
IGZvcktleVBhdGg6QCJydW5uaW5nIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25O
ZXcgY29udGV4dDoodm9pZCAqKW5pbF07CiAKQEAgLTQzMyw4ICs0MzQsNiBAQCBib29sIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQogCiBBVkZyYW1lUmF0ZVJhbmdlKiBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkZvckZyYW1lUmF0ZShkb3VibGUgcmF0ZSkK
IHsKLSAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FX0NPTVBBUkVfSU5MSU5F
Ci0KICAgICBBVkZyYW1lUmF0ZVJhbmdlICpiZXN0RnJhbWVSYXRlUmFuZ2UgPSBuaWw7CiAgICAg
Zm9yIChBVkZyYW1lUmF0ZVJhbmdlICpmcmFtZVJhdGVSYW5nZSBpbiBbW2RldmljZSgpIGFjdGl2
ZUZvcm1hdF0gdmlkZW9TdXBwb3J0ZWRGcmFtZVJhdGVSYW5nZXNdKSB7CiAgICAgICAgIGlmIChm
cmFtZVJhdGVSYW5nZUluY2x1ZGVzUmF0ZSh7IFtmcmFtZVJhdGVSYW5nZSBtaW5GcmFtZVJhdGVd
LCBbZnJhbWVSYXRlUmFuZ2UgbWF4RnJhbWVSYXRlXSB9LCByYXRlKSkgewpAQCAtNTk5LDcgKzU5
OCw3IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCiAgICAg
VmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7CiAgICAgZm9yIChBVkNhcHR1cmVEZXZp
Y2VGb3JtYXQqIGZvcm1hdCBpbiBbZGV2aWNlKCkgZm9ybWF0c10pIHsKIAotICAgICAgICBDTVZp
ZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgIENNVmlkZW9E
aW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNp
b25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgIEludFNpemUgc2l6ZSA9IHsg
ZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQgfTsKICAgICAgICAgYXV0byBpbmRl
eCA9IHByZXNldHMuZmluZE1hdGNoaW5nKFsmc2l6ZV0oYXV0byYgcHJlc2V0KSB7CiAgICAgICAg
ICAgICByZXR1cm4gc2l6ZSA9PSBwcmVzZXQtPnNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5jcHAKaW5kZXggZTE1NTQ2MmY1MTgxNTg4YmEzYmM5NDU2YzZiNmFlOWFmZTIxYjVj
MS4uNmUyNmM4ZmE0ZWNkMzBhYzFlNTJmZWMzOGFmNTdkMGUzM2Q5YmMyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApAQCAtMTksNyArMTksNyBAQAogICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRVBBTDo6TkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIApAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGdldERldmljZUluZm8odWludDMyX3QgZGV2
aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgU3RyaW5nJiBwZXJzaXN0ZW50
SUQsIFN0cmluZyYgbGFiZWwpCiB7CkBAIC0yMDQsNyArMjA1LDcgQEAgUmV0YWluUHRyPENNQ2xv
Y2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmljZUNsb2NrKCkKICAgICAgICAgcmV0
dXJuIG1fZGV2aWNlQ2xvY2s7CiAKICAgICBDTUNsb2NrUmVmIGNsb2NrOwotICAgIGF1dG8gZXJy
ID0gUEFMOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVy
c2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKKyAgICBhdXRvIGVy
ciA9IENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwZXJzaXN0
ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZTo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKCVwKSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUg
ZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJy
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAKaW5kZXggZjRiMzY1ODk0ZDM3Y2Q5NGZmMjFiN2ZiNTRmZGIyNjQxZjM2ZmU5Ni4uMDNm
M2U2MmEyNjM3YzNlOTAxYmFmNjk0ZDNjNTI2NWVmYTc0YWViMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDgsOCArNDgsNiBAQAogI2luY2x1ZGUgPHd0Zi9BbGdv
cml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KLQotI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5o
PgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTU5LDYgKzU3LDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0oTUFDKQogQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5n
bGV0b24oKQpAQCAtMjA0LDcgKzIwMyw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCkKICAgICBtX0RUU0NvbnZlcnNpb25SYXRpbyA9IDFlLTkgKiBzdGF0
aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5udW1lcikgLyBzdGF0aWNfY2FzdDxkb3VibGU+
KHRpbWViYXNlSW5mby5kZW5vbSk7CiAKICAgICBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIGlv
VW5pdERlc2NyaXB0aW9uID0geyBrQXVkaW9Vbml0VHlwZV9PdXRwdXQsIGtBdWRpb1VuaXRTdWJU
eXBlX1ZvaWNlUHJvY2Vzc2luZ0lPLCBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlLCAwLCAw
IH07Ci0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50
RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRpb0NvbXBvbmVu
dCBpb0NvbXBvbmVudCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERl
c2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25lbnQpOwogICAgIGlmICghaW9Db21wb25l
bnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBmaW5kIHZwaW8gdW5pdCBjb21wb25l
bnQiLCB0aGlzKTsKQEAgLTIxMyw3ICsyMTIsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgQ0ZTdHJpbmdS
ZWYgbmFtZSA9IG51bGxwdHI7Ci0gICAgUEFMOjpBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29t
cG9uZW50LCAmbmFtZSk7CisgICAgQXVkaW9Db21wb25lbnRDb3B5TmFtZShpb0NvbXBvbmVudCwg
Jm5hbWUpOwogICAgIGlmIChuYW1lKSB7CiAgICAgICAgIG1faW9Vbml0TmFtZSA9IG5hbWU7CiAg
ICAgICAgIENGUmVsZWFzZShuYW1lKTsKQEAgLTIyMSw3ICsyMjAsNyBAQCBPU1N0YXR1cyBDb3Jl
QXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgfQogI2VuZGlmCiAKLSAgICBh
dXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1f
aW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21w
b25lbnQsICZtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5h
YmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjI5LDEzICsyMjgsMTMgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogCiAgICAgaWYg
KCFlbmFibGVFY2hvQ2FuY2VsbGF0aW9uKCkpIHsKICAgICAgICAgdWludDMyX3QgcGFyYW0gPSAw
OwotICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVW
b2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVf
R2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJyID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9Wb2ljZVBy
b2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFy
YW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIGF1dG9tYXRpYyBnYWluIGNvbnRyb2wsIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1
cm4gZXJyOwogICAgICAgICB9CiAgICAgICAgIHBhcmFtID0gMTsKLSAgICAgICAgZXJyID0gUEFM
OjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFz
c1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJh
bSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1f
aW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNzVm9pY2VQcm9jZXNzaW5nLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICAg
ICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1
bml0IGVjaG8gY2FuY2VsbGF0aW9uLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI0NCw3ICsyNDMsNyBA
QCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQzMl90IHBhcmFtID0gMTsKLSAgICBlcnIgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVy
dHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6
ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
dWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBp
bnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVk
aW9Vbml0KCVwKSB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBpbnB1dCwgZXJyb3IgJWQgKCUu
NHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsK
QEAgLTI1Niw3ICsyNTUsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1
ZGlvVW5pdCgpCiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAotICAgIGVyciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0
eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2Fw
dHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKKyAgICBlcnIgPSBBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJl
bnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2
aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOwogICAgIGlmIChlcnIpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBB
dWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGNhcHR1cmUgZGV2aWNlIElEICVk
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KW1fY2FwdHVyZURldmljZUlELCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjcxLDcgKzI3MCw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBpZiAo
ZXJyKQogICAgICAgICByZXR1cm4gZXJyOwogCi0gICAgZXJyID0gUEFMOjpBdWRpb1VuaXRJbml0
aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSBBdWRpb1VuaXRJbml0aWFsaXpl
KCkgZmFpbGVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIp
OwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjkzLDcgKzI5Miw3IEBAIHZvaWQgQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6dW5kdWNrKCkKIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZp
Z3VyZU1pY3JvcGhvbmVQcm9jKCkKIHsKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxi
YWNrID0geyBtaWNyb3Bob25lQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBhdXRvIGVyciA9IFBBTDo6
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9T
ZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxi
YWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3Bl
cnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfU2V0SW5wdXRDYWxsYmFjaywg
a0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxi
YWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxl
IHRvIHNldCB2cGlvIHVuaXQgbWljIHByb2MsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQp
ZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMDIsMTQgKzMwMSwx
NCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJv
YygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1pY3JvcGhvbmVQcm9jRm9ybWF0
ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YobWljcm9waG9uZVByb2NGb3JtYXQp
OwotICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVz
LCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlv
VW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgJnNpemUp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBn
ZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCiAgICAgbWljcm9w
aG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gUEFM
OjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJv
Y0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQs
IGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBzZXQgb3V0cHV0IHN0cmVhbSBm
b3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgIHJldHVybiBlcnI7CkBAIC0zMjQsNyArMzIzLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogT1NTdGF0dXMgQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJh
Y2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IHNwZWFrZXJDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8g
ZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywg
JmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxs
YmFjaykpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0
byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGlu
dCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMzMywxNCArMzMy
LDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9j
KCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gc3BlYWtlclByb2NGb3JtYXQgPSB7
IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihzcGVha2VyUHJvY0Zvcm1hdCk7Ci0gICAg
ZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVh
a2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVf
SW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRV
bml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0g
Zm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwog
ICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAogICAgIHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1w
bGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOworICAgIGVy
ciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3Ry
ZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9j
Rm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1
bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMs
IChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC00NjAsNyAr
NDU5LDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KCkKICAg
ICB9CiAKICAgICBpZiAobV9pb1VuaXQpIHsKLSAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudElu
c3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CisgICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VE
aXNwb3NlKG1faW9Vbml0KTsKICAgICAgICAgbV9pb1VuaXQgPSBudWxscHRyOwogICAgIH0KIApA
QCAtNDc4LDcgKzQ3Nyw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmln
dXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAobV9pb1VuaXRTdGFy
dGVkKSB7Ci0gICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7
CisgICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwogICAgICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCglcCkgQXVkaW9PdXRwdXRVbml0U3Rv
cCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZl
cnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTQ5MSw3ICs0OTAsNyBAQCBPU1N0YXR1
cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCgpCiAgICAgICAgIHJl
dHVybiBlcnI7CiAKICAgICBpZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IFBB
TDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgICAgICBlcnIgPSBBdWRpb091
dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmln
dXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdGFydCBmYWlsZWQgd2l0aCBlcnJvciAl
ZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0
dXJuIGVycjsKQEAgLTUxNSw3ICs1MTQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0
OjpzdGFydEludGVybmFsKCkKIAogICAgIHVuZHVjaygpOwogCi0gICAgZXJyID0gUEFMOjpBdWRp
b091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3Rh
cnQobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0
YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CiAgICAgICAgIGNsZWFudXBBdWRpb1VuaXQoKTsKQEAgLTU1Miw3ICs1NTEsNyBAQCB2
b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0b3BJbnRlcm5hbCgpCiAgICAgaWYgKCFtX2lvVW5p
dCB8fCAhbV9pb1VuaXRTdGFydGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGVyciA9
IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBBdWRp
b091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0b3AoJXApIEF1ZGlv
T3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTY2LDcgKzU2NSw3IEBAIE9T
U3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSh1aW50MzJfdCog
ZGV2aWNlSUQpCiAgICAgQVNTRVJUKG1faW9Vbml0KTsKIAogICAgIFVJbnQzMiBwcm9wZXJ0eVNp
emUgPSBzaXplb2YoKmRldmljZUlEKTsKLSAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0
UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNl
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNp
emUpOworICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRp
b091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFs
LCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOwogICAgIGlmIChlcnIpCiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1
bHRJbnB1dERldmljZSglcCkgdW5hYmxlIHRvIGdldCBkZWZhdWx0IGlucHV0IGRldmljZSBJRCwg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDU4MmY0YjI2Y2YxMThjNDk3
MWFjZDdkMTgzMDkyMTk3ZTFlNzY4MmEuLjNmNGU0ZGNmNDJjMGZhOTNlZjlhYjYyZGQyMmE5N2M1
MTM4NzA2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKQEAg
LTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0dXJlU291cmNlT3JFcnJv
ciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFy
ZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tB
dWRpb1NoYXJlZFVuaXQubW0KaW5kZXggYjg2YjA1ZThjNjY1YmMyZTgwNWYyN2IzOGIxYTRmZDMz
MTNmOTJjMy4uYWE3ZmYwODc1MDU0MjU4MmYxZWY5MTY3YTgxZTZmYjVhNTQ4ZjE1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1No
YXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTQ0LDEwICs0NCwxNCBAQAogI2ltcG9ydCA8QXVk
aW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CiAjaW1wb3J0IDxDb3JlQXVkaW8vQ29yZUF1ZGlv
VHlwZXMuaD4KIAotI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1w
b3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAorU09GVF9MSU5LX0ZSQU1FV09SSyhB
dWRpb1Rvb2xib3gpCisKK1NPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3
LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VG
b3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZv
cm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9y
bWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90
IGFsaWduVG8xNkJ5dGVzKHNpemVfdCBzaXplKQogewpAQCAtMjE3LDcgKzIyMSw3IEBAIHZvaWQg
TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUoKQogICAgIG1fYXVkaW9CdWZmZXJMaXN0
ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fc3RyZWFtRm9ybWF0LCBtX21heGlt
aXVtRnJhbWVDb3VudCk7CiAKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2Ny
aXB0aW9uOwotICAgIFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZt
X3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9u
KTsKKyAgICBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoTlVMTCwgJm1fc3RyZWFtRm9y
bWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1f
Zm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIHNp
emVfdCBzYW1wbGVDb3VudCA9IDIgKiByYXRlOwpAQCAtMjM5LDcgKzI0Myw3IEBAIHZvaWQgTW9j
a0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnModWludDMyX3QgZnJhbWVDb3VudCkK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9mb3JtYXREZXNjcmlw
dGlvbik7CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fc2FtcGxl
c0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1h
a2UobV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxlUmF0ZSgpKTsKICAgICBtX3NhbXBsZXNFbWl0dGVk
ICs9IGZyYW1lQ291bnQ7CiAKICAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUoUEFMOjp0b01lZGlh
VGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1ZmZlckxpc3QsIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1lQ291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGI2MGI4ODY2ZmJiODA0ODhjMjNmZTJiNTc2OTJiMzBm
ODdlMzg2OTAuLmIwNTlhMzI1MWQ4Yjk2NTdiYTkwMTRjNDRmODA2M2FmODI3YjFkNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUxLDYgKzUxLDcgQEAK
ICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cAppbmRleCBhYTY5NmFkZGY3Zjc3OTI1OTE1Mjk1ODNjMjE2MGMxMjQ5MTFkNTVkLi41ODA5NGIz
NDIwZjM5YzhmMjZjMTc3N2EyYWVkMDEyM2RiZWEyNjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRp
b1RyYWNrSWQpCiB7CkBAIC0xMzAsNyArMTMxLDcgQEAgdm9pZCBSZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2VDb2NvYTo6T25EYXRhKGNvbnN0IHZvaWQqIGF1ZGlvRGF0YSwgaW50IGJpdHNQZXIK
ICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSAwOwogICAgIH0KIAotICAgIENNVGltZSBz
dGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7
CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSk7CiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGlt
ZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDBjNzFlMWRi
MTBmYTQzN2E3YzAwNDNkMzY0ZjQ0YmY3MjM3MTFjOTcuLjhkZjhmNjhmNmY3MjQwNDc1ZGJkNDMy
MzA2YWEzYTU2OWY2ZTQ4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2EubW0KQEAgLTQyLDYgKzQyLDcgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRF
UlNfRU5ECiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjcmVhdGUocnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJp
bmcmJiB0cmFja0lkKQogewpAQCAtMTcyLDE5ICsxNzMsMTkgQEAgdm9pZCBSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZy
YW1lKQogICAgIH0KIAogICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvOwotICAgIHRp
bWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gUEFMOjpDTVRpbWVNYWtlKGZyYW1lLnRp
bWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9
IFBBTDo6a0NNVGltZUludmFsaWQ7Ci0gICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IFBBTDo6a0NN
VGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRp
bWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKKyAgICB0aW1pbmdJbmZvLmRl
Y29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8uZHVyYXRpb24g
PSBrQ01UaW1lSW52YWxpZDsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJ
bWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBPU1N0
YXR1cyBvc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZm
ZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZm
b3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAg
RVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGluaXRp
YWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8
aW50Pihvc3RhdHVzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgb3N0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1
ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2Ft
cGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1
ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAg
ICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChvc3RhdHVzICE9IG5vRXJy
KSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgIkZh
aWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBidWZmZXIgd2l0aCBlcnJvciAiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG9zdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwCmluZGV4IGUzM2JiNmRhOWRkZGQwMWEwMGQ5OTZmZDllZjAyYWM5ODE0
YTFlYjUuLjZiZjBjYTQ4N2RkNjRkYmVmNTM5ZDk0ODgwZjYyOGM3ZmExNjFiZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNDUs
NiArNDUsNyBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKICNpbmNsdWRlICJDb3JlVmlk
ZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFM
OwogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlPiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgdmlkZW9Tb3Vy
Y2UpCiB7CkBAIC04NCw3ICs4NSw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Q29jb2E6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgfQog
CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1w
bGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihz
YW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRv
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVC
dWZmZXIpKTsKICAgICBhdXRvIHBpeGVsRm9ybWF0VHlwZSA9IENWUGl4ZWxCdWZmZXJHZXRQaXhl
bEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogCiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IGNvbnZlcnRlZEJ1ZmZlciA9IHBpeGVsQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5
Q2FwdHVyZXJNYWMubW0KaW5kZXggMTI5M2RhNTU5ZjkyOWE3YWVlYzU0ZDA3YWE5YWU0Zjk5NGY5
NWI0NC4uNzhiYmNhZDEzOTk4NjJmNTViOTcwYmU0NzdmMjUxNGM0ZjM0ODQ1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlD
YXB0dXJlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCkBAIC00Niw2ICs0Niw3IEBACiBXVEZfREVD
TEFSRV9DRl9UWVBFX1RSQUlUKENHSW1hZ2UpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2lu
ZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBhbnlPZkNHV2luZG93KGNvbnN0IEZ1bmN0
aW9uPGJvb2woQ0ZEaWN0aW9uYXJ5UmVmIGluZm8sIHVuc2lnbmVkIGlkLCBjb25zdCBTdHJpbmcm
IHRpdGxlKT4mIHByZWRpY2F0ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklj
b25VdGlsaXRpZXMubW0KaW5kZXggZjZiM2NlOTFkNTI1NjIyZDFkYjFmMjAxN2U4MTExMTU1NTk2
ZTNmNS4uNGVhM2RlODZjYmI0NDQxOWRhNmUxZjQ5M2JlYTgzOTA1NWRkMTg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KQEAgLTEyNCw3ICsxMjQs
NyBAQCBSZXRhaW5QdHI8VUlJbWFnZT4gaWNvbkZvclZpZGVvRmlsZShOU1VSTCAqZmlsZSkKICAg
ICBbZ2VuZXJhdG9yIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwogCiAg
ICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdl
UmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1lOlBBTDo6a0NNVGltZVpl
cm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1lOmtDTVRp
bWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJvcl0pOwogICAgIGlmICghaW1hZ2VSZWYp
IHsKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvciBjcmVhdGluZyBpbWFnZSBmb3IgdmlkZW8gJyVA
JzogJUAiLCBmaWxlLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxsYmFja0ljb25Gb3JGaWxl
KGZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCmluZGV4IDBiYWMxZTI4OWU3Nzcy
ZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMuLmExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNl
ZWY0YWEyODE4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKQEAgLTM0LDE3ICsz
NCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBjcmVhdGVXcmFwcGVyKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiBiYXNlVlRhYmxlLCBDTUJhc2VD
bGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogd3JhcHBlcikKIHsKLSAgICByZXR1cm4g
UEFMOjpDTURlcml2ZWRPYmplY3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lE
LCB3cmFwcGVyKSA9PSBub0VycjsKKyAgICByZXR1cm4gQ01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFs
bG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CiB9CiAKIHZv
aWQqIHdyYXBwZXJTdG9yYWdlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVy
biBQQUw6OkNNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOworICAgIHJldHVy
biBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKIH0KIAogY29uc3QgQ01C
YXNlVlRhYmxlKiB3cmFwcGVyVlRhYmxlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAg
IHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKKyAgICByZXR1cm4g
Q01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRl
ci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCmluZGV4IDVlNzc4Y2MwYjdiZGE3NGUz
Zjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEuLmMxODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZh
Zjc4NzNjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcApAQCAtNDcsNiArNDcs
NyBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luRm9ybWF0UmVhZGVyKTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKQEAg
LTI0NCw3ICsyNDUsNyBAQCBPU1N0YXR1cyBNZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5
KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdAogICAgIGlmIChtX2R1cmF0
aW9uLmlzSW5kZWZpbml0ZSgpKQogICAgICAgICByZXR1cm4ga0NNQmFzZU9iamVjdEVycm9yX1Zh
bHVlTm90QXZhaWxhYmxlOwogCi0gICAgaWYgKGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENG
KFBBTDo6Q01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBh
bGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKKyAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9IGFk
b3B0Q0YoQ01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBh
bGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0
aW9uYXJ5UmVmKj4odmFsdWVDb3B5KSA9IGxlYWtlZER1cmF0aW9uOwogICAgICAgICByZXR1cm4g
bm9FcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXgg
NGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3ZjU0NTA5ZmFjMDdhZC4uZDgzZWZjZjQ3NzVjZTk2
YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRl
UmFuZ2UuY3BwCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIk1lZGlhU2FtcGxlQnl0ZVJhbmdlLmgiCi0jaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAKICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFT
YW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UsIHVpbnQ2NF90
IHRyYWNrSUQpCkBAIC01MCw3ICs1MCw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNh
bXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAg
YXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIHN3aXRj
aCAocGxhdGZvcm1TYW1wbGUudHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkNNU2Ft
cGxlQnVmZmVyVHlwZToKLSAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1w
bGVCdWZmZXIpOworICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1w
bGVUeXBlOgogICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gcGxhdGZvcm1TYW1wbGUuc2Ft
cGxlLmJ5dGVSYW5nZVNhbXBsZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNw
cAppbmRleCBmYmU0MjI3MzA2ZjgwZjYxYzEyN2MzMzhjNzFlZmE1NGEyZDIwYzg3Li5jZTI5MDZk
YzQ0MjliODc1MTRhN2IwMGMzMjE3MzkyZDUwN2IzZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBs
ZUN1cnNvci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChN
VFBsdWdpblNhbXBsZUN1cnNvcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit1c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBNZWRpYVRpbWUg
YXNzdW1lZERlY29kZVRpbWUoY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lLCBEZWNv
ZGVPcmRlclNhbXBsZU1hcCYgbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCmluZGV4
IDFkYzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2QxYWEzNzI1MzU3ZjIwZmEuLjkwODYxYzg0ZGRlNmM2
NmRkYjg3NzkzYWIyMzA2YTY2ZTRkZWI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5j
cHAKQEAgLTQ3LDYgKzQ3LDcgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblRy
YWNrUmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQ01CYXNlQ2xhc3NJRCBNZWRpYVRyYWNrUmVh
ZGVyOjp3cmFwcGVyQ2xhc3NJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0
aWVzQ29vcmRpbmF0b3IubW0KaW5kZXggMWUzOGRlNWRiZGE5ZTE1NzEyOGYxZjQwZGFhZDFjNDkx
OTBlMzAwYi4uMTdkNzlmMTYxMDU2YTAxMGE0ZWFjNTgyZmQyNzg2OGYzODhhNjIxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3Vw
QWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbQpAQCAtMTAy
LDYgKzEwMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit1c2luZyBuYW1lc3BhY2UgUEFM
OworCiBSZWY8R3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I+IEdyb3VwQWN0aXZpdGllc0Nvb3Jk
aW5hdG9yOjpjcmVhdGUoR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbiYgc2Vzc2lvbikKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcihzZXNzaW9uKSk7
CkBAIC0xNTIsNyArMTU0LDcgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6bGVh
dmUoKQogCiB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRp
bWUsIENvb3JkaW5hdG9yQ29tcGxldGlvbkhhbmRsZXImJiBjYWxsYmFjaykKIHsKLSAgICBbbV9w
bGF5YmFja0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1lOlBBTDo6Q01UaW1lTWFrZVdp
dGhTZWNvbmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07CisgICAgW21fcGxheWJhY2tDb29yZGlu
YXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgMTAw
MCkgb3B0aW9uczowXTsKICAgICBjYWxsYmFjayhzdGQ6Om51bGxvcHQpOwogfQogCkBAIC0yMDks
MTAgKzIxMSwxMCBAQCB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjppc3N1ZVBsYXlD
b21tYW5kKEFWRGVsZWdhdGluZ1BsYXliYWNrQ29vcmRpbmF0bwogCiAgICAgc3RkOjpvcHRpb25h
bDxkb3VibGU+IGl0ZW1UaW1lOwogICAgIGlmIChDTVRJTUVfSVNfTlVNRVJJQyhwbGF5Q29tbWFu
ZC5pdGVtVGltZSkpCi0gICAgICAgIGl0ZW1UaW1lID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHBs
YXlDb21tYW5kLml0ZW1UaW1lKTsKKyAgICAgICAgaXRlbVRpbWUgPSBDTVRpbWVHZXRTZWNvbmRz
KHBsYXlDb21tYW5kLml0ZW1UaW1lKTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90b25pY1RpbWU+
IGhvc3RUaW1lOwogICAgIGlmIChDTVRJTUVfSVNfTlVNRVJJQyhwbGF5Q29tbWFuZC5ob3N0Q2xv
Y2tUaW1lKSkKLSAgICAgICAgaG9zdFRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29s
dXRlVGltZShQQUw6OkNNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzKHBsYXlDb21t
YW5kLmhvc3RDbG9ja1RpbWUpKTsKKyAgICAgICAgaG9zdFRpbWUgPSBNb25vdG9uaWNUaW1lOjpm
cm9tTWFjaEFic29sdXRlVGltZShDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cyhw
bGF5Q29tbWFuZC5ob3N0Q2xvY2tUaW1lKSk7CiAKICAgICBjbGllbnQoKS0+cGxheVNlc3Npb24o
aXRlbVRpbWUsIGhvc3RUaW1lLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGJvb2wp
IHsKICAgICAgICAgY2FsbGJhY2soKTsKQEAgLTI0NCw3ICsyNDYsNyBAQCB2b2lkIEdyb3VwQWN0
aXZpdGllc0Nvb3JkaW5hdG9yOjppc3N1ZVNlZWtDb21tYW5kKEFWRGVsZWdhdGluZ1BsYXliYWNr
Q29vcmRpbmF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2xpZW50KCktPnNlZWtT
ZXNzaW9uVG9UaW1lKFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFuZC5pdGVtVGltZSks
IFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0YWJsZSB7CisgICAgY2xp
ZW50KCktPnNlZWtTZXNzaW9uVG9UaW1lKENNVGltZUdldFNlY29uZHMoc2Vla0NvbW1hbmQuaXRl
bVRpbWUpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGJvb2wpIG11dGFibGUgewog
ICAgICAgICBjYWxsYmFjaygpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCAxNzFkOWNhNDg0
OTE1ZDdhZjRlZWFkNjk3MDk5OTFlNTA0ZDQyNzk1Li40Mjc5NjljMjgyMTE4YWMzYzNkNzcwODNl
YWI4MmQ5NWZkMGFiZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKCkKIHsKICAgICB1
c2luZyBuYW1lc3BhY2UgUEFMOwogCi0gICAgaWYgKCFQQUw6OmlzQXVkaW9Ub29sYm94Q29yZUZy
YW1ld29ya0F2YWlsYWJsZSgpIHx8ICFQQUw6OmNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRp
b0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAgIGlmICghaXNBdWRpb1Rv
b2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94Q29y
ZV9BdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucygpKQogICAgICAgICByZXR1
cm47CiAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BB
VENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCmluZGV4IDJhODNk
OTcxMGJmNzI1NWU1OTM4NWMxYjFmNjU5MzRjMjYzMDU1NWEuLmYzNzg0ZmMyNzEyYjBkZjYzODcx
MjA0N2NkNzJmODUzMGM3NzcyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQpAQCAtNDIs
NiArNDIsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogTlNfQVNTVU1FX05PTk5VTExfRU5E
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgYm9vbCB1c2FnZVRyYWNraW5nQXZhaWxhYmxlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBmODkxYTUzMzE0NTBiZjE3ZWFmOTViMDBlMzE4ZGFl
M2M3Mzg3NTRlLi5jMzIzYTZhNzhiNDUwMDViNjc3NDA4NjJiNjI5YjE2ZmJiODBmNDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuY3BwCmluZGV4IDhhNTlhZTFhMjhmYTQzYTliMmYyMTU3NjIxMTg5YWU5NzZkMTAy
ZGYuLjk1YmJkNTQ4M2NmZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRl
eCAwZDZkZTFmMmE5OTA2MDllZTlhMDUwMmU4ZDk0OGMzOTBmYTExZGY2Li5hMWE4MjdkZjFkZDFm
MTYyMjdjMTNlYzZlZTMwODRlOWQyNjFmNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEzOTUsNyArMTM5NSw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyhjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAg
IGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFM
OjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lz
dHJhdGlvbnMoKSkKKyAgICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJs
ZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZl
clJlZ2lzdHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3RyYXRp
b25zID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5kYXRh
KCksIGRhdGEuc2l6ZSgpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>