<?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>214108</bug_id>
          
          <creation_ts>2020-07-08 16:45:18 -0700</creation_ts>
          <short_desc>REGRESSION(r264132): Introduced assert failure.</short_desc>
          <delta_ts>2020-07-08 16:48:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>213794</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1669937</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-08 16:45:18 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/264132 broke the build:
Introduced assert failure.

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669939</commentid>
    <comment_count>1</comment_count>
      <attachid>403821</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-08 16:45:25 -0700</bug_when>
    <thetext>Created attachment 403821
REVERT of r264132

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669942</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-08 16:47:15 -0700</bug_when>
    <thetext>Committed r264141: &lt;https://trac.webkit.org/changeset/264141&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403821.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669943</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-08 16:48:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/65247350&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403821</attachid>
            <date>2020-07-08 16:45:25 -0700</date>
            <delta_ts>2020-07-08 16:47:15 -0700</delta_ts>
            <desc>REVERT of r264132</desc>
            <filename>bug-214108-20200708234525.patch</filename>
            <type>text/plain</type>
            <size>53002</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAxZWU1MWQx
ZjA5NmMzMmI0NjJmOGQyZGRhYTBkYzNmMDVlZDEyODZmLi5kMTE1ZmIyZmE4YWQ4NjQ5N2RjNDdm
ZGZkNDJkNWQ1MmNjODUxZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAyMC0wNy0wOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjQxMzIgYW5kIHIyNjQxMzkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQxMDgKKworICAgICAg
ICBJbnRyb2R1Y2VkIGFzc2VydCBmYWlsdXJlLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNl
dHM6CisKKyAgICAgICAgIltDb2NvYV0gVXBkYXRlIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSBp
biB0aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIGZyb20gdGhlIE5ldHdvcmsgcHJvY2Vz
cyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzc5
NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjY0MTMyCisKKyAg
ICAgICAgIlVucmV2aWV3ZWQgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjI2NDEzMi4iCisgICAg
ICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNjQxMzkKKwogMjAyMC0wNy0w
OCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjI2NDEzMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjdlNzZkNjEwMzQw
MzExZjQ4ZmNhYmQ4YWQzYTU0Yjg3NDRiZWFjMy4uMjE0NzMyMGFkMjUxNzIzODE1YjYwZmNlMDAy
MzM1NzBhZWJlMjBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNy0wOCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcmV2ZXJ0aW5nIHIyNjQxMzIgYW5kIHIyNjQxMzkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQxMDgKKworICAgICAgICBJbnRyb2R1Y2VkIGFz
c2VydCBmYWlsdXJlLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
IltDb2NvYV0gVXBkYXRlIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSBpbiB0aGUgV2ViQ29udGVu
dAorICAgICAgICBwcm9jZXNzIGZyb20gdGhlIE5ldHdvcmsgcHJvY2VzcyIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzc5NAorICAgICAgICBodHRw
czovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjY0MTMyCisKKyAgICAgICAgIlVucmV2aWV3
ZWQgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjI2NDEzMi4iCisgICAgICAgIGh0dHBzOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8yNjQxMzkKKwogMjAyMC0wNy0wOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMVVJFOiBDb21wbGV0
aW9uIGhhbmRsZXJzIG5vdCBpbnZhbGlkYXRlZCB3aGVuIFdlYlBhZ2U6On5XZWJQYWdlKCkgaW52
b2tlZCBuYXZpZ2F0aW5nIHRvIGRvY3MuZ29vZ2xlLmNvbSBhbmQgc2lnbmluZyBpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEku
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmgK
aW5kZXggNjM2NmI5MTdiYjE4NmU5ODIyNTFmMDI4NzFkZTIxZTc5NzUyYWNlOS4uZGU3NGJkYWFk
NDNkOWVhNDA5YmI2MzZjZTBmZjY5OWExYzEwNjZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oCkBAIC0yNSwxMCArMjUs
MTYgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLSNpbmNsdWRlIDx3
dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpZiBQTEFURk9STShNQUMpCiAjaW1wb3J0IDxDb3JlU2VydmljZXMvQ29yZVNlcnZpY2VzUHJp
di5oPgorI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2
aWNlcy9MU0FwcExpbmtQcml2Lmg+CisjZWxpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxNb2Jp
bGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzUHJpdi5oPgorI2VuZGlmCisKICNlbmRp
ZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaWYgSEFWRShBUFBfTElOS1MpCkBAIC03
NywxNiArODMsMTMgQEAgZW51bSBMU1Nlc3Npb25JRCB7CiB9OwogI2VuZGlmCiAKLUBpbnRlcmZh
Y2UgTFNEYXRhYmFzZUNvbnRleHQgOiBOU09iamVjdAotQHByb3BlcnR5IChjbGFzcywgcmVhZG9u
bHkpIExTRGF0YWJhc2VDb250ZXh0ICpzaGFyZWREYXRhYmFzZUNvbnRleHQ7Ci1AZW5kCi0KICNl
bmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAotQGludGVyZmFjZSBMU0RhdGFiYXNl
Q29udGV4dCAoV2ViS2l0Q2hhbmdlVHJhY2tpbmcpCi0tIChpZCA8TlNPYmplY3Q+KWFkZERhdGFi
YXNlQ2hhbmdlT2JzZXJ2ZXI0V2ViS2l0Oih2b2lkICheKSh4cGNfb2JqZWN0X3QgY2hhbmdlKSlv
YnNlcnZlcjsKLS0gKHZvaWQpcmVtb3ZlRGF0YWJhc2VDaGFuZ2VPYnNlcnZlcjRXZWJLaXQ6KGlk
IDxOU09iamVjdD4pdG9rZW47Ci0tICh2b2lkKW9ic2VydmVEYXRhYmFzZUNoYW5nZTRXZWJLaXQ6
KHhwY19vYmplY3RfdCljaGFuZ2U7CitAaW50ZXJmYWNlIF9MU0RTZXJ2aWNlIDogTlNPYmplY3Qg
PE5TWFBDTGlzdGVuZXJEZWxlZ2F0ZT4KKysgKE5TWFBDQ29ubmVjdGlvbiAqKVhQQ0Nvbm5lY3Rp
b25Ub1NlcnZpY2U7CitAZW5kCisKK0BpbnRlcmZhY2UgX0xTRFJlYWRTZXJ2aWNlIDogX0xTRFNl
cnZpY2UKIEBlbmQKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggYzExZmU3Mzc4ZThlMjgzNWI2Njlh
Njg1NzZhNDM1NjJkZDgwODUwYS4uZTJlZDFmZjU1ZWJhZDgyNmM3MTVlNmE2NTQyYzc4ZDM1NGFh
OTM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKQEAgLTk3LDcgKzk3LDYgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVDb2RlcnMuaCIK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VP
YnNlcnZlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKICNlbmRpZgogCkBA
IC0xNjQsOSArMTYzLDYgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKEF1eGlsaWFy
eVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWUKICNpZiBFTkFCTEUoTEVH
QUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKQogICAgIGFkZFN1cHBsZW1lbnQ8TGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyPigpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
YWRkU3VwcGxlbWVudDxMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXI+KCk7Ci0jZW5kaWYK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFO
QUdFUikKICAgICBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXI6Om5ldHdvcmtQcm9jZXNzQ3Jl
YXRlZCgqdGhpcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjkxMjU5ZmM0OTUwN2YyYTAzMmFlZDY2
NGYxYWJjZmJhNzQxNGEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNE
YXRhYmFzZU9ic2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgotI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvWFBDRW5k
cG9pbnQuaD4KLSNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBMYXVuY2hTZXJ2aWNlc0Rh
dGFiYXNlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29yZTo6WFBDRW5kcG9pbnQsIHB1YmxpYyBOZXR3
b3JrUHJvY2Vzc1N1cHBsZW1lbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVi
bGljOgotICAgIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlcihOZXR3b3JrUHJvY2VzcyYp
OwotICAgIHZpcnR1YWwgfkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlcigpOwotCi0gICAg
c3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9p
ZCBzdGFydE9ic2VydmluZyhPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90Pik7Ci0KLSAgICAv
LyBYUENFbmRwb2ludAotICAgIGNvbnN0IGNoYXIqIHhwY0VuZHBvaW50TWVzc2FnZU5hbWVLZXko
KSBjb25zdCBvdmVycmlkZTsKLSAgICBjb25zdCBjaGFyKiB4cGNFbmRwb2ludE1lc3NhZ2VOYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgY29uc3QgY2hhciogeHBjRW5kcG9pbnROYW1lS2V5KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVFdmVudCh4cGNfY29ubmVjdGlvbl90LCB4
cGNfb2JqZWN0X3QpIG92ZXJyaWRlOwotCi0gICAgLy8gTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50
Ci0gICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBmaW5hbDsK
LQotICAgIFJldGFpblB0cjxpZD4gbV9vYnNlcnZlcjsKLSAgICBWZWN0b3I8T1NPYmplY3RQdHI8
eHBjX2Nvbm5lY3Rpb25fdD4+IG1fY29ubmVjdGlvbnM7Ci19OwotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VP
YnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZU9ic2VydmVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
NDRmYjdjNWZhODZmOTM5OTE4OTEyOWRhMGQ1NjM2YTg3YWI1ZjFlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1tCisrKyAvZGV2L251bGwK
QEAgLTEsMTM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oIgotCi0jaW1wb3J0ICJMYXVuY2hT
ZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmg+Ci0jaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+Ci0j
aW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1zdGF0aWMgTFNEYXRhYmFzZUNvbnRleHQgKmRhdGFiYXNlQ29udGV4dCgpCi17Ci0gICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwotICAgIHN0YXRpYyBMU0RhdGFiYXNlQ29udGV4
dCAqY29udGV4dCA9IG51bGxwdHI7Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXnsKLSAgICAg
ICAgY29udGV4dCA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIkxTRGF0YWJhc2VDb250ZXh0Iikgc2hh
cmVkRGF0YWJhc2VDb250ZXh0XTsKLSAgICB9KTsKLSAgICByZXR1cm4gY29udGV4dDsKLX0KLQot
TGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyOjpMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2Jz
ZXJ2ZXIoTmV0d29ya1Byb2Nlc3MmKQotewotICAgIGlmICghW2RhdGFiYXNlQ29udGV4dCgpIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWRkRGF0YWJhc2VDaGFuZ2VPYnNlcnZlcjRXZWJL
aXQ6KV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fb2JzZXJ2ZXIgPSBbZGF0YWJhc2VDb250
ZXh0KCkgYWRkRGF0YWJhc2VDaGFuZ2VPYnNlcnZlcjRXZWJLaXQ6Xih4cGNfb2JqZWN0X3QgY2hh
bmdlKSB7Ci0gICAgICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25h
cnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKLSAgICAgICAgeHBjX2RpY3Rpb25hcnlf
c2V0X3N0cmluZyhtZXNzYWdlLmdldCgpLCBYUENFbmRwb2ludDo6eHBjTWVzc2FnZU5hbWVLZXks
IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY1VwZGF0ZUxhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VNZXNzYWdlTmFtZSk7Ci0gICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1
ZShtZXNzYWdlLmdldCgpLCBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlS2V5LCBjaGFuZ2UpOwotCi0gICAgICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fY29ubmVjdGlvbnMpCi0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9z
ZW5kX21lc3NhZ2UoY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZS5nZXQoKSk7Ci0gICAgfV07Ci19
Ci0KLWNvbnN0IGNoYXIqIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlcjo6c3VwcGxlbWVu
dE5hbWUoKQotewotICAgIHJldHVybiAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyU3Vw
cGxlbWVudCI7Ci19Ci0KLXZvaWQgTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyOjpzdGFy
dE9ic2VydmluZyhPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKQotewot
ICAgIG1fY29ubmVjdGlvbnMuYXBwZW5kKGNvbm5lY3Rpb24pOwotCi0gICAgaWYgKCFbZGF0YWJh
c2VDb250ZXh0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhZGREYXRhYmFzZUNoYW5n
ZU9ic2VydmVyNFdlYktpdDopXSkgewotICAgICAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE9TT2Jq
ZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7Ci0gICAgICAg
IHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcobWVzc2FnZS5nZXQoKSwgWFBDRW5kcG9pbnQ6Onhw
Y01lc3NhZ2VOYW1lS2V5LCBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNV
cGRhdGVMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWVzc2FnZU5hbWUpOwotICAgICAgICB4cGNfY29u
bmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZS5nZXQoKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZXRhaW5QdHI8aWQ+IG9ic2VydmVyID0gW2Rh
dGFiYXNlQ29udGV4dCgpIGFkZERhdGFiYXNlQ2hhbmdlT2JzZXJ2ZXI0V2ViS2l0Ol4oeHBjX29i
amVjdF90IGNoYW5nZSkgewotICAgICAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE9TT2JqZWN0KHhw
Y19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7Ci0gICAgICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9zdHJpbmcobWVzc2FnZS5nZXQoKSwgWFBDRW5kcG9pbnQ6OnhwY01lc3Nh
Z2VOYW1lS2V5LCBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNVcGRhdGVM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWVzc2FnZU5hbWUpOwotICAgICAgICB4cGNfZGljdGlvbmFy
eV9zZXRfdmFsdWUobWVzc2FnZS5nZXQoKSwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0
YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZUtleSwgY2hhbmdlKTsKLQotICAgICAgICB4
cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZS5nZXQo
KSk7Ci0gICAgfV07Ci0KLSAgICBbZGF0YWJhc2VDb250ZXh0KCkgcmVtb3ZlRGF0YWJhc2VDaGFu
Z2VPYnNlcnZlcjRXZWJLaXQ6b2JzZXJ2ZXIuZ2V0KCldOwotfQotCi1MYXVuY2hTZXJ2aWNlc0Rh
dGFiYXNlT2JzZXJ2ZXI6On5MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIoKQotewotICAg
IGlmICghW2RhdGFiYXNlQ29udGV4dCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVt
b3ZlRGF0YWJhc2VDaGFuZ2VPYnNlcnZlcjRXZWJLaXQ6KV0pCi0gICAgICAgIHJldHVybjsKLQot
ICAgIFtkYXRhYmFzZUNvbnRleHQoKSByZW1vdmVEYXRhYmFzZUNoYW5nZU9ic2VydmVyNFdlYktp
dDptX29ic2VydmVyLmdldCgpXTsKLX0KLQotY29uc3QgY2hhciogTGF1bmNoU2VydmljZXNEYXRh
YmFzZU9ic2VydmVyOjp4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4geHBjTWVzc2FnZU5hbWVLZXk7Ci19Ci0KLWNvbnN0IGNoYXIqIExhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VPYnNlcnZlcjo6eHBjRW5kcG9pbnRNZXNzYWdlTmFtZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VYUENFbmRwb2ludE1lc3NhZ2VOYW1lOwotfQotCi1jb25zdCBjaGFyKiBMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXI6OnhwY0VuZHBvaW50TmFtZUtleSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5j
aFNlcnZpY2VzRGF0YWJhc2VYUENFbmRwb2ludE5hbWVLZXk7Ci19Ci0KLXZvaWQgTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZU9ic2VydmVyOjpoYW5kbGVFdmVudCh4cGNfY29ubmVjdGlvbl90IGNvbm5l
Y3Rpb24sIHhwY19vYmplY3RfdCBldmVudCkKLXsKLSAgICBpZiAoeHBjX2dldF90eXBlKGV2ZW50
KSA9PSBYUENfVFlQRV9FUlJPUikgewotICAgICAgICBpZiAoZXZlbnQgIT0gWFBDX0VSUk9SX0NP
Tk5FQ1RJT05fSU5WQUxJRCAmJiBldmVudCAhPSBYUENfRVJST1JfVEVSTUlOQVRJT05fSU1NSU5F
TlQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2Nvbm5lY3Rpb25zLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAobV9jb25uZWN0
aW9uc1tpXS5nZXQoKSA9PSBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgbV9jb25uZWN0
aW9ucy5yZW1vdmUoaSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoeHBjX2dldF90eXBlKGV2
ZW50KSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZKSB7Ci0gICAgICAgIFN0cmluZyBtZXNzYWdlTmFt
ZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQsIHhwY01lc3NhZ2VOYW1lS2V5KTsK
LSAgICAgICAgaWYgKG1lc3NhZ2VOYW1lICE9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25z
dGFudHM6OnhwY1JlcXVlc3RMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlVXBkYXRlTWVzc2FnZU5hbWUp
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHN0YXJ0T2JzZXJ2aW5nKGNvbm5lY3Rpb24p
OwotICAgIH0KLX0KLQotdm9pZCBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXI6OmluaXRp
YWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKLXsKLSAgICBzZW5k
RW5kcG9pbnRUb0Nvbm5lY3Rpb24oY29ubmVjdGlvbi0+eHBjQ29ubmVjdGlvbigpKTsKLX0KLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgppbmRl
eCBkZmE1NTgwNGJiMTJmZjc4NTgzODEzMGJjY2Q5YTU5M2UyMzJjZjE3Li5jNzMxZDkwZjMwZjVm
ZmFkZmE0ZTk4YzMxZGVlMzY3MTY5ZmEwZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jl
c291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5z
YgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgpAQCAtNTg4LDcgKzU4OCw3IEBACiAoYWxsb3cgaXBj
LXBvc2l4LXNobS1yZWFkKgogICAgICAgIChpcGMtcG9zaXgtbmFtZS1wcmVmaXggImFwcGxlLmNm
cHJlZnMuIikpCiAgCi0oZGVueSBtYWNoLWxvb2t1cAorKGFsbG93IG1hY2gtbG9va3VwCiAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikpCiAKIDs7IDxyZGFyOi8vcHJvYmxl
bS8xMjQxMzk0Mj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVu
dGl0bGVtZW50cy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50
cy5zaAppbmRleCAyZjI2NjVhNDY5YWYyODI4M2UyZjA1MGE2NDM1NmNjZTc4YjlkNTdhLi41OTgx
N2I5M2FlZGMzZDY1ZjZlMWExYzhiZDFmNjY4NjY1NmZlMjc1IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCkBAIC0xNSw3ICsxNSw2IEBAIGZ1bmN0
aW9uIG1hY19wcm9jZXNzX3dlYmNvbnRlbnRfZW50aXRsZW1lbnRzKCkKIAogICAgIGlmIFtbICIk
e1dLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UU30iID09IFlFUyBdXQogICAgIHRoZW4KLSAg
ICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBjLWVu
ZHBvaW50IGJvb2wgWUVTCiAgICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucm9vdGxl
c3Muc3RvcmFnZS5XZWJLaXRXZWJDb250ZW50U2FuZGJveCBib29sIFlFUwogICAgIGZpCiAKQEAg
LTUyLDcgKzUxLDYgQEAgZnVuY3Rpb24gbWFjX3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMo
KQogICAgICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnRjYy5tYW5h
Z2VyLmNoZWNrLWJ5LWF1ZGl0LXRva2VuOjAgc3RyaW5nIGtUQ0NTZXJ2aWNlV2ViS2l0SW50ZWxs
aWdlbnRUcmFja2luZ1ByZXZlbnRpb24KICAgICAgICAgZmkKIAotICAgICAgICBwbGlzdGJ1ZGR5
IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVzZS14cGMtZW5kcG9pbnQgYm9vbCBZRVMK
ICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5yb290bGVzcy5zdG9yYWdlLldlYktp
dE5ldHdvcmtpbmdTYW5kYm94IGJvb2wgWUVTCiAgICAgZmkKIH0KQEAgLTE0Niw3ICsxNDQsNiBA
QCBmdW5jdGlvbiBpb3NfZmFtaWx5X3Byb2Nlc3Nfd2ViY29udGVudF9lbnRpdGxlbWVudHMoKQog
ICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zZWN1cml0eS5tZXNzYWdlLWZp
bHRlciBib29sIFlFUwogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS53ZWJp
bnNwZWN0b3IuYWxsb3ctcmVtb3RlLWluc3BlY3Rpb24gYm9vbCBZRVMKICAgICBwbGlzdGJ1ZGR5
IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUud2ViaW5zcGVjdG9yLnByb3h5LWFwcGxpY2F0aW9uIGJv
b2wgWUVTCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2Ut
eHBjLWVuZHBvaW50IGJvb2wgWUVTCiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5ydW5u
aW5nYm9hcmQuYXNzZXJ0aW9ucy53ZWJraXQgYm9vbCBZRVMKICAgICBwbGlzdGJ1ZGR5IEFkZCA6
ZHluYW1pYy1jb2Rlc2lnbmluZyBib29sIFlFUwogCkBAIC0xODcsNyArMTg0LDYgQEAgZnVuY3Rp
b24gaW9zX2ZhbWlseV9wcm9jZXNzX25ldHdvcmtfZW50aXRsZW1lbnRzKCkKICAgICBwbGlzdGJ1
ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuZG1kLnBvbGljeSBib29sIFlFUwogICAgIHBsaXN0
YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXMgYm9vbCBZRVMKICAgICBw
bGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUubmV0d29yay5zb2NrZXQtZGVsZWdhdGUg
Ym9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVz
ZS14cGMtZW5kcG9pbnQgYm9vbCBZRVMKICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnJ1
bm5pbmdib2FyZC5hc3NlcnRpb25zLndlYmtpdCBib29sIFlFUwogCiAgICAgcGxpc3RidWRkeSBB
ZGQgOmNvbS5hcHBsZS5wcml2YXRlLnRjYy5tYW5hZ2VyLmNoZWNrLWJ5LWF1ZGl0LXRva2VuIGFy
cmF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9MYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9MYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFiZTJhODAwN2MyNzc2N2JmOWE1OGE5ZDJiOTg3ZTU2NzRkZmNhMzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oCisrKyAvZGV2L251
bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotbmFtZXNwYWNlIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFu
dHMgewotCi1jb25zdGV4cHIgYXV0byB4cGNVcGRhdGVMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWVz
c2FnZU5hbWUgPSAidXBkYXRlLWxhdW5jaC1zZXJ2aWNlcy1kYXRhYmFzZS1tZXNzYWdlIjsKLWNv
bnN0ZXhwciBhdXRvIHhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VLZXkgPSAibGF1bmNoLXNlcnZp
Y2VzLWRhdGFiYXNlIjsKLWNvbnN0ZXhwciBhdXRvIHhwY1JlcXVlc3RMYXVuY2hTZXJ2aWNlc0Rh
dGFiYXNlVXBkYXRlTWVzc2FnZU5hbWUgPSAicmVxdWVzdC1sYXVuY2gtc2VydmljZXMtZGF0YWJh
c2UtdXBkYXRlLW1lc3NhZ2UiOwotY29uc3RleHByIGF1dG8geHBjTGF1bmNoU2VydmljZXNEYXRh
YmFzZVhQQ0VuZHBvaW50TmFtZUtleSA9ICJ4cGMtZW5kcG9pbnQtbGF1bmNoLXNlcnZpY2VzLWRh
dGFiYXNlIjsKLWNvbnN0ZXhwciBhdXRvIHhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENFbmRw
b2ludE1lc3NhZ2VOYW1lID0gInhwYy1lbmRwb2ludC1sYXVuY2gtc2VydmljZXMtZGF0YWJhc2Ut
bWVzc2FnZSI7Ci19IC8vIG5hbWVzcGFjZSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3Rh
bnRzCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWlu
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENT
ZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCmluZGV4IDJhNjQzMGUwZTcxMzQxNTk5NjJjOTFiZDI2
YzcyNjYzZmFlMzAzODYuLjk5ZmE3YWIzMWRkMDM0ODk2OTUxOTdjYzI0YjAxMGJhMDkzMzU1YTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0K
QEAgLTI5LDcgKzI5LDYgQEAKIAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRp
b24uaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaD4KLSNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9PU09iamVjdFB0
ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4v
WFBDU1BJLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZTllZDY5NDVhMzY2YTIxZDU1NmJj
YjUxYzkwOTg2YzAwZTAwODI0Yi4uYWI2MmE5NDA0OTIxODdkZjU4ZmI2MTUyMzNlMjIwNGMwNTQ3
MGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDE1LDggKzQxNSw2IEBAIFVJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCiBVSVByb2Nlc3MvSW5zcGVj
dG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XS0luc3BlY3RvcldLV2ViVmlldy5tbQogCi1VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Q29jb2EubW0KLQogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0
ZVBpY2tlci5tbQogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0RhdGVQaWNrZXJWaWV3Q29udHJvbGxl
ci5tbQogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0RhdGVUaW1lSW5wdXRDb250cm9sLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQppbmRleCA0ZGZmYzIzYjY4OTVlNzJjM2VkODRmZWYyMDJjM2FjNmU4NjlhMDQ0Li4xZmE2MDMx
ZDlhZDg2NzI0ODc5ODI2YWY2MDM2ZWZkMmNiZDVjMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTkzNCwyMyAr
OTM0LDQgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJIaWdoRHluYW1pY1JhbmdlQ2hh
bmdlQ2FsbGJhY2soKQogfQogI2VuZGlmCiAKLU9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gV2Vi
UHJvY2Vzc1Bvb2w6OnhwY0VuZHBvaW50TWVzc2FnZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
ZW5kcG9pbnRNZXNzYWdlOwotfQotCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kTmV0d29ya1By
b2Nlc3NYUENFbmRwb2ludFRvV2ViUHJvY2VzcyhPU09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IGVu
ZHBvaW50TWVzc2FnZSkKLXsKLSAgICBtX2VuZHBvaW50TWVzc2FnZSA9IGVuZHBvaW50TWVzc2Fn
ZTsKLQotICAgIGZvciAoYXV0byBwcm9jZXNzIDogbV9wcm9jZXNzZXMpIHsKLSAgICAgICAgaWYg
KHByb2Nlc3MtPmlzTGF1bmNoaW5nKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
aWYgKCFwcm9jZXNzLT5jb25uZWN0aW9uKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgYXV0byBjb25uZWN0aW9uID0gcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9u
KCk7Ci0gICAgICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShjb25uZWN0aW9uLCBlbmRw
b2ludE1lc3NhZ2UuZ2V0KCkpOwotICAgIH0KLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9YUENFdmVudEhhbmRsZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1hQQ0V2ZW50SGFuZGxlci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGRiYmQ1OTQ5ZjY1YzdjZTMzMTZlNmQ0MDVmOTg5
NGM5NjU5YWFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1hQQ0V2ZW50SGFuZGxlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1jbGFzcyBYUENFdmVudEhhbmRsZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8WFBD
RXZlbnRIYW5kbGVyPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+WFBDRXZlbnRIYW5kbGVyKCkg
eyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90KSBjb25z
dCA9IDA7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IGVlMmIwN2U2NmNlMmYzMGVlOTExMjI1MTlkZjc0MTYy
MTBlODg2MzcuLjcwZDc2YjZjMWNlMmNkMjE5M2M3YmExZDJkMmNjYWM5NWQyYzQ2YTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
CkBAIC0zOSwxMCArMzksNiBAQAogI2luY2x1ZGUgPHd0Zi93aW4vV2luMzJIYW5kbGUuaD4KICNl
bmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiWFBDRXZlbnRIYW5kbGVyLmgi
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkKQEAgLTYxLDkgKzU3LDYgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcikgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ29uZmlndXJlSlND
Rm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0pJVEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0jaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgICAgIHZpcnR1YWwgUmVmUHRyPFhQQ0V2ZW50SGFuZGxlcj4geHBjRXZlbnRIYW5k
bGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQotI2VuZGlmCiAgICAgfTsKICAgICAKICAg
ICBlbnVtIGNsYXNzIFByb2Nlc3NUeXBlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDI4YTMz
N2NhMmEyODRlOTZiYjI4YjhkZDdkMDA0ZTJhMjk5Y2E3ZGMuLmYyNWE3OTQyY2I0ZDM1N2UzNjEz
MmE0MDc0YjZhZGY2YzM1NTk5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjM4LDI4ICsy
MzgsMTggQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICBw
cm9jZXNzTGF1bmNoZXItPmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MoMCwgSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyKCkpOwogICAgIH07CiAKLSAgICBhdXRvIGV2ZW50SGFuZGxlciA9IFtl
cnJvckhhbmRsZXJJbXBsID0gV1RGTW92ZShlcnJvckhhbmRsZXJJbXBsKSwgZXZlbnRIYW5kbGVy
ID0gbV9jbGllbnQtPnhwY0V2ZW50SGFuZGxlcigpXSAoeHBjX29iamVjdF90IGV2ZW50KSBtdXRh
YmxlIHsKLQotICAgICAgICBpZiAoIWV2ZW50IHx8IHhwY19nZXRfdHlwZShldmVudCkgPT0gWFBD
X1RZUEVfRVJST1IpIHsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbZXJy
b3JIYW5kbGVySW1wbCA9IFdURk1vdmUoZXJyb3JIYW5kbGVySW1wbCksIGV2ZW50ID0gT1NPYmpl
Y3RQdHIoZXZlbnQpXSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JIYW5kbGVySW1wbChldmVudC5n
ZXQoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChldmVudEhhbmRsZXIpIHsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbZXZlbnRIYW5kbGVyID0gZXZlbnRIYW5kbGVyLCBldmVudCA9IE9TT2JqZWN0
UHRyKGV2ZW50KV0gewotICAgICAgICAgICAgICAgIGV2ZW50SGFuZGxlci0+aGFuZGxlWFBDRXZl
bnQoZXZlbnQuZ2V0KCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KKyAgICBhdXRvIGVy
cm9ySGFuZGxlciA9IFtlcnJvckhhbmRsZXJJbXBsID0gV1RGTW92ZShlcnJvckhhbmRsZXJJbXBs
KV0gKHhwY19vYmplY3RfdCBldmVudCkgbXV0YWJsZSB7CisgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbZXJyb3JIYW5kbGVySW1wbCA9IFdURk1vdmUoZXJyb3JIYW5kbGVySW1wbCks
IGV2ZW50XSB7CisgICAgICAgICAgICBlcnJvckhhbmRsZXJJbXBsKGV2ZW50KTsKKyAgICAgICAg
fSk7CiAgICAgfTsKIAotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1feHBj
Q29ubmVjdGlvbi5nZXQoKSwgZXZlbnRIYW5kbGVyKTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRf
ZXZlbnRfaGFuZGxlcihtX3hwY0Nvbm5lY3Rpb24uZ2V0KCksIGVycm9ySGFuZGxlcik7CiAKICAg
ICB4cGNfY29ubmVjdGlvbl9yZXN1bWUobV94cGNDb25uZWN0aW9uLmdldCgpKTsKIAogICAgIGlm
IChVTkxJS0VMWShtX2xhdW5jaE9wdGlvbnMuc2hvdWxkTWFrZVByb2Nlc3NMYXVuY2hGYWlsRm9y
VGVzdGluZykpIHsKLSAgICAgICAgZXZlbnRIYW5kbGVyKG51bGxwdHIpOworICAgICAgICBlcnJv
ckhhbmRsZXIobnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggY2E4YjllNmNmNzFiZTA5MjAwYjJiYjg1Y2JjZmYyNDlmYzdkYjZkNi4uZDZlY2I1NjY3OWZk
NWUyMWEyOGQ4YTM5ZTlhZDE0Y2U2MTFiNGMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTQ0LDEwICs0NCw2
IEBACiAjaW5jbHVkZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCIKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiWFBDRXZlbnRIYW5kbGVyLmgiCi0j
ZW5kaWYKLQogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAg
LTMwMSw5ICsyOTcsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGll
bnQKICAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IFJlZlB0cjxYUENFdmVudEhhbmRsZXI+IHhwY0V2ZW50SGFuZGxlcigpIGNvbnN0IG92ZXJyaWRl
OwotI2VuZGlmCiAKICAgICB2b2lkIHByb2Nlc3NBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6
OlNlc3Npb25JRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCkBAIC0z
MzQsMTggKzMyNyw2IEBAIHByaXZhdGU6CiAgICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4gd2ViUHJvY2Vz
c0Fzc2VydGlvbnM7CiAgICAgfTsKICAgICBPcHRpb25hbDxVcGxvYWRBY3Rpdml0eT4gbV91cGxv
YWRBY3Rpdml0eTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGNsYXNzIFhQQ0V2ZW50SGFu
ZGxlciA6IHB1YmxpYyBXZWJLaXQ6OlhQQ0V2ZW50SGFuZGxlciB7Ci0gICAgcHVibGljOgotICAg
ICAgICBYUENFdmVudEhhbmRsZXIoY29uc3QgTmV0d29ya1Byb2Nlc3NQcm94eSYpOwotCi0gICAg
ICAgIGJvb2wgaGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90KSBjb25zdCBvdmVycmlkZTsKLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYWtQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3
b3JrUHJvY2VzczsKLSAgICB9OwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Q29jb2EubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1MGZl
ZTBjOGVlZGYyMTRlZDBmZWM2MGQ1ZTVhM2U3NTQ0NjI2YTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJOZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgiCi0KLSNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFu
dHMuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1hQQ0Vu
ZHBvaW50Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotUmVmUHRyPFhQQ0V2ZW50SGFuZGxlcj4gTmV0d29ya1Byb2Nlc3NQcm94eTo6eHBjRXZl
bnRIYW5kbGVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5ldHdvcmtQcm9j
ZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcigqdGhpcykpOwotfQotCi1ib29sIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcjo6aGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90IGV2
ZW50KSBjb25zdAotewotICAgIGlmICghbV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKCFldmVudCB8fCB4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19U
WVBFX0VSUk9SKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTdHJpbmcgbWVzc2FnZU5h
bWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCBYUENFbmRwb2ludDo6eHBjTWVz
c2FnZU5hbWVLZXkpOwotICAgIGlmIChtZXNzYWdlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlWFBDQ29uc3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9pbnRNZXNz
YWdlTmFtZSkKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5zZW5kTmV0
d29ya1Byb2Nlc3NYUENFbmRwb2ludFRvV2ViUHJvY2VzcyhldmVudCk7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotTmV0d29ya1Byb2Nlc3NQcm94eTo6WFBDRXZlbnRIYW5kbGVyOjpYUENFdmVu
dEhhbmRsZXIoY29uc3QgTmV0d29ya1Byb2Nlc3NQcm94eSYgbmV0d29ya1Byb2Nlc3MpCi0gICAg
OiBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKG5ldHdvcmtQcm9jZXNzKSkKLXsKLX0KLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggOGNkMWEwMTEw
ZTMzYjBjOGI4Y2Q5YmFhOWVlOGM2NDAzYTIxZGUwNS4uN2ExMGVhYjdhODYzN2I3YzM1NDcxZmU3
MTA5OGY0YmM4MzI5ODE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCkBAIC0zODksNyArMzg5LDcgQEAgcHVibGljOgogCiAgICAgLy8gTmV0d29yayBQcm9jZXNz
IE1hbmFnZW1lbnQKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBlbnN1cmVOZXR3b3JrUHJvY2Vz
cyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoV2Vic2l0ZURhdGFTdG9yZSA9IG51bGxwdHIpOwotICAg
IE5ldHdvcmtQcm9jZXNzUHJveHkqIG5ldHdvcmtQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9u
ZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQorICAgIE5ldHdvcmtQcm9jZXNzUHJveHkqIG5ldHdvcmtQ
cm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy5nZXQoKTsgfQogICAgIHZvaWQgbmV0
d29ya1Byb2Nlc3NDcmFzaGVkKE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKIAogICAgIHZvaWQgZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsK
QEAgLTU0MSwxMSArNTQxLDYgQEAgcHVibGljOgogICAgIGludDMyX3QgdXNlcklkKCkgY29uc3Qg
eyByZXR1cm4gbV91c2VySWQ7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
T1NPYmplY3RQdHI8eHBjX29iamVjdF90PiB4cGNFbmRwb2ludE1lc3NhZ2UoKSBjb25zdDsKLSAg
ICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1hQQ0VuZHBvaW50VG9XZWJQcm9jZXNzKE9TT2JqZWN0
UHRyPHhwY19vYmplY3RfdD4gZW5kcG9pbnRNZXNzYWdlKTsKLSNlbmRpZgotCiBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKQEAgLTgzMCwxMCArODI1LDYgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIEhhc2hTZXQ8
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb247
CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE9TT2JqZWN0UHRyPHhwY19vYmpl
Y3RfdD4gbV9lbmRwb2ludE1lc3NhZ2U7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAy
ZjU0YWMyOWExMzkzZjVhODdkNzRmZDk0OThhNmYxYTY4MzZjYzFlLi5hYjFlODM3ZGRiNDA0MmNi
OWMyYzk2OWQ2YTJhOTE4YWIyY2MwODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKQEAgLTk1MywxMiArOTUzLDYgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNv
bm5lY3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IGF1dG8gZW5kcG9pbnRNZXNzYWdlID0gcHJvY2Vzc1Bvb2woKS54cGNFbmRwb2ludE1lc3NhZ2Uo
KTsKLSAgICBpZiAoZW5kcG9pbnRNZXNzYWdlKQotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZW5k
X21lc3NhZ2UoY29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCksIGVuZHBvaW50TWVzc2FnZS5n
ZXQoKSk7Ci0jZW5kaWYKLQogICAgIFJFTEVBU0VfQVNTRVJUKCFtX3dlYkNvbm5lY3Rpb24pOwog
ICAgIG1fd2ViQ29ubmVjdGlvbiA9IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZSh0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggOTlhNjk5ZDgyNjY4ZDM4MTcwYzViYzgwYzJlNDNkZGYyMTIxMWE5Ny4uNGM5NDhh
Y2MzMWM1OTJjZjJkYTc5YmNkM2Q5MTEwN2E5MGJiOTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjg0LDExICsxNjg0LDggQEAK
IAkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRjaGluZ0dQVUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExQTlFQ0IyMTQw
MzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRjaGluZ0dQVUNsaWVudC5oICovOyB9OwogCQlDMTFFMTY5
NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExRTE2OTIyMTJCODdDNTAwOTg1RkY2IC8qIFdL
TW9ja0Rpc3BsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5
MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi87IH07
Ci0JCUMxNEQzN0ZFMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
NEQzN0ZEMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5t
bSAqLzsgfTsKIAkJQzE1Q0JCMzYyM0YzNzc3MTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0NUND
MEUyM0RDQTQyNzAwM0E1RUVCIC8qIFByZWZlcmVuY2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNUNCQjM3MjNGMzdFQ0IwMDMw
MENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5j
ZU9ic2VydmVyLm1tICovOyB9OwotCQlDMTY2M0U1QjI0QUVBQTJGMDBDNkEzQjIgLyogTGF1bmNo
U2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2NjNFNUEyNEFFQTc0MjAwQzZBM0IyIC8qIExhdW5jaFNl
cnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCAqLzsgfTsKLQkJQzE3MTBDRjcyNEFBNjQzMjAw
RDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNzEwQ0Y2MjRBQTY0MzIwMEQ3QzEx
MiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIubW0gKi87IH07CiAJCUMxODE3MzYx
MjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE4MTczNjAyMDU4NDI0NzAwREZEQTY1IC8qIERpc3Bs
YXlMaW5rLmggKi87IH07CiAJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0
TWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzFF
MTIzQjkyMEExMTU3MjAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi87IH07CiAJCUM1MTcz
ODgxMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxNzM4ODAxMkRGOEY0RjAwRUUz
RjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggKi87IH07CkBAIC01MDIxLDIwICs1MDE4LDEz
IEBACiAJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU3BlZWNoU3ludGhl
c2lzQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0OTM4MEEyMjM4
NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUMxNEQzN0ZDMjRBQ0RGNDUwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzdGRDI0QUNFMDg2MDA3RkYwMTQgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzE1Q0JCMzMyM0YzNEMzODAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFByZWZlcmVuY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQzE2NjNFNUEyNEFFQTc0MjAwQzZBM0IyIC8qIExhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VYUENDb25zdGFudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNoU2VydmljZXNEYXRh
YmFzZVhQQ0NvbnN0YW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTcxMENG
MjI0QTdCRDAzMDBEN0MxMTIgLyogWFBDRXZlbnRIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQ
Q0V2ZW50SGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTcxMENGNTI0
QUE2MzQ1MDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlDMTcxMENGNjI0QUE2NDMyMDBEN0MxMTIgLyogTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgx
NzM1RTIwNTgzOUY2MDBERkRBNjUgLyogRHJhd2luZ0FyZWFNYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRHJhd2luZ0FyZWFNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUgLyogRGlzcGxheUxpbmsuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlzcGxheUxpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjIyMDU4
NDRBOTAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3Bs
YXlMaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1MUQyNDJGOUY3
NjAwN0U5ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEZCNTFFMjQyRjlGNzcwMDdFOTg3NSAvKiBXZWJTbGVl
cERpc2FibGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNs
ZWVwRGlzYWJsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIz
QjkyMEExMTU3MjAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBERkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUMxRUQ3MjM3MjRBNTY5MEUwMDNGNkNEMyAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAv
KiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
NTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRWRpdG9yQ2xpZW50TWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTQyNTZBRjE4QkVDMThCMDBERTQxNzkgLyog
V0tEYXRlVGltZUlucHV0Q29udHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0RhdGVUaW1lSW5wdXRDb250cm9sLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tEYXRlVGltZUlu
cHV0Q29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjM5NCw3ICs2Mzg0
LDYgQEAKIAkJCQkyRDdBQUZEMjE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJWaWV3Q29udGVudFBy
b3ZpZGVyLmggKi8sCiAJCQkJMkRDNkQ5QzExOEM0NEE2MTAwNDNCQUQ0IC8qIFdLV2ViVmlld0Nv
bnRlbnRQcm92aWRlclJlZ2lzdHJ5LmggKi8sCiAJCQkJMkRDNkQ5QzIxOEM0NEE2MTAwNDNCQUQ0
IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lm1tICovLAotCQkJCUMxNzEwQ0Yy
MjRBN0JEMDMwMEQ3QzExMiAvKiBYUENFdmVudEhhbmRsZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzQ5Miw3ICs3NDgxLDYg
QEAKIAkJCQlDNTVGOTE2RDFDNTk1RTQ0MDAyOUU5MkQgLyogRGF0YURldGVjdGlvblJlc3VsdC5t
bSAqLywKIAkJCQlDRTU1MEUxMzIyODM3NDQ0MDBEMjg3OTEgLyogSW5zZXJ0VGV4dE9wdGlvbnMu
Y3BwICovLAogCQkJCUNFNTUwRTEyMjI4MzczQzgwMEQyODc5MSAvKiBJbnNlcnRUZXh0T3B0aW9u
cy5oICovLAotCQkJCUMxNjYzRTVBMjRBRUE3NDIwMEM2QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0Rh
dGFiYXNlWFBDQ29uc3RhbnRzLmggKi8sCiAJCQkJMkQxMDg3NjIxRDJDNjQxQjAwQjg1RjgyIC8q
IExvYWRQYXJhbWV0ZXJzQ29jb2EubW0gKi8sCiAJCQkJQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3
IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oICovLAogCQkJCUNEMjg2NUVEMjI1NTU2MjAw
MDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi8sCkBAIC03ODU2LDcgKzc4
NDQsNiBAQAogCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQzFFRDcyMzYyNEE1NjhGNTAw
M0Y2Q0QzIC8qIGNvY29hICovLAogCQkJCTI5QUQzMDkxMTY0QjRDMTAwMDcyREVBOSAvKiBDdXN0
b21Qcm90b2NvbHMgKi8sCiAJCQkJNTE2MzE5OTMxNjI4OTgwRTAwRTIyRjAwIC8qIG1hYyAqLywK
IAkJCQk1MTBDQzdFQTE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAg
Ki8sCkBAIC04Mzg3LDggKzgzNzQsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQ0Q0NTcwQ0Iy
NDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLywK
IAkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IuaCAqLywKLQkJCQlDMTREMzdGQzI0QUNERjQ1MDA3RkYwMTQgLyogTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU1hbmFnZXIuaCAqLywKLQkJCQlDMTREMzdGRDI0QUNFMDg2MDA3RkYwMTQgLyog
TGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi8sCiAJCQkJNDQ2REM2NEIyNEEyRDhB
RDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8sCiAJCQkJ
Q0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLywK
IAkJCQlDREEyOUExQzFDQkRCRjVCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLywKQEAgLTg0NDAsOCArODQyNSw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQkyRDBDNTZGQjIyOUYxREVBMDBCRDMzRTcgLyogRGV2aWNlTWFuYWdlbWVudFNvZnRMaW5rLmgg
Ki8sCiAJCQkJMkQwQzU2RkMyMjlGMURFQTAwQkQzM0U3IC8qIERldmljZU1hbmFnZW1lbnRTb2Z0
TGluay5tbSAqLywKLQkJCQlDMTcxMENGNTI0QUE2MzQ1MDBEN0MxMTIgLyogTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLmggKi8sCi0JCQkJQzE3MTBDRjYyNEFBNjQzMjAwRDdDMTEyIC8q
IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLywKIAkJCQk1MzE1ODc2QjIwNzZC
NzEzMDA0QkY5RjMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tICovLAogCQkJCTUz
MjE1OTRGMURCQUU2RDcwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5oICovLAogCQkJ
CTVDQkM5QjhCMUM2NTI1NzMwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSAqLywK
QEAgLTEwMjY5LDE0ICsxMDI1Miw2IEBACiAJCQl0YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9
IDA7CiAJCX07Ci0JCUMxRUQ3MjM2MjRBNTY4RjUwMDNGNkNEMyAvKiBjb2NvYSAqLyA9IHsKLQkJ
CWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQzFFRDcyMzcyNEE1NjkwRTAw
M0Y2Q0QzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbSAqLywKLQkJCSk7Ci0JCQluYW1l
ID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlDNTQyNTZBRTE4
QkVDMTYxMDBERTQxNzkgLyogZm9ybXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtMTA4ODMsNyArMTA4NTgsNiBAQAogCQkJCTJENEQyQzgxMURGNjBCRjMw
MDJFQjEwQyAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFFNDlBNDkxMUZGQThDRTAwNDhCNDY0IC8qIEpTTlBNZXRob2QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRTQ5ODc4MTFGRjdGQUEwMDQ4QjQ2NCAvKiBKU05QT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKLQkJCQlDMTY2M0U1QjI0QUVBQTJGMDBDNkEzQjIgLyogTGF1bmNoU2VydmljZXNE
YXRhYmFzZVhQQ0NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMDkzNzgxNEZCMTI4
QzAwMTEzOEQ5IC8qIExheWVySG9zdGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
OTJEQzExMTJGOEJBNDYwMDE3QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NEU5MzZGRDI0NDdDMkQ4MDA5RkEzRTMgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xJ
RC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjc1Miw4ICsxMjcyNiw2IEBACiAJCQkJMjc0OUY2NDUy
MTQ2NTYxRTAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MTM0NDEyMTJDRjlGMDAwMTI4QUZEIC8qIEpTTlBNZXRob2QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDIyMTJDRjlGMDAwMTI4QUZEIC8qIEpTTlBPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzE0RDM3RkUyNEFDRTA4NjAwN0ZGMDE0IC8qIExhdW5j
aFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQzE3MTBDRjcy
NEFBNjQzMjAwRDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTI5ODRGNTg4MTY0QkEwOTUwMDRCQzBDNiAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjk4
NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUw
MEYzMjgxQyAvKiBMaWJXZWJSVENOZXR3b3JrTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2Ev
V2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2Ev
V2ViUGFnZUNvY29hLm1tCmluZGV4IGY1YTVkZTBiOTM0MzczYjg5MjJmNzQzODYwNmVjZDNhMjVj
ZDU4MmMuLjJjNzQ0NTU0OTM0ZWFlNDAxODEzYzU0MzNjNTE0MjI4ODg0MzA1ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW0KQEAgLTI3LDcgKzI3LDYgQEAKICNpbXBvcnQgIldlYlBhZ2UuaCIKIAogI2ltcG9ydCAi
SW5zZXJ0VGV4dE9wdGlvbnMuaCIKLSNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5h
Z2VyLmgiCiAjaW1wb3J0ICJMb2FkUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiUGx1Z2luVmlldy5o
IgogI2ltcG9ydCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UuaCIKQEAgLTU3LDIy
ICs1NiwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRl
ci5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2ltcG9ydCA8TW9iaWxl
Q29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgotI2VuZGlmCi0KICNpZiBQTEFURk9S
TShDT0NPQSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1E
aWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiB7Ci0gICAgTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLndhaXRG
b3JEYXRhYmFzZVVwZGF0ZSg1X3MpOwotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgYXV0byB1dGkg
PSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWcoa1VUVGFnQ2xh
c3NNSU1FVHlwZSwgQ0ZTVFIoInRleHQvaHRtbCIpLCAwKSk7Ci0gICAgQVNTRVJUKCFTdHJpbmco
dXRpLmdldCgpKS5pc0VtcHR5KCkpOwotI2VuZGlmCi0KICAgICBtX2RhdGFEZXRlY3Rpb25Db250
ZXh0ID0gcGFyYW1ldGVycy5kYXRhRGV0ZWN0aW9uQ29udGV4dDsKIAogICAgIGlmIChwYXJhbWV0
ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDZmMmQ4ZmFkMTY1ZjVhYTQ5YThmMmE4ZTkwZGE2Njc4NTU2NmRmNDUu
LmZjY2ViYjA0NTA2YzY4MDdiMDcxZjIyZjFhYjA1YzEwZmIwOGE2MTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI5MCwxMCArMjkwLDYgQEAgdm9pZCBXZWJQ
cm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24p
CiB7CiAgICAgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlv
bik7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2Vz
KCk7Ci0jZW5kaWYKLQogICAgIC8vIFdlIGNhbGwgX2V4aXQoKSBkaXJlY3RseSBmcm9tIHRoZSBi
YWNrZ3JvdW5kIHF1ZXVlIGluIGNhc2UgdGhlIG1haW4gdGhyZWFkIGlzIHVucmVzcG9uc2l2ZQog
ICAgIC8vIGFuZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRDbG9zZSgpIGRvZXMgbm90IGdldCBjYWxs
ZWQuCiAgICAgY29ubmVjdGlvbi0+c2V0RGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxs
YmFjayhjYWxsRXhpdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAw
NjMzMjUwYWExY2FkNTk0Zjk0OWI1NmMwMTQ1ZDNjYWY2Yjc4Mjc0Li45OWIxZjA3ZDIxMzA2N2U2
YTEyZmI3MDVlYzllNTE3MWFlN2YwOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTUxNSwxMCArNTE1LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgeyByZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+aXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgOiB0cnVlOyB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMoKSBjb25zdDsKLSNlbmRpZgotCiAg
ICAgUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gbV93ZWJDb25uZWN0aW9uOwogCiAg
ICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPFdlYlBhZ2U+PiBtX3Bh
Z2VNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNo
U2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMjQxMjFmOWQzY2JmM2VmOWJhYWRlMTdiYWFhYjEwNGQ0NjZiYjliLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW1wb3J0
IDxXZWJDb3JlL1hQQ0VuZHBvaW50Q2xpZW50Lmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KLSNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIgOiBwdWJs
aWMgV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlciYgc2luZ2xldG9uKCk7Ci0KLSAgICBib29sIHdhaXRG
b3JEYXRhYmFzZVVwZGF0ZShTZWNvbmRzKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIGhhbmRsZUV2
ZW50KHhwY19vYmplY3RfdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRDb25uZWN0KCkgb3ZlcnJp
ZGU7Ci0KLSAgICBzdGQ6OmF0b21pYzxib29sPiBtX2hhc1JlY2VpdmVkTGF1bmNoU2VydmljZXNE
YXRhYmFzZSB7IGZhbHNlIH07Ci0gICAgQmluYXJ5U2VtYXBob3JlIG1fc2VtYXBob3JlOwotfTsK
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNl
cnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlNDc2NWYyOGYzOWRmOTI0ZWY3NjQ5ODY5YWM1MzI4NGI5NzVhODg1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbQorKysgL2Rldi9u
dWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNp
bXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgiCi0KLSNpbXBvcnQgIkxhdW5j
aFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5k
cG9pbnQuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KLSNp
bXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2lu
L1hQQ1NQSS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotTGF1bmNoU2VydmljZXNEYXRh
YmFzZU1hbmFnZXImIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKQot
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdl
cj4gbWFuYWdlcjsKLSAgICByZXR1cm4gbWFuYWdlci5nZXQoKTsKLX0KLQotdm9pZCBMYXVuY2hT
ZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6aGFuZGxlRXZlbnQoeHBjX29iamVjdF90IG1lc3NhZ2Up
Ci17Ci0gICAgU3RyaW5nIG1lc3NhZ2VOYW1lID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyht
ZXNzYWdlLCBYUENFbmRwb2ludDo6eHBjTWVzc2FnZU5hbWVLZXkpOwotICAgIGlmIChtZXNzYWdl
TmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0g
TGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjVXBkYXRlTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU1lc3NhZ2VOYW1lKSB7Ci0gICAgICAgIGF1dG8gZGF0YWJhc2UgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfdmFsdWUobWVzc2FnZSwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0
YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZUtleSk7Ci0gICAgICAgIGlmIChkYXRhYmFz
ZSkgewotICAgICAgICAgICAgYXV0byBjb250ZXh0ID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTFNE
YXRhYmFzZUNvbnRleHQiKSBzaGFyZWREYXRhYmFzZUNvbnRleHRdOwotICAgICAgICAgICAgaWYg
KCFbY29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG9ic2VydmVEYXRhYmFzZUNo
YW5nZTRXZWJLaXQ6KV0pCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgW2Nv
bnRleHQgb2JzZXJ2ZURhdGFiYXNlQ2hhbmdlNFdlYktpdDpkYXRhYmFzZV07Ci0gICAgICAgIH0K
LSAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7Ci0gICAgICAgIG1faGFzUmVjZWl2ZWRMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlID0gdHJ1ZTsKLSAgICB9Ci19Ci0KLXZvaWQgTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU1hbmFnZXI6OmRpZENvbm5lY3QoKQotewotICAgIGF1dG8gbWVzc2FnZSA9IGFk
b3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsK
LSAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKG1lc3NhZ2UuZ2V0KCksIFhQQ0VuZHBvaW50
Ojp4cGNNZXNzYWdlTmFtZUtleSwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6
eHBjUmVxdWVzdExhdW5jaFNlcnZpY2VzRGF0YWJhc2VVcGRhdGVNZXNzYWdlTmFtZSk7Ci0KLSAg
ICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbigpLmdldCgpLCBtZXNzYWdl
LmdldCgpKTsKLX0KLQotYm9vbCBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6d2FpdEZv
ckRhdGFiYXNlVXBkYXRlKFNlY29uZHMgdGltZW91dCkKLXsKLSAgICBpZiAobV9oYXNSZWNlaXZl
ZExhdW5jaFNlcnZpY2VzRGF0YWJhc2UpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biBtX3NlbWFwaG9yZS53YWl0Rm9yKHRpbWVvdXQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCAwZDc5OWI5Yjll
YTE3NjMzMjEwYjY2ODcxMmI5MjU1NGMyNmE0NjAzLi5kYWU3YmE4NjViNmQ1OGUzMDZiNzJmMTI5
ODcyYjVmMGY5MDUyNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTI3LDggKzI3LDYgQEAKICNpbXBvcnQgIldlYlByb2Nl
c3MuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDb2NvYS5oIgogCi0jaW1wb3J0ICJMYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlTWFuYWdlci5oIgotI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQ
Q0NvbnN0YW50cy5oIgogI2ltcG9ydCAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgiCiAj
aW1wb3J0ICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNzEs
NyArNjksNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVz
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1hQQ0VuZHBvaW50Lmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+
CiAjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+
CkBAIC0xNjQsMzIgKzE2MSwyNSBAQCBzdGF0aWMgaWQgTlNBcHBsaWNhdGlvbkFjY2Vzc2liaWxp
dHlGb2N1c2VkVUlFbGVtZW50KE5TQXBwbGljYXRpb24qLCBTRUwpCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQcm9jZXNzOjpoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKCkgY29uc3QKK3ZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKSkKLSAgICAgICAgcmV0dXJuOworICAgIC8vIE1hcCBMYXVuY2ggU2VydmljZXMgZGF0YWJh
c2UuIFRoaXMgc2hvdWxkIGJlIGRvbmUgYXMgZWFybHkgYXMgcG9zc2libGUsIGFzIHRoZSBtYXBw
aW5nIHdpbGwgZmFpbAorICAgIC8vIGlmICdjb20uYXBwbGUubHNkLm1hcGRiJyBpcyBiZWluZyBh
Y2Nlc3NlZCBiZWZvcmUgdGhpcy4KKyAgICBpZiAocGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhh
bmRsZSkgeworICAgICAgICBhdXRvIGV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZShXVEZNb3ZlKCpwYXJhbWV0ZXJzLm1hcERCRXh0ZW5zaW9uSGFuZGxlKSk7CisgICAgICAgIGJv
b2wgb2sgPSBleHRlbnNpb24tPmNvbnN1bWUoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChvaywg
b2spOworICAgICAgICAvLyBQZXJmb3JtIEFQSSBjYWxscyB3aGljaCB3aWxsIGNvbW11bmljYXRl
IHdpdGggdGhlIGRhdGFiYXNlIG1hcHBpbmcgc2VydmljZSwgYW5kIG1hcCB0aGUgZGF0YWJhc2Uu
CisgICAgICAgIGF1dG8gdXRpID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlm
aWVyRm9yVGFnKGtVVFRhZ0NsYXNzTUlNRVR5cGUsIENGU1RSKCJ0ZXh0L2h0bWwiKSwgMCkpOwog
Ci0gICAgYXV0byBjb25uZWN0aW9uID0gcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29u
bmVjdGlvbigpOworICAgICAgICBbW29iamNfZ2V0Q2xhc3MoIl9MU0RSZWFkU2VydmljZSIpIFhQ
Q0Nvbm5lY3Rpb25Ub1NlcnZpY2VdIGludmFsaWRhdGVdOwogCi0gICAgeHBjX2Nvbm5lY3Rpb25f
c2V0X3RhcmdldF9xdWV1ZShjb25uZWN0aW9uLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJ
U1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9z
ZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLCBeKHhwY19vYmplY3RfdCBldmVudCkgewotICAg
ICAgICBpZiAoeHBjX2dldF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBvayA9IGV4dGVuc2lvbi0+cmV2b2tlKCk7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsKIAotICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWUg
PSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCBYUENFbmRwb2ludDo6eHBjTWVzc2Fn
ZU5hbWVLZXkpOwotICAgICAgICBpZiAobWVzc2FnZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChtZXNzYWdlTmFtZSA9PSBMYXVuY2hTZXJ2aWNlc0Rh
dGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9pbnRN
ZXNzYWdlTmFtZSkgewotICAgICAgICAgICAgYXV0byBlbmRwb2ludCA9IHhwY19kaWN0aW9uYXJ5
X2dldF92YWx1ZShldmVudCwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBj
TGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TmFtZUtleSk7Ci0gICAgICAgICAgICBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0RW5kcG9pbnQoZW5k
cG9pbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSk7Ci19CisgICAg
ICAgIEFTU0VSVChTdHJpbmcodXRpLmdldCgpKSA9PSBTdHJpbmcoYWRvcHRDRihVVFR5cGVDcmVh
dGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKGtVVFRhZ0NsYXNzTUlNRVR5cGUsIENGU1RSKCJ0
ZXh0L2h0bWwiKSwgMCkpLmdldCgpKSk7CisgICAgfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKLXsKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHBhcmFtZXRlcnMu
d2ViQ29yZUxvZ2dpbmdDaGFubmVscyk7CiAgICAgV2ViS2l0Ojppbml0aWFsaXplTG9nQ2hhbm5l
bHNJZk5lY2Vzc2FyeShwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFubmVscyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>