<?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>233918</bug_id>
          
          <creation_ts>2021-12-07 01:39:29 -0800</creation_ts>
          <short_desc>[JSC] Introduce WriteBarrierStructureID</short_desc>
          <delta_ts>2021-12-08 11:12:22 -0800</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>233959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820938</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 01:39:29 -0800</bug_when>
    <thetext>[JSC] Introduce WriteBarrierStructureID</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821051</commentid>
    <comment_count>1</comment_count>
      <attachid>446178</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 08:52:18 -0800</bug_when>
    <thetext>Created attachment 446178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821298</commentid>
    <comment_count>2</comment_count>
      <attachid>446259</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 17:11:49 -0800</bug_when>
    <thetext>Created attachment 446259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821302</commentid>
    <comment_count>3</comment_count>
      <attachid>446262</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 17:28:10 -0800</bug_when>
    <thetext>Created attachment 446262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821319</commentid>
    <comment_count>4</comment_count>
      <attachid>446270</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 17:42:59 -0800</bug_when>
    <thetext>Created attachment 446270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821328</commentid>
    <comment_count>5</comment_count>
      <attachid>446273</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 18:20:35 -0800</bug_when>
    <thetext>Created attachment 446273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821469</commentid>
    <comment_count>6</comment_count>
      <attachid>446273</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-12-08 01:08:41 -0800</bug_when>
    <thetext>Comment on attachment 446273
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=446273&amp;action=review

r=me

&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:278
&gt; +    // Should only be used by JSCell during early initialisation
&gt; +    // when some basic types aren&apos;t yet completely instantiated

Why this comment?  In this patch, `setEarlyValue` looks more like a `setInternal` and can be made private.  Is this needed in code that is yet to come?

&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:283
&gt; +        // Copy m_cell to a local to avoid multiple-read issues. (See &lt;http://webkit.org/b/110854&gt;)

/m_cell/m_structureID/

&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:313
&gt; +        m_structureID = StructureID { };

Do we need the `StructureID` here?  Wouldn&apos;t it be implied by the type of m_structureID?

&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:332
&gt; +            m_structureID = StructureID { };

Ditto.

&gt; Source/JavaScriptCore/runtime/WriteBarrierInlines.h:82
&gt; +        m_structureID = StructureID { };

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821638</commentid>
    <comment_count>7</comment_count>
      <attachid>446273</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-08 11:04:58 -0800</bug_when>
    <thetext>Comment on attachment 446273
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=446273&amp;action=review

&gt;&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:278
&gt;&gt; +    // when some basic types aren&apos;t yet completely instantiated
&gt; 
&gt; Why this comment?  In this patch, `setEarlyValue` looks more like a `setInternal` and can be made private.  Is this needed in code that is yet to come?

Because it is aligned to WriteBarrier&lt;JSCell&gt;, so same methods and same comments are prepared. So, we should use setEarlyValue to align it to WriteBarrier&lt;&gt;.

&gt;&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:283
&gt;&gt; +        // Copy m_cell to a local to avoid multiple-read issues. (See &lt;http://webkit.org/b/110854&gt;)
&gt; 
&gt; /m_cell/m_structureID/

Changed.

&gt;&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:313
&gt;&gt; +        m_structureID = StructureID { };
&gt; 
&gt; Do we need the `StructureID` here?  Wouldn&apos;t it be implied by the type of m_structureID?

Dropped.

&gt;&gt; Source/JavaScriptCore/runtime/WriteBarrier.h:332
&gt;&gt; +            m_structureID = StructureID { };
&gt; 
&gt; Ditto.

Ditto.

&gt;&gt; Source/JavaScriptCore/runtime/WriteBarrierInlines.h:82
&gt;&gt; +        m_structureID = StructureID { };
&gt; 
&gt; Ditto.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821648</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-08 11:11:57 -0800</bug_when>
    <thetext>Committed r286667 (244975@trunk): &lt;https://commits.webkit.org/244975@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821649</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-08 11:12:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/86220662&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446178</attachid>
            <date>2021-12-07 08:52:18 -0800</date>
            <delta_ts>2021-12-07 17:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233918-20211207085217.patch</filename>
            <type>text/plain</type>
            <size>36419</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjdmMGFjYTU0MDg5MGY0NjE5OTBkMGU5YmY1ZWVjN2Q2MmFhMjlmLi5hMTJhODJmMDI5MDBlZWU4
ZDM5MzgxNzI0MjdiMGFiNTA0NjY2ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMS0xMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEludHJvZHVjZSBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9B
Y2Nlc3NDYXNlLmg6CisgICAgICAgICogYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRp
b25Qcm9maWxlLmg6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmVJRCk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZTo6c3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxG
dW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpjbGVhcik6CisgICAgICAgIChKU0M6OkludGVybmFs
RnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAgICAoSlND
OjpJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRpb25TdHJ1
Y3R1cmVGcm9tQmFzZSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9u
UHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNyZWF0ZVByb21pc2UpOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ3JlYXRlSW50ZXJuYWxGaWVsZE9i
amVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21w
YXJlU3RyaWN0RXEpOgorICAgICAgICAqIGhlYXAvQWJzdHJhY3RTbG90VmlzaXRvci5oOgorICAg
ICAgICAqIGhlYXAvQWJzdHJhY3RTbG90VmlzaXRvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kKToKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RTbG90
VmlzaXRvcjo6YXBwZW5kSGlkZGVuKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6Cisg
ICAgICAgICogaGVhcC9TbG90VmlzaXRvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6U2xvdFZp
c2l0b3I6OmFwcGVuZCk6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW4p
OgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3Nl
bWJseUhlbHBlcnM6OmVtaXROb25OdWxsRGVjb2RlU3RydWN0dXJlSUQpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3RydWN0dXJlKToKKyAgICAgICAgKiBqaXQvQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW5JbXBsKToK
KyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvRnVuY3Rpb25SYXJlRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uUmFyZURhdGE6
OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2aXNpdENoaWxk
cmVuSW1wbCk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlUmFyZURhdGE6OlN0cnVjdHVyZVJhcmVEYXRhKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZVJhcmVEYXRhLmg6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJpZXIuaDoK
KyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OldyaXRlQmFycmllclN0cnVj
dHVyZUlEKToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OmdldCBjb25z
dCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvciogY29u
c3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6b3BlcmF0b3ItPiBj
b25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpjbGVhcik6Cisg
ICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvciBib29sIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yISBjb25z
dCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXRXaXRob3V0V3Jp
dGVCYXJyaWVyKToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnVudmFs
aWRhdGVkR2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldCk6CisgICAgICAgIChK
U0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXRNYXlCZU51bGwpOgorICAgICAgICAoSlND
OjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0RWFybHlWYWx1ZSk6CisgICAgICAgICogdG9v
bHMvSlNEb2xsYXJWTS5oOgorCiAyMDIxLTEyLTA2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFR5cGVJbmZvIHNob3VsZCBiZSBtYXRlcmlhbGl6YWJs
ZSBmcm9tIFN0cnVjdHVyZXMgYXMgYSBzaW5nbGUgbG9hZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oCmluZGV4IGZlMWNmZmJjNjU5ODVlOGMxNDc5YTJjYjUz
NGEyZjM4ODhmNzUzYTYuLjQyYjY0YTIzNGQxYmEyYmY1YTk1ODM1MDZjNjIwMWYyZGQ5N2U0OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaApAQCAtMzQ4
LDcgKzM0OCw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8QWNjZXNzQ2FzZT4gewogICAgIC8vIFVzdWFsbHkgdGhpcyBpcyB0aGUgc3RydWN0dXJlIHRo
YXQgd2UgZXhwZWN0IHRoZSBiYXNlIG9iamVjdCB0byBoYXZlLiBCdXQsIHRoaXMgaXMgdGhlICpu
ZXcqCiAgICAgLy8gc3RydWN0dXJlIGZvciBhIHRyYW5zaXRpb24gYW5kIHdlIHJlbHkgb24gdGhl
IGZhY3QgdGhhdCBpdCBoYXMgYSBzdHJvbmcgcmVmZXJlbmNlIHRvIHRoZSBvbGQKICAgICAvLyBz
dHJ1Y3R1cmUuIEZvciBwcm94aWVzLCB0aGlzIGlzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIG9iamVj
dCBiZWhpbmQgdGhlIHByb3h5LgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc3RydWN0
dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fc3RydWN0dXJlOwogCiAgICAgT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQgbV9jb25kaXRpb25TZXQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblBy
b2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9u
QWxsb2NhdGlvblByb2ZpbGUuaAppbmRleCBkZjhmMzcxYWJkMWQxOTYwNzZkNzViNGJkYzEyNWVk
MzlmMzgyNjBkLi5iMTc3ZmVmZDA2MzZlMjJlYjUwZmZmYjYyOWVjZTQxMTgxNGUyZGRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lu
dGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oCkBAIC0zMywyMSArMzMsMjEgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdHJ1Y3R1cmUo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlLCBtX3N0cnVjdHVyZSk7IH0KKyAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRP
ZlN0cnVjdHVyZUlEKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEludGVybmFsRnVuY3Rpb25B
bGxvY2F0aW9uUHJvZmlsZSwgbV9zdHJ1Y3R1cmVJRCk7IH0KIAotICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKCkgeyByZXR1cm4gbV9zdHJ1Y3R1cmUuZ2V0KCk7IH0KKyAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSgpIHsgcmV0dXJuIG1fc3RydWN0dXJlSUQuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUq
IGNyZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVGcm9tQmFzZShWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiBvd25lciwgSlNPYmplY3QqIHByb3RvdHlwZSwgU3RydWN0dXJlKiBiYXNlKTsKIAot
ICAgIHZvaWQgY2xlYXIoKSB7IG1fc3RydWN0dXJlLmNsZWFyKCk7IH0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBWaXNpdG9yPiB2b2lkIHZpc2l0QWdncmVnYXRlKFZpc2l0b3ImIHZpc2l0b3IpIHsg
dmlzaXRvci5hcHBlbmQobV9zdHJ1Y3R1cmUpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9zdHJ1
Y3R1cmVJRC5jbGVhcigpOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4gdm9pZCB2
aXNpdEFnZ3JlZ2F0ZShWaXNpdG9yJiB2aXNpdG9yKSB7IHZpc2l0b3IuYXBwZW5kKG1fc3RydWN0
dXJlSUQpOyB9CiAKIHByaXZhdGU6Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9zdHJ1
Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9zdHJ1Y3R1cmVJRDsKIH07CiAK
IGlubGluZSBTdHJ1Y3R1cmUqIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6Y3Jl
YXRlQWxsb2NhdGlvblN0cnVjdHVyZUZyb21CYXNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGJh
c2VHbG9iYWxPYmplY3QsIEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0KiBwcm90b3R5cGUsIFN0cnVj
dHVyZSogYmFzZVN0cnVjdHVyZSkKIHsKLSAgICBBU1NFUlQoIW1fc3RydWN0dXJlIHx8IG1fc3Ry
dWN0dXJlLmdldCgpLT5jbGFzc0luZm8oKSAhPSBiYXNlU3RydWN0dXJlLT5jbGFzc0luZm8oKSB8
fCBtX3N0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgIT0gYmFzZVN0cnVjdHVyZS0+Z2xvYmFsT2Jq
ZWN0KCkpOworICAgIEFTU0VSVCghbV9zdHJ1Y3R1cmVJRCB8fCBtX3N0cnVjdHVyZUlELmdldCgp
LT5jbGFzc0luZm8oKSAhPSBiYXNlU3RydWN0dXJlLT5jbGFzc0luZm8oKSB8fCBtX3N0cnVjdHVy
ZUlELT5nbG9iYWxPYmplY3QoKSAhPSBiYXNlU3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CiAg
ICAgQVNTRVJUKGJhc2VTdHJ1Y3R1cmUtPmhhc01vbm9Qcm90bygpKTsKIAogICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlOwpAQCAtNjEsOCArNjEsOCBAQCBpbmxpbmUgU3RydWN0dXJlKiBJbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVGcgog
ICAgIC8vIEVuc3VyZSB0aGF0IGlmIGFub3RoZXIgdGhyZWFkIHNlZXMgdGhlIHN0cnVjdHVyZSwg
aXQgd2lsbCBzZWUgaXQgcHJvcGVybHkgY3JlYXRlZC4KICAgICBXVEY6OnN0b3JlU3RvcmVGZW5j
ZSgpOwogCi0gICAgbV9zdHJ1Y3R1cmUuc2V0KHZtLCBvd25lciwgc3RydWN0dXJlKTsKLSAgICBy
ZXR1cm4gbV9zdHJ1Y3R1cmUuZ2V0KCk7CisgICAgbV9zdHJ1Y3R1cmVJRC5zZXQodm0sIG93bmVy
LCBzdHJ1Y3R1cmUpOworICAgIHJldHVybiBzdHJ1Y3R1cmU7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAppbmRleCA5NjI5ZWUxM2M3ZWFmZWM5NjMyNjQxOTQxY2UyNTQ0YzQyODVlYmI0Li5mOTA4MGUy
MDc5ODNlZDQ0MGJhMWMzZTQ4ZmQ2MWJiNjM0ZTk3M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTQ4MTksOCArMTQ4MTksOSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUHJvbWlzZShOb2RlKiBub2RlKQog
ICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RGdW5jdGlvbihjYWxsZWVHUFIp
KTsKICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNG
dW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlT3JSYXJlRGF0YSgpKSwgcmFyZURhdGFHUFIpOwog
ICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6
WmVybywgcmFyZURhdGFHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTRnVuY3Rpb246
OnJhcmVEYXRhVGFnKSkpOwotICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3Mo
cmFyZURhdGFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9m
ZnNldE9mU3RydWN0dXJlKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyksIHN0cnVjdHVyZUdQ
Uik7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVy
czo6WmVybywgc3RydWN0dXJlR1BSKSk7CisgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpB
ZGRyZXNzKHJhcmVEYXRhR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVu
Y3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlOjpvZmZzZXRPZlN0cnVjdHVyZUlEKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyksIHN0
cnVjdHVyZUdQUik7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoQ0Nh
bGxIZWxwZXJzOjpaZXJvLCBzdHJ1Y3R1cmVHUFIpKTsKKyAgICBtX2ppdC5lbWl0Tm9uTnVsbERl
Y29kZVN0cnVjdHVyZUlEKHN0cnVjdHVyZUdQUiwgc3RydWN0dXJlR1BSKTsKICAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW1QdHIobm9kZS0+aXNJbnRlcm5hbFByb21pc2UoKSA/IEpTSW50ZXJuYWxQ
cm9taXNlOjppbmZvKCkgOiBKU1Byb21pc2U6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBz
bG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBz
Y3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJl
OjpjbGFzc0luZm9PZmZzZXQoKSkpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6Ondl
YWtQb2ludGVyKG1faml0LmdyYXBoKCksIGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKQEAg
LTE0ODY3LDggKzE0ODY4LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUlu
dGVybmFsRmllbGRPYmplY3QoTm9kZSogbm9kZSwgT3BlcmF0aW9uIG9wZXIKICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90RnVuY3Rpb24oY2FsbGVlR1BSKSk7CiAgICAgbV9q
aXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rpb246Om9m
ZnNldE9mRXhlY3V0YWJsZU9yUmFyZURhdGEoKSksIHJhcmVEYXRhR1BSKTsKICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJhcmVE
YXRhR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU0Z1bmN0aW9uOjpyYXJlRGF0YVRh
ZykpKTsKLSAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJhcmVEYXRhR1BS
LCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVj
dHVyZSgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOwotICAgIHNs
b3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHN0
cnVjdHVyZUdQUikpOworICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6QWRkcmVzcyhyYXJl
RGF0YUdQUiwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZJbnRlcm5hbEZ1bmN0aW9uQWxsb2Nh
dGlvblByb2ZpbGUoKSArIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6b2Zmc2V0
T2ZTdHJ1Y3R1cmVJRCgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIp
OworICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6
WmVybywgc3RydWN0dXJlR1BSKSk7CisgICAgbV9qaXQuZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1
cmVJRChzdHJ1Y3R1cmVHUFIsIHN0cnVjdHVyZUdQUik7CiAgICAgbV9qaXQubW92ZShUcnVzdGVk
SW1tUHRyKEpTQ2xhc3M6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKG1faml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoMUdQUiwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9P
ZmZzZXQoKSkpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1f
aml0LmdyYXBoKCksIGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
ZmUyYWM1Y2YyZjMzMGQwZWJmMzk2YjE1YjE1NWE3ZTI1ZGRlZDQ3Zi4uNTY4Y2I2YzEyMTNiYjE1
N2FmODQ2YzcwYjc1N2NjNGRjYzY4ZTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg0LDkgKzg0LDcgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURh
dGFfcHJvdG90eXBlLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Q
cm9maWxlKCkgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5cGU6Om9mZnNldE9m
UHJvdG90eXBlKCkpIFwKICAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2FsbG9jYXRpb25Qcm9m
aWxlV2F0Y2hwb2ludFNldCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxvY2F0aW9uUHJv
ZmlsZVdhdGNocG9pbnRTZXQoKSkgXAogICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURhdGFfZXhlY3V0
YWJsZSwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKLSAgICBtYWNy
byhGdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9zdHJ1
Y3R1cmUsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRp
b25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9m
U3RydWN0dXJlKCkpIFwKLSAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2JvdW5kRnVuY3Rpb25T
dHJ1Y3R1cmUsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mQm91bmRGdW5jdGlvblN0cnVjdHVy
ZSgpKSBcCi0gICAgbWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0aW9uUHJvZmlsZUNsZWFy
aW5nV2F0Y2hwb2ludCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmls
ZUNsZWFyaW5nV2F0Y2hwb2ludCgpKSBcCisgICAgbWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9pbnRl
cm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQsIEZ1bmN0aW9uUmFyZURh
dGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlSUQoKSkgXAogICAg
IG1hY3JvKEdldHRlclNldHRlcl9nZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zmc2V0T2ZHZXR0ZXIo
KSkgXAogICAgIG1hY3JvKEdldHRlclNldHRlcl9zZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zmc2V0
T2ZTZXR0ZXIoKSkgXAogICAgIG1hY3JvKEpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCwgSlNBcnJh
eUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA4MjI4ODZkM2FmMzE0YzQzMzg1ZjQ0MzY1
YWZiYzdkN2I5MDhmMzZlLi5mYWQ5MzFlY2I1ZGMzZDI2N2RjZjE0YmMyMjc2NDI1ODZmNGY2ODk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBA
IC03ODc3LDEwICs3ODc3LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAg
ICBtX291dC5hcHBlbmRUbyhoYXNSYXJlRGF0YSwgaGFzU3RydWN0dXJlKTsKICAgICAgICAgTFZh
bHVlIHJhcmVEYXRhID0gbV9vdXQuc3ViKHJhcmVEYXRhVGFncywgbV9vdXQuY29uc3RJbnRQdHIo
SlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpKTsKLSAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1f
b3V0LmxvYWRQdHIocmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1
bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlKTsKLSAgICAgICAgbV9vdXQuYnJhbmNo
KG1fb3V0LmlzWmVybzY0KHN0cnVjdHVyZSksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaGFz
U3RydWN0dXJlKSk7CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0LmxvYWQzMihy
YXJlRGF0YSwgbV9oZWFwcy5GdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0
aW9uUHJvZmlsZV9zdHJ1Y3R1cmVJRCk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1pl
cm8zMihzdHJ1Y3R1cmVJRCksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaGFzU3RydWN0dXJl
KSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaGFzU3RydWN0dXJlLCBjaGVja0dsb2JhbE9i
amVjdENhc2UpOworICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gZGVjb2RlTm9uTnVsbFN0cnVj
dHVyZShzdHJ1Y3R1cmVJRCk7CiAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChtX291
dC5sb2FkUHRyKHN0cnVjdHVyZSwgbV9oZWFwcy5TdHJ1Y3R1cmVfY2xhc3NJbmZvKSwgbV9vdXQu
Y29uc3RJbnRQdHIobV9ub2RlLT5pc0ludGVybmFsUHJvbWlzZSgpID8gSlNJbnRlcm5hbFByb21p
c2U6OmluZm8oKSA6IEpTUHJvbWlzZTo6aW5mbygpKSksIHVzdWFsbHkoY2hlY2tHbG9iYWxPYmpl
Y3RDYXNlKSwgcmFyZWx5KHNsb3dDYXNlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY2hl
Y2tHbG9iYWxPYmplY3RDYXNlLCBmYXN0QWxsb2NhdGlvbkNhc2UpOwpAQCAtNzkzMiwxMCArNzkz
MywxMSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oaGFzUmFyZURhdGEsIGhhc1N0cnVjdHVyZSk7CiAgICAgICAgIExWYWx1ZSByYXJlRGF0YSA9
IG1fb3V0LnN1YihyYXJlRGF0YVRhZ3MsIG1fb3V0LmNvbnN0SW50UHRyKEpTRnVuY3Rpb246OnJh
cmVEYXRhVGFnKSk7Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKHJh
cmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfaW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRp
b25Qcm9maWxlX3N0cnVjdHVyZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm82
NChzdHJ1Y3R1cmUpLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOwor
ICAgICAgICBMVmFsdWUgc3RydWN0dXJlSUQgPSBtX291dC5sb2FkMzIocmFyZURhdGEsIG1faGVh
cHMuRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3Ry
dWN0dXJlSUQpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIoc3RydWN0dXJl
SUQpLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOwogCiAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKGhhc1N0cnVjdHVyZSwgY2hlY2tHbG9iYWxPYmplY3RDYXNlKTsKKyAg
ICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IGRlY29kZU5vbk51bGxTdHJ1Y3R1cmUoc3RydWN0dXJl
SUQpOwogICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobV9vdXQubG9hZFB0cihzdHJ1
Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2NsYXNzSW5mbyksIG1fb3V0LmNvbnN0SW50UHRyKEpT
Q2xhc3M6OmluZm8oKSkpLCB1c3VhbGx5KGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSksIHJhcmVseShz
bG93Q2FzZSkpOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrR2xvYmFsT2JqZWN0Q2Fz
ZSwgZmFzdEFsbG9jYXRpb25DYXNlKTsKQEAgLTIwOTczLDEzICsyMDk3NSwxOCBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIG1fZ3JhcGgubV9wbGFuLndlYWtSZWZlcmVuY2Vz
KCkuYWRkTGF6aWx5KHRhcmdldCk7CiAgICAgfQogCi0gICAgTFZhbHVlIGxvYWRTdHJ1Y3R1cmUo
TFZhbHVlIHZhbHVlKQorICAgIExWYWx1ZSBkZWNvZGVOb25OdWxsU3RydWN0dXJlKExWYWx1ZSBz
dHJ1Y3R1cmVJRCkKICAgICB7Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0Lmxv
YWQzMih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICBMVmFsdWUg
bWFza2VkU3RydWN0dXJlSUQgPSBtX291dC5iaXRBbmQoc3RydWN0dXJlSUQsIG1fb3V0LmNvbnN0
SW50MzIoc3RydWN0dXJlSURNYXNrKSk7CiAgICAgICAgIHJldHVybiBtX291dC5hZGQobV9vdXQu
Y29uc3RJbnRQdHIoZ19qc2NDb25maWcuc3RhcnRPZlN0cnVjdHVyZUhlYXApLCBtX291dC56ZXJv
RXh0UHRyKG1hc2tlZFN0cnVjdHVyZUlEKSk7CiAgICAgfQogCisgICAgTFZhbHVlIGxvYWRTdHJ1
Y3R1cmUoTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUlEID0g
bV9vdXQubG9hZDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CisgICAgICAg
IHJldHVybiBkZWNvZGVOb25OdWxsU3RydWN0dXJlKHN0cnVjdHVyZUlEKTsKKyAgICB9CisKICAg
ICBMVmFsdWUgd2Vha1BvaW50ZXIoSlNDZWxsKiBwb2ludGVyKQogICAgIHsKICAgICAgICAgYWRk
V2Vha1JlZmVyZW5jZShwb2ludGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0Fic3RyYWN0U2xvdFZpc2l0b3IuaAppbmRleCBiYzI5Zjc0MTkzMzk4ZDE0Y2ZmNDI1M2Y2MjY4
NmRmMTgyNDc4MzBhLi5kNmY0MTYyZmZhYjlmY2RhMmI0YTJkYzZmMzg0M2RiZjY2ZTkyMTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvci5o
CkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIFZNOwogY2xhc3MgVmVyaWZpZXJTbG90VmlzaXRvcjsK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2U7CitjbGFzcyBXcml0ZUJhcnJp
ZXJTdHJ1Y3R1cmVJRDsKIAogY2xhc3MgQWJzdHJhY3RTbG90VmlzaXRvciB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQWJzdHJhY3RTbG90VmlzaXRvcik7CkBAIC0xNDMsNiArMTQ0LDggQEAg
Y2xhc3MgQWJzdHJhY3RTbG90VmlzaXRvciB7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VCwgVHJh
aXRzPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gdm9pZCBh
cHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUcmFpdHM+Jik7CisgICAgdm9p
ZCBhcHBlbmQoY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKKyAgICB2b2lkIGFwcGVu
ZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEl0ZXJhdG9yPiB2b2lkIGFwcGVuZChJdGVyYXRvciBiZWdpbiAsIEl0ZXJhdG9yIGVu
ZCk7CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZFZhbHVlcyhjb25zdCBXcml0ZUJhcnJp
ZXJCYXNlPFVua25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3VudCk7
CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZFZhbHVlc0hpZGRlbihjb25zdCBXcml0ZUJh
cnJpZXJCYXNlPFVua25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3Vu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RW
aXNpdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90
VmlzaXRvcklubGluZXMuaAppbmRleCBhZjY2MDM4NjRjNmViZmUyZWZlMWRjOTA4YTFiZDg1MTNj
NmViZjU4Li4yNmIwMTRkZjIyNzMyZDUyM2ZjNmRmZjFjZDYxODE2YzZiMTQ5ZGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9ySW5saW5l
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3JJ
bmxpbmVzLmgKQEAgLTE1OCw2ICsxNTgsMTYgQEAgQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0
U2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFQKICAg
ICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChzbG90LmdldCgpKTsKIH0KIAorQUxXQVlTX0lOTElO
RSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJTdHJ1
Y3R1cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRVbmJhcnJpZXJlZChzbG90LmdldCgpKTsKK30K
KworQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihj
b25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRIaWRkZW5V
bmJhcnJpZXJlZChzbG90LmdldCgpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0
U2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlblVuYmFycmllcmVkKEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKHZhbHVlLmlzQ2VsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9yLmgKaW5kZXggNTAzNjM2OTM4NDI5NjQzNTJjMGQwMjBiYmViOTkwYmUyMWQ3YTg0Ny4uMDZm
ZDRhZDkwNGQwZDhlNDAyYTg4NzRkM2M3YTY2NDg2YTFhNmI5NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5oCkBAIC05Miw2ICs5Miw4IEBAIGNsYXNzIFNsb3RWaXNp
dG9yIGZpbmFsIDogcHVibGljIEFic3RyYWN0U2xvdFZpc2l0b3IgewogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiB2b2lkIGFwcGVuZChjb25zdCBXcml0ZUJhcnJp
ZXJCYXNlPFQsIFRyYWl0cz4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBU
cmFpdHM+IHZvaWQgYXBwZW5kSGlkZGVuKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VCwgVHJhaXRz
PiYpOworICAgIHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmllclN0cnVjdHVyZUlEJik7Cisg
ICAgdm9pZCBhcHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBhcHBlbmQoSXRlcmF0b3IgYmVnaW4g
LCBJdGVyYXRvciBlbmQpOwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1ZXMoY29u
c3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4qLCBz
aXplX3QgY291bnQpOwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1ZXNIaWRkZW4o
Y29uc3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4q
LCBzaXplX3QgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90Vmlz
aXRvcklubGluZXMuaAppbmRleCA0NGYyMDljNTk0ZTlmNDhmOTRmOTk3NzRjZTY0NGU4ZmRkYmU4
MWMyLi44ZDM5N2EwYWFiMmVlOWViNjk0NzY2Yzk5OTViZTg4ZDYyY2QxYWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaApAQCAtMTE2LDYg
KzExNiwxNiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihj
b25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0cz4mCiAgICAgYXBwZW5kSGlkZGVuVW5iYXJy
aWVyZWQoc2xvdC5nZXQoKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6
YXBwZW5kKGNvbnN0IFdyaXRlQmFycmllclN0cnVjdHVyZUlEJiBzbG90KQoreworICAgIGFwcGVu
ZFVuYmFycmllcmVkKHNsb3QuZ2V0KCkpOworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZp
c2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xvdCkK
K3sKKyAgICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChzbG90LmdldCgpKTsKK30KKwogdGVtcGxh
dGU8dHlwZW5hbWUgSXRlcmF0b3I+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFw
cGVuZChJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDkzZDliMzNhM2Q0NTJhMTdhMTFk
M2FmZGI4ZWIyNmY2Njc0NmMxZGIuLjMzYjJiMjdiMjYwNjA5NTkyMTM2ZDQ2NTg1NjU2MTA2N2Y3
MDE0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5j
cHAKQEAgLTM4OSw5ICszODksOSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6c3RvcmVQcm9wZXJ0
eShKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwgR1BSUmVnIG9mZgogICAgICAgICBC
YXNlSW5kZXgoc2NyYXRjaCwgb2Zmc2V0LCBUaW1lc0VpZ2h0LCAoZmlyc3RPdXRPZkxpbmVPZmZz
ZXQgLSAyKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpKTsKIH0KIAotdm9pZCBBc3NlbWJseUhl
bHBlcnM6OmVtaXRMb2FkU3RydWN0dXJlKFZNJiwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJlZ2lzdGVy
SUQgZGVzdCkKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVy
ZUlEKFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCiB7Ci0gICAgbG9hZDMyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSwgZGVzdCk7CisgICAgbW92ZShzb3VyY2UsIGRlc3QpOwogI2lmIENQVShBRERSRVNTNjQpCiAg
ICAgLy8gVGhpcyBjb3VsZCB1c2UgQkZJIG9uIGFybTY0IGJ1dCB0aGF0IG9ubHkgaGVscHMgaWYg
dGhlIHN0YXJ0IG9mIHN0cnVjdHVyZSBoZWFwIGlzIGVuY29kYWJsZSBhcyBhIG1vdiBhbmQgbm90
IGFzIGFuIGltbWVkaWF0ZSBpbiB0aGUgYWRkIHNvIGl0J3MgcHJvYmFibHkgbm90IHN1cGVyIGlt
cG9ydGFudC4KICAgICBhbmQzMihUcnVzdGVkSW1tMzIoc3RydWN0dXJlSURNYXNrKSwgZGVzdCk7
CkBAIC0zOTksNiArMzk5LDEyIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVj
dHVyZShWTSYsIFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCiAjZW5kaWYgLy8g
bm90IENQVShBRERSRVNTNjQpCiB9CiAKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0
cnVjdHVyZShWTSYsIFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCit7CisgICAg
bG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgZGVzdCk7CisgICAgZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChkZXN0
LCBkZXN0KTsKK30KKwogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkUHJvdG90eXBlKFZN
JiB2bSwgR1BSUmVnIG9iamVjdEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExpc3Qm
IHNsb3dQYXRoKQogewogICAgIEFTU0VSVChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSAhPSBvYmpl
Y3RHUFIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5k
ZXggMGIzOGQ1NGYyZjY2MmYzMjczNjhkOTY2YmI2YTE5MzFhNDQ3YWEyNy4uODZhOWNlYmQwMjkz
OGE4MzI3M2YzZDljZTk2ZDVlYTdhNTJiM2JiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNTc3LDYgKzE1NzcsNyBAQCBjbGFzcyBBc3NlbWJs
eUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICByZXR1cm4gYXJndW1l
bnRDb3VudChjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9CiAgICAgCisgICAg
dm9pZCBlbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291cmNlLCBSZWdp
c3RlcklEIGRlc3QpOwogICAgIHZvaWQgZW1pdExvYWRTdHJ1Y3R1cmUoVk0mLCBSZWdpc3RlcklE
IHNvdXJjZSwgUmVnaXN0ZXJJRCBkZXN0KTsKICAgICB2b2lkIGVtaXRMb2FkUHJvdG90eXBlKFZN
JiwgR1BSUmVnIG9iamVjdEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExpc3QmIHNs
b3dQYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uRXhlY3V0YWJsZS5jcHAKaW5kZXggMTJkNDk5YTRlNDUwNGNlYzE4NGQ3ZGJmNWMzNmVmZWRl
YjFhYjQ3My4uYTE3NjQ3YWM5YWEyM2U3NTQ3NTY3MmU0YzZlYjUyZmQwNTllNGI2YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjp2aXNpdENoaWxk
cmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBl
bmQodGhpc09iamVjdC0+bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QpOwogICAgIHZpc2l0b3IuYXBw
ZW5kKHRoaXNPYmplY3QtPm1fdW5saW5rZWRFeGVjdXRhYmxlKTsKICAgICBpZiAoUmFyZURhdGEq
IHJhcmVEYXRhID0gdGhpc09iamVjdC0+bV9yYXJlRGF0YS5nZXQoKSkgewotICAgICAgICB2aXNp
dG9yLmFwcGVuZChyYXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUpOworICAgICAg
ICB2aXNpdG9yLmFwcGVuZChyYXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmVJRCk7
CiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2FzU3RyaW5nKTsKICAgICAgICAg
aWYgKFRlbXBsYXRlT2JqZWN0TWFwKiBtYXAgPSByYXJlRGF0YS0+bV90ZW1wbGF0ZU9iamVjdE1h
cC5nZXQoKSkgewogICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHRoaXNPYmplY3QtPmNlbGxM
b2NrKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25F
eGVjdXRhYmxlLmgKaW5kZXggYTdmNzc1MTNlOGFkZTBmZWJmN2E5YjMyZWY5M2RmOWIwZTZiYTI2
MS4uZmE5NTA0NTNhNTQxMmM3MjAwZjVhODI1Yjg2Y2ZhMDc2NWY5ZDA0OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAgLTI1
NywxMiArMjU3LDEyIEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBT
Y3JpcHRFeGVjdXRhYmxlIHsKICAgICBTdHJ1Y3R1cmUqIGNhY2hlZFBvbHlQcm90b1N0cnVjdHVy
ZSgpCiAgICAgewogICAgICAgICBpZiAoVU5MSUtFTFkobV9yYXJlRGF0YSkpCi0gICAgICAgICAg
ICByZXR1cm4gbV9yYXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUuZ2V0KCk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmVJ
RC5nZXQoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHZvaWQgc2V0Q2Fj
aGVkUG9seVByb3RvU3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
ewotICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLm1fY2FjaGVkUG9seVByb3RvU3RydWN0dXJlLnNl
dCh2bSwgdGhpcywgc3RydWN0dXJlKTsKKyAgICAgICAgZW5zdXJlUmFyZURhdGEoKS5tX2NhY2hl
ZFBvbHlQcm90b1N0cnVjdHVyZUlELnNldCh2bSwgdGhpcywgc3RydWN0dXJlKTsKICAgICB9CiAK
ICAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBlbnN1cmVQb2x5UHJvdG9XYXRjaHBvaW50KCkKQEAg
LTMxMCw4ICszMTAsOCBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMg
U2NyaXB0RXhlY3V0YWJsZSB7CiAgICAgICAgIHVuc2lnbmVkIG1fcGFyYW1ldGVyc1N0YXJ0T2Zm
c2V0IHsgMCB9OwogICAgICAgICB1bnNpZ25lZCBtX3R5cGVQcm9maWxpbmdTdGFydE9mZnNldCB7
IFVJTlRfTUFYIH07CiAgICAgICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ0VuZE9mZnNldCB7
IFVJTlRfTUFYIH07CisgICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fY2FjaGVkUG9s
eVByb3RvU3RydWN0dXJlSUQ7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZW1wbGF0ZU9iamVj
dE1hcD4gbV90ZW1wbGF0ZU9iamVjdE1hcDsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmU7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU1N0
cmluZz4gbV9hc1N0cmluZzsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3BwCmluZGV4IDEyMWQ0MzI4Y2EwOGZlYTkwMzk1
Y2YxMTFjYjQzZmM3ZmI1NTNhZWYuLmExM2RmYTQ1NjY4MzE4OGY3OTRkNzk5MzZhOTIxMzg1NjFm
MjMyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
UmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
UmFyZURhdGEuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgRnVuY3Rpb25SYXJlRGF0YTo6dmlz
aXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQogCiAgICAgcmFy
ZURhdGEtPm1fb2JqZWN0QWxsb2NhdGlvblByb2ZpbGUudmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7
CiAgICAgcmFyZURhdGEtPm1faW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLnZpc2l0
QWdncmVnYXRlKHZpc2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2JvdW5k
RnVuY3Rpb25TdHJ1Y3R1cmUpOworICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2JvdW5k
RnVuY3Rpb25TdHJ1Y3R1cmVJRCk7CiAgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fZXhl
Y3V0YWJsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uUmFyZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUmFyZURhdGEuaAppbmRleCAyY2EwODZkYmM2ZWJkZjc4MmUxZjYxNDEzYjEzZGYwMGNjYjE5
MDZmLi4wZjFlOTg1NjkzNTE2NDdhMTc5Mjk3NDczMDRlOGZhN2E2M2MyYmY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCkBAIC03Miw5
ICs3Miw3IEBAIGNsYXNzIEZ1bmN0aW9uUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Qcm9m
aWxlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEZ1bmN0aW9uUmFyZURhdGEsIG1fb2JqZWN0
QWxsb2NhdGlvblByb2ZpbGUpOyB9CiAgICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0
T2ZBbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9hbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQpOyB9
CiAgICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbnRlcm5hbEZ1bmN0aW9uQWxs
b2NhdGlvblByb2ZpbGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0
YSwgbV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUpOyB9Ci0gICAgc3RhdGljIGlu
bGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZCb3VuZEZ1bmN0aW9uU3RydWN0dXJlKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEZ1bmN0aW9uUmFyZURhdGEsIG1fYm91bmRGdW5jdGlvblN0cnVjdHVy
ZSk7IH0KICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkV4ZWN1dGFibGUoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9leGVjdXRhYmxlKTsg
fQotICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mQWxsb2NhdGlvblByb2ZpbGVD
bGVhcmluZ1dhdGNocG9pbnQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJl
RGF0YSwgbV9hbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludCk7IH0KIAogICAgIE9i
amVjdEFsbG9jYXRpb25Qcm9maWxlV2l0aFByb3RvdHlwZSogb2JqZWN0QWxsb2NhdGlvblByb2Zp
bGUoKQogICAgIHsKQEAgLTExMyw4ICsxMTEsOCBAQCBjbGFzcyBGdW5jdGlvblJhcmVEYXRhIGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgICAgICAgICBtX2FsbG9jYXRpb25Qcm9maWxlV2F0
Y2hwb2ludFNldC5zdGFydFdhdGNoaW5nKCk7CiAgICAgfQogCi0gICAgU3RydWN0dXJlKiBnZXRC
b3VuZEZ1bmN0aW9uU3RydWN0dXJlKCkgeyByZXR1cm4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJl
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRCb3VuZEZ1bmN0aW9uU3RydWN0dXJlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpIHsgbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgc3RydWN0dXJlKTsgfQorICAgIFN0cnVjdHVyZSogZ2V0Qm91bmRGdW5jdGlvblN0cnVjdHVy
ZSgpIHsgcmV0dXJuIG1fYm91bmRGdW5jdGlvblN0cnVjdHVyZUlELmdldCgpOyB9CisgICAgdm9p
ZCBzZXRCb3VuZEZ1bmN0aW9uU3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
IHsgbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlSUQuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOyB9
CiAKICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhl
Y3V0YWJsZS5nZXQoKTsgfQogCkBAIC0xNjAsNyArMTU4LDcgQEAgY2xhc3MgRnVuY3Rpb25SYXJl
RGF0YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIE9iamVjdEFsbG9jYXRpb25Qcm9maWxl
V2l0aFByb3RvdHlwZSBtX29iamVjdEFsbG9jYXRpb25Qcm9maWxlOwogICAgIElubGluZVdhdGNo
cG9pbnRTZXQgbV9hbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQ7CiAgICAgSW50ZXJuYWxG
dW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlIG1faW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYm91bmRGdW5jdGlvblN0cnVjdHVy
ZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmVJ
RDsKICAgICBXcml0ZUJhcnJpZXI8RXhlY3V0YWJsZUJhc2U+IG1fZXhlY3V0YWJsZTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8QWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9pbnQ+IG1fYWxs
b2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9pbnQ7CiAgICAgYm9vbCBtX2hhc1JlaWZpZWRM
ZW5ndGggOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKaW5kZXggZjdkOTc0NDljMjIzYjEyYTdkZjUw
YTdmMzQ1ZWVhMGI2YzZhMDA1NC4uNmVlMzIwZjdlM2Q5MDliNmNkMGUzNzkzNjFkYTBhYTBlODc1
N2M0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCkBAIC01MCw3ICs1MCw3IEBAIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0CiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1aW50MzJfdCBpbmRleGVkTGVu
Z3RoLCB1aW50MzJfdCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBXcml0ZUJhcnJpZXI8SlNT
dHJpbmc+KiBwcm9wZXJ0eU5hbWVzQnVmZmVyLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWVzU2l6ZSkK
ICAgICA6IEpTQ2VsbCh2bSwgdm0ucHJvcGVydHlOYW1lRW51bWVyYXRvclN0cnVjdHVyZS5nZXQo
KSkKICAgICAsIG1fcHJvcGVydHlOYW1lcyh2bSwgdGhpcywgcHJvcGVydHlOYW1lc0J1ZmZlcikK
LSAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQoc3RydWN0dXJlID8gc3RydWN0dXJlLT5pZCgpIDog
U3RydWN0dXJlSUQoKSkKKyAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQodm0sIHRoaXMsIHN0cnVj
dHVyZSwgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Ok1heUJlTnVsbCkKICAgICAsIG1faW5kZXhl
ZExlbmd0aChpbmRleGVkTGVuZ3RoKQogICAgICwgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4
KG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMpCiAgICAgLCBtX2VuZEdlbmVyaWNQcm9wZXJ0eUlu
ZGV4KHByb3BlcnR5TmFtZXNTaXplKQpAQCAtODYsOSArODYsNyBAQCB2b2lkIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2
aXNpdG9yKQogICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkocHJvcGVydHlOYW1lcyk7CiAg
ICAgICAgIHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZXMsIHByb3BlcnR5TmFtZXMgKyB0aGlz
T2JqZWN0LT5zaXplT2ZQcm9wZXJ0eU5hbWVzKCkpOwogICAgIH0KLQotICAgIGlmICh0aGlzT2Jq
ZWN0LT5jYWNoZWRTdHJ1Y3R1cmVJRCgpKQotICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmll
cmVkKHRoaXNPYmplY3QtPmNhY2hlZFN0cnVjdHVyZUlEKCkuZGVjb2RlKCkpOworICAgIHZpc2l0
b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FjaGVkU3RydWN0dXJlSUQpOwogfQogCiBERUZJTkVf
VklTSVRfQ0hJTERSRU4oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgK
aW5kZXggNTFkYzEzYjc5NWIwZGYyNTE4MzI0ZjVkNDUyZGIxMzE4MmE0ZDI4Yi4uNmQ2YWU4N2I4
YjM4YzQwY2UyNTYzYjgzNTZiYjA0YjQ1YzNkMzRhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKQEAgLTcz
LDExICs3Myw5IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBKU0NlbGwgewogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJlKFZNJiB2bSkgY29uc3QK
ICAgICB7CiAgICAgICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0gICAgICAgIGlmICghbV9jYWNoZWRT
dHJ1Y3R1cmVJRCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4g
bV9jYWNoZWRTdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkU3Ry
dWN0dXJlSUQuZ2V0KCk7CiAgICAgfQotICAgIFN0cnVjdHVyZUlEIGNhY2hlZFN0cnVjdHVyZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1cmVJRDsgfQorICAgIFN0cnVjdHVyZUlE
IGNhY2hlZFN0cnVjdHVyZUlEKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1cmVJRC52
YWx1ZSgpOyB9CiAgICAgdWludDMyX3QgaW5kZXhlZExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5kZXhlZExlbmd0aDsgfQogICAgIHVpbnQzMl90IGVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgo
KSBjb25zdCB7IHJldHVybiBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7IH0KICAgICB1aW50
MzJfdCBlbmRHZW5lcmljUHJvcGVydHlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kR2VuZXJp
Y1Byb3BlcnR5SW5kZXg7IH0KQEAgLTEwOCw3ICsxMDYsNyBAQCBjbGFzcyBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAvLyBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IgaXMgaW1tdXRhYmxlIGRhdGEgc3RydWN0dXJlLCB3aGljaCBhbGxvd3MgVk0g
dG8gY2FjaGUgdGhlIGVtcHR5IG9uZS4KICAgICAvLyBBZnRlciBpbnN0YW50aWF0aW5nIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciwgd2UgbXVzdCBub3QgY2hhbmdlIGFueSBmaWVsZHMuCiAgICAg
QXV4aWxpYXJ5QmFycmllcjxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+Kj4gbV9wcm9wZXJ0eU5hbWVz
OwotICAgIFN0cnVjdHVyZUlEIG1fY2FjaGVkU3RydWN0dXJlSUQ7CisgICAgV3JpdGVCYXJyaWVy
U3RydWN0dXJlSUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKICAgICB1aW50MzJfdCBtX2luZGV4ZWRM
ZW5ndGg7CiAgICAgdWludDMyX3QgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwogICAgIHVp
bnQzMl90IG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKaW5kZXggMmY2MWRlMWUyYzcx
Y2U0OTY2Y2M0N2Q1M2VhMDI0OTlmZWUwMDM4Yi4uNzY5MjUwZDY2NWYwNDkyZmVlM2MxZmEwN2Vl
ZjNlM2Y5YzJiODJjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlUmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVJhcmVEYXRhLmNwcApAQCAtNjAsMTEgKzYwLDEwIEBAIHZvaWQgU3RydWN0dXJl
UmFyZURhdGE6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogCiBTdHJ1Y3R1cmVSYXJlRGF0YTo6U3Ry
dWN0dXJlUmFyZURhdGEoVk0mIHZtLCBTdHJ1Y3R1cmUqIHByZXZpb3VzKQogICAgIDogSlNDZWxs
KHZtLCB2bS5zdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZS5nZXQoKSkKKyAgICAsIG1fcHJldmlv
dXModm0sIHRoaXMsIHByZXZpb3VzLCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6TWF5QmVOdWxs
KQogICAgICwgbV9tYXhPZmZzZXQoaW52YWxpZE9mZnNldCkKICAgICAsIG1fdHJhbnNpdGlvbk9m
ZnNldChpbnZhbGlkT2Zmc2V0KQogewotICAgIGlmIChwcmV2aW91cykKLSAgICAgICAgbV9wcmV2
aW91cy5zZXQodm0sIHRoaXMsIHByZXZpb3VzKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlz
aXRvcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJl
RGF0YS5oCmluZGV4IGNmMzFlOTI5MTNjOGM1NmQ5YjcyNWJmMGRiNDE4NTQxODExYWFhN2IuLjY4
YmQ5YTYxNWI2ZmZjZTlmYjJkMGQ3ZmNhYWFjMDk4NjQ1NTkzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaApAQCAtMTQwLDcgKzE0
MCw2IEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAK
ICAgICBib29sIHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0m
LCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmVDaGFpbiopOwogCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4gbV9wcmV2aW91czsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgc29tZSBzdG9y
eSBmb3IgY2xlYXJpbmcgdGhlc2UgcHJvcGVydHkgbmFtZXMgY2FjaGVzIGluIEdDLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2NTkKICAgICB1aW50
cHRyX3QgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyB7IDAgfTsKQEAgLTE1
Niw2ICsxNTUsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5hbCA6IHB1YmxpYyBKU0Nl
bGwgewogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVjaWFsUHJvcGVydHlDYWNoZT4gbV9zcGVjaWFs
UHJvcGVydHlDYWNoZTsKICAgICBCb3g8SW5saW5lV2F0Y2hwb2ludFNldD4gbV9wb2x5UHJvdG9X
YXRjaHBvaW50OwogCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9wcmV2aW91czsKICAg
ICBQcm9wZXJ0eU9mZnNldCBtX21heE9mZnNldDsKICAgICBQcm9wZXJ0eU9mZnNldCBtX3RyYW5z
aXRpb25PZmZzZXQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV3JpdGVCYXJyaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJh
cnJpZXIuaAppbmRleCA0ZDExODIxMDFlNTQ3YzZiYmU3ZmIxMGQ4NWFjNDY2ZTEyYzAyNmVkLi4x
NjFkNjM0MGU0ZDI3MTM4NDQ2ZjAxY2Q5ZDU1M2Q2OTQ3M2E3OWIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aW5jbHVkZSAiR0NBc3NlcnRpb25zLmgiCiAjaW5jbHVkZSAiSGFuZGxlVHlwZXMuaCIKKyNpbmNs
dWRlICJTdHJ1Y3R1cmVJRC5oIgogI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHd0
Zi9SYXdQdHJUcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvUmF3VmFsdWVUcmFpdHMuaD4KQEAgLTI0
OCw0ICsyNDksMTA0IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgV3JpdGVCYXJyaWVy
QmFzZTxVLCBUcmFpdHNVPiYgbGhzLCBjb25zdCBXcml0ZUJhcnJpCiAgICAgcmV0dXJuIGxocy5n
ZXQoKSA9PSByaHMuZ2V0KCk7CiB9CiAKK2NsYXNzIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIHsK
K3B1YmxpYzoKKyAgICBjb25zdGV4cHIgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQoKSA9IGRlZmF1
bHQ7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRChWTSYgdm0sIGNvbnN0IEpTQ2VsbCog
b3duZXIsIFN0cnVjdHVyZSogdmFsdWUpCisgICAgeworICAgICAgICBzZXQodm0sIG93bmVyLCB2
YWx1ZSk7CisgICAgfQorCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQoREZHOjpEZXNpcmVk
V3JpdGVCYXJyaWVyJiwgU3RydWN0dXJlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChp
c0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgICAgICBzZXRXaXRob3V0V3JpdGVCYXJyaWVyKHZh
bHVlKTsKKyAgICB9CisKKyAgICBlbnVtIE1heUJlTnVsbFRhZyB7IE1heUJlTnVsbCB9OworICAg
IFdyaXRlQmFycmllclN0cnVjdHVyZUlEKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgU3Ry
dWN0dXJlKiB2YWx1ZSwgTWF5QmVOdWxsVGFnKQorICAgIHsKKyAgICAgICAgc2V0TWF5QmVOdWxs
KHZtLCBvd25lciwgdmFsdWUpOworICAgIH0KKworICAgIHZvaWQgc2V0KFZNJiwgY29uc3QgSlND
ZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSk7CisKKyAgICB2b2lkIHNldE1heUJlTnVsbChW
TSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUpOworCisgICAgLy8gU2hv
dWxkIG9ubHkgYmUgdXNlZCBieSBKU0NlbGwgZHVyaW5nIGVhcmx5IGluaXRpYWxpc2F0aW9uCisg
ICAgLy8gd2hlbiBzb21lIGJhc2ljIHR5cGVzIGFyZW4ndCB5ZXQgY29tcGxldGVseSBpbnN0YW50
aWF0ZWQKKyAgICB2b2lkIHNldEVhcmx5VmFsdWUoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBT
dHJ1Y3R1cmUqIHZhbHVlKTsKKworICAgIFN0cnVjdHVyZSogZ2V0KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIC8vIENvcHkgbV9jZWxsIHRvIGEgbG9jYWwgdG8gYXZvaWQgbXVsdGlwbGUtcmVhZCBp
c3N1ZXMuIChTZWUgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwODU0PikKKyAgICAgICAgU3RydWN0
dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOworICAgICAgICBpZiAoc3RydWN0dXJl
SUQpIHsKKyAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3RydWN0dXJlSUQuZGVj
b2RlKCk7CisgICAgICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwq
PihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmU7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgU3RydWN0dXJlKiBvcGVyYXRv
ciooKSBjb25zdAorICAgIHsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0
cnVjdHVyZUlEOworICAgICAgICBBU1NFUlQoc3RydWN0dXJlSUQpOworICAgICAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZUlELmRlY29kZSgpOworICAgICAgICB2YWxpZGF0ZUNl
bGwocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgcmV0dXJu
IHN0cnVjdHVyZTsKKyAgICB9CisKKyAgICBTdHJ1Y3R1cmUqIG9wZXJhdG9yLT4oKSBjb25zdAor
ICAgIHsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOwor
ICAgICAgICBBU1NFUlQoc3RydWN0dXJlSUQpOworICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IHN0cnVjdHVyZUlELmRlY29kZSgpOworICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnBy
ZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsK
KyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIG1fc3RydWN0dXJlSUQg
PSBTdHJ1Y3R1cmVJRCB7IH07CisgICAgfQorCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISFtX3N0cnVjdHVyZUlEOworICAgIH0KKwor
ICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhbV9zdHJ1
Y3R1cmVJRDsKKyAgICB9CisKKyAgICB2b2lkIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIoU3RydWN0
dXJlKiB2YWx1ZSkKKyAgICB7CisjaWYgRU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQor
ICAgICAgICBXcml0ZUJhcnJpZXJDb3VudGVyczo6dXNlc1dpdGhvdXRCYXJyaWVyRnJvbUNwcC5j
b3VudCgpOworI2VuZGlmCisgICAgICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgICAgIG1fc3Ry
dWN0dXJlSUQgPSBTdHJ1Y3R1cmVJRCB7IH07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEOjplbmNvZGUodmFsdWUpOwor
ICAgIH0KKworICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRHZXQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOworICAgICAgICBp
ZiAoc3RydWN0dXJlSUQpCisgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlSUQuZGVjb2RlKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFN0cnVjdHVyZUlEIHZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9zdHJ1Y3R1cmVJRDsgfQorCitwcml2YXRlOgorICAgIFN0cnVj
dHVyZUlEIG1fc3RydWN0dXJlSUQ7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaAppbmRl
eCBmODg3ZTUzMWY5MWNhZTljYzQyZGNmNjA0YTMxNjIzZWQ5NzcyZWY4Li5lZTQwODAyYzE5YmYz
MWM5NmY5YzIzNzYyZWQ4ZGE4Y2ExMzczZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCkBAIC02MSw0ICs2MSwyOSBAQCBp
bmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25v
d24+Pjo6c2V0KFZNJiB2bSwgY29ucwogICAgIHZtLndyaXRlQmFycmllcihvd25lciwgdmFsdWUp
OwogfQogCitpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0KFZNJiB2bSwg
Y29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQodmFs
dWUpOworICAgIEFTU0VSVCghT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBp
bGF0aW9uVGhyZWFkKCkpOworICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2Vs
bCo+KHZhbHVlKSk7CisgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKK30KKwor
aW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldE1heUJlTnVsbChWTSYgdm0s
IGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUpCit7CisgICAgaWYgKHZhbHVl
KQorICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih2YWx1ZSkp
OworICAgIHNldEVhcmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Cit9CisKK2lubGluZSB2b2lk
IFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXRFYXJseVZhbHVlKFZNJiB2bSwgY29uc3QgSlND
ZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKSB7CisgICAg
ICAgIG1fc3RydWN0dXJlSUQgPSBTdHJ1Y3R1cmVJRCB7IH07CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEOjplbmNvZGUodmFsdWUpOworICAg
IHZtLndyaXRlQmFycmllcihvd25lciwgcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih2YWx1ZSkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pT
RG9sbGFyVk0uaAppbmRleCAwZjVkOGFkMzU5ZGI2NTI0YjAwMDRjNTE2Yjg1MDE2M2ZlNzc3MDM2
Li5iNzVkZThhOWY2MWMwYjYxMjQ5ZjAwMTdiYjdkNmQ2MTI2YjI5MGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmgKQEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgSlNE
b2xsYXJWTSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAgIERFQ0xBUkVf
VklTSVRfQ0hJTERSRU47CiAKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX29iamVjdERv
aW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZTsKKyAgICBX
cml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX29iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRD
b3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446259</attachid>
            <date>2021-12-07 17:11:49 -0800</date>
            <delta_ts>2021-12-07 17:28:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233918-20211207171149.patch</filename>
            <type>text/plain</type>
            <size>57073</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTZlMGQyOTkwZmJmNDdmMWRmMjY0ZTk5YmYwNGE3Yjc0NDAyODc3Li43MTFhNDE2NTVjM2VhMGQx
N2RlNTcyMzA4NzkwZmFiM2IyOGRiNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MyBAQAorMjAyMS0xMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEludHJvZHVjZSBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIGNsYXNzLCB3aGljaCBpcyBzaW1pbGFyIHRvIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+LCBidXQgaW50ZXJuYWxseSwKKyAgICAgICAgaXQgaG9sZHMg
U3RydWN0dXJlSUQsIHNvIHNpemVvZihXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCkgaXMgNC4gVGhp
cyBjbGFzcyBpcyB1c2VmdWwgdG8gdXNlIFN0cnVjdHVyZUlEIGZvcgorICAgICAgICBtZW1vcnkg
c2F2aW5nIHdoaWxlIGtlZXBpbmcgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4ncyB1c2VmdWwgZmVh
dHVyZXMgKGF1dG9tYXRpY2FsbHkgaW5zZXJ0cyB3cml0ZS1iYXJyaWVyIHdoZW4KKyAgICAgICAg
c2V0dGluZyBldGMuKS4gVGhpcyBhbHNvIHBhdmVzIHRoZSB3YXkgdG8gaW50cm9kdWNpbmcgRE9N
U3RydWN0dXJlcyBhcnJheSB3aXRoIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIGluc3RlYWQKKyAg
ICAgICAgb2YgY29zdGx5IEhhc2hNYXA8Q2xhc3NJbmZvKiwgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4+LgorCisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oOgorICAgICAgICAqIGJ5dGVj
b2RlL0lubGluZUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OklubGluZUFjY2Vzczo6cmV3aXJl
U3R1YkFzSnVtcEluQWNjZXNzKToKKyAgICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjpyZXNldFN0
dWJBc0p1bXBJbkFjY2Vzcyk6CisgICAgICAgICogYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlLmg6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb25BbGxvY2F0
aW9uUHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmVJRCk6CisgICAgICAgIChKU0M6OkludGVybmFs
RnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6c3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SW50
ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpjbGVhcik6CisgICAgICAgIChKU0M6Oklu
dGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRp
b25TdHJ1Y3R1cmVGcm9tQmFzZSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb25BbGxv
Y2F0aW9uUHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1
YkluZm86OmluaXRHZXRCeUlkU2VsZik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZv
Ojppbml0UHV0QnlJZFJlcGxhY2UpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
aW5pdEluQnlJZFNlbGYpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6YWRkQWNj
ZXNzQ2FzZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjpyZXNldCk6CisgICAg
ICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
OgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICog
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVDcmVhdGVQcm9taXNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QpOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAg
ICAgICAgKiBoZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBoZWFwL0Fic3Ry
YWN0U2xvdFZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkFic3RyYWN0U2xvdFZpc2l0
b3I6OmFwcGVuZCk6CisgICAgICAgIChKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZEhp
ZGRlbik6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5oOgorICAgICAgICAqIGhlYXAvU2xv
dFZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmQpOgor
ICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6YXBwZW5kSGlkZGVuKToKKyAgICAgICAgKiBqaXQv
QXNzZW1ibHlIZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0
Tm9uTnVsbERlY29kZVN0cnVjdHVyZUlEKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjplbWl0TG9hZFN0cnVjdHVyZSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgor
ICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
OmdlbmVyYXRlR2V0QnlJZElubGluZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5SWRH
ZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aCk6CisgICAgICAgIChKU0M6
OkpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKToKKyAg
ICAgICAgKiBydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OkZ1
bmN0aW9uRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAqIHJ1bnRpbWUv
RnVuY3Rpb25FeGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblJhcmVEYXRh
LmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25SYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwp
OgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51
bWVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNw
cDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OlN0cnVjdHVyZVJhcmVEYXRhKToK
KyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmg6CisgICAgICAgICogcnVudGlt
ZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6
OldyaXRlQmFycmllclN0cnVjdHVyZUlEKToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQ6OmdldCBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVy
ZUlEOjpvcGVyYXRvciogY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRDo6b3BlcmF0b3ItPiBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVj
dHVyZUlEOjpjbGVhcik6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpv
cGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQ6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVy
ZUlEOjpzZXRXaXRob3V0V3JpdGVCYXJyaWVyKToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVy
U3RydWN0dXJlSUQ6OnVudmFsaWRhdGVkR2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVC
YXJyaWVyU3RydWN0dXJlSUQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1dyaXRl
QmFycmllcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6
OnNldCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXRNYXlCZU51
bGwpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0RWFybHlWYWx1
ZSk6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5jcHA6CisgICAgICAgIChKU0M6OkpTRG9s
bGFyVk06OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6dmlzaXRD
aGlsZHJlbkltcGwpOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uaDoKKwogMjAyMS0xMi0w
NyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODY1MDIgYW5kIHIyODY1ODAuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaAppbmRleCBmZTFjZmZiYzY1OTg1ZThjMTQ3OWEy
Y2I1MzRhMmYzODg4Zjc1M2E2Li40MmI2NGEyMzRkMWJhMmJmNWE5NTgzNTA2YzYyMDFmMmRkOTdl
NDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2Fz
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmgKQEAg
LTM0OCw3ICszNDgsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICAvLyBVc3VhbGx5IHRoaXMgaXMgdGhlIHN0cnVjdHVy
ZSB0aGF0IHdlIGV4cGVjdCB0aGUgYmFzZSBvYmplY3QgdG8gaGF2ZS4gQnV0LCB0aGlzIGlzIHRo
ZSAqbmV3KgogICAgIC8vIHN0cnVjdHVyZSBmb3IgYSB0cmFuc2l0aW9uIGFuZCB3ZSByZWx5IG9u
IHRoZSBmYWN0IHRoYXQgaXQgaGFzIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGUgb2xkCiAgICAg
Ly8gc3RydWN0dXJlLiBGb3IgcHJveGllcywgdGhpcyBpcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBv
YmplY3QgYmVoaW5kIHRoZSBwcm94eS4KLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0
cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3N0cnVjdHVyZTsKIAogICAg
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IG1fY29uZGl0aW9uU2V0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCmluZGV4IDIxZWI0YzIy
MWQzNjdhODRmMDI5OTE4MGRhN2M4ZThhOTAzYjU3MmMuLmZiNWVlYTJkY2JhZjJjNDBhMDdmYWNi
N2Q1NzkzMzg4YzVjMjc2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9JbmxpbmVBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9JbmxpbmVBY2Nlc3MuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6
OnJld2lyZVN0dWJBc0p1bXBJbkFjY2VzcyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJl
U3R1YkkKICAgICAgICAgfQogCiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHRhcmdldDsK
LSAgICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlID0gU3RydWN0dXJl
SUQoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCisgICAgICAgIHN0dWJJ
bmZvLm1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELmNsZWFyKCk7IC8vIENsZWFyIG91dCB0
aGUgaW5saW5lIGFjY2VzcyBjb2RlLgogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NjQs
NyArNDY0LDcgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6OnJlc2V0U3R1YkFzSnVtcEluQWNjZXNzKENv
ZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW4KIHsKICAgICBpZiAoY29kZUJsb2Nr
LT51c2VEYXRhSUMoKSAmJiBjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGlu
ZUpJVCkgewogICAgICAgICBzdHViSW5mby5tX2NvZGVQdHIgPSBzdHViSW5mby5zbG93UGF0aFN0
YXJ0TG9jYXRpb247Ci0gICAgICAgIHN0dWJJbmZvLm1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVy
ZSA9IFN0cnVjdHVyZUlEKCk7IC8vIENsZWFyIG91dCB0aGUgaW5saW5lIGFjY2VzcyBjb2RlLgor
ICAgICAgICBzdHViSW5mby5tX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5jbGVhcigpOyAv
LyBDbGVhciBvdXQgdGhlIGlubGluZSBhY2Nlc3MgY29kZS4KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFs
RnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oCmluZGV4IGRmOGYzNzFhYmQx
ZDE5NjA3NmQ3NWI0YmRjMTI1ZWQzOWYzODI2MGQuLmIxNzdmZWZkMDYzNmUyMmViNTBmZmZiNjI5
ZWNlNDExODE0ZTJkZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgKQEAg
LTMzLDIxICszMywyMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZf
dCBvZmZzZXRPZlN0cnVjdHVyZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJbnRlcm5hbEZ1
bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUsIG1fc3RydWN0dXJlKTsgfQorICAgIHN0YXRpYyBpbmxp
bmUgcHRyZGlmZl90IG9mZnNldE9mU3RydWN0dXJlSUQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLCBtX3N0cnVjdHVyZUlEKTsgfQog
Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsg
fQorICAgIFN0cnVjdHVyZSogc3RydWN0dXJlKCkgeyByZXR1cm4gbV9zdHJ1Y3R1cmVJRC5nZXQo
KTsgfQogICAgIFN0cnVjdHVyZSogY3JlYXRlQWxsb2NhdGlvblN0cnVjdHVyZUZyb21CYXNlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogcHJvdG90eXBlLCBT
dHJ1Y3R1cmUqIGJhc2UpOwogCi0gICAgdm9pZCBjbGVhcigpIHsgbV9zdHJ1Y3R1cmUuY2xlYXIo
KTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQgdmlzaXRBZ2dyZWdhdGUo
VmlzaXRvciYgdmlzaXRvcikgeyB2aXNpdG9yLmFwcGVuZChtX3N0cnVjdHVyZSk7IH0KKyAgICB2
b2lkIGNsZWFyKCkgeyBtX3N0cnVjdHVyZUlELmNsZWFyKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBWaXNpdG9yPiB2b2lkIHZpc2l0QWdncmVnYXRlKFZpc2l0b3ImIHZpc2l0b3IpIHsgdmlz
aXRvci5hcHBlbmQobV9zdHJ1Y3R1cmVJRCk7IH0KIAogcHJpdmF0ZToKLSAgICBXcml0ZUJhcnJp
ZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X3N0cnVjdHVyZUlEOwogfTsKIAogaW5saW5lIFN0cnVjdHVyZSogSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlOjpjcmVhdGVBbGxvY2F0aW9uU3RydWN0dXJlRnJvbUJhc2UoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogYmFzZUdsb2JhbE9iamVjdCwgSlNDZWxsKiBvd25lciwgSlNPYmpl
Y3QqIHByb3RvdHlwZSwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlKQogewotICAgIEFTU0VSVCgh
bV9zdHJ1Y3R1cmUgfHwgbV9zdHJ1Y3R1cmUuZ2V0KCktPmNsYXNzSW5mbygpICE9IGJhc2VTdHJ1
Y3R1cmUtPmNsYXNzSW5mbygpIHx8IG1fc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSAhPSBiYXNl
U3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CisgICAgQVNTRVJUKCFtX3N0cnVjdHVyZUlEIHx8
IG1fc3RydWN0dXJlSUQuZ2V0KCktPmNsYXNzSW5mbygpICE9IGJhc2VTdHJ1Y3R1cmUtPmNsYXNz
SW5mbygpIHx8IG1fc3RydWN0dXJlSUQtPmdsb2JhbE9iamVjdCgpICE9IGJhc2VTdHJ1Y3R1cmUt
Pmdsb2JhbE9iamVjdCgpKTsKICAgICBBU1NFUlQoYmFzZVN0cnVjdHVyZS0+aGFzTW9ub1Byb3Rv
KCkpOwogCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CkBAIC02MSw4ICs2MSw4IEBAIGlubGlu
ZSBTdHJ1Y3R1cmUqIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6Y3JlYXRlQWxs
b2NhdGlvblN0cnVjdHVyZUZyCiAgICAgLy8gRW5zdXJlIHRoYXQgaWYgYW5vdGhlciB0aHJlYWQg
c2VlcyB0aGUgc3RydWN0dXJlLCBpdCB3aWxsIHNlZSBpdCBwcm9wZXJseSBjcmVhdGVkLgogICAg
IFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CiAKLSAgICBtX3N0cnVjdHVyZS5zZXQodm0sIG93bmVy
LCBzdHJ1Y3R1cmUpOwotICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKKyAgICBtX3N0cnVj
dHVyZUlELnNldCh2bSwgb3duZXIsIHN0cnVjdHVyZSk7CisgICAgcmV0dXJuIHN0cnVjdHVyZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA3MmYwMjkxMTFmNjU3YTFhMTRl
NTE4MGFiOTAwNGE5MGJjNjZkZGQwLi41ZmQ0MTkxMzU2N2Y2ZTg5NTBhYWJmNTkwZDlhMzBlNmUz
ODgwZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5jcHAKQEAgLTQ5LDggKzQ5LDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5m
bzo6aW5pdEdldEJ5SWRTZWxmKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmIGxvY2tlciwg
Q28KICAgICBBU1NFUlQoaGFzQ29uc3RhbnRJZGVudGlmaWVyKTsKICAgICBzZXRDYWNoZVR5cGUo
bG9ja2VyLCBDYWNoZVR5cGU6OkdldEJ5SWRTZWxmKTsKICAgICBtX2lkZW50aWZpZXIgPSBpZGVu
dGlmaWVyOwotICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSA9IGlubGluZUFjY2Vzc0Jh
c2VTdHJ1Y3R1cmUtPmlkKCk7Ci0gICAgY29kZUJsb2NrLT52bSgpLndyaXRlQmFycmllcihjb2Rl
QmxvY2spOworICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELnNldChjb2RlQmxvY2st
PnZtKCksIGNvZGVCbG9jaywgaW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSk7CiAgICAgYnlJZFNl
bGZPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTcxLDggKzcwLDcgQEAgdm9pZCBTdHJ1Y3R1cmVT
dHViSW5mbzo6aW5pdFB1dEJ5SWRSZXBsYWNlKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2Um
IGxvY2tlciwKICAgICBBU1NFUlQobV9jYWNoZVR5cGUgPT0gQ2FjaGVUeXBlOjpVbnNldCk7CiAg
ICAgc2V0Q2FjaGVUeXBlKGxvY2tlciwgQ2FjaGVUeXBlOjpQdXRCeUlkUmVwbGFjZSk7CiAgICAg
bV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1
cmUgPSBpbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlLT5pZCgpOwotICAgIGNvZGVCbG9jay0+dm0o
KS53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1
cmVJRC5zZXQoY29kZUJsb2NrLT52bSgpLCBjb2RlQmxvY2ssIGlubGluZUFjY2Vzc0Jhc2VTdHJ1
Y3R1cmUpOwogICAgIGJ5SWRTZWxmT2Zmc2V0ID0gb2Zmc2V0OwogfQogCkBAIC04MSw4ICs3OSw3
IEBAIHZvaWQgU3RydWN0dXJlU3R1YkluZm86OmluaXRJbkJ5SWRTZWxmKGNvbnN0IENvbmN1cnJl
bnRKU0xvY2tlckJhc2UmIGxvY2tlciwgQ29kCiAgICAgQVNTRVJUKG1fY2FjaGVUeXBlID09IENh
Y2hlVHlwZTo6VW5zZXQpOwogICAgIHNldENhY2hlVHlwZShsb2NrZXIsIENhY2hlVHlwZTo6SW5C
eUlkU2VsZik7CiAgICAgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICBtX2lubGluZUFj
Y2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBpbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlLT5pZCgpOwotICAg
IGNvZGVCbG9jay0+dm0oKS53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICBtX2lubGluZUFj
Y2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5zZXQoY29kZUJsb2NrLT52bSgpLCBjb2RlQmxvY2ssIGlubGlu
ZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOwogICAgIGJ5SWRTZWxmT2Zmc2V0ID0gb2Zmc2V0OwogfQog
CkBAIC0yMTYsMTEgKzIxMywxMSBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFN0cnVjdHVyZVN0
dWJJbmZvOjphZGRBY2Nlc3NDYXNlKAogICAgICAgICAvLyBhY2Nlc3MgY29kZS4gVGhhdCdzIGJl
Y2F1c2Ugd2hlbiB3ZSBmaXJzdCB0cmFuc2l0aW9uIHRvIGJlY29taW5nIGEgU3R1Yiwgd2UgbWF5
CiAgICAgICAgIC8vIGJlIGJ1ZmZlcmVkLCBhbmQgd2UgaGF2ZSBub3QgeWV0IGdlbmVyYXRlZCBh
bnkgY29kZS4gT25jZSB0aGUgU3R1YiBmaW5hbGx5IGdlbmVyYXRlcwogICAgICAgICAvLyBjb2Rl
LCB3ZSdyZSBubyBsb25nZXIgcnVubmluZyB0aGUgaW5saW5lIGFjY2VzcyBjb2RlLCBzbyB3ZSBj
YW4gdGhlbiBjbGVhciBvdXQKLSAgICAgICAgLy8gbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJl
LiBUaGUgcmVhc29uIHdlIGRvbid0IGNsZWFyIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSB3
aGlsZQotICAgICAgICAvLyB3ZSdyZSBidWZmZXJlZCBpcyBiZWNhdXNlIHdlIHJlbHkgb24gaXQg
dG8gcmVzZXQgZHVyaW5nIEdDIGlmIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZQorICAgICAg
ICAvLyBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC4gVGhlIHJlYXNvbiB3ZSBkb24ndCBj
bGVhciBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRCB3aGlsZQorICAgICAgICAvLyB3ZSdy
ZSBidWZmZXJlZCBpcyBiZWNhdXNlIHdlIHJlbHkgb24gaXQgdG8gcmVzZXQgZHVyaW5nIEdDIGlm
IG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlECiAgICAgICAgIC8vIGlzIGNvbGxlY3RlZC4K
ICAgICAgICAgbV9pZGVudGlmaWVyID0gbnVsbHB0cjsKLSAgICAgICAgbV9pbmxpbmVBY2Nlc3NC
YXNlU3RydWN0dXJlID0gU3RydWN0dXJlSUQoKTsKKyAgICAgICAgbV9pbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlSUQuY2xlYXIoKTsKICAgICAgICAgCiAgICAgICAgIC8vIElmIHdlIGdlbmVyYXRl
ZCBzb21lIGNvZGUgdGhlbiB3ZSBkb24ndCB3YW50IHRvIGF0dGVtcHQgdG8gcmVwYXRjaCBpbiB0
aGUgZnV0dXJlIHVudGlsIHdlCiAgICAgICAgIC8vIGdhdGhlciBlbm91Z2ggY2FzZXMuCkBAIC0y
MzUsNyArMjMyLDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6cmVzZXQoY29uc3QgQ29uY3Vy
cmVudEpTTG9ja2VyQmFzZSYgbG9ja2VyLCBDb2RlQmxvY2sqIGMKIHsKICAgICBjbGVhckJ1ZmZl
cmVkU3RydWN0dXJlcygpOwogICAgIG1faWRlbnRpZmllciA9IG51bGxwdHI7Ci0gICAgbV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlID0gU3RydWN0dXJlSUQoKTsKKyAgICBtX2lubGluZUFjY2Vz
c0Jhc2VTdHJ1Y3R1cmVJRC5jbGVhcigpOwogCiAgICAgaWYgKG1fY2FjaGVUeXBlID09IENhY2hl
VHlwZTo6VW5zZXQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXggNzNiYjNlMDVhNjJlYzBiMjFl
NzYxMTg3ODMxZWY3ZDEzOTdkOTgzOS4uYzAxZmY3ODAzYTViNzRkNzQ3ZjJjYTZhNDYxZjY0NThl
NDdjYmY5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKQEAgLTM1MywxNyArMzUzLDE1IEBAIGNsYXNzIFN0cnVjdHVyZVN0dWJJ
bmZvIHsKICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW47CiAgICAgUHJvcGVydHlPZmZzZXQgYnlJ
ZFNlbGZPZmZzZXQ7CiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkJ5SWRTZWxmT2Zmc2V0
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZVN0dWJJbmZvLCBieUlkU2VsZk9m
ZnNldCk7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0
cnVjdHVyZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVTdHViSW5mbywgbV9p
bmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
U3RydWN0dXJlU3R1YkluZm8sIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKTsgfQogICAg
IHVuaW9uIHsKICAgICAgICAgUG9seW1vcnBoaWNBY2Nlc3MqIHN0dWI7CiAgICAgfSB1OwogICAg
IFN0cnVjdHVyZSogaW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZShWTSYpCiAgICAgewotICAgICAg
ICBpZiAoIW1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSkKLSAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgICAgICByZXR1cm4gbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlLmRlY29k
ZSgpOworICAgICAgICByZXR1cm4gbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuZ2V0KCk7
CiAgICAgfQotICAgIFN0cnVjdHVyZUlEIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZTsKKyAg
ICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRDsK
IHByaXZhdGU6CiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgLy8g
UmVwcmVzZW50cyB0aG9zZSBzdHJ1Y3R1cmVzIHRoYXQgYWxyZWFkeSBoYXZlIGJ1ZmZlcmVkIEFj
Y2Vzc0Nhc2VzIGluIHRoZSBQb2x5bW9ycGhpY0FjY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggOTYyOWVlMTNjN2VhZmVjOTYz
MjY0MTk0MWNlMjU0NGM0Mjg1ZWJiNC4uZjkwODBlMjA3OTgzZWQ0NDBiYTFjM2U0OGZkNjFiYjYz
NGU5NzNiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTE0ODE5LDggKzE0ODE5LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNyZWF0ZVByb21pc2UoTm9kZSogbm9kZSkKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0
LmJyYW5jaElmTm90RnVuY3Rpb24oY2FsbGVlR1BSKSk7CiAgICAgbV9qaXQubG9hZFB0cihKSVRD
b21waWxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJs
ZU9yUmFyZURhdGEoKSksIHJhcmVEYXRhR1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0
LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJhcmVEYXRhR1BSLCBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZykpKTsKLSAgICBtX2pp
dC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJhcmVEYXRhR1BSLCBGdW5jdGlvblJhcmVE
YXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJu
YWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVjdHVyZSgpIC0gSlNGdW5j
dGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQo
bV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHN0cnVjdHVyZUdQUikpOwor
ICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6QWRkcmVzcyhyYXJlRGF0YUdQUiwgRnVuY3Rp
b25SYXJlRGF0YTo6b2Zmc2V0T2ZJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUoKSAr
IEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmVJRCgp
IC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOworICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgc3RydWN0dXJl
R1BSKSk7CisgICAgbV9qaXQuZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChzdHJ1Y3R1cmVH
UFIsIHN0cnVjdHVyZUdQUik7CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKG5vZGUtPmlz
SW50ZXJuYWxQcm9taXNlKCkgPyBKU0ludGVybmFsUHJvbWlzZTo6aW5mbygpIDogSlNQcm9taXNl
OjppbmZvKCkpLCBzY3JhdGNoMUdQUik7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFu
Y2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaDFHUFIsIENDYWxsSGVscGVyczo6
QWRkcmVzcyhzdHJ1Y3R1cmVHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpKSk7CiAg
ICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBn
bG9iYWxPYmplY3QpLCBzY3JhdGNoMUdQUik7CkBAIC0xNDg2Nyw4ICsxNDg2OCw5IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVJbnRlcm5hbEZpZWxkT2JqZWN0KE5vZGUqIG5v
ZGUsIE9wZXJhdGlvbiBvcGVyCiAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5v
dEZ1bmN0aW9uKGNhbGxlZUdQUikpOwogICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFk
ZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGVPclJhcmVEYXRh
KCkpLCByYXJlRGF0YUdQUik7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0
UHRyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCByYXJlRGF0YUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpKSk7Ci0gICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6QWRkcmVzcyhyYXJlRGF0YUdQUiwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0
T2ZJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUoKSArIEludGVybmFsRnVuY3Rpb25B
bGxvY2F0aW9uUHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmUoKSAtIEpTRnVuY3Rpb246OnJhcmVE
YXRhVGFnKSwgc3RydWN0dXJlR1BSKTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5j
aFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzdHJ1Y3R1cmVHUFIpKTsKKyAgICBtX2ppdC5s
b2FkMzIoSklUQ29tcGlsZXI6OkFkZHJlc3MocmFyZURhdGFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6
Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1
bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlSUQoKSAtIEpTRnVuY3Rp
b246OnJhcmVEYXRhVGFnKSwgc3RydWN0dXJlR1BSKTsKKyAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIHN0cnVjdHVyZUdQUikpOworICAg
IG1faml0LmVtaXROb25OdWxsRGVjb2RlU3RydWN0dXJlSUQoc3RydWN0dXJlR1BSLCBzdHJ1Y3R1
cmVHUFIpOwogICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cihKU0NsYXNzOjppbmZvKCkpLCBz
Y3JhdGNoMUdQUik7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hQdHIoQ0NhbGxI
ZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaDFHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHJ1
Y3R1cmVHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpKSk7CiAgICAgbV9qaXQubW92
ZShUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBnbG9iYWxPYmplY3Qp
LCBzY3JhdGNoMUdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IDMxNWY5MGQ0Y2VhMjM5OTZkZDA3MjhiNmI2
YmRjYjQ4NGJiYjFlNjAuLmFiMWY1Yjg2NzU5ZDA1NTY5ZDM4YzA0OGRjYzgzYWE3ZmQ1ZmIwZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oCkBAIC04NCw5ICs4NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKICAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX3Byb3RvdHlwZSwgRnVuY3Rpb25SYXJl
RGF0YTo6b2Zmc2V0T2ZPYmplY3RBbGxvY2F0aW9uUHJvZmlsZSgpICsgT2JqZWN0QWxsb2NhdGlv
blByb2ZpbGVXaXRoUHJvdG90eXBlOjpvZmZzZXRPZlByb3RvdHlwZSgpKSBcCiAgICAgbWFjcm8o
RnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQsIEZ1bmN0aW9u
UmFyZURhdGE6Om9mZnNldE9mQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KCkpIFwKICAg
ICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2V4ZWN1dGFibGUsIEZ1bmN0aW9uUmFyZURhdGE6Om9m
ZnNldE9mRXhlY3V0YWJsZSgpKSBcCi0gICAgbWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlLCBGdW5jdGlvblJhcmVEYXRhOjpv
ZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5j
dGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVjdHVyZSgpKSBcCi0gICAgbWFjcm8o
RnVuY3Rpb25SYXJlRGF0YV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlLCBGdW5jdGlvblJhcmVEYXRh
OjpvZmZzZXRPZkJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoKSkgXAotICAgIG1hY3JvKEZ1bmN0aW9u
UmFyZURhdGFfYWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9pbnQsIEZ1bmN0aW9uUmFy
ZURhdGE6Om9mZnNldE9mQWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9pbnQoKSkgXAor
ICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURhdGFfaW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlX3N0cnVjdHVyZUlELCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxl
OjpvZmZzZXRPZlN0cnVjdHVyZUlEKCkpIFwKICAgICBtYWNybyhHZXR0ZXJTZXR0ZXJfZ2V0dGVy
LCBHZXR0ZXJTZXR0ZXI6Om9mZnNldE9mR2V0dGVyKCkpIFwKICAgICBtYWNybyhHZXR0ZXJTZXR0
ZXJfc2V0dGVyLCBHZXR0ZXJTZXR0ZXI6Om9mZnNldE9mU2V0dGVyKCkpIFwKICAgICBtYWNybyhK
U0FycmF5QnVmZmVyVmlld19sZW5ndGgsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0
aCgpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggMDBlZGE1NmE4MzU4MWFlZWUwMjRjMWZmMjUzZjBjMjBhNmQzZDQ0OC4uMmIxMWY2YWMz
ZGJlMWYwZjdkYTk2MjZjZDJlNDFlNWY4OTdiNmY2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNzg3NywxMCArNzg3NywxMSBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaGFzUmFyZURh
dGEsIGhhc1N0cnVjdHVyZSk7CiAgICAgICAgIExWYWx1ZSByYXJlRGF0YSA9IG1fb3V0LnN1Yihy
YXJlRGF0YVRhZ3MsIG1fb3V0LmNvbnN0SW50UHRyKEpTRnVuY3Rpb246OnJhcmVEYXRhVGFnKSk7
Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKHJhcmVEYXRhLCBtX2hl
YXBzLkZ1bmN0aW9uUmFyZURhdGFfaW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlX3N0
cnVjdHVyZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm82NChzdHJ1Y3R1cmUp
LCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOworICAgICAgICBMVmFs
dWUgc3RydWN0dXJlSUQgPSBtX291dC5sb2FkMzIocmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25S
YXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQpOwor
ICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIoc3RydWN0dXJlSUQpLCByYXJlbHko
c2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOwogCiAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGhhc1N0cnVjdHVyZSwgY2hlY2tHbG9iYWxPYmplY3RDYXNlKTsKKyAgICAgICAgTFZhbHVl
IHN0cnVjdHVyZSA9IGRlY29kZU5vbk51bGxTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpOwogICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobV9vdXQubG9hZFB0cihzdHJ1Y3R1cmUsIG1faGVh
cHMuU3RydWN0dXJlX2NsYXNzSW5mbyksIG1fb3V0LmNvbnN0SW50UHRyKG1fbm9kZS0+aXNJbnRl
cm5hbFByb21pc2UoKSA/IEpTSW50ZXJuYWxQcm9taXNlOjppbmZvKCkgOiBKU1Byb21pc2U6Omlu
Zm8oKSkpLCB1c3VhbGx5KGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSksIHJhcmVseShzbG93Q2FzZSkp
OwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSwgZmFzdEFs
bG9jYXRpb25DYXNlKTsKQEAgLTc5MzIsMTAgKzc5MzMsMTEgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGhhc1JhcmVEYXRhLCBoYXNTdHJ1Y3R1
cmUpOwogICAgICAgICBMVmFsdWUgcmFyZURhdGEgPSBtX291dC5zdWIocmFyZURhdGFUYWdzLCBt
X291dC5jb25zdEludFB0cihKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZykpOwotICAgICAgICBMVmFs
dWUgc3RydWN0dXJlID0gbV9vdXQubG9hZFB0cihyYXJlRGF0YSwgbV9oZWFwcy5GdW5jdGlvblJh
cmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9zdHJ1Y3R1cmUpOwotICAg
ICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvNjQoc3RydWN0dXJlKSwgcmFyZWx5KHNsb3dD
YXNlKSwgdXN1YWxseShoYXNTdHJ1Y3R1cmUpKTsKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUlE
ID0gbV9vdXQubG9hZDMyKHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfaW50ZXJu
YWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlX3N0cnVjdHVyZUlEKTsKKyAgICAgICAgbV9vdXQu
YnJhbmNoKG1fb3V0LmlzWmVybzMyKHN0cnVjdHVyZUlEKSwgcmFyZWx5KHNsb3dDYXNlKSwgdXN1
YWxseShoYXNTdHJ1Y3R1cmUpKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhoYXNTdHJ1Y3R1
cmUsIGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSk7CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBk
ZWNvZGVOb25OdWxsU3RydWN0dXJlKHN0cnVjdHVyZUlEKTsKICAgICAgICAgbV9vdXQuYnJhbmNo
KG1fb3V0LmVxdWFsKG1fb3V0LmxvYWRQdHIoc3RydWN0dXJlLCBtX2hlYXBzLlN0cnVjdHVyZV9j
bGFzc0luZm8pLCBtX291dC5jb25zdEludFB0cihKU0NsYXNzOjppbmZvKCkpKSwgdXN1YWxseShj
aGVja0dsb2JhbE9iamVjdENhc2UpLCByYXJlbHkoc2xvd0Nhc2UpKTsKIAogICAgICAgICBtX291
dC5hcHBlbmRUbyhjaGVja0dsb2JhbE9iamVjdENhc2UsIGZhc3RBbGxvY2F0aW9uQ2FzZSk7CkBA
IC0yMDk3MywxMyArMjA5NzUsMTggQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAg
ICBtX2dyYXBoLm1fcGxhbi53ZWFrUmVmZXJlbmNlcygpLmFkZExhemlseSh0YXJnZXQpOwogICAg
IH0KIAotICAgIExWYWx1ZSBsb2FkU3RydWN0dXJlKExWYWx1ZSB2YWx1ZSkKKyAgICBMVmFsdWUg
ZGVjb2RlTm9uTnVsbFN0cnVjdHVyZShMVmFsdWUgc3RydWN0dXJlSUQpCiAgICAgewotICAgICAg
ICBMVmFsdWUgc3RydWN0dXJlSUQgPSBtX291dC5sb2FkMzIodmFsdWUsIG1faGVhcHMuSlNDZWxs
X3N0cnVjdHVyZUlEKTsKICAgICAgICAgTFZhbHVlIG1hc2tlZFN0cnVjdHVyZUlEID0gbV9vdXQu
Yml0QW5kKHN0cnVjdHVyZUlELCBtX291dC5jb25zdEludDMyKHN0cnVjdHVyZUlETWFzaykpOwog
ICAgICAgICByZXR1cm4gbV9vdXQuYWRkKG1fb3V0LmNvbnN0SW50UHRyKGdfanNjQ29uZmlnLnN0
YXJ0T2ZTdHJ1Y3R1cmVIZWFwKSwgbV9vdXQuemVyb0V4dFB0cihtYXNrZWRTdHJ1Y3R1cmVJRCkp
OwogICAgIH0KIAorICAgIExWYWx1ZSBsb2FkU3RydWN0dXJlKExWYWx1ZSB2YWx1ZSkKKyAgICB7
CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0LmxvYWQzMih2YWx1ZSwgbV9oZWFw
cy5KU0NlbGxfc3RydWN0dXJlSUQpOworICAgICAgICByZXR1cm4gZGVjb2RlTm9uTnVsbFN0cnVj
dHVyZShzdHJ1Y3R1cmVJRCk7CisgICAgfQorCiAgICAgTFZhbHVlIHdlYWtQb2ludGVyKEpTQ2Vs
bCogcG9pbnRlcikKICAgICB7CiAgICAgICAgIGFkZFdlYWtSZWZlcmVuY2UocG9pbnRlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9yLmgKaW5k
ZXggYmMyOWY3NDE5MzM5OGQxNGNmZjQyNTNmNjI2ODZkZjE4MjQ3ODMwYS4uZDZmNDE2MmZmYWI5
ZmNkYTJiNGEyZGM2ZjM4NDNkYmY2NmU5MjEyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3IuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBW
TTsKIGNsYXNzIFZlcmlmaWVyU2xvdFZpc2l0b3I7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBXZWFrOwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiBjbGFzcyBXcml0
ZUJhcnJpZXJCYXNlOworY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ7CiAKIGNsYXNzIEFi
c3RyYWN0U2xvdFZpc2l0b3IgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFic3RyYWN0U2xv
dFZpc2l0b3IpOwpAQCAtMTQzLDYgKzE0NCw4IEBAIGNsYXNzIEFic3RyYWN0U2xvdFZpc2l0b3Ig
ewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiB2b2lkIGFwcGVu
ZChjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0cz4mKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBwZW5kSGlkZGVuKGNvbnN0IFdyaXRlQmFy
cmllckJhc2U8VCwgVHJhaXRzPiYpOworICAgIHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmll
clN0cnVjdHVyZUlEJik7CisgICAgdm9pZCBhcHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVy
U3RydWN0dXJlSUQmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBhcHBl
bmQoSXRlcmF0b3IgYmVnaW4gLCBJdGVyYXRvciBlbmQpOwogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBhcHBlbmRWYWx1ZXMoY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRy
YWl0czxVbmtub3duPj4qLCBzaXplX3QgY291bnQpOwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBh
cHBlbmRWYWx1ZXNIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBSYXdWYWx1
ZVRyYWl0czxVbmtub3duPj4qLCBzaXplX3QgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvcklubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3JJbmxpbmVzLmgKaW5kZXggYWY2
NjAzODY0YzZlYmZlMmVmZTFkYzkwOGExYmQ4NTEzYzZlYmY1OC4uNjI4NDM4MmUwMDIxMTU2OThl
NTI5NTZiMmQzMWJkZjgxNjZkMmM2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9ySW5saW5lcy5oCkBAIC0xNTgsNiArMTU4LDE2
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBBYnN0cmFjdFNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW4o
Y29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUCiAgICAgYXBwZW5kSGlkZGVuVW5iYXJyaWVyZWQo
c2xvdC5nZXQoKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBBYnN0cmFjdFNsb3RWaXNpdG9y
OjphcHBlbmQoY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmIHNsb3QpCit7CisgICAgYXBw
ZW5kVW5iYXJyaWVyZWQocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzbG90LmdldCgpKSk7Cit9
CisKK0FMV0FZU19JTkxJTkUgdm9pZCBBYnN0cmFjdFNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW4o
Y29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmIHNsb3QpCit7CisgICAgYXBwZW5kSGlkZGVu
VW5iYXJyaWVyZWQocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzbG90LmdldCgpKSk7Cit9CisK
IEFMV0FZU19JTkxJTkUgdm9pZCBBYnN0cmFjdFNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW5VbmJh
cnJpZXJlZChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pc0NlbGwoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCmluZGV4IDUwMzYzNjkzODQyOTY0MzUy
YzBkMDIwYmJlYjk5MGJlMjFkN2E4NDcuLjA2ZmQ0YWQ5MDRkMGQ4ZTQwMmE4ODc0ZDNjN2E2NjQ4
NmExYTZiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaApAQCAt
OTIsNiArOTIsOCBAQCBjbGFzcyBTbG90VmlzaXRvciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFNs
b3RWaXNpdG9yIHsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4g
dm9pZCBhcHBlbmQoY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUcmFpdHM+Jik7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiB2b2lkIGFwcGVuZEhpZGRlbihjb25z
dCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0cz4mKTsKKyAgICB2b2lkIGFwcGVuZChjb25zdCBX
cml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYpOworICAgIHZvaWQgYXBwZW5kSGlkZGVuKGNvbnN0IFdy
aXRlQmFycmllclN0cnVjdHVyZUlEJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlcmF0b3I+
IHZvaWQgYXBwZW5kKEl0ZXJhdG9yIGJlZ2luICwgSXRlcmF0b3IgZW5kKTsKICAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgYXBwZW5kVmFsdWVzKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VW5rbm93biwg
UmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+Kiwgc2l6ZV90IGNvdW50KTsKICAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgYXBwZW5kVmFsdWVzSGlkZGVuKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VW5rbm93
biwgUmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+Kiwgc2l6ZV90IGNvdW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgKaW5kZXggNDRmMjA5YzU5
NGU5ZjQ4Zjk0Zjk5Nzc0Y2U2NDRlOGZkZGJlODFjMi4uNTQyMjNhNjQ3OTZhZmU5NjJkZDc2ZGIy
MzljMDFjYzJlZmI1N2VhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3JJbmxpbmVzLmgKQEAgLTExNiw2ICsxMTYsMTYgQEAgQUxXQVlTX0lOTElORSB2b2lk
IFNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUcmFp
dHM+JgogICAgIGFwcGVuZEhpZGRlblVuYmFycmllcmVkKHNsb3QuZ2V0KCkpOwogfQogCitBTFdB
WVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJTdHJ1
Y3R1cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRVbmJhcnJpZXJlZChyZWludGVycHJldF9jYXN0
PEpTQ2VsbCo+KHNsb3QuZ2V0KCkpKTsKK30KKworQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNp
dG9yOjphcHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmIHNsb3QpCit7
CisgICAgYXBwZW5kSGlkZGVuVW5iYXJyaWVyZWQocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihz
bG90LmdldCgpKSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yPgogQUxXQVlTX0lO
TElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQoSXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9yIGVu
ZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApp
bmRleCA5M2Q5YjMzYTNkNDUyYTE3YTExZDNhZmRiOGViMjZmNjY3NDZjMWRiLi4zM2IyYjI3YjI2
MDYwOTU5MjEzNmQ0NjU4NTY1NjEwNjdmNzAxNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC0zODksOSArMzg5LDkgQEAgdm9pZCBBc3Nl
bWJseUhlbHBlcnM6OnN0b3JlUHJvcGVydHkoSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBvYmpl
Y3QsIEdQUlJlZyBvZmYKICAgICAgICAgQmFzZUluZGV4KHNjcmF0Y2gsIG9mZnNldCwgVGltZXNF
aWdodCwgKGZpcnN0T3V0T2ZMaW5lT2Zmc2V0IC0gMikgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSk7CiB9CiAKLXZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZShWTSYsIFJl
Z2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCit2b2lkIEFzc2VtYmx5SGVscGVyczo6
ZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChSZWdpc3RlcklEIHNvdXJjZSwgUmVnaXN0ZXJJ
RCBkZXN0KQogewotICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzb3VyY2UsIEpT
Q2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIGRlc3QpOworICAgIG1vdmUoc291cmNlLCBkZXN0
KTsKICNpZiBDUFUoQUREUkVTUzY0KQogICAgIC8vIFRoaXMgY291bGQgdXNlIEJGSSBvbiBhcm02
NCBidXQgdGhhdCBvbmx5IGhlbHBzIGlmIHRoZSBzdGFydCBvZiBzdHJ1Y3R1cmUgaGVhcCBpcyBl
bmNvZGFibGUgYXMgYSBtb3YgYW5kIG5vdCBhcyBhbiBpbW1lZGlhdGUgaW4gdGhlIGFkZCBzbyBp
dCdzIHByb2JhYmx5IG5vdCBzdXBlciBpbXBvcnRhbnQuCiAgICAgYW5kMzIoVHJ1c3RlZEltbTMy
KHN0cnVjdHVyZUlETWFzayksIGRlc3QpOwpAQCAtMzk5LDYgKzM5OSwxMiBAQCB2b2lkIEFzc2Vt
Ymx5SGVscGVyczo6ZW1pdExvYWRTdHJ1Y3R1cmUoVk0mLCBSZWdpc3RlcklEIHNvdXJjZSwgUmVn
aXN0ZXJJRCBkZXN0KQogI2VuZGlmIC8vIG5vdCBDUFUoQUREUkVTUzY0KQogfQogCit2b2lkIEFz
c2VtYmx5SGVscGVyczo6ZW1pdExvYWRTdHJ1Y3R1cmUoVk0mLCBSZWdpc3RlcklEIHNvdXJjZSwg
UmVnaXN0ZXJJRCBkZXN0KQoreworICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
b3VyY2UsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIGRlc3QpOworICAgIGVtaXROb25O
dWxsRGVjb2RlU3RydWN0dXJlSUQoZGVzdCwgZGVzdCk7Cit9CisKIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjplbWl0TG9hZFByb3RvdHlwZShWTSYgdm0sIEdQUlJlZyBvYmplY3RHUFIsIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3MsIEp1bXBMaXN0JiBzbG93UGF0aCkKIHsKICAgICBBU1NFUlQocmVzdWx0
UmVncy5wYXlsb2FkR1BSKCkgIT0gb2JqZWN0R1BSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGM2ZWY1NTEyMmUzNzRlYTg5YjdmNTQ3NmQ0NmMx
MDdhMTliMzcxNTYuLmY3MTc2MGJmMDViYTJjZTNkMmVhZDU1MmQ2YWE0MjJiNWI2MDlmODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTU3Nyw2
ICsxNTc3LDcgQEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVy
IHsKICAgICAgICAgcmV0dXJuIGFyZ3VtZW50Q291bnQoY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJh
bWUoKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJ
RChSZWdpc3RlcklEIHNvdXJjZSwgUmVnaXN0ZXJJRCBkZXN0KTsKICAgICB2b2lkIGVtaXRMb2Fk
U3RydWN0dXJlKFZNJiwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJlZ2lzdGVySUQgZGVzdCk7CiAgICAg
dm9pZCBlbWl0TG9hZFByb3RvdHlwZShWTSYsIEdQUlJlZyBvYmplY3RHUFIsIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MsIEp1bXBMaXN0JiBzbG93UGF0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKaW5kZXggYzY3YmNl
MDlmZmJjNjBlMjQzM2U2MjJlMzc4Mjc4Y2YyMDc0YjRiZS4uMDRmZjIyZTZlNDI1YTAzYzYxNDE0
NzA1NjdmMzdkYTYzNjUzNGFlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGpp
dCkKIHN0YXRpYyB2b2lkIGdlbmVyYXRlR2V0QnlJZElubGluZUFjY2VzcyhKSVQmIGppdCwgR1BS
UmVnIHN0dWJJbmZvR1BSLCBKU1ZhbHVlUmVncyBiYXNlSlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0SlNSKQogewogICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKGJhc2VKU1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkp
LCBzY3JhdGNoR1BSKTsKLSAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKEND
YWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHVi
SW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVj
dHVyZSgpKSk7CisgICAgYXV0byBkb0lubGluZUFjY2VzcyA9IGppdC5icmFuY2gzMihDQ2FsbEhl
bHBlcnM6OkVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9H
UFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJ
RCgpKSk7CiAgICAgaml0LmZhckp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BS
LCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGluZVB0
clRhZyk7CiAgICAgZG9JbmxpbmVBY2Nlc3MubGluaygmaml0KTsKICAgICBqaXQubG9hZDMyKEND
YWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNl
dE9mQnlJZFNlbGZPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwpAQCAtMjIxLDcgKzIyMSw3IEBAIHZv
aWQgSklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJ
VCYgaml0LCB1bnNpZ25lZCBzdHViCiAgICAgdXNpbmcgQmFzZWxpbmVQdXRCeUlkUmVnaXN0ZXJz
OjpzY3JhdGNoMkdQUjsKIAogICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJh
c2VKU1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNo
R1BSKTsKLSAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVy
czo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwg
U3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSgpKSk7
CisgICAgYXV0byBkb0lubGluZUFjY2VzcyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkVx
dWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVj
dHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRCgpKSk7CiAg
ICAgaml0LmZhckp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1
cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGluZVB0clRhZyk7CiAg
ICAgZG9JbmxpbmVBY2Nlc3MubGluaygmaml0KTsKICAgICBqaXQubG9hZDMyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQnlJZFNl
bGZPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwpAQCAtNDEyLDcgKzQxMiw3IEBAIHZvaWQgSklUSW5C
eUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVu
c2lnbmVkIHN0dWJJCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCiAgICAgaml0
LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2Vs
bDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1dG8gc2tpcElubGlu
ZUFjY2VzcyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BS
LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpv
ZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUoKSkpOworICAgIGF1dG8gc2tpcElubGlu
ZUFjY2VzcyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BS
LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpv
ZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRCgpKSk7CiAgICAgaml0LmJveEJvb2xl
YW4odHJ1ZSwgcmVzdWx0SlNSKTsKICAgICBhdXRvIGZpbmlzaGVkID0gaml0Lmp1bXAoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJs
ZS5jcHAKaW5kZXggMTJkNDk5YTRlNDUwNGNlYzE4NGQ3ZGJmNWMzNmVmZWRlYjFhYjQ3My4uYTE3
NjQ3YWM5YWEyM2U3NTQ3NTY3MmU0YzZlYjUyZmQwNTllNGI2YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjp2aXNpdENoaWxkcmVuSW1wbChKU0Nl
bGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVj
dC0+bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QpOwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmpl
Y3QtPm1fdW5saW5rZWRFeGVjdXRhYmxlKTsKICAgICBpZiAoUmFyZURhdGEqIHJhcmVEYXRhID0g
dGhpc09iamVjdC0+bV9yYXJlRGF0YS5nZXQoKSkgewotICAgICAgICB2aXNpdG9yLmFwcGVuZChy
YXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUpOworICAgICAgICB2aXNpdG9yLmFw
cGVuZChyYXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHZp
c2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2FzU3RyaW5nKTsKICAgICAgICAgaWYgKFRlbXBsYXRl
T2JqZWN0TWFwKiBtYXAgPSByYXJlRGF0YS0+bV90ZW1wbGF0ZU9iamVjdE1hcC5nZXQoKSkgewog
ICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHRoaXNPYmplY3QtPmNlbGxMb2NrKCkgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJs
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgK
aW5kZXggYTdmNzc1MTNlOGFkZTBmZWJmN2E5YjMyZWY5M2RmOWIwZTZiYTI2MS4uZmE5NTA0NTNh
NTQxMmM3MjAwZjVhODI1Yjg2Y2ZhMDc2NWY5ZDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAgLTI1NywxMiArMjU3LDEy
IEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRh
YmxlIHsKICAgICBTdHJ1Y3R1cmUqIGNhY2hlZFBvbHlQcm90b1N0cnVjdHVyZSgpCiAgICAgewog
ICAgICAgICBpZiAoVU5MSUtFTFkobV9yYXJlRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gbV9y
YXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUuZ2V0KCk7CisgICAgICAgICAgICBy
ZXR1cm4gbV9yYXJlRGF0YS0+bV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmVJRC5nZXQoKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHZvaWQgc2V0Q2FjaGVkUG9seVByb3Rv
U3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICBl
bnN1cmVSYXJlRGF0YSgpLm1fY2FjaGVkUG9seVByb3RvU3RydWN0dXJlLnNldCh2bSwgdGhpcywg
c3RydWN0dXJlKTsKKyAgICAgICAgZW5zdXJlUmFyZURhdGEoKS5tX2NhY2hlZFBvbHlQcm90b1N0
cnVjdHVyZUlELnNldCh2bSwgdGhpcywgc3RydWN0dXJlKTsKICAgICB9CiAKICAgICBJbmxpbmVX
YXRjaHBvaW50U2V0JiBlbnN1cmVQb2x5UHJvdG9XYXRjaHBvaW50KCkKQEAgLTMxMCw4ICszMTAs
OCBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0
YWJsZSB7CiAgICAgICAgIHVuc2lnbmVkIG1fcGFyYW1ldGVyc1N0YXJ0T2Zmc2V0IHsgMCB9Owog
ICAgICAgICB1bnNpZ25lZCBtX3R5cGVQcm9maWxpbmdTdGFydE9mZnNldCB7IFVJTlRfTUFYIH07
CiAgICAgICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ0VuZE9mZnNldCB7IFVJTlRfTUFYIH07
CisgICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fY2FjaGVkUG9seVByb3RvU3RydWN0
dXJlSUQ7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZW1wbGF0ZU9iamVjdE1hcD4gbV90ZW1w
bGF0ZU9iamVjdE1hcDsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jYWNoZWRQ
b2x5UHJvdG9TdHJ1Y3R1cmU7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU1N0cmluZz4gbV9hc1N0
cmluZzsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblJhcmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUmFyZURhdGEuY3BwCmluZGV4IDEyMWQ0MzI4Y2EwOGZlYTkwMzk1Y2YxMTFjYjQzZmM3
ZmI1NTNhZWYuLmExM2RmYTQ1NjY4MzE4OGY3OTRkNzk5MzZhOTIxMzg1NjFmMjMyNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgRnVuY3Rpb25SYXJlRGF0YTo6dmlzaXRDaGlsZHJlbklt
cGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQogCiAgICAgcmFyZURhdGEtPm1fb2Jq
ZWN0QWxsb2NhdGlvblByb2ZpbGUudmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiAgICAgcmFyZURh
dGEtPm1faW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLnZpc2l0QWdncmVnYXRlKHZp
c2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2JvdW5kRnVuY3Rpb25TdHJ1
Y3R1cmUpOworICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2JvdW5kRnVuY3Rpb25TdHJ1
Y3R1cmVJRCk7CiAgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fZXhlY3V0YWJsZSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFy
ZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
aAppbmRleCAyY2EwODZkYmM2ZWJkZjc4MmUxZjYxNDEzYjEzZGYwMGNjYjE5MDZmLi4wZjFlOTg1
NjkzNTE2NDdhMTc5Mjk3NDczMDRlOGZhN2E2M2MyYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCkBAIC03Miw5ICs3Miw3IEBAIGNs
YXNzIEZ1bmN0aW9uUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBzdGF0aWMg
aW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Qcm9maWxlKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKEZ1bmN0aW9uUmFyZURhdGEsIG1fb2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGUpOyB9CiAgICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZBbGxvY2F0aW9u
UHJvZmlsZVdhdGNocG9pbnRTZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25S
YXJlRGF0YSwgbV9hbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQpOyB9CiAgICAgc3RhdGlj
IGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2Zp
bGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9pbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUpOyB9Ci0gICAgc3RhdGljIGlubGluZSBwdHJkaWZm
X3Qgb2Zmc2V0T2ZCb3VuZEZ1bmN0aW9uU3RydWN0dXJlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEZ1bmN0aW9uUmFyZURhdGEsIG1fYm91bmRGdW5jdGlvblN0cnVjdHVyZSk7IH0KICAgICBz
dGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkV4ZWN1dGFibGUoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9leGVjdXRhYmxlKTsgfQotICAgIHN0YXRp
YyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mQWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNo
cG9pbnQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9hbGxv
Y2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludCk7IH0KIAogICAgIE9iamVjdEFsbG9jYXRp
b25Qcm9maWxlV2l0aFByb3RvdHlwZSogb2JqZWN0QWxsb2NhdGlvblByb2ZpbGUoKQogICAgIHsK
QEAgLTExMyw4ICsxMTEsOCBAQCBjbGFzcyBGdW5jdGlvblJhcmVEYXRhIGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAgICAgICAgICAgICBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldC5z
dGFydFdhdGNoaW5nKCk7CiAgICAgfQogCi0gICAgU3RydWN0dXJlKiBnZXRCb3VuZEZ1bmN0aW9u
U3RydWN0dXJlKCkgeyByZXR1cm4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9Ci0g
ICAgdm9pZCBzZXRCb3VuZEZ1bmN0aW9uU3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpIHsgbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgc3RydWN0dXJl
KTsgfQorICAgIFN0cnVjdHVyZSogZ2V0Qm91bmRGdW5jdGlvblN0cnVjdHVyZSgpIHsgcmV0dXJu
IG1fYm91bmRGdW5jdGlvblN0cnVjdHVyZUlELmdldCgpOyB9CisgICAgdm9pZCBzZXRCb3VuZEZ1
bmN0aW9uU3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIHsgbV9ib3VuZEZ1
bmN0aW9uU3RydWN0dXJlSUQuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOyB9CiAKICAgICBFeGVj
dXRhYmxlQmFzZSogZXhlY3V0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhlY3V0YWJsZS5nZXQo
KTsgfQogCkBAIC0xNjAsNyArMTU4LDcgQEAgY2xhc3MgRnVuY3Rpb25SYXJlRGF0YSBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewogICAgIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlV2l0aFByb3RvdHlw
ZSBtX29iamVjdEFsbG9jYXRpb25Qcm9maWxlOwogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9h
bGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQ7CiAgICAgSW50ZXJuYWxGdW5jdGlvbkFsbG9j
YXRpb25Qcm9maWxlIG1faW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOwotICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYm91bmRGdW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmVJRDsKICAgICBXcml0
ZUJhcnJpZXI8RXhlY3V0YWJsZUJhc2U+IG1fZXhlY3V0YWJsZTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8QWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9pbnQ+IG1fYWxsb2NhdGlvblByb2Zp
bGVDbGVhcmluZ1dhdGNocG9pbnQ7CiAgICAgYm9vbCBtX2hhc1JlaWZpZWRMZW5ndGggOiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
YTk1MmM5N2M3NTI4NTBhZjhhODg5N2EzYzU5YWQ5YTc1NjY5N2JiNy4uMTg0ZDFjOGJmYTdhOGYw
YTRhYTUwODIzZmJhNmUzYjgyYmQxOTlhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0zNzYsMjAgKzM3Niw3IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIExhenlQ
cm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2RlYnVnZ2VyU2NvcGVTdHJ1Y3R1
cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fd2l0aFNj
b3BlU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJl
PiBtX3N0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1
Y3R1cmU+IG1fbGV4aWNhbEVudmlyb25tZW50U3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX21vZHVsZUVudmlyb25tZW50U3RydWN0dXJlOwot
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZGlyZWN0QXJndW1lbnRzU3RydWN0dXJlOwot
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc2NvcGVkQXJndW1lbnRzU3RydWN0dXJlOwot
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fY2xvbmVkQXJndW1lbnRzU3RydWN0dXJlOwot
Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9vYmplY3RTdHJ1Y3R1cmVGb3JPYmplY3RD
b25zdHJ1Y3RvcjsKLSAgICAgICAgCi0gICAgLy8gTGlzdHMgdGhlIGFjdHVhbCBzdHJ1Y3R1cmVz
IHVzZWQgZm9yIGhhdmluZyB0aGVzZSBwYXJ0aWN1bGFyIGluZGV4aW5nIHNoYXBlcy4KLSAgICBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX29yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGlu
Z1NoYXBlW051bWJlck9mQXJyYXlJbmRleGluZ01vZGVzXTsKLSAgICAvLyBMaXN0cyB0aGUgc3Ry
dWN0dXJlcyB3ZSBzaG91bGQgdXNlIGR1cmluZyBhbGxvY2F0aW9uIGZvciB0aGVzZSBwYXJ0aWN1
bGFyIGluZGV4aW5nIHNoYXBlcy4KLSAgICAvLyBUaGVzZSBzdHJ1Y3R1cmVzIHdpbGwgZGlmZmVy
IGZyb20gdGhlIG9yaWdpbmFscyBsaXN0IGFib3ZlIHdoZW4gd2UgYXJlIGhhdmluZyBhIGJhZCB0
aW1lLgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYXJyYXlTdHJ1Y3R1cmVGb3JJbmRl
eGluZ1NoYXBlRHVyaW5nQWxsb2NhdGlvbltOdW1iZXJPZkFycmF5SW5kZXhpbmdNb2Rlc107Ci0K
ICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9jYWxsYmFja0Nv
bnN0cnVjdG9yU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlPiBtX2NhbGxiYWNrRnVuY3Rpb25TdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpT
R2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmU7CkBAIC00
MDEsNDIgKzM4OCw1NyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0IHsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVj
dHVyZT4gbV9nbGliQ2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8
SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9nbGliV3JhcHBlck9iamVjdFN0cnVjdHVyZTsK
ICNlbmRpZgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fbnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2NhbGxlZVN0cnVjdHVy
ZTsKIAotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faG9zdEZ1bmN0aW9uU3RydWN0dXJl
OworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fbGV4aWNhbEVudmlyb25tZW50U3RydWN0
dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fZGlyZWN0QXJndW1lbnRzU3RydWN0
dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fc2NvcGVkQXJndW1lbnRzU3RydWN0
dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fY2xvbmVkQXJndW1lbnRzU3RydWN0
dXJlOworCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9vYmplY3RTdHJ1Y3R1cmVGb3JP
YmplY3RDb25zdHJ1Y3RvcjsKKworICAgIC8vIExpc3RzIHRoZSBhY3R1YWwgc3RydWN0dXJlcyB1
c2VkIGZvciBoYXZpbmcgdGhlc2UgcGFydGljdWxhciBpbmRleGluZyBzaGFwZXMuCisgICAgV3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQgbV9vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdT
aGFwZVtOdW1iZXJPZkFycmF5SW5kZXhpbmdNb2Rlc107CisgICAgLy8gTGlzdHMgdGhlIHN0cnVj
dHVyZXMgd2Ugc2hvdWxkIHVzZSBkdXJpbmcgYWxsb2NhdGlvbiBmb3IgdGhlc2UgcGFydGljdWxh
ciBpbmRleGluZyBzaGFwZXMuCisgICAgLy8gVGhlc2Ugc3RydWN0dXJlcyB3aWxsIGRpZmZlciBm
cm9tIHRoZSBvcmlnaW5hbHMgbGlzdCBhYm92ZSB3aGVuIHdlIGFyZSBoYXZpbmcgYSBiYWQgdGlt
ZS4KKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FycmF5U3RydWN0dXJlRm9ySW5kZXhp
bmdTaGFwZUR1cmluZ0FsbG9jYXRpb25bTnVtYmVyT2ZBcnJheUluZGV4aW5nTW9kZXNdOworCisg
ICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJl
OworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fY2FsbGVlU3RydWN0dXJlOworCisgICAg
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9ob3N0RnVuY3Rpb25TdHJ1Y3R1cmU7CiAKICAgICBz
dHJ1Y3QgRnVuY3Rpb25TdHJ1Y3R1cmVzIHsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gYXJyb3dGdW5jdGlvblN0cnVjdHVyZTsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gc2xvcHB5RnVuY3Rpb25TdHJ1Y3R1cmU7Ci0gICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IHN0cmljdEZ1bmN0aW9uU3RydWN0dXJlOworICAgICAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCBhcnJvd0Z1bmN0aW9uU3RydWN0dXJlOworICAgICAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCBzbG9wcHlGdW5jdGlvblN0cnVjdHVyZTsKKyAgICAgICAgV3JpdGVCYXJyaWVyU3RydWN0
dXJlSUQgc3RyaWN0RnVuY3Rpb25TdHJ1Y3R1cmU7CiAgICAgfTsKICAgICBGdW5jdGlvblN0cnVj
dHVyZXMgbV9idWlsdGluRnVuY3Rpb25zOwogICAgIEZ1bmN0aW9uU3RydWN0dXJlcyBtX29yZGlu
YXJ5RnVuY3Rpb25zOwogCisgICAgUHJvcGVydHlPZmZzZXQgbV9mdW5jdGlvbk5hbWVPZmZzZXQ7
CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9zaGFkb3dSZWFsbU9iamVjdFN0cnVjdHVy
ZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3JlZ0V4cFN0cnVjdHVyZTsKKyAgICBX
cml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FzeW5jRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQgbV9hc3luY0dlbmVyYXRvckZ1bmN0aW9uU3RydWN0dXJlOwor
ICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fZ2VuZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7
CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9nZW5lcmF0b3JTdHJ1Y3R1cmU7CisgICAg
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9hc3luY0dlbmVyYXRvclN0cnVjdHVyZTsKKyAgICBX
cml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FycmF5SXRlcmF0b3JTdHJ1Y3R1cmU7CisgICAgV3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQgbV9tYXBJdGVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJh
cnJpZXJTdHJ1Y3R1cmVJRCBtX3NldEl0ZXJhdG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmll
clN0cnVjdHVyZUlEIG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlOworICAgIFdyaXRlQmFy
cmllclN0cnVjdHVyZUlEIG1fcmVnRXhwTWF0Y2hlc0FycmF5V2l0aEluZGljZXNTdHJ1Y3R1cmU7
CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9yZWdFeHBNYXRjaGVzSW5kaWNlc0FycmF5
U3RydWN0dXJlOworCiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+
IG1fYm91bmRGdW5jdGlvblN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZT4gbV9jdXN0b21HZXR0ZXJGdW5jdGlvblN0cnVjdHVyZTsKICAgICBMYXp5
UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9jdXN0b21TZXR0ZXJGdW5jdGlv
blN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4g
bV9uYXRpdmVTdGRGdW5jdGlvblN0cnVjdHVyZTsKLSAgICBQcm9wZXJ0eU9mZnNldCBtX2Z1bmN0
aW9uTmFtZU9mZnNldDsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3NoYWRvd1JlYWxt
T2JqZWN0U3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwU3Ry
dWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxBc3luY0Z1bmN0aW9uUHJvdG90eXBlPiBtX2FzeW5j
RnVuY3Rpb25Qcm90b3R5cGU7CiAgICAgV3JpdGVCYXJyaWVyPEFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGU+IG1fYXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZTsKLSAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2FzeW5jRnVuY3Rpb25TdHJ1Y3R1cmU7Ci0gICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9hc3luY0dlbmVyYXRvckZ1bmN0aW9uU3RydWN0dXJlOwotICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZ2VuZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7Ci0g
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9nZW5lcmF0b3JTdHJ1Y3R1cmU7Ci0gICAgV3Jp
dGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9hc3luY0dlbmVyYXRvclN0cnVjdHVyZTsKLSAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2FycmF5SXRlcmF0b3JTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9tYXBJdGVyYXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJp
ZXI8U3RydWN0dXJlPiBtX3NldEl0ZXJhdG9yU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2l0ZXJhdG9yUmVzdWx0T2JqZWN0U3RydWN0dXJl
OwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2RhdGFQcm9w
ZXJ0eURlc2NyaXB0b3JPYmplY3RTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmU+IG1fYWNjZXNzb3JQcm9wZXJ0eURlc2NyaXB0b3JPYmplY3RTdHJ1
Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBNYXRjaGVzQXJyYXlT
dHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBNYXRjaGVzQXJy
YXlXaXRoSW5kaWNlc1N0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Jl
Z0V4cE1hdGNoZXNJbmRpY2VzQXJyYXlTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fbW9kdWxlUmVjb3JkU3RydWN0dXJlOwogICAgIExhenlQ
cm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX21vZHVsZU5hbWVzcGFjZU9iamVj
dFN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4g
bV9wcm94eU9iamVjdFN0cnVjdHVyZTsKQEAgLTQ0NCwxNSArNDQ2LDE5IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIExhenlQ
cm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX3Byb3h5UmV2b2tlU3RydWN0dXJl
OwogICAgIExhenlDbGFzc1N0cnVjdHVyZSBtX3NoYXJlZEFycmF5QnVmZmVyU3RydWN0dXJlOwog
Ci0jZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93
ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSwg
ZmVhdHVyZUZsYWcpIFwKLSAgICBXcml0ZUJhcnJpZXI8Y2FwaXRhbE5hbWUgIyMgUHJvdG90eXBl
PiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlOyBcCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4gbV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmU7CisjZGVmaW5lIERFRklORV9TVE9S
QUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJv
cGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UsIGZlYXR1cmVGbGFn
KSBcCisgICAgV3JpdGVCYXJyaWVyPGNhcGl0YWxOYW1lICMjIFByb3RvdHlwZT4gbV8gIyMgbG93
ZXJOYW1lICMjIFByb3RvdHlwZTsKKworI2RlZmluZSBERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExF
X1RZUEVfU1RSVUNUVVJFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3Rh
bmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgXAorICAgIFdyaXRl
QmFycmllclN0cnVjdHVyZUlEIG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlOwogCiAjZGVm
aW5lIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwg
cHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UsIGZlYXR1cmVG
bGFnKSBcCiAgICAgTGF6eUNsYXNzU3RydWN0dXJlIG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0
dXJlOwogCi0gICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9G
T1JfU0lNUExFX1RZUEUpCi0gICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZ
UEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFKQorICAgIEZPUl9FQUNIX1NJTVBMRV9C
VUlMVElOX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFX1NUUlVDVFVSRSkKKyAg
ICBGT1JfRUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShERUZJTkVfU1RPUkFHRV9G
T1JfU0lNUExFX1RZUEVfU1RSVUNUVVJFKQorICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZ
UEUoREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFX1BST1RPVFlQRSkKKyAgICBGT1JfRUFD
SF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExF
X1RZUEVfUFJPVE9UWVBFKQogICAgIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBMYXp5
UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV93ZWJBc3NlbWJseU1vZHVsZVJl
Y29yZFN0cnVjdHVyZTsKQEAgLTQ2NCw3ICs0NzAsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6
IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIEZPUl9FQUNIX0xBWllf
QlVJTFRJTl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUpCiAKLSN1bmRlZiBERUZJ
TkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZUEUKKyN1bmRlZiBERUZJTkVfU1RPUkFHRV9GT1JfU0lN
UExFX1RZUEVfUFJPVE9UWVBFCisjdW5kZWYgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBF
X1NUUlVDVFVSRQogI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9MQVpZX1RZUEUKIAogICAgIFdy
aXRlQmFycmllcjxHZXR0ZXJTZXR0ZXI+IG1fc3BlY2llc0dldHRlclNldHRlcjsKQEAgLTU3NCw2
ICs1ODEsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0IHsKIAogICAgIGJvb2wgbV9ldmFsRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29s
IG1fd2ViQXNzZW1ibHlFbmFibGVkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcyB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV9nbG9iYWxMZXhpY2FsQmluZGlu
Z0Vwb2NoIHsgMSB9OwogICAgIFN0cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKICAg
ICBTdHJpbmcgbV93ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdlOwpAQCAtMTE5NCw3ICsx
MjAyLDYgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJs
ZU9iamVjdCB7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjbGVhclJhcmVE
YXRhKEpTQ2VsbCopOwogCi0gICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFs
c2UgfTsKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogICAgIFJldGFpblB0cjxKU1dyYXBwZXJN
YXA+IG1fd3JhcHBlck1hcDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKaW5kZXggZjdkOTc0
NDljMjIzYjEyYTdkZjUwYTdmMzQ1ZWVhMGI2YzZhMDA1NC4uNmVlMzIwZjdlM2Q5MDliNmNkMGUz
NzkzNjFkYTBhYTBlODc1N2M0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCkBAIC01MCw3ICs1MCw3
IEBAIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpj
cmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0CiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1aW50
MzJfdCBpbmRleGVkTGVuZ3RoLCB1aW50MzJfdCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBX
cml0ZUJhcnJpZXI8SlNTdHJpbmc+KiBwcm9wZXJ0eU5hbWVzQnVmZmVyLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWVzU2l6ZSkKICAgICA6IEpTQ2VsbCh2bSwgdm0ucHJvcGVydHlOYW1lRW51bWVyYXRv
clN0cnVjdHVyZS5nZXQoKSkKICAgICAsIG1fcHJvcGVydHlOYW1lcyh2bSwgdGhpcywgcHJvcGVy
dHlOYW1lc0J1ZmZlcikKLSAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQoc3RydWN0dXJlID8gc3Ry
dWN0dXJlLT5pZCgpIDogU3RydWN0dXJlSUQoKSkKKyAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQo
dm0sIHRoaXMsIHN0cnVjdHVyZSwgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Ok1heUJlTnVsbCkK
ICAgICAsIG1faW5kZXhlZExlbmd0aChpbmRleGVkTGVuZ3RoKQogICAgICwgbV9lbmRTdHJ1Y3R1
cmVQcm9wZXJ0eUluZGV4KG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMpCiAgICAgLCBtX2VuZEdl
bmVyaWNQcm9wZXJ0eUluZGV4KHByb3BlcnR5TmFtZXNTaXplKQpAQCAtODYsOSArODYsNyBAQCB2
b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBj
ZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkocHJv
cGVydHlOYW1lcyk7CiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZXMsIHByb3Bl
cnR5TmFtZXMgKyB0aGlzT2JqZWN0LT5zaXplT2ZQcm9wZXJ0eU5hbWVzKCkpOwogICAgIH0KLQot
ICAgIGlmICh0aGlzT2JqZWN0LT5jYWNoZWRTdHJ1Y3R1cmVJRCgpKQotICAgICAgICB2aXNpdG9y
LmFwcGVuZFVuYmFycmllcmVkKHRoaXNPYmplY3QtPmNhY2hlZFN0cnVjdHVyZUlEKCkuZGVjb2Rl
KCkpOworICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FjaGVkU3RydWN0dXJlSUQp
OwogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
RW51bWVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yLmgKaW5kZXggNTFkYzEzYjc5NWIwZGYyNTE4MzI0ZjVkNDUyZGIxMzE4MmE0
ZDI4Yi4uNmQ2YWU4N2I4YjM4YzQwY2UyNTYzYjgzNTZiYjA0YjQ1YzNkMzRhNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yLmgKQEAgLTczLDExICs3Myw5IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJl
KFZNJiB2bSkgY29uc3QKICAgICB7CiAgICAgICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0gICAgICAg
IGlmICghbV9jYWNoZWRTdHJ1Y3R1cmVJRCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAgICAgICAgcmV0
dXJuIG1fY2FjaGVkU3RydWN0dXJlSUQuZ2V0KCk7CiAgICAgfQotICAgIFN0cnVjdHVyZUlEIGNh
Y2hlZFN0cnVjdHVyZUlEKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1cmVJRDsgfQor
ICAgIFN0cnVjdHVyZUlEIGNhY2hlZFN0cnVjdHVyZUlEKCkgY29uc3QgeyByZXR1cm4gbV9jYWNo
ZWRTdHJ1Y3R1cmVJRC52YWx1ZSgpOyB9CiAgICAgdWludDMyX3QgaW5kZXhlZExlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1faW5kZXhlZExlbmd0aDsgfQogICAgIHVpbnQzMl90IGVuZFN0cnVjdHVy
ZVByb3BlcnR5SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5k
ZXg7IH0KICAgICB1aW50MzJfdCBlbmRHZW5lcmljUHJvcGVydHlJbmRleCgpIGNvbnN0IHsgcmV0
dXJuIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXg7IH0KQEAgLTEwOCw3ICsxMDYsNyBAQCBjbGFz
cyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAv
LyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgaXMgaW1tdXRhYmxlIGRhdGEgc3RydWN0dXJlLCB3
aGljaCBhbGxvd3MgVk0gdG8gY2FjaGUgdGhlIGVtcHR5IG9uZS4KICAgICAvLyBBZnRlciBpbnN0
YW50aWF0aW5nIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciwgd2UgbXVzdCBub3QgY2hhbmdlIGFu
eSBmaWVsZHMuCiAgICAgQXV4aWxpYXJ5QmFycmllcjxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+Kj4g
bV9wcm9wZXJ0eU5hbWVzOwotICAgIFN0cnVjdHVyZUlEIG1fY2FjaGVkU3RydWN0dXJlSUQ7Cisg
ICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKICAgICB1aW50
MzJfdCBtX2luZGV4ZWRMZW5ndGg7CiAgICAgdWludDMyX3QgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0
eUluZGV4OwogICAgIHVpbnQzMl90IG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKaW5k
ZXggMmY2MWRlMWUyYzcxY2U0OTY2Y2M0N2Q1M2VhMDI0OTlmZWUwMDM4Yi4uNzY5MjUwZDY2NWYw
NDkyZmVlM2MxZmEwN2VlZjNlM2Y5YzJiODJjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcApAQCAtNjAsMTEgKzYwLDEwIEBA
IHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogCiBTdHJ1Y3R1
cmVSYXJlRGF0YTo6U3RydWN0dXJlUmFyZURhdGEoVk0mIHZtLCBTdHJ1Y3R1cmUqIHByZXZpb3Vz
KQogICAgIDogSlNDZWxsKHZtLCB2bS5zdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZS5nZXQoKSkK
KyAgICAsIG1fcHJldmlvdXModm0sIHRoaXMsIHByZXZpb3VzLCBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRDo6TWF5QmVOdWxsKQogICAgICwgbV9tYXhPZmZzZXQoaW52YWxpZE9mZnNldCkKICAgICAs
IG1fdHJhbnNpdGlvbk9mZnNldChpbnZhbGlkT2Zmc2V0KQogewotICAgIGlmIChwcmV2aW91cykK
LSAgICAgICAgbV9wcmV2aW91cy5zZXQodm0sIHRoaXMsIHByZXZpb3VzKTsKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVmlzaXRvcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCmluZGV4IGNmMzFlOTI5MTNjOGM1NmQ5YjcyNWJmMGRiNDE4
NTQxODExYWFhN2IuLjY4YmQ5YTYxNWI2ZmZjZTlmYjJkMGQ3ZmNhYWFjMDk4NjQ1NTkzZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRh
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
aApAQCAtMTQwLDcgKzE0MCw2IEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAKICAgICBib29sIHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZp
YVdhdGNocG9pbnQoVk0mLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmVDaGFpbiopOwogCi0gICAgV3Jp
dGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9wcmV2aW91czsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGhhdmUgc29tZSBzdG9yeSBmb3IgY2xlYXJpbmcgdGhlc2UgcHJvcGVydHkgbmFtZXMgY2FjaGVz
IGluIEdDLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTI2NTkKICAgICB1aW50cHRyX3QgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxh
ZyB7IDAgfTsKQEAgLTE1Niw2ICsxNTUsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVjaWFsUHJvcGVydHlD
YWNoZT4gbV9zcGVjaWFsUHJvcGVydHlDYWNoZTsKICAgICBCb3g8SW5saW5lV2F0Y2hwb2ludFNl
dD4gbV9wb2x5UHJvdG9XYXRjaHBvaW50OwogCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQg
bV9wcmV2aW91czsKICAgICBQcm9wZXJ0eU9mZnNldCBtX21heE9mZnNldDsKICAgICBQcm9wZXJ0
eU9mZnNldCBtX3RyYW5zaXRpb25PZmZzZXQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Xcml0ZUJhcnJpZXIuaAppbmRleCA0ZDExODIxMDFlNTQ3YzZiYmU3ZmIxMGQ4NWFj
NDY2ZTEyYzAyNmVkLi4xNjFkNjM0MGU0ZDI3MTM4NDQ2ZjAxY2Q5ZDU1M2Q2OTQ3M2E3OWIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiR0NBc3NlcnRpb25zLmgiCiAjaW5jbHVkZSAiSGFuZGxl
VHlwZXMuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVJRC5oIgogI2luY2x1ZGUgPHR5cGVfdHJhaXRz
PgogI2luY2x1ZGUgPHd0Zi9SYXdQdHJUcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvUmF3VmFsdWVU
cmFpdHMuaD4KQEAgLTI0OCw0ICsyNDksMTA0IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29u
c3QgV3JpdGVCYXJyaWVyQmFzZTxVLCBUcmFpdHNVPiYgbGhzLCBjb25zdCBXcml0ZUJhcnJpCiAg
ICAgcmV0dXJuIGxocy5nZXQoKSA9PSByaHMuZ2V0KCk7CiB9CiAKK2NsYXNzIFdyaXRlQmFycmll
clN0cnVjdHVyZUlEIHsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgV3JpdGVCYXJyaWVyU3RydWN0
dXJlSUQoKSA9IGRlZmF1bHQ7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRChWTSYgdm0s
IGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUpCisgICAgeworICAgICAgICBz
ZXQodm0sIG93bmVyLCB2YWx1ZSk7CisgICAgfQorCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQoREZHOjpEZXNpcmVkV3JpdGVCYXJyaWVyJiwgU3RydWN0dXJlKiB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgICAgICBzZXRXaXRob3V0
V3JpdGVCYXJyaWVyKHZhbHVlKTsKKyAgICB9CisKKyAgICBlbnVtIE1heUJlTnVsbFRhZyB7IE1h
eUJlTnVsbCB9OworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEKFZNJiB2bSwgY29uc3QgSlND
ZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSwgTWF5QmVOdWxsVGFnKQorICAgIHsKKyAgICAg
ICAgc2V0TWF5QmVOdWxsKHZtLCBvd25lciwgdmFsdWUpOworICAgIH0KKworICAgIHZvaWQgc2V0
KFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSk7CisKKyAgICB2b2lk
IHNldE1heUJlTnVsbChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUp
OworCisgICAgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBieSBKU0NlbGwgZHVyaW5nIGVhcmx5IGlu
aXRpYWxpc2F0aW9uCisgICAgLy8gd2hlbiBzb21lIGJhc2ljIHR5cGVzIGFyZW4ndCB5ZXQgY29t
cGxldGVseSBpbnN0YW50aWF0ZWQKKyAgICB2b2lkIHNldEVhcmx5VmFsdWUoVk0mLCBjb25zdCBK
U0NlbGwqIG93bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlKTsKKworICAgIFN0cnVjdHVyZSogZ2V0KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIC8vIENvcHkgbV9jZWxsIHRvIGEgbG9jYWwgdG8gYXZvaWQg
bXVsdGlwbGUtcmVhZCBpc3N1ZXMuIChTZWUgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwODU0PikK
KyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOworICAgICAg
ICBpZiAoc3RydWN0dXJlSUQpIHsKKyAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
c3RydWN0dXJlSUQuZGVjb2RlKCk7CisgICAgICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnBy
ZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1
cmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgU3Ry
dWN0dXJlKiBvcGVyYXRvciooKSBjb25zdAorICAgIHsKKyAgICAgICAgU3RydWN0dXJlSUQgc3Ry
dWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlEOworICAgICAgICBBU1NFUlQoc3RydWN0dXJlSUQpOwor
ICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZUlELmRlY29kZSgpOworICAg
ICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsK
KyAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKKyAgICB9CisKKyAgICBTdHJ1Y3R1cmUqIG9wZXJh
dG9yLT4oKSBjb25zdAorICAgIHsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBt
X3N0cnVjdHVyZUlEOworICAgICAgICBBU1NFUlQoc3RydWN0dXJlSUQpOworICAgICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZUlELmRlY29kZSgpOworICAgICAgICB2YWxpZGF0
ZUNlbGwocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgcmV0
dXJuIHN0cnVjdHVyZTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAg
IG1fc3RydWN0dXJlSUQgPSBTdHJ1Y3R1cmVJRCB7IH07CisgICAgfQorCisgICAgZXhwbGljaXQg
b3BlcmF0b3IgYm9vbCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISFtX3N0cnVjdHVy
ZUlEOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiAhbV9zdHJ1Y3R1cmVJRDsKKyAgICB9CisKKyAgICB2b2lkIHNldFdpdGhvdXRXcml0
ZUJhcnJpZXIoU3RydWN0dXJlKiB2YWx1ZSkKKyAgICB7CisjaWYgRU5BQkxFKFdSSVRFX0JBUlJJ
RVJfUFJPRklMSU5HKQorICAgICAgICBXcml0ZUJhcnJpZXJDb3VudGVyczo6dXNlc1dpdGhvdXRC
YXJyaWVyRnJvbUNwcC5jb3VudCgpOworI2VuZGlmCisgICAgICAgIGlmICghdmFsdWUpIHsKKyAg
ICAgICAgICAgIG1fc3RydWN0dXJlSUQgPSBTdHJ1Y3R1cmVJRCB7IH07CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEOjpl
bmNvZGUodmFsdWUpOworICAgIH0KKworICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRHZXQoKSBj
b25zdAorICAgIHsKKyAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBtX3N0cnVjdHVy
ZUlEOworICAgICAgICBpZiAoc3RydWN0dXJlSUQpCisgICAgICAgICAgICByZXR1cm4gc3RydWN0
dXJlSUQuZGVjb2RlKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFN0
cnVjdHVyZUlEIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9zdHJ1Y3R1cmVJRDsgfQorCitwcml2
YXRlOgorICAgIFN0cnVjdHVyZUlEIG1fc3RydWN0dXJlSUQ7Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFy
cmllcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmll
cklubGluZXMuaAppbmRleCBmODg3ZTUzMWY5MWNhZTljYzQyZGNmNjA0YTMxNjIzZWQ5NzcyZWY4
Li5lZTQwODAyYzE5YmYzMWM5NmY5YzIzNzYyZWQ4ZGE4Y2ExMzczZGZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCkBAIC02
MSw0ICs2MSwyOSBAQCBpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIFJhd1Zh
bHVlVHJhaXRzPFVua25vd24+Pjo6c2V0KFZNJiB2bSwgY29ucwogICAgIHZtLndyaXRlQmFycmll
cihvd25lciwgdmFsdWUpOwogfQogCitpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RDo6c2V0KFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sK
KyAgICBBU1NFUlQodmFsdWUpOworICAgIEFTU0VSVCghT3B0aW9uczo6dXNlQ29uY3VycmVudEpJ
VCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgIHZhbGlkYXRlQ2VsbChyZWludGVy
cHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7CisgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIs
IHZhbHVlKTsKK30KKworaW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldE1h
eUJlTnVsbChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUpCit7
CisgICAgaWYgKHZhbHVlKQorICAgICAgICB2YWxpZGF0ZUNlbGwocmVpbnRlcnByZXRfY2FzdDxK
U0NlbGwqPih2YWx1ZSkpOworICAgIHNldEVhcmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Cit9
CisKK2lubGluZSB2b2lkIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXRFYXJseVZhbHVlKFZN
JiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sKKyAgICBpZiAo
IXZhbHVlKSB7CisgICAgICAgIG1fc3RydWN0dXJlSUQgPSBTdHJ1Y3R1cmVJRCB7IH07CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEOjplbmNv
ZGUodmFsdWUpOworICAgIHZtLndyaXRlQmFycmllcihvd25lciwgcmVpbnRlcnByZXRfY2FzdDxK
U0NlbGwqPih2YWx1ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggNDQzNDZkYTk1YTMxODBhMTUxYzlm
Mjg4N2JkNTg0N2YyMTgwM2E1Zi4uN2QyOWIyOWRkMjg2NzA0NDY2NTY3OTdmNDc0MzViYzNlYzQz
ODhjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAt
NDAxMiw3ICs0MDEyLDcgQEAgdm9pZCBKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0p
CiAKICAgICBhZGRGdW5jdGlvbih2bSwgImVuc3VyZUFycmF5U3RvcmFnZSIsIGZ1bmN0aW9uRW5z
dXJlQXJyYXlTdG9yYWdlLCAxKTsKIAotICAgIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0
aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlLnNldCh2bSwgdGhpcywgT2JqZWN0RG9pbmdT
aWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IGdsb2JhbE9iamVjdCwganNOdWxsKCkpKTsKKyAgICBtX29iamVjdERvaW5nU2lkZUVmZmVjdFB1
dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZUlELnNldCh2bSwgdGhpcywgT2JqZWN0
RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpKTsKIH0KIAogdm9pZCBKU0RvbGxhclZNOjph
ZGRGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IGNo
YXIqIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpCkBA
IC00MDM0LDcgKzQwMzQsNyBAQCB2b2lkIEpTRG9sbGFyVk06OnZpc2l0Q2hpbGRyZW5JbXBsKEpT
Q2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0RvbGxhclZNKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTRG9sbGFyVk0qPihjZWxsKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVu
KHRoaXNPYmplY3QsIHZpc2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1f
b2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJl
KTsKKyAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX29iamVjdERvaW5nU2lkZUVmZmVj
dFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZUlEKTsKIH0KIAogREVGSU5FX1ZJ
U0lUX0NISUxEUkVOKEpTRG9sbGFyVk0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0pTRG9sbGFyVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0Rv
bGxhclZNLmgKaW5kZXggMGY1ZDhhZDM1OWRiNjUyNGIwMDA0YzUxNmI4NTAxNjNmZTc3NzAzNi4u
MDNmZTBhOTYwM2U0MGUzZDI3MDcwNzA0ODA2ZWU4MDJlN2M1N2MxOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIEpTRG9s
bGFyVk0gZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBp
bnN0YW5jZTsKICAgICB9CiAKLSAgICBTdHJ1Y3R1cmUqIG9iamVjdERvaW5nU2lkZUVmZmVjdFB1
dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZSgpIHsgcmV0dXJuIG1fb2JqZWN0RG9p
bmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlLmdldCgpOyB9
CisgICAgU3RydWN0dXJlKiBvYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNs
b3RTdGF0dXNTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX29iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdp
dGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZUlELmdldCgpOyB9CiAgICAgCiBwcml2YXRl
OgogICAgIEpTRG9sbGFyVk0oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTc2LDcg
Kzc2LDcgQEAgY2xhc3MgSlNEb2xsYXJWTSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKIAogICAgIERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CiAKLSAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX29iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1
c1N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX29iamVjdERvaW5nU2lk
ZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZUlEOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446262</attachid>
            <date>2021-12-07 17:28:10 -0800</date>
            <delta_ts>2021-12-07 17:42:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233918-20211207172810.patch</filename>
            <type>text/plain</type>
            <size>62640</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTZlMGQyOTkwZmJmNDdmMWRmMjY0ZTk5YmYwNGE3Yjc0NDAyODc3Li5kMjBhZmE5NjAwMGIzOGFm
YzUzNmMxMTcxMTk5M2JjNjMxZmNiOWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDMgQEAKKzIwMjEtMTItMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkxOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBjbGFzcywgd2hpY2ggaXMgc2ltaWxhciB0byBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiwgYnV0IGludGVybmFsbHksCisgICAgICAgIGl0IGhvbGRz
IFN0cnVjdHVyZUlELCBzbyBzaXplb2YoV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQpIGlzIDQuIFRo
aXMgY2xhc3MgaXMgdXNlZnVsIHRvIHVzZSBTdHJ1Y3R1cmVJRCBmb3IKKyAgICAgICAgbWVtb3J5
IHNhdmluZyB3aGlsZSBrZWVwaW5nIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+J3MgdXNlZnVsIGZl
YXR1cmVzIChhdXRvbWF0aWNhbGx5IGluc2VydHMgd3JpdGUtYmFycmllciB3aGVuCisgICAgICAg
IHNldHRpbmcgZXRjLikuIFRoaXMgYWxzbyBwYXZlcyB0aGUgd2F5IHRvIGludHJvZHVjaW5nIERP
TVN0cnVjdHVyZXMgYXJyYXkgd2l0aCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBpbnN0ZWFkCisg
ICAgICAgIG9mIGNvc3RseSBIYXNoTWFwPENsYXNzSW5mbyosIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+Pi4KKworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlND
OjpBY2Nlc3NDYXNlOjpBY2Nlc3NDYXNlKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Zm9y
RWFjaERlcGVuZGVudENlbGwgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkdW1w
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6cHJvcGFnYXRlVHJhbnNpdGlvbnMg
Y29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjYW5CZVNoYXJlZCk6CisgICAgICAg
ICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpzdHJ1
Y3R1cmUgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpuZXdTdHJ1Y3R1cmUgY29u
c3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QWNjZXNzQ2FzZTo6QWNjZXNzQ2FzZSk6CisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNj
ZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5B
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OnJlc2V0U3R1YkFzSnVtcEluQWNj
ZXNzKToKKyAgICAgICAgKiBieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2Zp
bGUuaDoKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpv
ZmZzZXRPZlN0cnVjdHVyZUlEKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbkFsbG9j
YXRpb25Qcm9maWxlOjpzdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9u
QWxsb2NhdGlvblByb2ZpbGU6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlOjp2aXNpdEFnZ3JlZ2F0ZSk6CisgICAgICAgIChKU0M6OkludGVy
bmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6Y3JlYXRlQWxsb2NhdGlvblN0cnVjdHVyZUZy
b21CYXNlKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxl
OjpvZmZzZXRPZlN0cnVjdHVyZSk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdEdl
dEJ5SWRTZWxmKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmluaXRQdXRCeUlk
UmVwbGFjZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjppbml0SW5CeUlkU2Vs
Zik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjphZGRBY2Nlc3NDYXNlKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OnJlc2V0KToKKyAgICAgICAgKiBieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVTdHViSW5mbzo6aW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNyZWF0ZVByb21pc2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlQ3JlYXRlSW50ZXJuYWxGaWVsZE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAqIGhlYXAv
QWJzdHJhY3RTbG90VmlzaXRvci5oOgorICAgICAgICAqIGhlYXAvQWJzdHJhY3RTbG90VmlzaXRv
cklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kKToK
KyAgICAgICAgKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kSGlkZGVuKToKKyAgICAg
ICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvcklubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFwcGVuZCk6CisgICAgICAgIChKU0M6
OlNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW4pOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXROb25OdWxsRGVjb2Rl
U3RydWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgICogaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVHZXRC
eUlkSW5saW5lQWNjZXNzKToKKyAgICAgICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6Z2Vu
ZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAqIHJ1bnRp
bWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkV4ZWN1
dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpGdW5jdGlvblJhcmVEYXRhOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0
Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6U3RydWN0dXJlUmFyZURhdGEpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmll
ci5oOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6V3JpdGVCYXJyaWVy
U3RydWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6Z2V0
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9y
KiBjb25zdCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRv
ci0+IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OmNsZWFy
KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yIGJvb2wg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6b3BlcmF0b3Ih
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldFdpdGhv
dXRXcml0ZUJhcnJpZXIpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6
dW52YWxpZGF0ZWRHZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0KToKKyAgICAg
ICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldE1heUJlTnVsbCk6CisgICAgICAg
IChKU0M6OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXRFYXJseVZhbHVlKToKKyAgICAgICAg
KiB0b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0RvbGxhclZNOjp2aXNpdENoaWxkcmVuSW1wbCk6
CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5oOgorCiAyMDIxLTEyLTA3ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI4NjUwMiBhbmQgcjI4NjU4MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCBhYWY0Zjc2ZWE0YjliODkxNTc1YmVhYmU1MTA5ZjE0
ZjkzZWFkNGM2Li45YWVmY2M5MjdhMDA2MDc0NTMyMDA0MjE1NjEzNzU5YmY4MTNiYTQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC02Myw3
ICs2Myw3IEBAIEFjY2Vzc0Nhc2U6OkFjY2Vzc0Nhc2UoVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBB
Y2Nlc3NUeXBlIHR5cGUsIENhY2hlYWJsZUlkZW50aWZpCiAgICAgLCBtX3BvbHlQcm90b0FjY2Vz
c0NoYWluKFdURk1vdmUocHJvdG90eXBlQWNjZXNzQ2hhaW4pKQogICAgICwgbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiB7Ci0gICAgbV9zdHJ1Y3R1cmUuc2V0TWF5QmVOdWxsKHZtLCBvd25lciwg
c3RydWN0dXJlKTsKKyAgICBtX3N0cnVjdHVyZUlELnNldE1heUJlTnVsbCh2bSwgb3duZXIsIHN0
cnVjdHVyZSk7CiAgICAgbV9jb25kaXRpb25TZXQgPSBjb25kaXRpb25TZXQ7CiAgICAgUkVMRUFT
RV9BU1NFUlQobV9jb25kaXRpb25TZXQuaXNWYWxpZCgpKTsKIH0KQEAgLTUzOSw4ICs1MzksOCBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgogdm9pZCBBY2Nlc3NDYXNlOjpmb3JFYWNoRGVw
ZW5kZW50Q2VsbChWTSYsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CiB7CiAgICAgbV9j
b25kaXRpb25TZXQuZm9yRWFjaERlcGVuZGVudENlbGwoZnVuY3Rvcik7Ci0gICAgaWYgKG1fc3Ry
dWN0dXJlKQotICAgICAgICBmdW5jdG9yKG1fc3RydWN0dXJlLmdldCgpKTsKKyAgICBpZiAobV9z
dHJ1Y3R1cmVJRCkKKyAgICAgICAgZnVuY3RvcihtX3N0cnVjdHVyZUlELmdldCgpKTsKICAgICBp
ZiAobV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikgewogICAgICAgICBmb3IgKFN0cnVjdHVyZUlEIHN0
cnVjdHVyZUlEIDogbV9wb2x5UHJvdG9BY2Nlc3NDaGFpbi0+Y2hhaW4oKSkKICAgICAgICAgICAg
IGZ1bmN0b3Ioc3RydWN0dXJlSUQuZGVjb2RlKCkpOwpAQCAtODc0LDggKzg3NCw4IEBAIHZvaWQg
QWNjZXNzQ2FzZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBpZiAobV90
eXBlID09IFRyYW5zaXRpb24gfHwgbV90eXBlID09IERlbGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJp
dmF0ZUJyYW5kKQogICAgICAgICAgICAgb3V0LnByaW50KCJcbiIsIGluZGVudCwgImZyb20gc3Ry
dWN0dXJlID0gIiwgcG9pbnRlckR1bXAoc3RydWN0dXJlKCkpLAogICAgICAgICAgICAgICAgICJc
biIsIGluZGVudCwgInRvIHN0cnVjdHVyZSA9ICIsIHBvaW50ZXJEdW1wKG5ld1N0cnVjdHVyZSgp
KSk7Ci0gICAgICAgIGVsc2UgaWYgKG1fc3RydWN0dXJlKQotICAgICAgICAgICAgb3V0LnByaW50
KCJcbiIsIGluZGVudCwgInN0cnVjdHVyZSA9ICIsIHBvaW50ZXJEdW1wKG1fc3RydWN0dXJlLmdl
dCgpKSk7CisgICAgICAgIGVsc2UgaWYgKG1fc3RydWN0dXJlSUQpCisgICAgICAgICAgICBvdXQu
cHJpbnQoIlxuIiwgaW5kZW50LCAic3RydWN0dXJlID0gIiwgcG9pbnRlckR1bXAobV9zdHJ1Y3R1
cmVJRC5nZXQoKSkpOwogICAgIH0KIAogICAgIGlmICghbV9jb25kaXRpb25TZXQuaXNFbXB0eSgp
KQpAQCAtOTA0LDggKzkwNCw4IEBAIGJvb2wgQWNjZXNzQ2FzZTo6dmlzaXRXZWFrKFZNJiB2bSkg
Y29uc3QKIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CiB2b2lkIEFjY2Vzc0Nhc2U6OnByb3Bh
Z2F0ZVRyYW5zaXRpb25zKFZpc2l0b3ImIHZpc2l0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3Ry
dWN0dXJlKQotICAgICAgICBtX3N0cnVjdHVyZS0+bWFya0lmQ2hlYXAodmlzaXRvcik7CisgICAg
aWYgKG1fc3RydWN0dXJlSUQpCisgICAgICAgIG1fc3RydWN0dXJlSUQtPm1hcmtJZkNoZWFwKHZp
c2l0b3IpOwogCiAgICAgaWYgKG1fcG9seVByb3RvQWNjZXNzQ2hhaW4pIHsKICAgICAgICAgZm9y
IChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fcG9seVByb3RvQWNjZXNzQ2hhaW4tPmNoYWlu
KCkpCkBAIC05MTUsOCArOTE1LDggQEAgdm9pZCBBY2Nlc3NDYXNlOjpwcm9wYWdhdGVUcmFuc2l0
aW9ucyhWaXNpdG9yJiB2aXNpdG9yKSBjb25zdAogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAg
Y2FzZSBUcmFuc2l0aW9uOgogICAgIGNhc2UgRGVsZXRlOgotICAgICAgICBpZiAodmlzaXRvci5p
c01hcmtlZChtX3N0cnVjdHVyZS0+cHJldmlvdXNJRCgpKSkKLSAgICAgICAgICAgIHZpc2l0b3Iu
YXBwZW5kVW5iYXJyaWVyZWQobV9zdHJ1Y3R1cmUuZ2V0KCkpOworICAgICAgICBpZiAodmlzaXRv
ci5pc01hcmtlZChtX3N0cnVjdHVyZUlELT5wcmV2aW91c0lEKCkpKQorICAgICAgICAgICAgdmlz
aXRvci5hcHBlbmRVbmJhcnJpZXJlZChtX3N0cnVjdHVyZUlELmdldCgpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBi
b29sIEFjY2Vzc0Nhc2U6OmNhbkJlU2hhcmVkKGNvbnN0IEFjY2Vzc0Nhc2UmIGxocywgY29uc3Qg
QWNjZXNzQ2FzZSYgcmhzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGxocy5tX3Zp
YVByb3h5ICE9IHJocy5tX3ZpYVByb3h5KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KGxocy5tX3N0cnVjdHVyZS5nZXQoKSAhPSByaHMubV9zdHJ1Y3R1cmUuZ2V0KCkpCisgICAgaWYg
KGxocy5tX3N0cnVjdHVyZUlELmdldCgpICE9IHJocy5tX3N0cnVjdHVyZUlELmdldCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGxocy5tX2lkZW50aWZpZXIgIT0gcmhzLm1faWRl
bnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmgKaW5kZXggZmUxY2ZmYmM2NTk4NWU4YzE0NzlhMmNiNTM0YTJm
Mzg4OGY3NTNhNi4uMWMxY2M3MTY4YWNlNGE0MzY3ZmM4ZGE0MjJmYWQyZGVkNDRkNTE5NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oCkBAIC0xODQsMTUg
KzE4NCwxNSBAQCBjbGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PEFjY2Vzc0Nhc2U+IHsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSgpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAobV90eXBlID09IFRyYW5zaXRpb24gfHwgbV90eXBlID09IERlbGV0ZSB8fCBt
X3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5kKQotICAgICAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJl
LT5wcmV2aW91c0lEKCk7Ci0gICAgICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX3N0cnVjdHVyZUlELT5wcmV2aW91c0lEKCk7CisgICAgICAgIHJldHVy
biBtX3N0cnVjdHVyZUlELmdldCgpOwogICAgIH0KICAgICBib29sIGd1YXJkZWRCeVN0cnVjdHVy
ZUNoZWNrKGNvbnN0IFN0cnVjdHVyZVN0dWJJbmZvJikgY29uc3Q7CiAKICAgICBTdHJ1Y3R1cmUq
IG5ld1N0cnVjdHVyZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFRy
YW5zaXRpb24gfHwgbV90eXBlID09IERlbGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5k
KTsKLSAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJlLmdldCgpOworICAgICAgICByZXR1cm4gbV9z
dHJ1Y3R1cmVJRC5nZXQoKTsKICAgICB9CiAKICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dCBjb25kaXRpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX2NvbmRpdGlvblNldDsgfQpAQCAtMjcy
LDcgKzI3Miw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8QWNjZXNzQ2FzZT4gewogCiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gY29tcHV0ZUhhc2gobV9jb25kaXRpb25TZXQuaGFzaCgpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obV90eXBlKSwgbV92aWFQcm94eSwgbV9zdHJ1Y3R1cmUudW52YWxpZGF0ZWRH
ZXQoKSwgbV9vZmZzZXQpOworICAgICAgICByZXR1cm4gY29tcHV0ZUhhc2gobV9jb25kaXRpb25T
ZXQuaGFzaCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV90eXBlKSwgbV92aWFQcm94eSwgbV9z
dHJ1Y3R1cmVJRC51bnZhbGlkYXRlZEdldCgpLCBtX29mZnNldCk7CiAgICAgfQogCiAgICAgc3Rh
dGljIGJvb2wgY2FuQmVTaGFyZWQoY29uc3QgQWNjZXNzQ2FzZSYsIGNvbnN0IEFjY2Vzc0Nhc2Um
KTsKQEAgLTI4NCw3ICsyODQsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICAgICAgLCBtX3N0YXRlKFdURk1vdmUob3Ro
ZXIubV9zdGF0ZSkpCiAgICAgICAgICwgbV92aWFQcm94eShXVEZNb3ZlKG90aGVyLm1fdmlhUHJv
eHkpKQogICAgICAgICAsIG1fb2Zmc2V0KFdURk1vdmUob3RoZXIubV9vZmZzZXQpKQotICAgICAg
ICAsIG1fc3RydWN0dXJlKFdURk1vdmUob3RoZXIubV9zdHJ1Y3R1cmUpKQorICAgICAgICAsIG1f
c3RydWN0dXJlSUQoV1RGTW92ZShvdGhlci5tX3N0cnVjdHVyZUlEKSkKICAgICAgICAgLCBtX2Nv
bmRpdGlvblNldChXVEZNb3ZlKG90aGVyLm1fY29uZGl0aW9uU2V0KSkKICAgICAgICAgLCBtX3Bv
bHlQcm90b0FjY2Vzc0NoYWluKFdURk1vdmUob3RoZXIubV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikp
CiAgICAgICAgICwgbV9pZGVudGlmaWVyKFdURk1vdmUob3RoZXIubV9pZGVudGlmaWVyKSkKQEAg
LTI5NSw3ICsyOTUsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICAgICAgLCBtX3N0YXRlKG90aGVyLm1fc3RhdGUpCiAg
ICAgICAgICwgbV92aWFQcm94eShvdGhlci5tX3ZpYVByb3h5KQogICAgICAgICAsIG1fb2Zmc2V0
KG90aGVyLm1fb2Zmc2V0KQotICAgICAgICAsIG1fc3RydWN0dXJlKG90aGVyLm1fc3RydWN0dXJl
KQorICAgICAgICAsIG1fc3RydWN0dXJlSUQob3RoZXIubV9zdHJ1Y3R1cmVJRCkKICAgICAgICAg
LCBtX2NvbmRpdGlvblNldChvdGhlci5tX2NvbmRpdGlvblNldCkKICAgICAgICAgLCBtX3BvbHlQ
cm90b0FjY2Vzc0NoYWluKG90aGVyLm1fcG9seVByb3RvQWNjZXNzQ2hhaW4pCiAgICAgICAgICwg
bV9pZGVudGlmaWVyKG90aGVyLm1faWRlbnRpZmllcikKQEAgLTM0OCw3ICszNDgsNyBAQCBjbGFz
cyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsK
ICAgICAvLyBVc3VhbGx5IHRoaXMgaXMgdGhlIHN0cnVjdHVyZSB0aGF0IHdlIGV4cGVjdCB0aGUg
YmFzZSBvYmplY3QgdG8gaGF2ZS4gQnV0LCB0aGlzIGlzIHRoZSAqbmV3KgogICAgIC8vIHN0cnVj
dHVyZSBmb3IgYSB0cmFuc2l0aW9uIGFuZCB3ZSByZWx5IG9uIHRoZSBmYWN0IHRoYXQgaXQgaGFz
IGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGUgb2xkCiAgICAgLy8gc3RydWN0dXJlLiBGb3IgcHJv
eGllcywgdGhpcyBpcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBvYmplY3QgYmVoaW5kIHRoZSBwcm94
eS4KLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKKyAgICBXcml0ZUJh
cnJpZXJTdHJ1Y3R1cmVJRCBtX3N0cnVjdHVyZUlEOwogCiAgICAgT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQgbV9jb25kaXRpb25TZXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKaW5kZXggMjFlYjRjMjIxZDM2N2E4NGYwMjk5MTgwZGE3
YzhlOGE5MDNiNTcyYy4uZmI1ZWVhMmRjYmFmMmM0MGEwN2ZhY2I3ZDU3OTMzODhjNWMyNzZhYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAK
QEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcElu
QWNjZXNzKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSQogICAgICAgICB9CiAK
ICAgICAgICAgc3R1YkluZm8ubV9jb2RlUHRyID0gdGFyZ2V0OwotICAgICAgICBzdHViSW5mby5t
X2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmVJRCgpOyAvLyBDbGVhciBvdXQg
dGhlIGlubGluZSBhY2Nlc3MgY29kZS4KKyAgICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NC
YXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNv
ZGUuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIElu
bGluZUFjY2Vzczo6cmVzZXRTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbgogewogICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpICYmIGNv
ZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKSB7CiAgICAgICAgIHN0
dWJJbmZvLm1fY29kZVB0ciA9IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKLSAgICAg
ICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlID0gU3RydWN0dXJlSUQoKTsg
Ly8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCisgICAgICAgIHN0dWJJbmZvLm1f
aW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELmNsZWFyKCk7IC8vIENsZWFyIG91dCB0aGUgaW5s
aW5lIGFjY2VzcyBjb2RlLgogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Q
cm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlLmgKaW5kZXggZGY4ZjM3MWFiZDFkMTk2MDc2ZDc1YjRiZGMxMjVl
ZDM5ZjM4MjYwZC4uYjE3N2ZlZmQwNjM2ZTIyZWI1MGZmZmI2MjllY2U0MTE4MTRlMmRkZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25B
bGxvY2F0aW9uUHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaApAQCAtMzMsMjEgKzMzLDIxIEBAIG5h
bWVzcGFjZSBKU0MgewogCiBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mU3RydWN0dXJl
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZSwgbV9zdHJ1Y3R1cmUpOyB9CisgICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0
T2ZTdHJ1Y3R1cmVJRCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJbnRlcm5hbEZ1bmN0aW9u
QWxsb2NhdGlvblByb2ZpbGUsIG1fc3RydWN0dXJlSUQpOyB9CiAKLSAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSgpIHsgcmV0dXJuIG1fc3RydWN0dXJlLmdldCgpOyB9CisgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUoKSB7IHJldHVybiBtX3N0cnVjdHVyZUlELmdldCgpOyB9CiAgICAgU3RydWN0dXJl
KiBjcmVhdGVBbGxvY2F0aW9uU3RydWN0dXJlRnJvbUJhc2UoVk0mLCBKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0KiBwcm90b3R5cGUsIFN0cnVjdHVyZSogYmFzZSk7CiAK
LSAgICB2b2lkIGNsZWFyKCkgeyBtX3N0cnVjdHVyZS5jbGVhcigpOyB9Ci0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdEFnZ3JlZ2F0ZShWaXNpdG9yJiB2aXNpdG9yKSB7
IHZpc2l0b3IuYXBwZW5kKG1fc3RydWN0dXJlKTsgfQorICAgIHZvaWQgY2xlYXIoKSB7IG1fc3Ry
dWN0dXJlSUQuY2xlYXIoKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQg
dmlzaXRBZ2dyZWdhdGUoVmlzaXRvciYgdmlzaXRvcikgeyB2aXNpdG9yLmFwcGVuZChtX3N0cnVj
dHVyZUlEKTsgfQogCiBwcml2YXRlOgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc3Ry
dWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fc3RydWN0dXJlSUQ7CiB9Owog
CiBpbmxpbmUgU3RydWN0dXJlKiBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6OmNy
ZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVGcm9tQmFzZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBi
YXNlR2xvYmFsT2JqZWN0LCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogcHJvdG90eXBlLCBTdHJ1
Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKCFtX3N0cnVjdHVyZSB8fCBtX3N0
cnVjdHVyZS5nZXQoKS0+Y2xhc3NJbmZvKCkgIT0gYmFzZVN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkg
fHwgbV9zdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpICE9IGJhc2VTdHJ1Y3R1cmUtPmdsb2JhbE9i
amVjdCgpKTsKKyAgICBBU1NFUlQoIW1fc3RydWN0dXJlSUQgfHwgbV9zdHJ1Y3R1cmVJRC5nZXQo
KS0+Y2xhc3NJbmZvKCkgIT0gYmFzZVN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkgfHwgbV9zdHJ1Y3R1
cmVJRC0+Z2xvYmFsT2JqZWN0KCkgIT0gYmFzZVN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkpOwog
ICAgIEFTU0VSVChiYXNlU3RydWN0dXJlLT5oYXNNb25vUHJvdG8oKSk7CiAKICAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZTsKQEAgLTYxLDggKzYxLDggQEAgaW5saW5lIFN0cnVjdHVyZSogSW50ZXJu
YWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpjcmVhdGVBbGxvY2F0aW9uU3RydWN0dXJlRnIK
ICAgICAvLyBFbnN1cmUgdGhhdCBpZiBhbm90aGVyIHRocmVhZCBzZWVzIHRoZSBzdHJ1Y3R1cmUs
IGl0IHdpbGwgc2VlIGl0IHByb3Blcmx5IGNyZWF0ZWQuCiAgICAgV1RGOjpzdG9yZVN0b3JlRmVu
Y2UoKTsKIAotICAgIG1fc3RydWN0dXJlLnNldCh2bSwgb3duZXIsIHN0cnVjdHVyZSk7Ci0gICAg
cmV0dXJuIG1fc3RydWN0dXJlLmdldCgpOworICAgIG1fc3RydWN0dXJlSUQuc2V0KHZtLCBvd25l
ciwgc3RydWN0dXJlKTsKKyAgICByZXR1cm4gc3RydWN0dXJlOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwCmluZGV4IDcyZjAyOTExMWY2NTdhMWExNGU1MTgwYWI5MDA0YTkwYmM2NmRk
ZDAuLjVmZDQxOTEzNTY3ZjZlODk1MGFhYmY1OTBkOWEzMGU2ZTM4ODBmMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcApA
QCAtNDksOCArNDksNyBAQCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjppbml0R2V0QnlJZFNlbGYo
Y29uc3QgQ29uY3VycmVudEpTTG9ja2VyQmFzZSYgbG9ja2VyLCBDbwogICAgIEFTU0VSVChoYXND
b25zdGFudElkZW50aWZpZXIpOwogICAgIHNldENhY2hlVHlwZShsb2NrZXIsIENhY2hlVHlwZTo6
R2V0QnlJZFNlbGYpOwogICAgIG1faWRlbnRpZmllciA9IGlkZW50aWZpZXI7Ci0gICAgbV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlID0gaW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZS0+aWQoKTsK
LSAgICBjb2RlQmxvY2stPnZtKCkud3JpdGVCYXJyaWVyKGNvZGVCbG9jayk7CisgICAgbV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuc2V0KGNvZGVCbG9jay0+dm0oKSwgY29kZUJsb2NrLCBp
bmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKTsKICAgICBieUlkU2VsZk9mZnNldCA9IG9mZnNldDsK
IH0KIApAQCAtNzEsOCArNzAsNyBAQCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjppbml0UHV0QnlJ
ZFJlcGxhY2UoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyQmFzZSYgbG9ja2VyLAogICAgIEFTU0VS
VChtX2NhY2hlVHlwZSA9PSBDYWNoZVR5cGU6OlVuc2V0KTsKICAgICBzZXRDYWNoZVR5cGUobG9j
a2VyLCBDYWNoZVR5cGU6OlB1dEJ5SWRSZXBsYWNlKTsKICAgICBtX2lkZW50aWZpZXIgPSBpZGVu
dGlmaWVyOwotICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSA9IGlubGluZUFjY2Vzc0Jh
c2VTdHJ1Y3R1cmUtPmlkKCk7Ci0gICAgY29kZUJsb2NrLT52bSgpLndyaXRlQmFycmllcihjb2Rl
QmxvY2spOworICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELnNldChjb2RlQmxvY2st
PnZtKCksIGNvZGVCbG9jaywgaW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSk7CiAgICAgYnlJZFNl
bGZPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTgxLDggKzc5LDcgQEAgdm9pZCBTdHJ1Y3R1cmVT
dHViSW5mbzo6aW5pdEluQnlJZFNlbGYoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyQmFzZSYgbG9j
a2VyLCBDb2QKICAgICBBU1NFUlQobV9jYWNoZVR5cGUgPT0gQ2FjaGVUeXBlOjpVbnNldCk7CiAg
ICAgc2V0Q2FjaGVUeXBlKGxvY2tlciwgQ2FjaGVUeXBlOjpJbkJ5SWRTZWxmKTsKICAgICBtX2lk
ZW50aWZpZXIgPSBpZGVudGlmaWVyOwotICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSA9
IGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUtPmlkKCk7Ci0gICAgY29kZUJsb2NrLT52bSgpLndy
aXRlQmFycmllcihjb2RlQmxvY2spOworICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlE
LnNldChjb2RlQmxvY2stPnZtKCksIGNvZGVCbG9jaywgaW5saW5lQWNjZXNzQmFzZVN0cnVjdHVy
ZSk7CiAgICAgYnlJZFNlbGZPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTIxNiwxMSArMjEzLDEx
IEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgU3RydWN0dXJlU3R1YkluZm86OmFkZEFjY2Vzc0Nh
c2UoCiAgICAgICAgIC8vIGFjY2VzcyBjb2RlLiBUaGF0J3MgYmVjYXVzZSB3aGVuIHdlIGZpcnN0
IHRyYW5zaXRpb24gdG8gYmVjb21pbmcgYSBTdHViLCB3ZSBtYXkKICAgICAgICAgLy8gYmUgYnVm
ZmVyZWQsIGFuZCB3ZSBoYXZlIG5vdCB5ZXQgZ2VuZXJhdGVkIGFueSBjb2RlLiBPbmNlIHRoZSBT
dHViIGZpbmFsbHkgZ2VuZXJhdGVzCiAgICAgICAgIC8vIGNvZGUsIHdlJ3JlIG5vIGxvbmdlciBy
dW5uaW5nIHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUsIHNvIHdlIGNhbiB0aGVuIGNsZWFyIG91dAot
ICAgICAgICAvLyBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUuIFRoZSByZWFzb24gd2UgZG9u
J3QgY2xlYXIgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlIHdoaWxlCi0gICAgICAgIC8vIHdl
J3JlIGJ1ZmZlcmVkIGlzIGJlY2F1c2Ugd2UgcmVseSBvbiBpdCB0byByZXNldCBkdXJpbmcgR0Mg
aWYgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlCisgICAgICAgIC8vIG1faW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZUlELiBUaGUgcmVhc29uIHdlIGRvbid0IGNsZWFyIG1faW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZUlEIHdoaWxlCisgICAgICAgIC8vIHdlJ3JlIGJ1ZmZlcmVkIGlzIGJlY2F1
c2Ugd2UgcmVseSBvbiBpdCB0byByZXNldCBkdXJpbmcgR0MgaWYgbV9pbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlSUQKICAgICAgICAgLy8gaXMgY29sbGVjdGVkLgogICAgICAgICBtX2lkZW50aWZp
ZXIgPSBudWxscHRyOwotICAgICAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBTdHJ1
Y3R1cmVJRCgpOworICAgICAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5jbGVhcigp
OwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2UgZ2VuZXJhdGVkIHNvbWUgY29kZSB0aGVuIHdl
IGRvbid0IHdhbnQgdG8gYXR0ZW1wdCB0byByZXBhdGNoIGluIHRoZSBmdXR1cmUgdW50aWwgd2UK
ICAgICAgICAgLy8gZ2F0aGVyIGVub3VnaCBjYXNlcy4KQEAgLTIzNSw3ICsyMzIsNyBAQCB2b2lk
IFN0cnVjdHVyZVN0dWJJbmZvOjpyZXNldChjb25zdCBDb25jdXJyZW50SlNMb2NrZXJCYXNlJiBs
b2NrZXIsIENvZGVCbG9jayogYwogewogICAgIGNsZWFyQnVmZmVyZWRTdHJ1Y3R1cmVzKCk7CiAg
ICAgbV9pZGVudGlmaWVyID0gbnVsbHB0cjsKLSAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1
cmUgPSBTdHJ1Y3R1cmVJRCgpOworICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELmNs
ZWFyKCk7CiAKICAgICBpZiAobV9jYWNoZVR5cGUgPT0gQ2FjaGVUeXBlOjpVbnNldCkKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uaAppbmRleCA3M2JiM2UwNWE2MmVjMGIyMWU3NjExODc4MzFlZjdkMTM5N2Q5
ODM5Li5jMDFmZjc4MDNhNWI3NGQ3NDdmMmNhNmE0NjFmNjQ1OGU0N2NiZjk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAt
MzUzLDE3ICszNTMsMTUgQEAgY2xhc3MgU3RydWN0dXJlU3R1YkluZm8gewogICAgIENvZGVPcmln
aW4gY29kZU9yaWdpbjsKICAgICBQcm9wZXJ0eU9mZnNldCBieUlkU2VsZk9mZnNldDsKICAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQnlJZFNlbGZPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoU3RydWN0dXJlU3R1YkluZm8sIGJ5SWRTZWxmT2Zmc2V0KTsgfQotICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZVN0dWJJbmZvLCBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1
Y3R1cmUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VT
dHJ1Y3R1cmVJRCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVTdHViSW5mbywg
bV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQpOyB9CiAgICAgdW5pb24gewogICAgICAgICBQ
b2x5bW9ycGhpY0FjY2Vzcyogc3R1YjsKICAgICB9IHU7CiAgICAgU3RydWN0dXJlKiBpbmxpbmVB
Y2Nlc3NCYXNlU3RydWN0dXJlKFZNJikKICAgICB7Ci0gICAgICAgIGlmICghbV9pbmxpbmVBY2Nl
c3NCYXNlU3RydWN0dXJlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJl
dHVybiBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUuZGVjb2RlKCk7CisgICAgICAgIHJldHVy
biBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5nZXQoKTsKICAgICB9Ci0gICAgU3RydWN0
dXJlSUQgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVj
dHVyZUlEIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEOwogcHJpdmF0ZToKICAgICBDYWNo
ZWFibGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICAvLyBSZXByZXNlbnRzIHRob3NlIHN0
cnVjdHVyZXMgdGhhdCBhbHJlYWR5IGhhdmUgYnVmZmVyZWQgQWNjZXNzQ2FzZXMgaW4gdGhlIFBv
bHltb3JwaGljQWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAppbmRleCA5NjI5ZWUxM2M3ZWFmZWM5NjMyNjQxOTQxY2UyNTQ0YzQyODVl
YmI0Li5mOTA4MGUyMDc5ODNlZDQ0MGJhMWMzZTQ4ZmQ2MWJiNjM0ZTk3M2JhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTQ4MTks
OCArMTQ4MTksOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUHJvbWlzZShO
b2RlKiBub2RlKQogICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RGdW5jdGlv
bihjYWxsZWVHUFIpKTsKICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGNh
bGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlT3JSYXJlRGF0YSgpKSwgcmFy
ZURhdGFHUFIpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihNYWNy
b0Fzc2VtYmxlcjo6WmVybywgcmFyZURhdGFHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTRnVuY3Rpb246OnJhcmVEYXRhVGFnKSkpOwotICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGls
ZXI6OkFkZHJlc3MocmFyZURhdGFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJu
YWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlv
blByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyks
IHN0cnVjdHVyZUdQUik7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRy
KENDYWxsSGVscGVyczo6WmVybywgc3RydWN0dXJlR1BSKSk7CisgICAgbV9qaXQubG9hZDMyKEpJ
VENvbXBpbGVyOjpBZGRyZXNzKHJhcmVEYXRhR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRP
ZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVjdHVyZUlEKCkgLSBKU0Z1bmN0aW9uOjpyYXJl
RGF0YVRhZyksIHN0cnVjdHVyZUdQUik7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFu
Y2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzdHJ1Y3R1cmVHUFIpKTsKKyAgICBtX2ppdC5l
bWl0Tm9uTnVsbERlY29kZVN0cnVjdHVyZUlEKHN0cnVjdHVyZUdQUiwgc3RydWN0dXJlR1BSKTsK
ICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIobm9kZS0+aXNJbnRlcm5hbFByb21pc2UoKSA/
IEpTSW50ZXJuYWxQcm9taXNlOjppbmZvKCkgOiBKU1Byb21pc2U6OmluZm8oKSksIHNjcmF0Y2gx
R1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6
Ok5vdEVxdWFsLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0cnVjdHVyZUdQ
UiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSkpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0LmdyYXBoKCksIGdsb2JhbE9iamVjdCksIHNjcmF0
Y2gxR1BSKTsKQEAgLTE0ODY3LDggKzE0ODY4LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QoTm9kZSogbm9kZSwgT3BlcmF0aW9uIG9wZXIK
ICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90RnVuY3Rpb24oY2FsbGVlR1BS
KSk7CiAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpT
RnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZU9yUmFyZURhdGEoKSksIHJhcmVEYXRhR1BSKTsK
ICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6
Olplcm8sIHJhcmVEYXRhR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU0Z1bmN0aW9u
OjpyYXJlRGF0YVRhZykpKTsKLSAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNz
KHJhcmVEYXRhR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25B
bGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpv
ZmZzZXRPZlN0cnVjdHVyZSgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVH
UFIpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBl
cnM6Olplcm8sIHN0cnVjdHVyZUdQUikpOworICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6
QWRkcmVzcyhyYXJlRGF0YUdQUiwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZJbnRlcm5hbEZ1
bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUoKSArIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmVJRCgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBz
dHJ1Y3R1cmVHUFIpOworICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKEND
YWxsSGVscGVyczo6WmVybywgc3RydWN0dXJlR1BSKSk7CisgICAgbV9qaXQuZW1pdE5vbk51bGxE
ZWNvZGVTdHJ1Y3R1cmVJRChzdHJ1Y3R1cmVHUFIsIHN0cnVjdHVyZUdQUik7CiAgICAgbV9qaXQu
bW92ZShUcnVzdGVkSW1tUHRyKEpTQ2xhc3M6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBz
bG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBz
Y3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJl
OjpjbGFzc0luZm9PZmZzZXQoKSkpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6Ondl
YWtQb2ludGVyKG1faml0LmdyYXBoKCksIGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmgKaW5kZXggMzE1ZjkwZDRjZWEyMzk5NmRkMDcyOGI2YjZiZGNiNDg0YmJiMWU2MC4uYWIx
ZjViODY3NTlkMDU1NjlkMzhjMDQ4ZGNjODNhYTdmZDVmYjBlYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg0
LDkgKzg0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEZ1
bmN0aW9uUmFyZURhdGFfcHJvdG90eXBlLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZk9iamVj
dEFsbG9jYXRpb25Qcm9maWxlKCkgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5
cGU6Om9mZnNldE9mUHJvdG90eXBlKCkpIFwKICAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2Fs
bG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZB
bGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQoKSkgXAogICAgIG1hY3JvKEZ1bmN0aW9uUmFy
ZURhdGFfZXhlY3V0YWJsZSwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkp
IFwKLSAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9u
UHJvZmlsZV9zdHJ1Y3R1cmUsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5j
dGlvbkFsbG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2Zp
bGU6Om9mZnNldE9mU3RydWN0dXJlKCkpIFwKLSAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2Jv
dW5kRnVuY3Rpb25TdHJ1Y3R1cmUsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mQm91bmRGdW5j
dGlvblN0cnVjdHVyZSgpKSBcCi0gICAgbWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0aW9u
UHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxv
Y2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludCgpKSBcCisgICAgbWFjcm8oRnVuY3Rpb25S
YXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQsIEZ1
bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxl
KCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJl
SUQoKSkgXAogICAgIG1hY3JvKEdldHRlclNldHRlcl9nZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zm
c2V0T2ZHZXR0ZXIoKSkgXAogICAgIG1hY3JvKEdldHRlclNldHRlcl9zZXR0ZXIsIEdldHRlclNl
dHRlcjo6b2Zmc2V0T2ZTZXR0ZXIoKSkgXAogICAgIG1hY3JvKEpTQXJyYXlCdWZmZXJWaWV3X2xl
bmd0aCwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwMGVkYTU2YTgzNTgx
YWVlZTAyNGMxZmYyNTNmMGMyMGE2ZDNkNDQ4Li4yYjExZjZhYzNkYmUxZjBmN2RhOTYyNmNkMmU0
MWU1Zjg5N2I2ZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCkBAIC03ODc3LDEwICs3ODc3LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhoYXNSYXJlRGF0YSwgaGFzU3RydWN0dXJlKTsK
ICAgICAgICAgTFZhbHVlIHJhcmVEYXRhID0gbV9vdXQuc3ViKHJhcmVEYXRhVGFncywgbV9vdXQu
Y29uc3RJbnRQdHIoSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpKTsKLSAgICAgICAgTFZhbHVlIHN0
cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIocmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0
YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlKTsKLSAgICAgICAg
bV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzY0KHN0cnVjdHVyZSksIHJhcmVseShzbG93Q2FzZSks
IHVzdWFsbHkoaGFzU3RydWN0dXJlKSk7CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1f
b3V0LmxvYWQzMihyYXJlRGF0YSwgbV9oZWFwcy5GdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVu
Y3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9zdHJ1Y3R1cmVJRCk7CisgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC5pc1plcm8zMihzdHJ1Y3R1cmVJRCksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHko
aGFzU3RydWN0dXJlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaGFzU3RydWN0dXJlLCBj
aGVja0dsb2JhbE9iamVjdENhc2UpOworICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gZGVjb2Rl
Tm9uTnVsbFN0cnVjdHVyZShzdHJ1Y3R1cmVJRCk7CiAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC5lcXVhbChtX291dC5sb2FkUHRyKHN0cnVjdHVyZSwgbV9oZWFwcy5TdHJ1Y3R1cmVfY2xhc3NJ
bmZvKSwgbV9vdXQuY29uc3RJbnRQdHIobV9ub2RlLT5pc0ludGVybmFsUHJvbWlzZSgpID8gSlNJ
bnRlcm5hbFByb21pc2U6OmluZm8oKSA6IEpTUHJvbWlzZTo6aW5mbygpKSksIHVzdWFsbHkoY2hl
Y2tHbG9iYWxPYmplY3RDYXNlKSwgcmFyZWx5KHNsb3dDYXNlKSk7CiAKICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY2hlY2tHbG9iYWxPYmplY3RDYXNlLCBmYXN0QWxsb2NhdGlvbkNhc2UpOwpAQCAt
NzkzMiwxMCArNzkzMywxMSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oaGFzUmFyZURhdGEsIGhhc1N0cnVjdHVyZSk7CiAgICAgICAgIExWYWx1
ZSByYXJlRGF0YSA9IG1fb3V0LnN1YihyYXJlRGF0YVRhZ3MsIG1fb3V0LmNvbnN0SW50UHRyKEpT
RnVuY3Rpb246OnJhcmVEYXRhVGFnKSk7Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291
dC5sb2FkUHRyKHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfaW50ZXJuYWxGdW5j
dGlvbkFsbG9jYXRpb25Qcm9maWxlX3N0cnVjdHVyZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaCht
X291dC5pc1plcm82NChzdHJ1Y3R1cmUpLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0
cnVjdHVyZSkpOworICAgICAgICBMVmFsdWUgc3RydWN0dXJlSUQgPSBtX291dC5sb2FkMzIocmFy
ZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlv
blByb2ZpbGVfc3RydWN0dXJlSUQpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJv
MzIoc3RydWN0dXJlSUQpLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkp
OwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGhhc1N0cnVjdHVyZSwgY2hlY2tHbG9iYWxPYmpl
Y3RDYXNlKTsKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IGRlY29kZU5vbk51bGxTdHJ1Y3R1
cmUoc3RydWN0dXJlSUQpOwogICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobV9vdXQu
bG9hZFB0cihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2NsYXNzSW5mbyksIG1fb3V0LmNv
bnN0SW50UHRyKEpTQ2xhc3M6OmluZm8oKSkpLCB1c3VhbGx5KGNoZWNrR2xvYmFsT2JqZWN0Q2Fz
ZSksIHJhcmVseShzbG93Q2FzZSkpOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrR2xv
YmFsT2JqZWN0Q2FzZSwgZmFzdEFsbG9jYXRpb25DYXNlKTsKQEAgLTIwOTczLDEzICsyMDk3NSwx
OCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIG1fZ3JhcGgubV9wbGFuLndl
YWtSZWZlcmVuY2VzKCkuYWRkTGF6aWx5KHRhcmdldCk7CiAgICAgfQogCi0gICAgTFZhbHVlIGxv
YWRTdHJ1Y3R1cmUoTFZhbHVlIHZhbHVlKQorICAgIExWYWx1ZSBkZWNvZGVOb25OdWxsU3RydWN0
dXJlKExWYWx1ZSBzdHJ1Y3R1cmVJRCkKICAgICB7Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJ
RCA9IG1fb3V0LmxvYWQzMih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpOwogICAg
ICAgICBMVmFsdWUgbWFza2VkU3RydWN0dXJlSUQgPSBtX291dC5iaXRBbmQoc3RydWN0dXJlSUQs
IG1fb3V0LmNvbnN0SW50MzIoc3RydWN0dXJlSURNYXNrKSk7CiAgICAgICAgIHJldHVybiBtX291
dC5hZGQobV9vdXQuY29uc3RJbnRQdHIoZ19qc2NDb25maWcuc3RhcnRPZlN0cnVjdHVyZUhlYXAp
LCBtX291dC56ZXJvRXh0UHRyKG1hc2tlZFN0cnVjdHVyZUlEKSk7CiAgICAgfQogCisgICAgTFZh
bHVlIGxvYWRTdHJ1Y3R1cmUoTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHN0
cnVjdHVyZUlEID0gbV9vdXQubG9hZDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJ
RCk7CisgICAgICAgIHJldHVybiBkZWNvZGVOb25OdWxsU3RydWN0dXJlKHN0cnVjdHVyZUlEKTsK
KyAgICB9CisKICAgICBMVmFsdWUgd2Vha1BvaW50ZXIoSlNDZWxsKiBwb2ludGVyKQogICAgIHsK
ICAgICAgICAgYWRkV2Vha1JlZmVyZW5jZShwb2ludGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3IuaAppbmRleCBiYzI5Zjc0MTkzMzk4ZDE0
Y2ZmNDI1M2Y2MjY4NmRmMTgyNDc4MzBhLi5kNmY0MTYyZmZhYjlmY2RhMmI0YTJkYzZmMzg0M2Ri
ZjY2ZTkyMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFj
dFNsb3RWaXNpdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RT
bG90VmlzaXRvci5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIFZNOwogY2xhc3MgVmVyaWZpZXJT
bG90VmlzaXRvcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2U7CitjbGFz
cyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDsKIAogY2xhc3MgQWJzdHJhY3RTbG90VmlzaXRvciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQWJzdHJhY3RTbG90VmlzaXRvcik7CkBAIC0xNDMs
NiArMTQ0LDggQEAgY2xhc3MgQWJzdHJhY3RTbG90VmlzaXRvciB7CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmll
ckJhc2U8VCwgVHJhaXRzPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRy
YWl0cz4gdm9pZCBhcHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUcmFpdHM+
Jik7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKKyAg
ICB2b2lkIGFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYpOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yPiB2b2lkIGFwcGVuZChJdGVyYXRvciBiZWdpbiAs
IEl0ZXJhdG9yIGVuZCk7CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZFZhbHVlcyhjb25z
dCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNp
emVfdCBjb3VudCk7CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZFZhbHVlc0hpZGRlbihj
b25zdCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+Pios
IHNpemVfdCBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9B
YnN0cmFjdFNsb3RWaXNpdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
QWJzdHJhY3RTbG90VmlzaXRvcklubGluZXMuaAppbmRleCBhZjY2MDM4NjRjNmViZmUyZWZlMWRj
OTA4YTFiZDg1MTNjNmViZjU4Li42Mjg0MzgyZTAwMjExNTY5OGU1Mjk1NmIyZDMxYmRmODE2NmQy
YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RW
aXNpdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0
U2xvdFZpc2l0b3JJbmxpbmVzLmgKQEAgLTE1OCw2ICsxNTgsMTYgQEAgQUxXQVlTX0lOTElORSB2
b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJC
YXNlPFQsIFQKICAgICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChzbG90LmdldCgpKTsKIH0KIAor
QUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZChjb25zdCBXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRVbmJhcnJpZXJlZChyZWlu
dGVycHJldF9jYXN0PEpTQ2VsbCo+KHNsb3QuZ2V0KCkpKTsKK30KKworQUxXQVlTX0lOTElORSB2
b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJT
dHJ1Y3R1cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChyZWludGVy
cHJldF9jYXN0PEpTQ2VsbCo+KHNsb3QuZ2V0KCkpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lk
IEFic3RyYWN0U2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlblVuYmFycmllcmVkKEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzQ2VsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1Nsb3RWaXNpdG9yLmgKaW5kZXggNTAzNjM2OTM4NDI5NjQzNTJjMGQwMjBiYmViOTkwYmUyMWQ3
YTg0Ny4uMDZmZDRhZDkwNGQwZDhlNDAyYTg4NzRkM2M3YTY2NDg2YTFhNmI5NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCkBAIC05Miw2ICs5Miw4IEBAIGNsYXNz
IFNsb3RWaXNpdG9yIGZpbmFsIDogcHVibGljIEFic3RyYWN0U2xvdFZpc2l0b3IgewogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiB2b2lkIGFwcGVuZChjb25zdCBX
cml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0cz4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBwZW5kSGlkZGVuKGNvbnN0IFdyaXRlQmFycmllckJhc2U8
VCwgVHJhaXRzPiYpOworICAgIHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmllclN0cnVjdHVy
ZUlEJik7CisgICAgdm9pZCBhcHBlbmRIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBhcHBlbmQoSXRlcmF0
b3IgYmVnaW4gLCBJdGVyYXRvciBlbmQpOwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRW
YWx1ZXMoY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtu
b3duPj4qLCBzaXplX3QgY291bnQpOwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1
ZXNIaWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxV
bmtub3duPj4qLCBzaXplX3QgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TbG90VmlzaXRvcklubGluZXMuaAppbmRleCA0NGYyMDljNTk0ZTlmNDhmOTRmOTk3NzRjZTY0
NGU4ZmRkYmU4MWMyLi41NDIyM2E2NDc5NmFmZTk2MmRkNzZkYjIzOWMwMWNjMmVmYjU3ZWE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaApA
QCAtMTE2LDYgKzExNiwxNiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVu
ZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0cz4mCiAgICAgYXBwZW5kSGlk
ZGVuVW5iYXJyaWVyZWQoc2xvdC5nZXQoKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90
VmlzaXRvcjo6YXBwZW5kKGNvbnN0IFdyaXRlQmFycmllclN0cnVjdHVyZUlEJiBzbG90KQorewor
ICAgIGFwcGVuZFVuYmFycmllcmVkKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oc2xvdC5nZXQo
KSkpOworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihj
b25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRIaWRkZW5V
bmJhcnJpZXJlZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHNsb3QuZ2V0KCkpKTsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgSXRlcmF0b3I+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0
b3I6OmFwcGVuZChJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDkzZDliMzNhM2Q0NTJh
MTdhMTFkM2FmZGI4ZWIyNmY2Njc0NmMxZGIuLjMzYjJiMjdiMjYwNjA5NTkyMTM2ZDQ2NTg1NjU2
MTA2N2Y3MDE0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5jcHAKQEAgLTM4OSw5ICszODksOSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6c3RvcmVQ
cm9wZXJ0eShKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwgR1BSUmVnIG9mZgogICAg
ICAgICBCYXNlSW5kZXgoc2NyYXRjaCwgb2Zmc2V0LCBUaW1lc0VpZ2h0LCAoZmlyc3RPdXRPZkxp
bmVPZmZzZXQgLSAyKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpKTsKIH0KIAotdm9pZCBBc3Nl
bWJseUhlbHBlcnM6OmVtaXRMb2FkU3RydWN0dXJlKFZNJiwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJl
Z2lzdGVySUQgZGVzdCkKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0Tm9uTnVsbERlY29kZVN0
cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCiB7Ci0gICAgbG9h
ZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9m
ZnNldCgpKSwgZGVzdCk7CisgICAgbW92ZShzb3VyY2UsIGRlc3QpOwogI2lmIENQVShBRERSRVNT
NjQpCiAgICAgLy8gVGhpcyBjb3VsZCB1c2UgQkZJIG9uIGFybTY0IGJ1dCB0aGF0IG9ubHkgaGVs
cHMgaWYgdGhlIHN0YXJ0IG9mIHN0cnVjdHVyZSBoZWFwIGlzIGVuY29kYWJsZSBhcyBhIG1vdiBh
bmQgbm90IGFzIGFuIGltbWVkaWF0ZSBpbiB0aGUgYWRkIHNvIGl0J3MgcHJvYmFibHkgbm90IHN1
cGVyIGltcG9ydGFudC4KICAgICBhbmQzMihUcnVzdGVkSW1tMzIoc3RydWN0dXJlSURNYXNrKSwg
ZGVzdCk7CkBAIC0zOTksNiArMzk5LDEyIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9h
ZFN0cnVjdHVyZShWTSYsIFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCiAjZW5k
aWYgLy8gbm90IENQVShBRERSRVNTNjQpCiB9CiAKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0
TG9hZFN0cnVjdHVyZShWTSYsIFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCit7
CisgICAgbG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgZGVzdCk7CisgICAgZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJ
RChkZXN0LCBkZXN0KTsKK30KKwogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkUHJvdG90
eXBlKFZNJiB2bSwgR1BSUmVnIG9iamVjdEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVt
cExpc3QmIHNsb3dQYXRoKQogewogICAgIEFTU0VSVChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSAh
PSBvYmplY3RHUFIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKaW5kZXggYzZlZjU1MTIyZTM3NGVhODliN2Y1NDc2ZDQ2YzEwN2ExOWIzNzE1Ni4uZjcxNzYw
YmYwNWJhMmNlM2QyZWFkNTUyZDZhYTQyMmI1YjYwOWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNTc3LDYgKzE1NzcsNyBAQCBjbGFzcyBB
c3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICByZXR1cm4g
YXJndW1lbnRDb3VudChjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9CiAgICAg
CisgICAgdm9pZCBlbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291cmNl
LCBSZWdpc3RlcklEIGRlc3QpOwogICAgIHZvaWQgZW1pdExvYWRTdHJ1Y3R1cmUoVk0mLCBSZWdp
c3RlcklEIHNvdXJjZSwgUmVnaXN0ZXJJRCBkZXN0KTsKICAgICB2b2lkIGVtaXRMb2FkUHJvdG90
eXBlKFZNJiwgR1BSUmVnIG9iamVjdEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExp
c3QmIHNsb3dQYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBjNjdiY2UwOWZmYmM2MGUyNDMzZTYyMmUz
NzgyNzhjZjIwNzRiNGJlLi4wNGZmMjJlNmU0MjVhMDNjNjE0MTQ3MDU2N2YzN2RhNjM2NTM0YWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQogc3RhdGljIHZvaWQgZ2Vu
ZXJhdGVHZXRCeUlkSW5saW5lQWNjZXNzKEpJVCYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpT
VmFsdWVSZWdzIGJhc2VKU1IsIEdQUlJlZyBzY3JhdGNoR1BSLCBKU1ZhbHVlUmVncyByZXN1bHRK
U1IpCiB7CiAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXls
b2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAg
IGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwg
c2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVT
dHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKCkpKTsKKyAgICBhdXRv
IGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0
Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1Yklu
Zm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKICAgICBqaXQuZmFy
SnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZv
OjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsKICAgICBkb0lubGlu
ZUFjY2Vzcy5saW5rKCZqaXQpOwogICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgp
KSwgc2NyYXRjaEdQUik7CkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJh
dG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0
dWIKICAgICB1c2luZyBCYXNlbGluZVB1dEJ5SWRSZWdpc3RlcnM6OnNjcmF0Y2gyR1BSOwogCiAg
ICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCks
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1dG8gZG9J
bmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKCkpKTsKKyAgICBhdXRvIGRvSW5saW5l
QWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIEND
YWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNl
dE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKICAgICBqaXQuZmFySnVtcChDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRP
ZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsKICAgICBkb0lubGluZUFjY2Vzcy5s
aW5rKCZqaXQpOwogICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRj
aEdQUik7CkBAIC00MTIsNyArNDEyLDcgQEAgdm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkkKICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKICAgICBqaXQubG9hZDMyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhiYXNlSlNSLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgYXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5j
aDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRk
cmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZSgpKSk7CisgICAgYXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5j
aDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRk
cmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZUlEKCkpKTsKICAgICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1Ip
OwogICAgIGF1dG8gZmluaXNoZWQgPSBqaXQuanVtcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAppbmRleCAxMmQ0OTlh
NGU0NTA0Y2VjMTg0ZDdkYmY1YzM2ZWZlZGViMWFiNDczLi5hMTc2NDdhYzlhYTIzZTc1NDc1Njcy
ZTRjNmViNTJmZDA1OWU0YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBGdW5j
dGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYg
dmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NvZGVCbG9ja0ZvckNv
bnN0cnVjdCk7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV91bmxpbmtlZEV4ZWN1
dGFibGUpOwogICAgIGlmIChSYXJlRGF0YSogcmFyZURhdGEgPSB0aGlzT2JqZWN0LT5tX3JhcmVE
YXRhLmdldCgpKSB7Ci0gICAgICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2NhY2hlZFBv
bHlQcm90b1N0cnVjdHVyZSk7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2Nh
Y2hlZFBvbHlQcm90b1N0cnVjdHVyZUlEKTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQocmFyZURh
dGEtPm1fYXNTdHJpbmcpOwogICAgICAgICBpZiAoVGVtcGxhdGVPYmplY3RNYXAqIG1hcCA9IHJh
cmVEYXRhLT5tX3RlbXBsYXRlT2JqZWN0TWFwLmdldCgpKSB7CiAgICAgICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgdGhpc09iamVjdC0+Y2VsbExvY2soKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBhN2Y3NzUxM2U4YWRl
MGZlYmY3YTliMzJlZjkzZGY5YjBlNmJhMjYxLi5mYTk1MDQ1M2E1NDEyYzcyMDBmNWE4MjViODZj
ZmEwNzY1ZjlkMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMjU3LDEyICsyNTcsMTIgQEAgY2xhc3MgRnVuY3Rpb25F
eGVjdXRhYmxlIGZpbmFsIDogcHVibGljIFNjcmlwdEV4ZWN1dGFibGUgewogICAgIFN0cnVjdHVy
ZSogY2FjaGVkUG9seVByb3RvU3RydWN0dXJlKCkKICAgICB7CiAgICAgICAgIGlmIChVTkxJS0VM
WShtX3JhcmVEYXRhKSkKLSAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2NhY2hlZFBv
bHlQcm90b1N0cnVjdHVyZS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5t
X2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZUlELmdldCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAgICAgdm9pZCBzZXRDYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Ci0gICAgICAgIGVuc3VyZVJhcmVEYXRhKCkubV9j
YWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOworICAgICAg
ICBlbnN1cmVSYXJlRGF0YSgpLm1fY2FjaGVkUG9seVByb3RvU3RydWN0dXJlSUQuc2V0KHZtLCB0
aGlzLCBzdHJ1Y3R1cmUpOwogICAgIH0KIAogICAgIElubGluZVdhdGNocG9pbnRTZXQmIGVuc3Vy
ZVBvbHlQcm90b1dhdGNocG9pbnQoKQpAQCAtMzEwLDggKzMxMCw4IEBAIGNsYXNzIEZ1bmN0aW9u
RXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKICAgICAgICAgdW5z
aWduZWQgbV9wYXJhbWV0ZXJzU3RhcnRPZmZzZXQgeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1f
dHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0IHsgVUlOVF9NQVggfTsKICAgICAgICAgdW5zaWduZWQg
bV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0IHsgVUlOVF9NQVggfTsKKyAgICAgICAgV3JpdGVCYXJy
aWVyU3RydWN0dXJlSUQgbV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmVJRDsKICAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFRlbXBsYXRlT2JqZWN0TWFwPiBtX3RlbXBsYXRlT2JqZWN0TWFwOwotICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZTsK
ICAgICAgICAgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiBtX2FzU3RyaW5nOwogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAK
aW5kZXggMTIxZDQzMjhjYTA4ZmVhOTAzOTVjZjExMWNiNDNmYzdmYjU1M2FlZi4uYTEzZGZhNDU2
NjgzMTg4Zjc5NGQ3OTkzNmE5MjEzODU2MWYyMzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAg
dm9pZCBGdW5jdGlvblJhcmVEYXRhOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZp
c2l0b3ImIHZpc2l0b3IpCiAKICAgICByYXJlRGF0YS0+bV9vYmplY3RBbGxvY2F0aW9uUHJvZmls
ZS52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKICAgICByYXJlRGF0YS0+bV9pbnRlcm5hbEZ1bmN0
aW9uQWxsb2NhdGlvblByb2ZpbGUudmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7Ci0gICAgdmlzaXRv
ci5hcHBlbmQocmFyZURhdGEtPm1fYm91bmRGdW5jdGlvblN0cnVjdHVyZSk7CisgICAgdmlzaXRv
ci5hcHBlbmQocmFyZURhdGEtPm1fYm91bmRGdW5jdGlvblN0cnVjdHVyZUlEKTsKICAgICB2aXNp
dG9yLmFwcGVuZChyYXJlRGF0YS0+bV9leGVjdXRhYmxlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCmluZGV4IDJjYTA4NmRiYzZl
YmRmNzgyZTFmNjE0MTNiMTNkZjAwY2NiMTkwNmYuLjBmMWU5ODU2OTM1MTY0N2ExNzkyOTc0NzMw
NGU4ZmE3YTYzYzJiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvblJhcmVEYXRhLmgKQEAgLTcyLDkgKzcyLDcgQEAgY2xhc3MgRnVuY3Rpb25SYXJlRGF0
YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9m
ZnNldE9mT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
RnVuY3Rpb25SYXJlRGF0YSwgbV9vYmplY3RBbGxvY2F0aW9uUHJvZmlsZSk7IH0KICAgICBzdGF0
aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2FsbG9jYXRp
b25Qcm9maWxlV2F0Y2hwb2ludFNldCk7IH0KICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBv
ZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9u
UHJvZmlsZSk7IH0KLSAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkJvdW5kRnVu
Y3Rpb25TdHJ1Y3R1cmUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0
YSwgbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlKTsgfQogICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlm
Zl90IG9mZnNldE9mRXhlY3V0YWJsZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlv
blJhcmVEYXRhLCBtX2V4ZWN1dGFibGUpOyB9Ci0gICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qg
b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludCgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2FsbG9jYXRpb25Qcm9maWxlQ2xlYXJp
bmdXYXRjaHBvaW50KTsgfQogCiAgICAgT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVXaXRoUHJvdG90
eXBlKiBvYmplY3RBbGxvY2F0aW9uUHJvZmlsZSgpCiAgICAgewpAQCAtMTEzLDggKzExMSw4IEBA
IGNsYXNzIEZ1bmN0aW9uUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAg
ICAgIG1fYWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0LnN0YXJ0V2F0Y2hpbmcoKTsKICAg
ICB9CiAKLSAgICBTdHJ1Y3R1cmUqIGdldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoKSB7IHJldHVy
biBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEJvdW5kRnVu
Y3Rpb25TdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgeyBtX2JvdW5kRnVu
Y3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOyB9CisgICAgU3RydWN0dXJl
KiBnZXRCb3VuZEZ1bmN0aW9uU3RydWN0dXJlKCkgeyByZXR1cm4gbV9ib3VuZEZ1bmN0aW9uU3Ry
dWN0dXJlSUQuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgeyBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmVJRC5z
ZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7IH0KIAogICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRh
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9leGVjdXRhYmxlLmdldCgpOyB9CiAKQEAgLTE2MCw3ICsx
NTgsNyBAQCBjbGFzcyBGdW5jdGlvblJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAg
ICAgT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVXaXRoUHJvdG90eXBlIG1fb2JqZWN0QWxsb2NhdGlv
blByb2ZpbGU7CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0
Y2hwb2ludFNldDsKICAgICBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUgbV9pbnRl
cm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlE
IG1fYm91bmRGdW5jdGlvblN0cnVjdHVyZUlEOwogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxl
QmFzZT4gbV9leGVjdXRhYmxlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBbGxvY2F0aW9uUHJvZmls
ZUNsZWFyaW5nV2F0Y2hwb2ludD4gbV9hbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2lu
dDsKICAgICBib29sIG1faGFzUmVpZmllZExlbmd0aCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBhOTUyYzk3Yzc1Mjg1MGFmOGE4
ODk3YTNjNTlhZDlhNzU2Njk3YmI3Li4xODRkMWM4YmZhN2E4ZjBhNGFhNTA4MjNmYmE2ZTNiODJi
ZDE5OWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKQEAgLTM3NiwyMCArMzc2LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMg
SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fZGVidWdnZXJTY29wZVN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVy
dHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV93aXRoU2NvcGVTdHJ1Y3R1cmU7CiAgICAg
TGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fc3RyaWN0RXZhbEFjdGl2
YXRpb25TdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9sZXhpY2FsRW52
aXJvbm1lbnRTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmU+IG1fbW9kdWxlRW52aXJvbm1lbnRTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9kaXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9zY29wZWRBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9jbG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0KLSAgICBXcml0ZUJhcnJpZXI8
U3RydWN0dXJlPiBtX29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yOwotICAgICAg
ICAKLSAgICAvLyBMaXN0cyB0aGUgYWN0dWFsIHN0cnVjdHVyZXMgdXNlZCBmb3IgaGF2aW5nIHRo
ZXNlIHBhcnRpY3VsYXIgaW5kZXhpbmcgc2hhcGVzLgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fb3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVbTnVtYmVyT2ZBcnJh
eUluZGV4aW5nTW9kZXNdOwotICAgIC8vIExpc3RzIHRoZSBzdHJ1Y3R1cmVzIHdlIHNob3VsZCB1
c2UgZHVyaW5nIGFsbG9jYXRpb24gZm9yIHRoZXNlIHBhcnRpY3VsYXIgaW5kZXhpbmcgc2hhcGVz
LgotICAgIC8vIFRoZXNlIHN0cnVjdHVyZXMgd2lsbCBkaWZmZXIgZnJvbSB0aGUgb3JpZ2luYWxz
IGxpc3QgYWJvdmUgd2hlbiB3ZSBhcmUgaGF2aW5nIGEgYmFkIHRpbWUuCi0gICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVEdXJpbmdBbGxv
Y2F0aW9uW051bWJlck9mQXJyYXlJbmRleGluZ01vZGVzXTsKLQogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2NhbGxiYWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmU7
CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fY2FsbGJhY2tG
dW5jdGlvblN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVj
dHVyZT4gbV9jYWxsYmFja09iamVjdFN0cnVjdHVyZTsKQEAgLTQwMSw0MiArMzg4LDU3IEBAIGNs
YXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Qgewog
ICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2dsaWJDYWxsYmFj
a0Z1bmN0aW9uU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlPiBtX2dsaWJXcmFwcGVyT2JqZWN0U3RydWN0dXJlOwogI2VuZGlmCi0gICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlOwotICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fY2FsbGVlU3RydWN0dXJlOwogCi0gICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9ob3N0RnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVy
U3RydWN0dXJlSUQgbV9sZXhpY2FsRW52aXJvbm1lbnRTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJy
aWVyU3RydWN0dXJlSUQgbV9kaXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJy
aWVyU3RydWN0dXJlSUQgbV9zY29wZWRBcmd1bWVudHNTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJy
aWVyU3RydWN0dXJlSUQgbV9jbG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmU7CisKKyAgICBXcml0ZUJh
cnJpZXJTdHJ1Y3R1cmVJRCBtX29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yOwor
CisgICAgLy8gTGlzdHMgdGhlIGFjdHVhbCBzdHJ1Y3R1cmVzIHVzZWQgZm9yIGhhdmluZyB0aGVz
ZSBwYXJ0aWN1bGFyIGluZGV4aW5nIHNoYXBlcy4KKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RCBtX29yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlW051bWJlck9mQXJyYXlJ
bmRleGluZ01vZGVzXTsKKyAgICAvLyBMaXN0cyB0aGUgc3RydWN0dXJlcyB3ZSBzaG91bGQgdXNl
IGR1cmluZyBhbGxvY2F0aW9uIGZvciB0aGVzZSBwYXJ0aWN1bGFyIGluZGV4aW5nIHNoYXBlcy4K
KyAgICAvLyBUaGVzZSBzdHJ1Y3R1cmVzIHdpbGwgZGlmZmVyIGZyb20gdGhlIG9yaWdpbmFscyBs
aXN0IGFib3ZlIHdoZW4gd2UgYXJlIGhhdmluZyBhIGJhZCB0aW1lLgorICAgIFdyaXRlQmFycmll
clN0cnVjdHVyZUlEIG1fYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlRHVyaW5nQWxsb2Nh
dGlvbltOdW1iZXJPZkFycmF5SW5kZXhpbmdNb2Rlc107CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1
Y3R1cmVJRCBtX251bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVy
U3RydWN0dXJlSUQgbV9jYWxsZWVTdHJ1Y3R1cmU7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCBtX2hvc3RGdW5jdGlvblN0cnVjdHVyZTsKIAogICAgIHN0cnVjdCBGdW5jdGlvblN0cnVj
dHVyZXMgewotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBhcnJvd0Z1bmN0aW9uU3Ry
dWN0dXJlOwotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBzbG9wcHlGdW5jdGlvblN0
cnVjdHVyZTsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gc3RyaWN0RnVuY3Rpb25T
dHJ1Y3R1cmU7CisgICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIGFycm93RnVuY3Rpb25T
dHJ1Y3R1cmU7CisgICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIHNsb3BweUZ1bmN0aW9u
U3RydWN0dXJlOworICAgICAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBzdHJpY3RGdW5jdGlv
blN0cnVjdHVyZTsKICAgICB9OwogICAgIEZ1bmN0aW9uU3RydWN0dXJlcyBtX2J1aWx0aW5GdW5j
dGlvbnM7CiAgICAgRnVuY3Rpb25TdHJ1Y3R1cmVzIG1fb3JkaW5hcnlGdW5jdGlvbnM7CiAKKyAg
ICBQcm9wZXJ0eU9mZnNldCBtX2Z1bmN0aW9uTmFtZU9mZnNldDsKKyAgICBXcml0ZUJhcnJpZXJT
dHJ1Y3R1cmVJRCBtX3NoYWRvd1JlYWxtT2JqZWN0U3RydWN0dXJlOworICAgIFdyaXRlQmFycmll
clN0cnVjdHVyZUlEIG1fcmVnRXhwU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVy
ZUlEIG1fYXN5bmNGdW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RCBtX2FzeW5jR2VuZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQgbV9nZW5lcmF0b3JGdW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJT
dHJ1Y3R1cmVJRCBtX2dlbmVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCBtX2FzeW5jR2VuZXJhdG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVy
ZUlEIG1fYXJyYXlJdGVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RCBtX21hcEl0ZXJhdG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1f
c2V0SXRlcmF0b3JTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9yZWdF
eHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9y
ZWdFeHBNYXRjaGVzQXJyYXlXaXRoSW5kaWNlc1N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJT
dHJ1Y3R1cmVJRCBtX3JlZ0V4cE1hdGNoZXNJbmRpY2VzQXJyYXlTdHJ1Y3R1cmU7CisKICAgICBM
YXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9ib3VuZEZ1bmN0aW9uU3Ry
dWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2N1
c3RvbUdldHRlckZ1bmN0aW9uU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9i
amVjdCwgU3RydWN0dXJlPiBtX2N1c3RvbVNldHRlckZ1bmN0aW9uU3RydWN0dXJlOwogICAgIExh
enlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX25hdGl2ZVN0ZEZ1bmN0aW9u
U3RydWN0dXJlOwotICAgIFByb3BlcnR5T2Zmc2V0IG1fZnVuY3Rpb25OYW1lT2Zmc2V0OwotICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc2hhZG93UmVhbG1PYmplY3RTdHJ1Y3R1cmU7Ci0g
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBTdHJ1Y3R1cmU7CiAgICAgV3JpdGVC
YXJyaWVyPEFzeW5jRnVuY3Rpb25Qcm90b3R5cGU+IG1fYXN5bmNGdW5jdGlvblByb3RvdHlwZTsK
ICAgICBXcml0ZUJhcnJpZXI8QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZT4gbV9hc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+
IG1fYXN5bmNGdW5jdGlvblN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X2FzeW5jR2VuZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4gbV9nZW5lcmF0b3JGdW5jdGlvblN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX2dlbmVyYXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJl
PiBtX2FzeW5jR2VuZXJhdG9yU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+
IG1fYXJyYXlJdGVyYXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X21hcEl0ZXJhdG9yU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc2V0
SXRlcmF0b3JTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmU+IG1faXRlcmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5
PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fZGF0YVByb3BlcnR5RGVzY3JpcHRvck9iamVj
dFN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4g
bV9hY2Nlc3NvclByb3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZTsKLSAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKLSAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVdpdGhJbmRpY2VzU3RydWN0
dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0luZGljZXNB
cnJheVN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZT4gbV9tb2R1bGVSZWNvcmRTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fbW9kdWxlTmFtZXNwYWNlT2JqZWN0U3RydWN0dXJlOwogICAgIExh
enlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX3Byb3h5T2JqZWN0U3RydWN0
dXJlOwpAQCAtNDQ0LDE1ICs0NDYsMTkgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMg
SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fcHJveHlSZXZva2VTdHJ1Y3R1cmU7CiAgICAgTGF6eUNsYXNzU3Ry
dWN0dXJlIG1fc2hhcmVkQXJyYXlCdWZmZXJTdHJ1Y3R1cmU7CiAKLSNkZWZpbmUgREVGSU5FX1NU
T1JBR0VfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUs
IGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgXAotICAg
IFdyaXRlQmFycmllcjxjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGU+IG1fICMjIGxvd2VyTmFtZSAj
IyBQcm90b3R5cGU7IFwKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtXyAjIyBwcm9wZXJO
YW1lICMjIFN0cnVjdHVyZTsKKyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBF
X1BST1RPVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5
cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKKyAgICBXcml0ZUJhcnJp
ZXI8Y2FwaXRhbE5hbWUgIyMgUHJvdG90eXBlPiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBl
OworCisjZGVmaW5lIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9TVFJVQ1RVUkUoY2Fw
aXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHBy
b3RvdHlwZUJhc2UsIGZlYXR1cmVGbGFnKSBcCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQg
bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmU7CiAKICNkZWZpbmUgREVGSU5FX1NUT1JBR0Vf
Rk9SX0xBWllfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5j
ZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKICAgICBMYXp5Q2xh
c3NTdHJ1Y3R1cmUgbV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmU7CiAKLSAgICBGT1JfRUFD
SF9TSU1QTEVfQlVJTFRJTl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRSkKLSAg
ICBGT1JfRUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShERUZJTkVfU1RPUkFHRV9G
T1JfU0lNUExFX1RZUEUpCisgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVf
U1RPUkFHRV9GT1JfU0lNUExFX1RZUEVfU1RSVUNUVVJFKQorICAgIEZPUl9FQUNIX0JVSUxUSU5f
REVSSVZFRF9JVEVSQVRPUl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9TVFJV
Q1RVUkUpCisgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9G
T1JfU0lNUExFX1RZUEVfUFJPVE9UWVBFKQorICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9J
VEVSQVRPUl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUpCiAg
ICAgCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9i
amVjdCwgU3RydWN0dXJlPiBtX3dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlOwpAQCAt
NDY0LDcgKzQ3MCw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVk
VmFyaWFibGVPYmplY3QgewogCiAgICAgRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVGSU5F
X1NUT1JBR0VfRk9SX0xBWllfVFlQRSkKIAotI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1Q
TEVfVFlQRQorI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUK
KyN1bmRlZiBERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZUEVfU1RSVUNUVVJFCiAjdW5kZWYg
REVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQRQogCiAgICAgV3JpdGVCYXJyaWVyPEdldHRlclNl
dHRlcj4gbV9zcGVjaWVzR2V0dGVyU2V0dGVyOwpAQCAtNTc0LDYgKzU4MSw3IEBAIGNsYXNzIEpT
R2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAg
Ym9vbCBtX2V2YWxFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV93ZWJBc3NlbWJseUVuYWJs
ZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFsc2Ug
fTsKICAgICB1bnNpZ25lZCBtX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2ggeyAxIH07CiAgICAg
U3RyaW5nIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlOwogICAgIFN0cmluZyBtX3dlYkFzc2Vt
Ymx5RGlzYWJsZWRFcnJvck1lc3NhZ2U7CkBAIC0xMTk0LDcgKzEyMDIsNiBAQCBjbGFzcyBKU0ds
b2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGNsZWFyUmFyZURhdGEoSlNDZWxsKik7CiAKLSAg
ICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgeyBmYWxzZSB9OwogI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVECiAgICAgUmV0YWluUHRyPEpTV3JhcHBlck1hcD4gbV93cmFwcGVyTWFwOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCBmN2Q5NzQ0OWMyMjNiMTJhN2RmNTBhN2Yz
NDVlZWEwYjZjNmEwMDU0Li42ZWUzMjBmN2UzZDkwOWI2Y2QwZTM3OTM2MWRhMGFhMGU4NzU3YzQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3QKIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGluZGV4ZWRMZW5ndGgs
IHVpbnQzMl90IG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMsIFdyaXRlQmFycmllcjxKU1N0cmlu
Zz4qIHByb3BlcnR5TmFtZXNCdWZmZXIsIHVuc2lnbmVkIHByb3BlcnR5TmFtZXNTaXplKQogICAg
IDogSlNDZWxsKHZtLCB2bS5wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yU3RydWN0dXJlLmdldCgpKQog
ICAgICwgbV9wcm9wZXJ0eU5hbWVzKHZtLCB0aGlzLCBwcm9wZXJ0eU5hbWVzQnVmZmVyKQotICAg
ICwgbV9jYWNoZWRTdHJ1Y3R1cmVJRChzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlkKCkgOiBTdHJ1
Y3R1cmVJRCgpKQorICAgICwgbV9jYWNoZWRTdHJ1Y3R1cmVJRCh2bSwgdGhpcywgc3RydWN0dXJl
LCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6TWF5QmVOdWxsKQogICAgICwgbV9pbmRleGVkTGVu
Z3RoKGluZGV4ZWRMZW5ndGgpCiAgICAgLCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgobnVt
YmVyU3RydWN0dXJlUHJvcGVydGllcykKICAgICAsIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXgo
cHJvcGVydHlOYW1lc1NpemUpCkBAIC04Niw5ICs4Niw3IEBAIHZvaWQgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0
b3IpCiAgICAgICAgIHZpc2l0b3IubWFya0F1eGlsaWFyeShwcm9wZXJ0eU5hbWVzKTsKICAgICAg
ICAgdmlzaXRvci5hcHBlbmQocHJvcGVydHlOYW1lcywgcHJvcGVydHlOYW1lcyArIHRoaXNPYmpl
Y3QtPnNpemVPZlByb3BlcnR5TmFtZXMoKSk7CiAgICAgfQotCi0gICAgaWYgKHRoaXNPYmplY3Qt
PmNhY2hlZFN0cnVjdHVyZUlEKCkpCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQo
dGhpc09iamVjdC0+Y2FjaGVkU3RydWN0dXJlSUQoKS5kZWNvZGUoKSk7CisgICAgdmlzaXRvci5h
cHBlbmQodGhpc09iamVjdC0+bV9jYWNoZWRTdHJ1Y3R1cmVJRCk7CiB9CiAKIERFRklORV9WSVNJ
VF9DSElMRFJFTihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAppbmRl
eCA1MWRjMTNiNzk1YjBkZjI1MTgzMjRmNWQ0NTJkYjEzMTgyYTRkMjhiLi42ZDZhZTg3YjhiMzhj
NDBjZTI1NjNiODM1NmJiMDRiNDVjM2QzNGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaApAQCAtNzMsMTEg
KzczLDkgQEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpT
Q2VsbCB7CiAgICAgU3RydWN0dXJlKiBjYWNoZWRTdHJ1Y3R1cmUoVk0mIHZtKSBjb25zdAogICAg
IHsKICAgICAgICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICAgICAgaWYgKCFtX2NhY2hlZFN0cnVj
dHVyZUlEKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX2Nh
Y2hlZFN0cnVjdHVyZUlELmRlY29kZSgpOworICAgICAgICByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1
cmVJRC5nZXQoKTsKICAgICB9Ci0gICAgU3RydWN0dXJlSUQgY2FjaGVkU3RydWN0dXJlSUQoKSBj
b25zdCB7IHJldHVybiBtX2NhY2hlZFN0cnVjdHVyZUlEOyB9CisgICAgU3RydWN0dXJlSUQgY2Fj
aGVkU3RydWN0dXJlSUQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFN0cnVjdHVyZUlELnZhbHVl
KCk7IH0KICAgICB1aW50MzJfdCBpbmRleGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9pbmRl
eGVkTGVuZ3RoOyB9CiAgICAgdWludDMyX3QgZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleCgpIGNv
bnN0IHsgcmV0dXJuIG1fZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleDsgfQogICAgIHVpbnQzMl90
IGVuZEdlbmVyaWNQcm9wZXJ0eUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9lbmRHZW5lcmljUHJv
cGVydHlJbmRleDsgfQpAQCAtMTA4LDcgKzEwNiw3IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIC8vIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciBpcyBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGFsbG93cyBWTSB0byBj
YWNoZSB0aGUgZW1wdHkgb25lLgogICAgIC8vIEFmdGVyIGluc3RhbnRpYXRpbmcgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yLCB3ZSBtdXN0IG5vdCBjaGFuZ2UgYW55IGZpZWxkcy4KICAgICBBdXhp
bGlhcnlCYXJyaWVyPFdyaXRlQmFycmllcjxKU1N0cmluZz4qPiBtX3Byb3BlcnR5TmFtZXM7Ci0g
ICAgU3RydWN0dXJlSUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1
Y3R1cmVJRCBtX2NhY2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0
aDsKICAgICB1aW50MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CiAgICAgdWludDMy
X3QgbV9lbmRHZW5lcmljUHJvcGVydHlJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAppbmRleCAyZjYxZGUxZTJjNzFjZTQ5
NjZjYzQ3ZDUzZWEwMjQ5OWZlZTAwMzhiLi43NjkyNTBkNjY1ZjA0OTJmZWUzYzFmYTA3ZWVmM2Uz
ZjljMmI4MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmVSYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlUmFyZURhdGEuY3BwCkBAIC02MCwxMSArNjAsMTAgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJl
RGF0YTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAKIFN0cnVjdHVyZVJhcmVEYXRhOjpTdHJ1Y3R1
cmVSYXJlRGF0YShWTSYgdm0sIFN0cnVjdHVyZSogcHJldmlvdXMpCiAgICAgOiBKU0NlbGwodm0s
IHZtLnN0cnVjdHVyZVJhcmVEYXRhU3RydWN0dXJlLmdldCgpKQorICAgICwgbV9wcmV2aW91cyh2
bSwgdGhpcywgcHJldmlvdXMsIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpNYXlCZU51bGwpCiAg
ICAgLCBtX21heE9mZnNldChpbnZhbGlkT2Zmc2V0KQogICAgICwgbV90cmFuc2l0aW9uT2Zmc2V0
KGludmFsaWRPZmZzZXQpCiB7Ci0gICAgaWYgKHByZXZpb3VzKQotICAgICAgICBtX3ByZXZpb3Vz
LnNldCh2bSwgdGhpcywgcHJldmlvdXMpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRh
LmgKaW5kZXggY2YzMWU5MjkxM2M4YzU2ZDliNzI1YmYwZGI0MTg1NDE4MTFhYWE3Yi4uNjhiZDlh
NjE1YjZmZmNlOWZiMmQwZDdmY2FhYWMwOTg2NDU1OTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCkBAIC0xNDAsNyArMTQwLDYg
QEAgY2xhc3MgU3RydWN0dXJlUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAg
IGJvb2wgdHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYsIFN0
cnVjdHVyZSosIFN0cnVjdHVyZUNoYWluKik7CiAKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJl
PiBtX3ByZXZpb3VzOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBzb21lIHN0b3J5IGZv
ciBjbGVhcmluZyB0aGVzZSBwcm9wZXJ0eSBuYW1lcyBjYWNoZXMgaW4gR0MuCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjY1OQogICAgIHVpbnRwdHJf
dCBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIHsgMCB9OwpAQCAtMTU2LDYg
KzE1NSw3IEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWNpYWxQcm9wZXJ0eUNhY2hlPiBtX3NwZWNpYWxQcm9w
ZXJ0eUNhY2hlOwogICAgIEJveDxJbmxpbmVXYXRjaHBvaW50U2V0PiBtX3BvbHlQcm90b1dhdGNo
cG9pbnQ7CiAKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3ByZXZpb3VzOwogICAgIFBy
b3BlcnR5T2Zmc2V0IG1fbWF4T2Zmc2V0OwogICAgIFByb3BlcnR5T2Zmc2V0IG1fdHJhbnNpdGlv
bk9mZnNldDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
cml0ZUJhcnJpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmll
ci5oCmluZGV4IDRkMTE4MjEwMWU1NDdjNmJiZTdmYjEwZDg1YWM0NjZlMTJjMDI2ZWQuLjE2MWQ2
MzQwZTRkMjcxMzg0NDZmMDFjZDlkNTUzZDY5NDczYTc5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNs
dWRlICJHQ0Fzc2VydGlvbnMuaCIKICNpbmNsdWRlICJIYW5kbGVUeXBlcy5oIgorI2luY2x1ZGUg
IlN0cnVjdHVyZUlELmgiCiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8d3RmL1Jh
d1B0clRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SYXdWYWx1ZVRyYWl0cy5oPgpAQCAtMjQ4LDQg
KzI0OSwxMDQgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBXcml0ZUJhcnJpZXJCYXNl
PFUsIFRyYWl0c1U+JiBsaHMsIGNvbnN0IFdyaXRlQmFycmkKICAgICByZXR1cm4gbGhzLmdldCgp
ID09IHJocy5nZXQoKTsKIH0KIAorY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgeworcHVi
bGljOgorICAgIGNvbnN0ZXhwciBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCgpID0gZGVmYXVsdDsK
KworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25l
ciwgU3RydWN0dXJlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHNldCh2bSwgb3duZXIsIHZhbHVl
KTsKKyAgICB9CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRChERkc6OkRlc2lyZWRXcml0
ZUJhcnJpZXImLCBTdHJ1Y3R1cmUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzQ29t
cGlsYXRpb25UaHJlYWQoKSk7CisgICAgICAgIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIodmFsdWUp
OworICAgIH0KKworICAgIGVudW0gTWF5QmVOdWxsVGFnIHsgTWF5QmVOdWxsIH07CisgICAgV3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1Y3R1
cmUqIHZhbHVlLCBNYXlCZU51bGxUYWcpCisgICAgeworICAgICAgICBzZXRNYXlCZU51bGwodm0s
IG93bmVyLCB2YWx1ZSk7CisgICAgfQorCisgICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwq
IG93bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlKTsKKworICAgIHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwg
Y29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSk7CisKKyAgICAvLyBTaG91bGQg
b25seSBiZSB1c2VkIGJ5IEpTQ2VsbCBkdXJpbmcgZWFybHkgaW5pdGlhbGlzYXRpb24KKyAgICAv
LyB3aGVuIHNvbWUgYmFzaWMgdHlwZXMgYXJlbid0IHlldCBjb21wbGV0ZWx5IGluc3RhbnRpYXRl
ZAorICAgIHZvaWQgc2V0RWFybHlWYWx1ZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVj
dHVyZSogdmFsdWUpOworCisgICAgU3RydWN0dXJlKiBnZXQoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgLy8gQ29weSBtX2NlbGwgdG8gYSBsb2NhbCB0byBhdm9pZCBtdWx0aXBsZS1yZWFkIGlzc3Vl
cy4gKFNlZSA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTA4NTQ+KQorICAgICAgICBTdHJ1Y3R1cmVJ
RCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkg
eworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVJRC5kZWNvZGUo
KTsKKyAgICAgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0
cnVjdHVyZSkpOworICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBTdHJ1Y3R1cmUqIG9wZXJhdG9yKigp
IGNvbnN0CisgICAgeworICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0
dXJlSUQ7CisgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmVJRCk7CisgICAgICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gc3RydWN0dXJlSUQuZGVjb2RlKCk7CisgICAgICAgIHZhbGlkYXRlQ2VsbChy
ZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOworICAgICAgICByZXR1cm4gc3Ry
dWN0dXJlOworICAgIH0KKworICAgIFN0cnVjdHVyZSogb3BlcmF0b3ItPigpIGNvbnN0CisgICAg
eworICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAg
ICAgIEFTU0VSVChzdHJ1Y3R1cmVJRCk7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
c3RydWN0dXJlSUQuZGVjb2RlKCk7CisgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9j
YXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOworICAgICAgICByZXR1cm4gc3RydWN0dXJlOworICAg
IH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0
cnVjdHVyZUlEIHsgfTsKKyAgICB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiAhIW1fc3RydWN0dXJlSUQ7CisgICAgfQorCisgICAg
Ym9vbCBvcGVyYXRvciEoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICFtX3N0cnVjdHVy
ZUlEOworICAgIH0KKworICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihTdHJ1Y3R1cmUq
IHZhbHVlKQorICAgIHsKKyNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisgICAg
ICAgIFdyaXRlQmFycmllckNvdW50ZXJzOjp1c2VzV2l0aG91dEJhcnJpZXJGcm9tQ3BwLmNvdW50
KCk7CisjZW5kaWYKKyAgICAgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICAgICAgbV9zdHJ1Y3R1
cmVJRCA9IFN0cnVjdHVyZUlEIHsgfTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBtX3N0cnVjdHVyZUlEID0gU3RydWN0dXJlSUQ6OmVuY29kZSh2YWx1ZSk7CisgICAg
fQorCisgICAgU3RydWN0dXJlKiB1bnZhbGlkYXRlZEdldCgpIGNvbnN0CisgICAgeworICAgICAg
ICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIGlmIChz
dHJ1Y3R1cmVJRCkKKyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgU3RydWN0dXJlSUQgdmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3N0cnVjdHVyZUlEOyB9CisKK3ByaXZhdGU6CisgICAgU3RydWN0dXJl
SUQgbV9zdHJ1Y3R1cmVJRDsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCmluZGV4IGY4
ODdlNTMxZjkxY2FlOWNjNDJkY2Y2MDRhMzE2MjNlZDk3NzJlZjguLmVlNDA4MDJjMTliZjMxYzk2
ZjljMjM3NjJlZDhkYThjYTEzNzNkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgKQEAgLTYxLDQgKzYxLDI5IEBAIGlubGlu
ZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VW5rbm93biwgUmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+
OjpzZXQoVk0mIHZtLCBjb25zCiAgICAgdm0ud3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CiB9
CiAKK2lubGluZSB2b2lkIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXQoVk0mIHZtLCBjb25z
dCBKU0NlbGwqIG93bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZSk7
CisgICAgQVNTRVJUKCFPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRp
b25UaHJlYWQoKSk7CisgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4o
dmFsdWUpKTsKKyAgICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOworfQorCitpbmxp
bmUgdm9pZCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0TWF5QmVOdWxsKFZNJiB2bSwgY29u
c3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUpCisg
ICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7Cisg
ICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKK30KKworaW5saW5lIHZvaWQgV3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldEVhcmx5VmFsdWUoVk0mIHZtLCBjb25zdCBKU0NlbGwq
IG93bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAg
bV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEIHsgfTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBtX3N0cnVjdHVyZUlEID0gU3RydWN0dXJlSUQ6OmVuY29kZSh2YWx1ZSk7CisgICAgdm0u
d3JpdGVCYXJyaWVyKG93bmVyLCByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIEpTQyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0Rv
bGxhclZNLmNwcAppbmRleCA0NDM0NmRhOTVhMzE4MGExNTFjOWYyODg3YmQ1ODQ3ZjIxODAzYTVm
Li43ZDI5YjI5ZGQyODY3MDQ0NjY1Njc5N2Y0NzQzNWJjM2VjNDM4OGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC00MDEyLDcgKzQwMTIsNyBAQCB2
b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogICAgIGFkZEZ1bmN0aW9u
KHZtLCAiZW5zdXJlQXJyYXlTdG9yYWdlIiwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDEp
OwogCi0gICAgbV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0
dXNTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0
Q29ycmVjdFNsb3RTdGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051
bGwoKSkpOworICAgIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90
U3RhdHVzU3RydWN0dXJlSUQuc2V0KHZtLCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRX
aXRob3V0Q29ycmVjdFNsb3RTdGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0
LCBqc051bGwoKSkpOwogfQogCiB2b2lkIEpTRG9sbGFyVk06OmFkZEZ1bmN0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVu
Y3Rpb24gZnVuY3Rpb24sIHVuc2lnbmVkIGFyZ3VtZW50cykKQEAgLTQwMzQsNyArNDAzNCw3IEBA
IHZvaWQgSlNEb2xsYXJWTTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9y
JiB2aXNpdG9yKQogewogICAgIEpTRG9sbGFyVk0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEb2xs
YXJWTSo+KGNlbGwpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRv
cik7Ci0gICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9vYmplY3REb2luZ1NpZGVFZmZl
Y3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUpOworICAgIHZpc2l0b3IuYXBw
ZW5kKHRoaXNPYmplY3QtPm1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RT
bG90U3RhdHVzU3RydWN0dXJlSUQpOwogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNEb2xs
YXJWTSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJW
TS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAppbmRleCAwZjVk
OGFkMzU5ZGI2NTI0YjAwMDRjNTE2Yjg1MDE2M2ZlNzc3MDM2Li4wM2ZlMGE5NjAzZTQwZTNkMjcw
NzA3MDQ4MDZlZTgwMmU3YzU3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0Rv
bGxhclZNLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgSlNEb2xsYXJWTSBmaW5hbCA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0KIAot
ICAgIFN0cnVjdHVyZSogb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90
U3RhdHVzU3RydWN0dXJlKCkgeyByZXR1cm4gbV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRo
b3V0Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUuZ2V0KCk7IH0KKyAgICBTdHJ1Y3R1cmUqIG9i
amVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZSgp
IHsgcmV0dXJuIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3Rh
dHVzU3RydWN0dXJlSUQuZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6CiAgICAgSlNEb2xsYXJWTShW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBKU0Rv
bGxhclZNIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAgICAgREVDTEFSRV9W
SVNJVF9DSElMRFJFTjsKIAotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fb2JqZWN0RG9p
bmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlOworICAgIFdy
aXRlQmFycmllclN0cnVjdHVyZUlEIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENv
cnJlY3RTbG90U3RhdHVzU3RydWN0dXJlSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446270</attachid>
            <date>2021-12-07 17:42:59 -0800</date>
            <delta_ts>2021-12-07 18:20:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233918-20211207174258.patch</filename>
            <type>text/plain</type>
            <size>64395</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTZlMGQyOTkwZmJmNDdmMWRmMjY0ZTk5YmYwNGE3Yjc0NDAyODc3Li41Zjg2OTdkMzNjNDYxYmIy
NGM2ZjhhZmJhMmFiMTRkY2Q4ZmI4MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDUgQEAKKzIwMjEtMTItMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkxOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBjbGFzcywgd2hpY2ggaXMgc2ltaWxhciB0byBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiwgYnV0IGludGVybmFsbHksCisgICAgICAgIGl0IGhvbGRz
IFN0cnVjdHVyZUlELCBzbyBzaXplb2YoV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQpIGlzIDQuIFRo
aXMgY2xhc3MgaXMgdXNlZnVsIHRvIHVzZSBTdHJ1Y3R1cmVJRCBmb3IKKyAgICAgICAgbWVtb3J5
IHNhdmluZyB3aGlsZSBrZWVwaW5nIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+J3MgdXNlZnVsIGZl
YXR1cmVzIChhdXRvbWF0aWNhbGx5IGluc2VydHMgd3JpdGUtYmFycmllciB3aGVuCisgICAgICAg
IHNldHRpbmcgZXRjLikuIFRoaXMgYWxzbyBwYXZlcyB0aGUgd2F5IHRvIGludHJvZHVjaW5nIERP
TVN0cnVjdHVyZXMgYXJyYXkgd2l0aCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBpbnN0ZWFkCisg
ICAgICAgIG9mIGNvc3RseSBIYXNoTWFwPENsYXNzSW5mbyosIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+Pi4KKworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlND
OjpBY2Nlc3NDYXNlOjpBY2Nlc3NDYXNlKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Zm9y
RWFjaERlcGVuZGVudENlbGwgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkdW1w
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6cHJvcGFnYXRlVHJhbnNpdGlvbnMg
Y29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjYW5CZVNoYXJlZCk6CisgICAgICAg
ICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpzdHJ1
Y3R1cmUgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpuZXdTdHJ1Y3R1cmUgY29u
c3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QWNjZXNzQ2FzZTo6QWNjZXNzQ2FzZSk6CisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNj
ZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5B
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OnJlc2V0U3R1YkFzSnVtcEluQWNj
ZXNzKToKKyAgICAgICAgKiBieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2Zp
bGUuaDoKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpv
ZmZzZXRPZlN0cnVjdHVyZUlEKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbkFsbG9j
YXRpb25Qcm9maWxlOjpzdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9u
QWxsb2NhdGlvblByb2ZpbGU6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlOjp2aXNpdEFnZ3JlZ2F0ZSk6CisgICAgICAgIChKU0M6OkludGVy
bmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6Y3JlYXRlQWxsb2NhdGlvblN0cnVjdHVyZUZy
b21CYXNlKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxl
OjpvZmZzZXRPZlN0cnVjdHVyZSk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdEdl
dEJ5SWRTZWxmKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmluaXRQdXRCeUlk
UmVwbGFjZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjppbml0SW5CeUlkU2Vs
Zik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjphZGRBY2Nlc3NDYXNlKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OnJlc2V0KToKKyAgICAgICAgKiBieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVTdHViSW5mbzo6aW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNyZWF0ZVByb21pc2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlQ3JlYXRlSW50ZXJuYWxGaWVsZE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAqIGhlYXAv
QWJzdHJhY3RTbG90VmlzaXRvci5oOgorICAgICAgICAqIGhlYXAvQWJzdHJhY3RTbG90VmlzaXRv
cklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kKToK
KyAgICAgICAgKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kSGlkZGVuKToKKyAgICAg
ICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvcklubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFwcGVuZCk6CisgICAgICAgIChKU0M6
OlNsb3RWaXNpdG9yOjphcHBlbmRIaWRkZW4pOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXROb25OdWxsRGVjb2Rl
U3RydWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgICogaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVHZXRC
eUlkSW5saW5lQWNjZXNzKToKKyAgICAgICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6Z2Vu
ZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAqIHJ1bnRp
bWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkV4ZWN1
dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpGdW5jdGlvblJhcmVEYXRhOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1w
bCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlND
OjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAg
KiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAqIHJ1bnRpbWUv
U3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6
U3RydWN0dXJlUmFyZURhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
aDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQpOgorICAgICAgICAo
SlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6Z2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yKiBjb25zdCk6CisgICAgICAgIChKU0M6
OldyaXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6V3JpdGVC
YXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoSlNDOjpX
cml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6b3BlcmF0b3IhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldFdpdGhvdXRXcml0ZUJhcnJpZXIpOgorICAgICAg
ICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6dW52YWxpZGF0ZWRHZXQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6dmFsdWUgY29uc3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQ6OnNldE1heUJlTnVsbCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVj
dHVyZUlEOjpzZXRFYXJseVZhbHVlKToKKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlND
OjpKU0RvbGxhclZNOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogdG9vbHMvSlNEb2xs
YXJWTS5oOgorCiAyMDIxLTEyLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NjUwMiBhbmQgcjI4NjU4
MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRl
eCBhYWY0Zjc2ZWE0YjliODkxNTc1YmVhYmU1MTA5ZjE0ZjkzZWFkNGM2Li45YWVmY2M5MjdhMDA2
MDc0NTMyMDA0MjE1NjEzNzU5YmY4MTNiYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC02Myw3ICs2Myw3IEBAIEFjY2Vzc0Nhc2U6OkFj
Y2Vzc0Nhc2UoVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIENhY2hlYWJs
ZUlkZW50aWZpCiAgICAgLCBtX3BvbHlQcm90b0FjY2Vzc0NoYWluKFdURk1vdmUocHJvdG90eXBl
QWNjZXNzQ2hhaW4pKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7Ci0gICAgbV9z
dHJ1Y3R1cmUuc2V0TWF5QmVOdWxsKHZtLCBvd25lciwgc3RydWN0dXJlKTsKKyAgICBtX3N0cnVj
dHVyZUlELnNldE1heUJlTnVsbCh2bSwgb3duZXIsIHN0cnVjdHVyZSk7CiAgICAgbV9jb25kaXRp
b25TZXQgPSBjb25kaXRpb25TZXQ7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9jb25kaXRpb25TZXQu
aXNWYWxpZCgpKTsKIH0KQEAgLTUzOSw4ICs1MzksOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dG9yPgogdm9pZCBBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50Q2VsbChWTSYsIGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CiB7CiAgICAgbV9jb25kaXRpb25TZXQuZm9yRWFjaERlcGVu
ZGVudENlbGwoZnVuY3Rvcik7Ci0gICAgaWYgKG1fc3RydWN0dXJlKQotICAgICAgICBmdW5jdG9y
KG1fc3RydWN0dXJlLmdldCgpKTsKKyAgICBpZiAobV9zdHJ1Y3R1cmVJRCkKKyAgICAgICAgZnVu
Y3RvcihtX3N0cnVjdHVyZUlELmdldCgpKTsKICAgICBpZiAobV9wb2x5UHJvdG9BY2Nlc3NDaGFp
bikgewogICAgICAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogbV9wb2x5UHJvdG9B
Y2Nlc3NDaGFpbi0+Y2hhaW4oKSkKICAgICAgICAgICAgIGZ1bmN0b3Ioc3RydWN0dXJlSUQuZGVj
b2RlKCkpOwpAQCAtODc0LDggKzg3NCw4IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBpZiAobV90eXBlID09IFRyYW5zaXRpb24gfHwgbV90
eXBlID09IERlbGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5kKQogICAgICAgICAgICAg
b3V0LnByaW50KCJcbiIsIGluZGVudCwgImZyb20gc3RydWN0dXJlID0gIiwgcG9pbnRlckR1bXAo
c3RydWN0dXJlKCkpLAogICAgICAgICAgICAgICAgICJcbiIsIGluZGVudCwgInRvIHN0cnVjdHVy
ZSA9ICIsIHBvaW50ZXJEdW1wKG5ld1N0cnVjdHVyZSgpKSk7Ci0gICAgICAgIGVsc2UgaWYgKG1f
c3RydWN0dXJlKQotICAgICAgICAgICAgb3V0LnByaW50KCJcbiIsIGluZGVudCwgInN0cnVjdHVy
ZSA9ICIsIHBvaW50ZXJEdW1wKG1fc3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGVsc2UgaWYg
KG1fc3RydWN0dXJlSUQpCisgICAgICAgICAgICBvdXQucHJpbnQoIlxuIiwgaW5kZW50LCAic3Ry
dWN0dXJlID0gIiwgcG9pbnRlckR1bXAobV9zdHJ1Y3R1cmVJRC5nZXQoKSkpOwogICAgIH0KIAog
ICAgIGlmICghbV9jb25kaXRpb25TZXQuaXNFbXB0eSgpKQpAQCAtOTA0LDggKzkwNCw4IEBAIGJv
b2wgQWNjZXNzQ2FzZTo6dmlzaXRXZWFrKFZNJiB2bSkgY29uc3QKIHRlbXBsYXRlPHR5cGVuYW1l
IFZpc2l0b3I+CiB2b2lkIEFjY2Vzc0Nhc2U6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKFZpc2l0b3Im
IHZpc2l0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RydWN0dXJlKQotICAgICAgICBtX3N0cnVj
dHVyZS0+bWFya0lmQ2hlYXAodmlzaXRvcik7CisgICAgaWYgKG1fc3RydWN0dXJlSUQpCisgICAg
ICAgIG1fc3RydWN0dXJlSUQtPm1hcmtJZkNoZWFwKHZpc2l0b3IpOwogCiAgICAgaWYgKG1fcG9s
eVByb3RvQWNjZXNzQ2hhaW4pIHsKICAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJ
RCA6IG1fcG9seVByb3RvQWNjZXNzQ2hhaW4tPmNoYWluKCkpCkBAIC05MTUsOCArOTE1LDggQEAg
dm9pZCBBY2Nlc3NDYXNlOjpwcm9wYWdhdGVUcmFuc2l0aW9ucyhWaXNpdG9yJiB2aXNpdG9yKSBj
b25zdAogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBUcmFuc2l0aW9uOgogICAgIGNh
c2UgRGVsZXRlOgotICAgICAgICBpZiAodmlzaXRvci5pc01hcmtlZChtX3N0cnVjdHVyZS0+cHJl
dmlvdXNJRCgpKSkKLSAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV9zdHJ1
Y3R1cmUuZ2V0KCkpOworICAgICAgICBpZiAodmlzaXRvci5pc01hcmtlZChtX3N0cnVjdHVyZUlE
LT5wcmV2aW91c0lEKCkpKQorICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZCht
X3N0cnVjdHVyZUlELmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBib29sIEFjY2Vzc0Nhc2U6OmNhbkJlU2hh
cmVkKGNvbnN0IEFjY2Vzc0Nhc2UmIGxocywgY29uc3QgQWNjZXNzQ2FzZSYgcmhzKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGxocy5tX3ZpYVByb3h5ICE9IHJocy5tX3ZpYVByb3h5
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGxocy5tX3N0cnVjdHVyZS5nZXQoKSAh
PSByaHMubV9zdHJ1Y3R1cmUuZ2V0KCkpCisgICAgaWYgKGxocy5tX3N0cnVjdHVyZUlELmdldCgp
ICE9IHJocy5tX3N0cnVjdHVyZUlELmdldCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKGxocy5tX2lkZW50aWZpZXIgIT0gcmhzLm1faWRlbnRpZmllcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vz
c0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmgKaW5k
ZXggZmUxY2ZmYmM2NTk4NWU4YzE0NzlhMmNiNTM0YTJmMzg4OGY3NTNhNi4uMWMxY2M3MTY4YWNl
NGE0MzY3ZmM4ZGE0MjJmYWQyZGVkNDRkNTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQWNjZXNzQ2FzZS5oCkBAIC0xODQsMTUgKzE4NCwxNSBAQCBjbGFzcyBBY2Nlc3ND
YXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV90eXBlID09IFRy
YW5zaXRpb24gfHwgbV90eXBlID09IERlbGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5k
KQotICAgICAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJlLT5wcmV2aW91c0lEKCk7Ci0gICAgICAg
IHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0cnVjdHVy
ZUlELT5wcmV2aW91c0lEKCk7CisgICAgICAgIHJldHVybiBtX3N0cnVjdHVyZUlELmdldCgpOwog
ICAgIH0KICAgICBib29sIGd1YXJkZWRCeVN0cnVjdHVyZUNoZWNrKGNvbnN0IFN0cnVjdHVyZVN0
dWJJbmZvJikgY29uc3Q7CiAKICAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFRyYW5zaXRpb24gfHwgbV90eXBlID09IERl
bGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5kKTsKLSAgICAgICAgcmV0dXJuIG1fc3Ry
dWN0dXJlLmdldCgpOworICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmVJRC5nZXQoKTsKICAgICB9
CiAKICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQoKSBjb25zdCB7
IHJldHVybiBtX2NvbmRpdGlvblNldDsgfQpAQCAtMjcyLDcgKzI3Miw3IEBAIGNsYXNzIEFjY2Vz
c0Nhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWNjZXNzQ2FzZT4gewogCiAgICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gY29tcHV0ZUhhc2go
bV9jb25kaXRpb25TZXQuaGFzaCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV90eXBlKSwgbV92
aWFQcm94eSwgbV9zdHJ1Y3R1cmUudW52YWxpZGF0ZWRHZXQoKSwgbV9vZmZzZXQpOworICAgICAg
ICByZXR1cm4gY29tcHV0ZUhhc2gobV9jb25kaXRpb25TZXQuaGFzaCgpLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obV90eXBlKSwgbV92aWFQcm94eSwgbV9zdHJ1Y3R1cmVJRC51bnZhbGlkYXRlZEdl
dCgpLCBtX29mZnNldCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgY2FuQmVTaGFyZWQoY29u
c3QgQWNjZXNzQ2FzZSYsIGNvbnN0IEFjY2Vzc0Nhc2UmKTsKQEAgLTI4NCw3ICsyODQsNyBAQCBj
bGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+
IHsKICAgICAgICAgLCBtX3N0YXRlKFdURk1vdmUob3RoZXIubV9zdGF0ZSkpCiAgICAgICAgICwg
bV92aWFQcm94eShXVEZNb3ZlKG90aGVyLm1fdmlhUHJveHkpKQogICAgICAgICAsIG1fb2Zmc2V0
KFdURk1vdmUob3RoZXIubV9vZmZzZXQpKQotICAgICAgICAsIG1fc3RydWN0dXJlKFdURk1vdmUo
b3RoZXIubV9zdHJ1Y3R1cmUpKQorICAgICAgICAsIG1fc3RydWN0dXJlSUQoV1RGTW92ZShvdGhl
ci5tX3N0cnVjdHVyZUlEKSkKICAgICAgICAgLCBtX2NvbmRpdGlvblNldChXVEZNb3ZlKG90aGVy
Lm1fY29uZGl0aW9uU2V0KSkKICAgICAgICAgLCBtX3BvbHlQcm90b0FjY2Vzc0NoYWluKFdURk1v
dmUob3RoZXIubV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikpCiAgICAgICAgICwgbV9pZGVudGlmaWVy
KFdURk1vdmUob3RoZXIubV9pZGVudGlmaWVyKSkKQEAgLTI5NSw3ICsyOTUsNyBAQCBjbGFzcyBB
Y2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAg
ICAgICAgLCBtX3N0YXRlKG90aGVyLm1fc3RhdGUpCiAgICAgICAgICwgbV92aWFQcm94eShvdGhl
ci5tX3ZpYVByb3h5KQogICAgICAgICAsIG1fb2Zmc2V0KG90aGVyLm1fb2Zmc2V0KQotICAgICAg
ICAsIG1fc3RydWN0dXJlKG90aGVyLm1fc3RydWN0dXJlKQorICAgICAgICAsIG1fc3RydWN0dXJl
SUQob3RoZXIubV9zdHJ1Y3R1cmVJRCkKICAgICAgICAgLCBtX2NvbmRpdGlvblNldChvdGhlci5t
X2NvbmRpdGlvblNldCkKICAgICAgICAgLCBtX3BvbHlQcm90b0FjY2Vzc0NoYWluKG90aGVyLm1f
cG9seVByb3RvQWNjZXNzQ2hhaW4pCiAgICAgICAgICwgbV9pZGVudGlmaWVyKG90aGVyLm1faWRl
bnRpZmllcikKQEAgLTM0OCw3ICszNDgsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICAvLyBVc3VhbGx5IHRoaXMgaXMg
dGhlIHN0cnVjdHVyZSB0aGF0IHdlIGV4cGVjdCB0aGUgYmFzZSBvYmplY3QgdG8gaGF2ZS4gQnV0
LCB0aGlzIGlzIHRoZSAqbmV3KgogICAgIC8vIHN0cnVjdHVyZSBmb3IgYSB0cmFuc2l0aW9uIGFu
ZCB3ZSByZWx5IG9uIHRoZSBmYWN0IHRoYXQgaXQgaGFzIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0
aGUgb2xkCiAgICAgLy8gc3RydWN0dXJlLiBGb3IgcHJveGllcywgdGhpcyBpcyB0aGUgc3RydWN0
dXJlIG9mIHRoZSBvYmplY3QgYmVoaW5kIHRoZSBwcm94eS4KLSAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX3N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3N0cnVj
dHVyZUlEOwogCiAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgbV9jb25kaXRpb25TZXQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nl
c3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAK
aW5kZXggMjFlYjRjMjIxZDM2N2E4NGYwMjk5MTgwZGE3YzhlOGE5MDNiNTcyYy4uZmI1ZWVhMmRj
YmFmMmM0MGEwN2ZhY2I3ZDU3OTMzODhjNWMyNzZhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lk
IElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNzKENvZGVCbG9jayogY29kZUJs
b2NrLCBTdHJ1Y3R1cmVTdHViSQogICAgICAgICB9CiAKICAgICAgICAgc3R1YkluZm8ubV9jb2Rl
UHRyID0gdGFyZ2V0OwotICAgICAgICBzdHViSW5mby5tX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1
cmUgPSBTdHJ1Y3R1cmVJRCgpOyAvLyBDbGVhciBvdXQgdGhlIGlubGluZSBhY2Nlc3MgY29kZS4K
KyAgICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsg
Ly8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmVzZXRTdHViQXNK
dW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbgogewogICAg
IGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpICYmIGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJ
VFR5cGU6OkJhc2VsaW5lSklUKSB7CiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHN0dWJJ
bmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKLSAgICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nl
c3NCYXNlU3RydWN0dXJlID0gU3RydWN0dXJlSUQoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUg
YWNjZXNzIGNvZGUuCisgICAgICAgIHN0dWJJbmZvLm1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVy
ZUlELmNsZWFyKCk7IC8vIENsZWFyIG91dCB0aGUgaW5saW5lIGFjY2VzcyBjb2RlLgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgKaW5k
ZXggZGY4ZjM3MWFiZDFkMTk2MDc2ZDc1YjRiZGMxMjVlZDM5ZjM4MjYwZC4uYjE3N2ZlZmQwNjM2
ZTIyZWI1MGZmZmI2MjllY2U0MTE4MTRlMmRkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlv
blByb2ZpbGUuaApAQCAtMzMsMjEgKzMzLDIxIEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBJ
bnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUgewogcHVibGljOgotICAgIHN0YXRpYyBp
bmxpbmUgcHRyZGlmZl90IG9mZnNldE9mU3RydWN0dXJlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSwgbV9zdHJ1Y3R1cmUpOyB9Cisg
ICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdHJ1Y3R1cmVJRCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUsIG1fc3Ry
dWN0dXJlSUQpOyB9CiAKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fc3Ry
dWN0dXJlLmdldCgpOyB9CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUoKSB7IHJldHVybiBtX3N0
cnVjdHVyZUlELmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBjcmVhdGVBbGxvY2F0aW9uU3RydWN0
dXJlRnJvbUJhc2UoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBwcm90b3R5cGUsIFN0cnVjdHVyZSogYmFzZSk7CiAKLSAgICB2b2lkIGNsZWFyKCkgeyBtX3N0
cnVjdHVyZS5jbGVhcigpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4gdm9pZCB2
aXNpdEFnZ3JlZ2F0ZShWaXNpdG9yJiB2aXNpdG9yKSB7IHZpc2l0b3IuYXBwZW5kKG1fc3RydWN0
dXJlKTsgfQorICAgIHZvaWQgY2xlYXIoKSB7IG1fc3RydWN0dXJlSUQuY2xlYXIoKTsgfQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQgdmlzaXRBZ2dyZWdhdGUoVmlzaXRvciYg
dmlzaXRvcikgeyB2aXNpdG9yLmFwcGVuZChtX3N0cnVjdHVyZUlEKTsgfQogCiBwcml2YXRlOgot
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc3RydWN0dXJlOworICAgIFdyaXRlQmFycmll
clN0cnVjdHVyZUlEIG1fc3RydWN0dXJlSUQ7CiB9OwogCiBpbmxpbmUgU3RydWN0dXJlKiBJbnRl
cm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6OmNyZWF0ZUFsbG9jYXRpb25TdHJ1Y3R1cmVG
cm9tQmFzZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBiYXNlR2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG93bmVyLCBKU09iamVjdCogcHJvdG90eXBlLCBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUpCiB7
Ci0gICAgQVNTRVJUKCFtX3N0cnVjdHVyZSB8fCBtX3N0cnVjdHVyZS5nZXQoKS0+Y2xhc3NJbmZv
KCkgIT0gYmFzZVN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkgfHwgbV9zdHJ1Y3R1cmUtPmdsb2JhbE9i
amVjdCgpICE9IGJhc2VTdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKKyAgICBBU1NFUlQoIW1f
c3RydWN0dXJlSUQgfHwgbV9zdHJ1Y3R1cmVJRC5nZXQoKS0+Y2xhc3NJbmZvKCkgIT0gYmFzZVN0
cnVjdHVyZS0+Y2xhc3NJbmZvKCkgfHwgbV9zdHJ1Y3R1cmVJRC0+Z2xvYmFsT2JqZWN0KCkgIT0g
YmFzZVN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIEFTU0VSVChiYXNlU3RydWN0dXJl
LT5oYXNNb25vUHJvdG8oKSk7CiAKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZTsKQEAgLTYxLDgg
KzYxLDggQEAgaW5saW5lIFN0cnVjdHVyZSogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlOjpjcmVhdGVBbGxvY2F0aW9uU3RydWN0dXJlRnIKICAgICAvLyBFbnN1cmUgdGhhdCBpZiBh
bm90aGVyIHRocmVhZCBzZWVzIHRoZSBzdHJ1Y3R1cmUsIGl0IHdpbGwgc2VlIGl0IHByb3Blcmx5
IGNyZWF0ZWQuCiAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKIAotICAgIG1fc3RydWN0dXJl
LnNldCh2bSwgb3duZXIsIHN0cnVjdHVyZSk7Ci0gICAgcmV0dXJuIG1fc3RydWN0dXJlLmdldCgp
OworICAgIG1fc3RydWN0dXJlSUQuc2V0KHZtLCBvd25lciwgc3RydWN0dXJlKTsKKyAgICByZXR1
cm4gc3RydWN0dXJlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCmluZGV4IDcyZjAy
OTExMWY2NTdhMWExNGU1MTgwYWI5MDA0YTkwYmM2NmRkZDAuLjVmZDQxOTEzNTY3ZjZlODk1MGFh
YmY1OTBkOWEzMGU2ZTM4ODBmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcApAQCAtNDksOCArNDksNyBAQCB2b2lkIFN0
cnVjdHVyZVN0dWJJbmZvOjppbml0R2V0QnlJZFNlbGYoY29uc3QgQ29uY3VycmVudEpTTG9ja2Vy
QmFzZSYgbG9ja2VyLCBDbwogICAgIEFTU0VSVChoYXNDb25zdGFudElkZW50aWZpZXIpOwogICAg
IHNldENhY2hlVHlwZShsb2NrZXIsIENhY2hlVHlwZTo6R2V0QnlJZFNlbGYpOwogICAgIG1faWRl
bnRpZmllciA9IGlkZW50aWZpZXI7Ci0gICAgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlID0g
aW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZS0+aWQoKTsKLSAgICBjb2RlQmxvY2stPnZtKCkud3Jp
dGVCYXJyaWVyKGNvZGVCbG9jayk7CisgICAgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQu
c2V0KGNvZGVCbG9jay0+dm0oKSwgY29kZUJsb2NrLCBpbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJl
KTsKICAgICBieUlkU2VsZk9mZnNldCA9IG9mZnNldDsKIH0KIApAQCAtNzEsOCArNzAsNyBAQCB2
b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjppbml0UHV0QnlJZFJlcGxhY2UoY29uc3QgQ29uY3VycmVu
dEpTTG9ja2VyQmFzZSYgbG9ja2VyLAogICAgIEFTU0VSVChtX2NhY2hlVHlwZSA9PSBDYWNoZVR5
cGU6OlVuc2V0KTsKICAgICBzZXRDYWNoZVR5cGUobG9ja2VyLCBDYWNoZVR5cGU6OlB1dEJ5SWRS
ZXBsYWNlKTsKICAgICBtX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOwotICAgIG1faW5saW5lQWNj
ZXNzQmFzZVN0cnVjdHVyZSA9IGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUtPmlkKCk7Ci0gICAg
Y29kZUJsb2NrLT52bSgpLndyaXRlQmFycmllcihjb2RlQmxvY2spOworICAgIG1faW5saW5lQWNj
ZXNzQmFzZVN0cnVjdHVyZUlELnNldChjb2RlQmxvY2stPnZtKCksIGNvZGVCbG9jaywgaW5saW5l
QWNjZXNzQmFzZVN0cnVjdHVyZSk7CiAgICAgYnlJZFNlbGZPZmZzZXQgPSBvZmZzZXQ7CiB9CiAK
QEAgLTgxLDggKzc5LDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdEluQnlJZFNlbGYo
Y29uc3QgQ29uY3VycmVudEpTTG9ja2VyQmFzZSYgbG9ja2VyLCBDb2QKICAgICBBU1NFUlQobV9j
YWNoZVR5cGUgPT0gQ2FjaGVUeXBlOjpVbnNldCk7CiAgICAgc2V0Q2FjaGVUeXBlKGxvY2tlciwg
Q2FjaGVUeXBlOjpJbkJ5SWRTZWxmKTsKICAgICBtX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOwot
ICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSA9IGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1
cmUtPmlkKCk7Ci0gICAgY29kZUJsb2NrLT52bSgpLndyaXRlQmFycmllcihjb2RlQmxvY2spOwor
ICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELnNldChjb2RlQmxvY2stPnZtKCksIGNv
ZGVCbG9jaywgaW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSk7CiAgICAgYnlJZFNlbGZPZmZzZXQg
PSBvZmZzZXQ7CiB9CiAKQEAgLTIxNiwxMSArMjEzLDExIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1
bHQgU3RydWN0dXJlU3R1YkluZm86OmFkZEFjY2Vzc0Nhc2UoCiAgICAgICAgIC8vIGFjY2VzcyBj
b2RlLiBUaGF0J3MgYmVjYXVzZSB3aGVuIHdlIGZpcnN0IHRyYW5zaXRpb24gdG8gYmVjb21pbmcg
YSBTdHViLCB3ZSBtYXkKICAgICAgICAgLy8gYmUgYnVmZmVyZWQsIGFuZCB3ZSBoYXZlIG5vdCB5
ZXQgZ2VuZXJhdGVkIGFueSBjb2RlLiBPbmNlIHRoZSBTdHViIGZpbmFsbHkgZ2VuZXJhdGVzCiAg
ICAgICAgIC8vIGNvZGUsIHdlJ3JlIG5vIGxvbmdlciBydW5uaW5nIHRoZSBpbmxpbmUgYWNjZXNz
IGNvZGUsIHNvIHdlIGNhbiB0aGVuIGNsZWFyIG91dAotICAgICAgICAvLyBtX2lubGluZUFjY2Vz
c0Jhc2VTdHJ1Y3R1cmUuIFRoZSByZWFzb24gd2UgZG9uJ3QgY2xlYXIgbV9pbmxpbmVBY2Nlc3NC
YXNlU3RydWN0dXJlIHdoaWxlCi0gICAgICAgIC8vIHdlJ3JlIGJ1ZmZlcmVkIGlzIGJlY2F1c2Ug
d2UgcmVseSBvbiBpdCB0byByZXNldCBkdXJpbmcgR0MgaWYgbV9pbmxpbmVBY2Nlc3NCYXNlU3Ry
dWN0dXJlCisgICAgICAgIC8vIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELiBUaGUgcmVh
c29uIHdlIGRvbid0IGNsZWFyIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEIHdoaWxlCisg
ICAgICAgIC8vIHdlJ3JlIGJ1ZmZlcmVkIGlzIGJlY2F1c2Ugd2UgcmVseSBvbiBpdCB0byByZXNl
dCBkdXJpbmcgR0MgaWYgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQKICAgICAgICAgLy8g
aXMgY29sbGVjdGVkLgogICAgICAgICBtX2lkZW50aWZpZXIgPSBudWxscHRyOwotICAgICAgICBt
X2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmVJRCgpOworICAgICAgICBtX2lu
bGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5jbGVhcigpOwogICAgICAgICAKICAgICAgICAgLy8g
SWYgd2UgZ2VuZXJhdGVkIHNvbWUgY29kZSB0aGVuIHdlIGRvbid0IHdhbnQgdG8gYXR0ZW1wdCB0
byByZXBhdGNoIGluIHRoZSBmdXR1cmUgdW50aWwgd2UKICAgICAgICAgLy8gZ2F0aGVyIGVub3Vn
aCBjYXNlcy4KQEAgLTIzNSw3ICsyMzIsNyBAQCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjpyZXNl
dChjb25zdCBDb25jdXJyZW50SlNMb2NrZXJCYXNlJiBsb2NrZXIsIENvZGVCbG9jayogYwogewog
ICAgIGNsZWFyQnVmZmVyZWRTdHJ1Y3R1cmVzKCk7CiAgICAgbV9pZGVudGlmaWVyID0gbnVsbHB0
cjsKLSAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmVJRCgpOworICAg
IG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELmNsZWFyKCk7CiAKICAgICBpZiAobV9jYWNo
ZVR5cGUgPT0gQ2FjaGVUeXBlOjpVbnNldCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAppbmRleCA3M2Ji
M2UwNWE2MmVjMGIyMWU3NjExODc4MzFlZjdkMTM5N2Q5ODM5Li5jMDFmZjc4MDNhNWI3NGQ3NDdm
MmNhNmE0NjFmNjQ1OGU0N2NiZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMzUzLDE3ICszNTMsMTUgQEAgY2xhc3Mg
U3RydWN0dXJlU3R1YkluZm8gewogICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbjsKICAgICBQcm9w
ZXJ0eU9mZnNldCBieUlkU2VsZk9mZnNldDsKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
QnlJZFNlbGZPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RydWN0dXJlU3R1Yklu
Zm8sIGJ5SWRTZWxmT2Zmc2V0KTsgfQotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVy
ZVN0dWJJbmZvLCBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOyB9CisgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRCgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVTdHViSW5mbywgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0
dXJlSUQpOyB9CiAgICAgdW5pb24gewogICAgICAgICBQb2x5bW9ycGhpY0FjY2Vzcyogc3R1YjsK
ICAgICB9IHU7CiAgICAgU3RydWN0dXJlKiBpbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKFZNJikK
ICAgICB7Ci0gICAgICAgIGlmICghbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX2lubGluZUFjY2Vzc0Jhc2VT
dHJ1Y3R1cmUuZGVjb2RlKCk7CisgICAgICAgIHJldHVybiBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1
Y3R1cmVJRC5nZXQoKTsKICAgICB9Ci0gICAgU3RydWN0dXJlSUQgbV9pbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1faW5saW5lQWNjZXNzQmFz
ZVN0cnVjdHVyZUlEOwogcHJpdmF0ZToKICAgICBDYWNoZWFibGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICAvLyBSZXByZXNlbnRzIHRob3NlIHN0cnVjdHVyZXMgdGhhdCBhbHJlYWR5IGhh
dmUgYnVmZmVyZWQgQWNjZXNzQ2FzZXMgaW4gdGhlIFBvbHltb3JwaGljQWNjZXNzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA5NjI5
ZWUxM2M3ZWFmZWM5NjMyNjQxOTQxY2UyNTQ0YzQyODVlYmI0Li5mOTA4MGUyMDc5ODNlZDQ0MGJh
MWMzZTQ4ZmQ2MWJiNjM0ZTk3M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTQ4MTksOCArMTQ4MTksOSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUHJvbWlzZShOb2RlKiBub2RlKQogICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RGdW5jdGlvbihjYWxsZWVHUFIpKTsKICAgICBtX2pp
dC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zm
c2V0T2ZFeGVjdXRhYmxlT3JSYXJlRGF0YSgpKSwgcmFyZURhdGFHUFIpOwogICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmFyZURh
dGFHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTRnVuY3Rpb246OnJhcmVEYXRhVGFn
KSkpOwotICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MocmFyZURhdGFHUFIs
IEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0
dXJlKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyksIHN0cnVjdHVyZUdQUik7Ci0gICAgc2xv
d0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6WmVybywgc3Ry
dWN0dXJlR1BSKSk7CisgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJhcmVE
YXRhR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0
aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRP
ZlN0cnVjdHVyZUlEKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyksIHN0cnVjdHVyZUdQUik7
CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpa
ZXJvLCBzdHJ1Y3R1cmVHUFIpKTsKKyAgICBtX2ppdC5lbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVy
ZUlEKHN0cnVjdHVyZUdQUiwgc3RydWN0dXJlR1BSKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJ
bW1QdHIobm9kZS0+aXNJbnRlcm5hbFByb21pc2UoKSA/IEpTSW50ZXJuYWxQcm9taXNlOjppbmZv
KCkgOiBKU1Byb21pc2U6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKG1faml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoMUdQUiwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9P
ZmZzZXQoKSkpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1f
aml0LmdyYXBoKCksIGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKQEAgLTE0ODY3LDggKzE0
ODY4LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRP
YmplY3QoTm9kZSogbm9kZSwgT3BlcmF0aW9uIG9wZXIKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmTm90RnVuY3Rpb24oY2FsbGVlR1BSKSk7CiAgICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0
YWJsZU9yUmFyZURhdGEoKSksIHJhcmVEYXRhR1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJhcmVEYXRhR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZykpKTsKLSAgICBt
X2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJhcmVEYXRhR1BSLCBGdW5jdGlvblJh
cmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50
ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVjdHVyZSgpIC0gSlNG
dW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOwotICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHN0cnVjdHVyZUdQUikp
OworICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6QWRkcmVzcyhyYXJlRGF0YUdQUiwgRnVu
Y3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUo
KSArIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmVJ
RCgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOworICAgIHNsb3dD
YXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgc3RydWN0
dXJlR1BSKSk7CisgICAgbV9qaXQuZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChzdHJ1Y3R1
cmVHUFIsIHN0cnVjdHVyZUdQUik7CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKEpTQ2xh
c3M6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJy
YW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSkpKTsK
ICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0LmdyYXBoKCks
IGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggMzE1ZjkwZDRjZWEy
Mzk5NmRkMDcyOGI2YjZiZGNiNDg0YmJiMWU2MC4uYWIxZjViODY3NTlkMDU1NjlkMzhjMDQ4ZGNj
ODNhYTdmZDVmYjBlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg0LDkgKzg0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURhdGFfcHJvdG90eXBl
LCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Qcm9maWxlKCkgKyBP
YmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5cGU6Om9mZnNldE9mUHJvdG90eXBlKCkp
IFwKICAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2lu
dFNldCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9p
bnRTZXQoKSkgXAogICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURhdGFfZXhlY3V0YWJsZSwgRnVuY3Rp
b25SYXJlRGF0YTo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKLSAgICBtYWNybyhGdW5jdGlvblJh
cmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9zdHJ1Y3R1cmUsIEZ1bmN0
aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkg
KyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlKCkp
IFwKLSAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUsIEZ1
bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mQm91bmRGdW5jdGlvblN0cnVjdHVyZSgpKSBcCi0gICAg
bWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2lu
dCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0
Y2hwb2ludCgpKSBcCisgICAgbWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9u
QWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9m
SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxs
b2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlSUQoKSkgXAogICAgIG1hY3JvKEdldHRl
clNldHRlcl9nZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zmc2V0T2ZHZXR0ZXIoKSkgXAogICAgIG1h
Y3JvKEdldHRlclNldHRlcl9zZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zmc2V0T2ZTZXR0ZXIoKSkg
XAogICAgIG1hY3JvKEpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCwgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTGVuZ3RoKCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAppbmRleCAwMGVkYTU2YTgzNTgxYWVlZTAyNGMxZmYyNTNmMGMyMGE2ZDNk
NDQ4Li4yYjExZjZhYzNkYmUxZjBmN2RhOTYyNmNkMmU0MWU1Zjg5N2I2ZjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC03ODc3LDEwICs3
ODc3LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAgICBtX291dC5hcHBl
bmRUbyhoYXNSYXJlRGF0YSwgaGFzU3RydWN0dXJlKTsKICAgICAgICAgTFZhbHVlIHJhcmVEYXRh
ID0gbV9vdXQuc3ViKHJhcmVEYXRhVGFncywgbV9vdXQuY29uc3RJbnRQdHIoSlNGdW5jdGlvbjo6
cmFyZURhdGFUYWcpKTsKLSAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIo
cmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2Nh
dGlvblByb2ZpbGVfc3RydWN0dXJlKTsKLSAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVy
bzY0KHN0cnVjdHVyZSksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaGFzU3RydWN0dXJlKSk7
CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0LmxvYWQzMihyYXJlRGF0YSwgbV9o
ZWFwcy5GdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9z
dHJ1Y3R1cmVJRCk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihzdHJ1Y3R1
cmVJRCksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaGFzU3RydWN0dXJlKSk7CiAKICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oaGFzU3RydWN0dXJlLCBjaGVja0dsb2JhbE9iamVjdENhc2UpOwor
ICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gZGVjb2RlTm9uTnVsbFN0cnVjdHVyZShzdHJ1Y3R1
cmVJRCk7CiAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChtX291dC5sb2FkUHRyKHN0
cnVjdHVyZSwgbV9oZWFwcy5TdHJ1Y3R1cmVfY2xhc3NJbmZvKSwgbV9vdXQuY29uc3RJbnRQdHIo
bV9ub2RlLT5pc0ludGVybmFsUHJvbWlzZSgpID8gSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSA6
IEpTUHJvbWlzZTo6aW5mbygpKSksIHVzdWFsbHkoY2hlY2tHbG9iYWxPYmplY3RDYXNlKSwgcmFy
ZWx5KHNsb3dDYXNlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY2hlY2tHbG9iYWxPYmpl
Y3RDYXNlLCBmYXN0QWxsb2NhdGlvbkNhc2UpOwpAQCAtNzkzMiwxMCArNzkzMywxMSBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaGFzUmFyZURh
dGEsIGhhc1N0cnVjdHVyZSk7CiAgICAgICAgIExWYWx1ZSByYXJlRGF0YSA9IG1fb3V0LnN1Yihy
YXJlRGF0YVRhZ3MsIG1fb3V0LmNvbnN0SW50UHRyKEpTRnVuY3Rpb246OnJhcmVEYXRhVGFnKSk7
Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKHJhcmVEYXRhLCBtX2hl
YXBzLkZ1bmN0aW9uUmFyZURhdGFfaW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlX3N0
cnVjdHVyZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm82NChzdHJ1Y3R1cmUp
LCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOworICAgICAgICBMVmFs
dWUgc3RydWN0dXJlSUQgPSBtX291dC5sb2FkMzIocmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25S
YXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQpOwor
ICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIoc3RydWN0dXJlSUQpLCByYXJlbHko
c2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOwogCiAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGhhc1N0cnVjdHVyZSwgY2hlY2tHbG9iYWxPYmplY3RDYXNlKTsKKyAgICAgICAgTFZhbHVl
IHN0cnVjdHVyZSA9IGRlY29kZU5vbk51bGxTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpOwogICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobV9vdXQubG9hZFB0cihzdHJ1Y3R1cmUsIG1faGVh
cHMuU3RydWN0dXJlX2NsYXNzSW5mbyksIG1fb3V0LmNvbnN0SW50UHRyKEpTQ2xhc3M6OmluZm8o
KSkpLCB1c3VhbGx5KGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSksIHJhcmVseShzbG93Q2FzZSkpOwog
CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSwgZmFzdEFsbG9j
YXRpb25DYXNlKTsKQEAgLTIwOTczLDEzICsyMDk3NSwxOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgIG1fZ3JhcGgubV9wbGFuLndlYWtSZWZlcmVuY2VzKCkuYWRkTGF6aWx5
KHRhcmdldCk7CiAgICAgfQogCi0gICAgTFZhbHVlIGxvYWRTdHJ1Y3R1cmUoTFZhbHVlIHZhbHVl
KQorICAgIExWYWx1ZSBkZWNvZGVOb25OdWxsU3RydWN0dXJlKExWYWx1ZSBzdHJ1Y3R1cmVJRCkK
ICAgICB7Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0LmxvYWQzMih2YWx1ZSwg
bV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICBMVmFsdWUgbWFza2VkU3RydWN0
dXJlSUQgPSBtX291dC5iaXRBbmQoc3RydWN0dXJlSUQsIG1fb3V0LmNvbnN0SW50MzIoc3RydWN0
dXJlSURNYXNrKSk7CiAgICAgICAgIHJldHVybiBtX291dC5hZGQobV9vdXQuY29uc3RJbnRQdHIo
Z19qc2NDb25maWcuc3RhcnRPZlN0cnVjdHVyZUhlYXApLCBtX291dC56ZXJvRXh0UHRyKG1hc2tl
ZFN0cnVjdHVyZUlEKSk7CiAgICAgfQogCisgICAgTFZhbHVlIGxvYWRTdHJ1Y3R1cmUoTFZhbHVl
IHZhbHVlKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUlEID0gbV9vdXQubG9hZDMy
KHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CisgICAgICAgIHJldHVybiBkZWNv
ZGVOb25OdWxsU3RydWN0dXJlKHN0cnVjdHVyZUlEKTsKKyAgICB9CisKICAgICBMVmFsdWUgd2Vh
a1BvaW50ZXIoSlNDZWxsKiBwb2ludGVyKQogICAgIHsKICAgICAgICAgYWRkV2Vha1JlZmVyZW5j
ZShwb2ludGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3Ry
YWN0U2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xv
dFZpc2l0b3IuaAppbmRleCBiYzI5Zjc0MTkzMzk4ZDE0Y2ZmNDI1M2Y2MjY4NmRmMTgyNDc4MzBh
Li5kNmY0MTYyZmZhYjlmY2RhMmI0YTJkYzZmMzg0M2RiZjY2ZTkyMTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvci5oCkBAIC00OCw2ICs0
OCw3IEBAIGNsYXNzIFZNOwogY2xhc3MgVmVyaWZpZXJTbG90VmlzaXRvcjsKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFp
dHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2U7CitjbGFzcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RDsKIAogY2xhc3MgQWJzdHJhY3RTbG90VmlzaXRvciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQWJzdHJhY3RTbG90VmlzaXRvcik7CkBAIC0xNDMsNiArMTQ0LDggQEAgY2xhc3MgQWJzdHJh
Y3RTbG90VmlzaXRvciB7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFp
dHM+IHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VCwgVHJhaXRzPiYpOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gdm9pZCBhcHBlbmRIaWRkZW4o
Y29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUcmFpdHM+Jik7CisgICAgdm9pZCBhcHBlbmQoY29u
c3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKKyAgICB2b2lkIGFwcGVuZEhpZGRlbihjb25z
dCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yPiB2b2lkIGFwcGVuZChJdGVyYXRvciBiZWdpbiAsIEl0ZXJhdG9yIGVuZCk7CiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIGFwcGVuZFZhbHVlcyhjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFVua25v
d24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3VudCk7CiAgICAgQUxXQVlT
X0lOTElORSB2b2lkIGFwcGVuZFZhbHVlc0hpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFVu
a25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3VudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9ySW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvcklubGlu
ZXMuaAppbmRleCBhZjY2MDM4NjRjNmViZmUyZWZlMWRjOTA4YTFiZDg1MTNjNmViZjU4Li42Mjg0
MzgyZTAwMjExNTY5OGU1Mjk1NmIyZDMxYmRmODE2NmQyYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9ySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3JJbmxpbmVzLmgKQEAg
LTE1OCw2ICsxNTgsMTYgQEAgQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6
OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFQKICAgICBhcHBlbmRIaWRk
ZW5VbmJhcnJpZXJlZChzbG90LmdldCgpKTsKIH0KIAorQUxXQVlTX0lOTElORSB2b2lkIEFic3Ry
YWN0U2xvdFZpc2l0b3I6OmFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xv
dCkKK3sKKyAgICBhcHBlbmRVbmJhcnJpZXJlZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHNs
b3QuZ2V0KCkpKTsKK30KKworQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6
OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xvdCkKK3sKKyAg
ICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHNsb3Qu
Z2V0KCkpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFw
cGVuZEhpZGRlblVuYmFycmllcmVkKEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlz
Q2VsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKaW5kZXggNTAz
NjM2OTM4NDI5NjQzNTJjMGQwMjBiYmViOTkwYmUyMWQ3YTg0Ny4uMDZmZDRhZDkwNGQwZDhlNDAy
YTg4NzRkM2M3YTY2NDg2YTFhNmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCkBAIC05Miw2ICs5Miw4IEBAIGNsYXNzIFNsb3RWaXNpdG9yIGZpbmFsIDogcHVi
bGljIEFic3RyYWN0U2xvdFZpc2l0b3IgewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVHJhaXRzPiB2b2lkIGFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0
cz4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBw
ZW5kSGlkZGVuKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VCwgVHJhaXRzPiYpOworICAgIHZvaWQg
YXBwZW5kKGNvbnN0IFdyaXRlQmFycmllclN0cnVjdHVyZUlEJik7CisgICAgdm9pZCBhcHBlbmRI
aWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBJdGVyYXRvcj4gdm9pZCBhcHBlbmQoSXRlcmF0b3IgYmVnaW4gLCBJdGVyYXRvciBlbmQp
OwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1ZXMoY29uc3QgV3JpdGVCYXJyaWVy
QmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4qLCBzaXplX3QgY291bnQpOwog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1ZXNIaWRkZW4oY29uc3QgV3JpdGVCYXJy
aWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4qLCBzaXplX3QgY291bnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaApp
bmRleCA0NGYyMDljNTk0ZTlmNDhmOTRmOTk3NzRjZTY0NGU4ZmRkYmU4MWMyLi41NDIyM2E2NDc5
NmFmZTk2MmRkNzZkYjIzOWMwMWNjMmVmYjU3ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaApAQCAtMTE2LDYgKzExNiwxNiBAQCBBTFdB
WVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJp
ZXJCYXNlPFQsIFRyYWl0cz4mCiAgICAgYXBwZW5kSGlkZGVuVW5iYXJyaWVyZWQoc2xvdC5nZXQo
KSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kKGNvbnN0IFdy
aXRlQmFycmllclN0cnVjdHVyZUlEJiBzbG90KQoreworICAgIGFwcGVuZFVuYmFycmllcmVkKHJl
aW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oc2xvdC5nZXQoKSkpOworfQorCitBTFdBWVNfSU5MSU5F
IHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChyZWludGVycHJldF9j
YXN0PEpTQ2VsbCo+KHNsb3QuZ2V0KCkpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgSXRlcmF0
b3I+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChJdGVyYXRvciBiZWdp
biwgSXRlcmF0b3IgZW5kKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuY3BwCmluZGV4IDkzZDliMzNhM2Q0NTJhMTdhMTFkM2FmZGI4ZWIyNmY2Njc0NmMx
ZGIuLjMzYjJiMjdiMjYwNjA5NTkyMTM2ZDQ2NTg1NjU2MTA2N2Y3MDE0OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKQEAgLTM4OSw5ICszODks
OSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6c3RvcmVQcm9wZXJ0eShKU1ZhbHVlUmVncyB2YWx1
ZSwgR1BSUmVnIG9iamVjdCwgR1BSUmVnIG9mZgogICAgICAgICBCYXNlSW5kZXgoc2NyYXRjaCwg
b2Zmc2V0LCBUaW1lc0VpZ2h0LCAoZmlyc3RPdXRPZkxpbmVPZmZzZXQgLSAyKSAqIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkpKTsKIH0KIAotdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3Ry
dWN0dXJlKFZNJiwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJlZ2lzdGVySUQgZGVzdCkKK3ZvaWQgQXNz
ZW1ibHlIZWxwZXJzOjplbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291
cmNlLCBSZWdpc3RlcklEIGRlc3QpCiB7Ci0gICAgbG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgZGVzdCk7CisgICAgbW92
ZShzb3VyY2UsIGRlc3QpOwogI2lmIENQVShBRERSRVNTNjQpCiAgICAgLy8gVGhpcyBjb3VsZCB1
c2UgQkZJIG9uIGFybTY0IGJ1dCB0aGF0IG9ubHkgaGVscHMgaWYgdGhlIHN0YXJ0IG9mIHN0cnVj
dHVyZSBoZWFwIGlzIGVuY29kYWJsZSBhcyBhIG1vdiBhbmQgbm90IGFzIGFuIGltbWVkaWF0ZSBp
biB0aGUgYWRkIHNvIGl0J3MgcHJvYmFibHkgbm90IHN1cGVyIGltcG9ydGFudC4KICAgICBhbmQz
MihUcnVzdGVkSW1tMzIoc3RydWN0dXJlSURNYXNrKSwgZGVzdCk7CkBAIC0zOTksNiArMzk5LDEy
IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZShWTSYsIFJlZ2lzdGVy
SUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCiAjZW5kaWYgLy8gbm90IENQVShBRERSRVNTNjQp
CiB9CiAKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZShWTSYsIFJlZ2lz
dGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCit7CisgICAgbG9hZDMyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgZGVzdCk7
CisgICAgZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChkZXN0LCBkZXN0KTsKK30KKwogdm9p
ZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkUHJvdG90eXBlKFZNJiB2bSwgR1BSUmVnIG9iamVj
dEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExpc3QmIHNsb3dQYXRoKQogewogICAg
IEFTU0VSVChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSAhPSBvYmplY3RHUFIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggYzZlZjU1MTIyZTM3NGVh
ODliN2Y1NDc2ZDQ2YzEwN2ExOWIzNzE1Ni4uZjcxNzYwYmYwNWJhMmNlM2QyZWFkNTUyZDZhYTQy
MmI1YjYwOWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5oCkBAIC0xNTc3LDYgKzE1NzcsNyBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMg
TWFjcm9Bc3NlbWJsZXIgewogICAgICAgICByZXR1cm4gYXJndW1lbnRDb3VudChjb2RlT3JpZ2lu
LmlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBlbWl0Tm9uTnVsbERl
Y29kZVN0cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpOwogICAg
IHZvaWQgZW1pdExvYWRTdHJ1Y3R1cmUoVk0mLCBSZWdpc3RlcklEIHNvdXJjZSwgUmVnaXN0ZXJJ
RCBkZXN0KTsKICAgICB2b2lkIGVtaXRMb2FkUHJvdG90eXBlKFZNJiwgR1BSUmVnIG9iamVjdEdQ
UiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExpc3QmIHNsb3dQYXRoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNw
cAppbmRleCBjNjdiY2UwOWZmYmM2MGUyNDMzZTYyMmUzNzgyNzhjZjIwNzRiNGJlLi4wNGZmMjJl
NmU0MjVhMDNjNjE0MTQ3MDU2N2YzN2RhNjM2NTM0YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQogc3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5lQWNjZXNz
KEpJVCYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdzIGJhc2VKU1IsIEdQUlJl
ZyBzY3JhdGNoR1BSLCBKU1ZhbHVlUmVncyByZXN1bHRKU1IpCiB7CiAgICAgaml0LmxvYWQzMihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0
dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBq
aXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVB
Y2Nlc3NCYXNlU3RydWN0dXJlKCkpKTsKKyAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJy
YW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRk
cmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZUlEKCkpKTsKICAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJ
VFN0dWJSb3V0aW5lUHRyVGFnKTsKICAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwogICAg
IGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVT
dHViSW5mbzo6b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7CkBAIC0yMjEs
NyArMjIxLDcgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0
YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWIKICAgICB1c2luZyBCYXNlbGluZVB1
dEJ5SWRSZWdpc3RlcnM6OnNjcmF0Y2gyR1BSOwogCiAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlKCkpKTsKKyAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKEND
YWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHVi
SW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVj
dHVyZUlEKCkpKTsKICAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1Yklu
Zm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0
aW5lUHRyVGFnKTsKICAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwogICAgIGppdC5sb2Fk
MzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7CkBAIC00MTIsNyArNDEyLDcg
QEAgdm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0
aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkkKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRv
bmU7CiAKICAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBheWxv
YWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAg
YXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0
dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSgpKSk7CisgICAg
YXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0
dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKICAg
ICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1IpOwogICAgIGF1dG8gZmluaXNoZWQgPSBq
aXQuanVtcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25FeGVjdXRhYmxlLmNwcAppbmRleCAxMmQ0OTlhNGU0NTA0Y2VjMTg0ZDdkYmY1YzM2ZWZl
ZGViMWFiNDczLi5hMTc2NDdhYzlhYTIzZTc1NDc1NjcyZTRjNmViNTJmZDA1OWU0YjZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJs
ZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hp
bGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFw
cGVuZCh0aGlzT2JqZWN0LT5tX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCk7CiAgICAgdmlzaXRvci5h
cHBlbmQodGhpc09iamVjdC0+bV91bmxpbmtlZEV4ZWN1dGFibGUpOwogICAgIGlmIChSYXJlRGF0
YSogcmFyZURhdGEgPSB0aGlzT2JqZWN0LT5tX3JhcmVEYXRhLmdldCgpKSB7Ci0gICAgICAgIHZp
c2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZSk7CisgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZUlE
KTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYXNTdHJpbmcpOwogICAgICAg
ICBpZiAoVGVtcGxhdGVPYmplY3RNYXAqIG1hcCA9IHJhcmVEYXRhLT5tX3RlbXBsYXRlT2JqZWN0
TWFwLmdldCgpKSB7CiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgdGhpc09iamVjdC0+Y2Vs
bExvY2soKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkV4ZWN1dGFibGUuaAppbmRleCBhN2Y3NzUxM2U4YWRlMGZlYmY3YTliMzJlZjkzZGY5YjBlNmJh
MjYxLi5mYTk1MDQ1M2E1NDEyYzcyMDBmNWE4MjViODZjZmEwNzY1ZjlkMDQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAt
MjU3LDEyICsyNTcsMTIgQEAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGlj
IFNjcmlwdEV4ZWN1dGFibGUgewogICAgIFN0cnVjdHVyZSogY2FjaGVkUG9seVByb3RvU3RydWN0
dXJlKCkKICAgICB7CiAgICAgICAgIGlmIChVTkxJS0VMWShtX3JhcmVEYXRhKSkKLSAgICAgICAg
ICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZS5nZXQoKTsK
KyAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVy
ZUlELmdldCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgdm9pZCBzZXRD
YWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICB7Ci0gICAgICAgIGVuc3VyZVJhcmVEYXRhKCkubV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOworICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLm1fY2Fj
aGVkUG9seVByb3RvU3RydWN0dXJlSUQuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOwogICAgIH0K
IAogICAgIElubGluZVdhdGNocG9pbnRTZXQmIGVuc3VyZVBvbHlQcm90b1dhdGNocG9pbnQoKQpA
QCAtMzEwLDggKzMxMCw4IEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1Ymxp
YyBTY3JpcHRFeGVjdXRhYmxlIHsKICAgICAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJzU3RhcnRP
ZmZzZXQgeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0
IHsgVUlOVF9NQVggfTsKICAgICAgICAgdW5zaWduZWQgbV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0
IHsgVUlOVF9NQVggfTsKKyAgICAgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9jYWNoZWRQ
b2x5UHJvdG9TdHJ1Y3R1cmVJRDsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRlbXBsYXRlT2Jq
ZWN0TWFwPiBtX3RlbXBsYXRlT2JqZWN0TWFwOwotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpT
U3RyaW5nPiBtX2FzU3RyaW5nOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKaW5kZXggMTIxZDQzMjhjYTA4ZmVhOTAz
OTVjZjExMWNiNDNmYzdmYjU1M2FlZi4uYTEzZGZhNDU2NjgzMTg4Zjc5NGQ3OTkzNmE5MjEzODU2
MWYyMzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25SYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25SYXJlRGF0YS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGdW5jdGlvblJhcmVEYXRhOjp2
aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAKICAgICBy
YXJlRGF0YS0+bV9vYmplY3RBbGxvY2F0aW9uUHJvZmlsZS52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9y
KTsKICAgICByYXJlRGF0YS0+bV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUudmlz
aXRBZ2dyZWdhdGUodmlzaXRvcik7Ci0gICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYm91
bmRGdW5jdGlvblN0cnVjdHVyZSk7CisgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYm91
bmRGdW5jdGlvblN0cnVjdHVyZUlEKTsKICAgICB2aXNpdG9yLmFwcGVuZChyYXJlRGF0YS0+bV9l
eGVjdXRhYmxlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25SYXJlRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25SYXJlRGF0YS5oCmluZGV4IDJjYTA4NmRiYzZlYmRmNzgyZTFmNjE0MTNiMTNkZjAwY2Ni
MTkwNmYuLjBmMWU5ODU2OTM1MTY0N2ExNzkyOTc0NzMwNGU4ZmE3YTYzYzJiZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKQEAgLTcy
LDkgKzcyLDcgQEAgY2xhc3MgRnVuY3Rpb25SYXJlRGF0YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mT2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9vYmpl
Y3RBbGxvY2F0aW9uUHJvZmlsZSk7IH0KICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZz
ZXRPZkFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldCk7
IH0KICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkludGVybmFsRnVuY3Rpb25B
bGxvY2F0aW9uUHJvZmlsZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJhcmVE
YXRhLCBtX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSk7IH0KLSAgICBzdGF0aWMg
aW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9ib3VuZEZ1bmN0aW9uU3RydWN0
dXJlKTsgfQogICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mRXhlY3V0YWJsZSgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2V4ZWN1dGFibGUp
OyB9Ci0gICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmls
ZUNsZWFyaW5nV2F0Y2hwb2ludCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJh
cmVEYXRhLCBtX2FsbG9jYXRpb25Qcm9maWxlQ2xlYXJpbmdXYXRjaHBvaW50KTsgfQogCiAgICAg
T2JqZWN0QWxsb2NhdGlvblByb2ZpbGVXaXRoUHJvdG90eXBlKiBvYmplY3RBbGxvY2F0aW9uUHJv
ZmlsZSgpCiAgICAgewpAQCAtMTEzLDggKzExMSw4IEBAIGNsYXNzIEZ1bmN0aW9uUmFyZURhdGEg
ZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgICAgIG1fYWxsb2NhdGlvblByb2ZpbGVX
YXRjaHBvaW50U2V0LnN0YXJ0V2F0Y2hpbmcoKTsKICAgICB9CiAKLSAgICBTdHJ1Y3R1cmUqIGdl
dEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkgeyBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0
aGlzLCBzdHJ1Y3R1cmUpOyB9CisgICAgU3RydWN0dXJlKiBnZXRCb3VuZEZ1bmN0aW9uU3RydWN0
dXJlKCkgeyByZXR1cm4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlSUQuZ2V0KCk7IH0KKyAgICB2
b2lkIHNldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkgeyBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmVJRC5zZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7
IH0KIAogICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9l
eGVjdXRhYmxlLmdldCgpOyB9CiAKQEAgLTE2MCw3ICsxNTgsNyBAQCBjbGFzcyBGdW5jdGlvblJh
cmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgT2JqZWN0QWxsb2NhdGlvblByb2Zp
bGVXaXRoUHJvdG90eXBlIG1fb2JqZWN0QWxsb2NhdGlvblByb2ZpbGU7CiAgICAgSW5saW5lV2F0
Y2hwb2ludFNldCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldDsKICAgICBJbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUgbV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblBy
b2ZpbGU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0
dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fYm91bmRGdW5jdGlvblN0cnVjdHVy
ZUlEOwogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxBbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludD4gbV9h
bGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludDsKICAgICBib29sIG1faGFzUmVpZmll
ZExlbmd0aCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKaW5kZXggMGU0OGUzMzBjYWY5ZjE1ZDIwZGVhZGZiZjJhNjg2MzE1MzUzZWE2
ZC4uNTkyMmQ1NjJjNDZmODAwYjFhYzFhYWQ3ZTE4ZDc3ZDkyYjRhMjE4NyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjI4MSwx
MyArMjI4MSwxNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0Nl
bGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IHRo
aXNPYmplY3QtPm1fbGlua1RpbWVDb25zdGFudHMpCiAgICAgICAgIHByb3BlcnR5LnZpc2l0KHZp
c2l0b3IpOwogCi0jZGVmaW5lIFZJU0lUX1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0
dXJlRmxhZykgaWYgKGZlYXR1cmVGbGFnKSB7IFwKKyNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEVf
UFJPVE9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgaWYgKGZlYXR1cmVGbGFnKSBc
CiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fICMjIGxvd2VyTmFtZSAjIyBQ
cm90b3R5cGUpOyBcCisKKyNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEVfU1RSVUNUVVJFKENhcGl0
YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90
b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgaWYgKGZlYXR1cmVGbGFnKSBcCiAgICAgICAgIHZpc2l0
b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlKTsgXAot
ICAgIH0KIAotICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoVklTSVRfU0lNUExFX1RZ
UEUpCi0gICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoVklTSVRfU0lN
UExFX1RZUEUpCisgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShWSVNJVF9TSU1QTEVf
VFlQRV9TVFJVQ1RVUkUpCisgICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZ
UEUoVklTSVRfU0lNUExFX1RZUEVfU1RSVUNUVVJFKQorICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlM
VElOX1RZUEUoVklTSVRfU0lNUExFX1RZUEVfUFJPVE9UWVBFKQorICAgIEZPUl9FQUNIX0JVSUxU
SU5fREVSSVZFRF9JVEVSQVRPUl9UWVBFKFZJU0lUX1NJTVBMRV9UWVBFX1BST1RPVFlQRSkKIAog
I2RlZmluZSBWSVNJVF9MQVpZX1RZUEUoQ2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFt
ZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UsIGZlYXR1cmVGbGFnKSBpZiAo
ZmVhdHVyZUZsYWcpIFwKICAgICAgICAgdGhpc09iamVjdC0+bV8gIyMgcHJvcGVyTmFtZSAjIyBT
dHJ1Y3R1cmUudmlzaXQodmlzaXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBhOTUyYzk3Yzc1Mjg1MGFmOGE4ODk3YTNjNTlhZDlh
NzU2Njk3YmI3Li4xODRkMWM4YmZhN2E4ZjBhNGFhNTA4MjNmYmE2ZTNiODJiZDE5OWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTM3
NiwyMCArMzc2LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdCB7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fZGVidWdnZXJTY29wZVN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxP
YmplY3QsIFN0cnVjdHVyZT4gbV93aXRoU2NvcGVTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5
PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1
cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9sZXhpY2FsRW52aXJvbm1lbnRTdHJ1
Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fbW9k
dWxlRW52aXJvbm1lbnRTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9k
aXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9z
Y29wZWRBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9j
bG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0KLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yOwotICAgICAgICAKLSAgICAvLyBM
aXN0cyB0aGUgYWN0dWFsIHN0cnVjdHVyZXMgdXNlZCBmb3IgaGF2aW5nIHRoZXNlIHBhcnRpY3Vs
YXIgaW5kZXhpbmcgc2hhcGVzLgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fb3JpZ2lu
YWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVbTnVtYmVyT2ZBcnJheUluZGV4aW5nTW9k
ZXNdOwotICAgIC8vIExpc3RzIHRoZSBzdHJ1Y3R1cmVzIHdlIHNob3VsZCB1c2UgZHVyaW5nIGFs
bG9jYXRpb24gZm9yIHRoZXNlIHBhcnRpY3VsYXIgaW5kZXhpbmcgc2hhcGVzLgotICAgIC8vIFRo
ZXNlIHN0cnVjdHVyZXMgd2lsbCBkaWZmZXIgZnJvbSB0aGUgb3JpZ2luYWxzIGxpc3QgYWJvdmUg
d2hlbiB3ZSBhcmUgaGF2aW5nIGEgYmFkIHRpbWUuCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVEdXJpbmdBbGxvY2F0aW9uW051bWJl
ck9mQXJyYXlJbmRleGluZ01vZGVzXTsKLQogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVj
dCwgU3RydWN0dXJlPiBtX2NhbGxiYWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmU7CiAgICAgTGF6eVBy
b3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fY2FsbGJhY2tGdW5jdGlvblN0cnVj
dHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9jYWxs
YmFja09iamVjdFN0cnVjdHVyZTsKQEAgLTQwMSw0MiArMzg4LDU3IEBAIGNsYXNzIEpTR2xvYmFs
T2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIExhenlQcm9w
ZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2dsaWJDYWxsYmFja0Z1bmN0aW9uU3Ry
dWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2ds
aWJXcmFwcGVyT2JqZWN0U3RydWN0dXJlOwogI2VuZGlmCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmU+IG1fY2FsbGVlU3RydWN0dXJlOwogCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9ob3N0RnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQg
bV9sZXhpY2FsRW52aXJvbm1lbnRTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQgbV9kaXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQgbV9zY29wZWRBcmd1bWVudHNTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQgbV9jbG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmU7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCBtX29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yOworCisgICAgLy8gTGlz
dHMgdGhlIGFjdHVhbCBzdHJ1Y3R1cmVzIHVzZWQgZm9yIGhhdmluZyB0aGVzZSBwYXJ0aWN1bGFy
IGluZGV4aW5nIHNoYXBlcy4KKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX29yaWdpbmFs
QXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlW051bWJlck9mQXJyYXlJbmRleGluZ01vZGVz
XTsKKyAgICAvLyBMaXN0cyB0aGUgc3RydWN0dXJlcyB3ZSBzaG91bGQgdXNlIGR1cmluZyBhbGxv
Y2F0aW9uIGZvciB0aGVzZSBwYXJ0aWN1bGFyIGluZGV4aW5nIHNoYXBlcy4KKyAgICAvLyBUaGVz
ZSBzdHJ1Y3R1cmVzIHdpbGwgZGlmZmVyIGZyb20gdGhlIG9yaWdpbmFscyBsaXN0IGFib3ZlIHdo
ZW4gd2UgYXJlIGhhdmluZyBhIGJhZCB0aW1lLgorICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlE
IG1fYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlRHVyaW5nQWxsb2NhdGlvbltOdW1iZXJP
ZkFycmF5SW5kZXhpbmdNb2Rlc107CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX251
bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQg
bV9jYWxsZWVTdHJ1Y3R1cmU7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2hvc3RG
dW5jdGlvblN0cnVjdHVyZTsKIAogICAgIHN0cnVjdCBGdW5jdGlvblN0cnVjdHVyZXMgewotICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBhcnJvd0Z1bmN0aW9uU3RydWN0dXJlOwotICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBzbG9wcHlGdW5jdGlvblN0cnVjdHVyZTsKLSAg
ICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gc3RyaWN0RnVuY3Rpb25TdHJ1Y3R1cmU7Cisg
ICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIGFycm93RnVuY3Rpb25TdHJ1Y3R1cmU7Cisg
ICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIHNsb3BweUZ1bmN0aW9uU3RydWN0dXJlOwor
ICAgICAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBzdHJpY3RGdW5jdGlvblN0cnVjdHVyZTsK
ICAgICB9OwogICAgIEZ1bmN0aW9uU3RydWN0dXJlcyBtX2J1aWx0aW5GdW5jdGlvbnM7CiAgICAg
RnVuY3Rpb25TdHJ1Y3R1cmVzIG1fb3JkaW5hcnlGdW5jdGlvbnM7CiAKKyAgICBQcm9wZXJ0eU9m
ZnNldCBtX2Z1bmN0aW9uTmFtZU9mZnNldDsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X3NoYWRvd1JlYWxtT2JqZWN0U3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlE
IG1fcmVnRXhwU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fYXN5bmNG
dW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FzeW5jR2Vu
ZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9n
ZW5lcmF0b3JGdW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X2dlbmVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FzeW5j
R2VuZXJhdG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fYXJyYXlJ
dGVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX21hcEl0ZXJh
dG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fc2V0SXRlcmF0b3JT
dHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9yZWdFeHBNYXRjaGVzQXJy
YXlTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9yZWdFeHBNYXRjaGVz
QXJyYXlXaXRoSW5kaWNlc1N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X3JlZ0V4cE1hdGNoZXNJbmRpY2VzQXJyYXlTdHJ1Y3R1cmU7CisKICAgICBMYXp5UHJvcGVydHk8
SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlOwogICAg
IExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2N1c3RvbUdldHRlckZ1
bmN0aW9uU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0
dXJlPiBtX2N1c3RvbVNldHRlckZ1bmN0aW9uU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX25hdGl2ZVN0ZEZ1bmN0aW9uU3RydWN0dXJlOwot
ICAgIFByb3BlcnR5T2Zmc2V0IG1fZnVuY3Rpb25OYW1lT2Zmc2V0OwotICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fc2hhZG93UmVhbG1PYmplY3RTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBTdHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPEFzeW5j
RnVuY3Rpb25Qcm90b3R5cGU+IG1fYXN5bmNGdW5jdGlvblByb3RvdHlwZTsKICAgICBXcml0ZUJh
cnJpZXI8QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZT4gbV9hc3luY0dlbmVyYXRvckZ1
bmN0aW9uUHJvdG90eXBlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYXN5bmNGdW5j
dGlvblN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2FzeW5jR2VuZXJh
dG9yRnVuY3Rpb25TdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9nZW5l
cmF0b3JGdW5jdGlvblN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2dl
bmVyYXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2FzeW5jR2Vu
ZXJhdG9yU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYXJyYXlJdGVy
YXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX21hcEl0ZXJhdG9y
U3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc2V0SXRlcmF0b3JTdHJ1
Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1faXRl
cmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fZGF0YVByb3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZTsK
ICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9hY2Nlc3NvclBy
b3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVdpdGhJbmRpY2VzU3RydWN0dXJlOwotICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0luZGljZXNBcnJheVN0cnVjdHVy
ZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9tb2R1bGVS
ZWNvcmRTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fbW9kdWxlTmFtZXNwYWNlT2JqZWN0U3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX3Byb3h5T2JqZWN0U3RydWN0dXJlOwpAQCAtNDQ0
LDE1ICs0NDYsMTkgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdCB7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fcHJveHlSZXZva2VTdHJ1Y3R1cmU7CiAgICAgTGF6eUNsYXNzU3RydWN0dXJlIG1fc2hh
cmVkQXJyYXlCdWZmZXJTdHJ1Y3R1cmU7CiAKLSNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJ
TVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgXAotICAgIFdyaXRlQmFycmll
cjxjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGU+IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7
IFwKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVj
dHVyZTsKKyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFX1BST1RPVFlQRShj
YXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwg
cHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKKyAgICBXcml0ZUJhcnJpZXI8Y2FwaXRhbE5h
bWUgIyMgUHJvdG90eXBlPiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlOworCisjZGVmaW5l
IERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9TVFJVQ1RVUkUoY2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2Us
IGZlYXR1cmVGbGFnKSBcCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV8gIyMgcHJvcGVy
TmFtZSAjIyBTdHJ1Y3R1cmU7CiAKICNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQ
RShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFt
ZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKICAgICBMYXp5Q2xhc3NTdHJ1Y3R1cmUg
bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmU7CiAKLSAgICBGT1JfRUFDSF9TSU1QTEVfQlVJ
TFRJTl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRSkKLSAgICBGT1JfRUFDSF9C
VUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZ
UEUpCisgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1Jf
U0lNUExFX1RZUEVfU1RSVUNUVVJFKQorICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVS
QVRPUl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9TVFJVQ1RVUkUpCisgICAg
Rk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZ
UEVfUFJPVE9UWVBFKQorICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVSQVRPUl9UWVBF
KERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUpCiAgICAgCiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0
dXJlPiBtX3dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlOwpAQCAtNDY0LDcgKzQ3MCw4
IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3QgewogCiAgICAgRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9S
X0xBWllfVFlQRSkKIAotI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRQorI3Vu
ZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUKKyN1bmRlZiBERUZJ
TkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZUEVfU1RSVUNUVVJFCiAjdW5kZWYgREVGSU5FX1NUT1JB
R0VfRk9SX0xBWllfVFlQRQogCiAgICAgV3JpdGVCYXJyaWVyPEdldHRlclNldHRlcj4gbV9zcGVj
aWVzR2V0dGVyU2V0dGVyOwpAQCAtNTc0LDYgKzU4MSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0
IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAgYm9vbCBtX2V2YWxF
bmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV93ZWJBc3NlbWJseUVuYWJsZWQgeyB0cnVlIH07
CisgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFsc2UgfTsKICAgICB1bnNp
Z25lZCBtX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2ggeyAxIH07CiAgICAgU3RyaW5nIG1fZXZh
bERpc2FibGVkRXJyb3JNZXNzYWdlOwogICAgIFN0cmluZyBtX3dlYkFzc2VtYmx5RGlzYWJsZWRF
cnJvck1lc3NhZ2U7CkBAIC0xMTk0LDcgKzEyMDIsNiBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6
IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyB2b2lkIGNsZWFyUmFyZURhdGEoSlNDZWxsKik7CiAKLSAgICBib29sIG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MgeyBmYWxzZSB9OwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVE
CiAgICAgUmV0YWluUHRyPEpTV3JhcHBlck1hcD4gbV93cmFwcGVyTWFwOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNwcAppbmRleCBmN2Q5NzQ0OWMyMjNiMTJhN2RmNTBhN2YzNDVlZWEwYjZjNmEw
MDU0Li42ZWUzMjBmN2UzZDkwOWI2Y2QwZTM3OTM2MWRhMGFhMGU4NzU3YzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51
bWVyYXRvci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3QKIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGluZGV4ZWRMZW5ndGgsIHVpbnQzMl90IG51
bWJlclN0cnVjdHVyZVByb3BlcnRpZXMsIFdyaXRlQmFycmllcjxKU1N0cmluZz4qIHByb3BlcnR5
TmFtZXNCdWZmZXIsIHVuc2lnbmVkIHByb3BlcnR5TmFtZXNTaXplKQogICAgIDogSlNDZWxsKHZt
LCB2bS5wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yU3RydWN0dXJlLmdldCgpKQogICAgICwgbV9wcm9w
ZXJ0eU5hbWVzKHZtLCB0aGlzLCBwcm9wZXJ0eU5hbWVzQnVmZmVyKQotICAgICwgbV9jYWNoZWRT
dHJ1Y3R1cmVJRChzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlkKCkgOiBTdHJ1Y3R1cmVJRCgpKQor
ICAgICwgbV9jYWNoZWRTdHJ1Y3R1cmVJRCh2bSwgdGhpcywgc3RydWN0dXJlLCBXcml0ZUJhcnJp
ZXJTdHJ1Y3R1cmVJRDo6TWF5QmVOdWxsKQogICAgICwgbV9pbmRleGVkTGVuZ3RoKGluZGV4ZWRM
ZW5ndGgpCiAgICAgLCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgobnVtYmVyU3RydWN0dXJl
UHJvcGVydGllcykKICAgICAsIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXgocHJvcGVydHlOYW1l
c1NpemUpCkBAIC04Niw5ICs4Niw3IEBAIHZvaWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2
aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAg
IHZpc2l0b3IubWFya0F1eGlsaWFyeShwcm9wZXJ0eU5hbWVzKTsKICAgICAgICAgdmlzaXRvci5h
cHBlbmQocHJvcGVydHlOYW1lcywgcHJvcGVydHlOYW1lcyArIHRoaXNPYmplY3QtPnNpemVPZlBy
b3BlcnR5TmFtZXMoKSk7CiAgICAgfQotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNhY2hlZFN0cnVj
dHVyZUlEKCkpCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQodGhpc09iamVjdC0+
Y2FjaGVkU3RydWN0dXJlSUQoKS5kZWNvZGUoKSk7CisgICAgdmlzaXRvci5hcHBlbmQodGhpc09i
amVjdC0+bV9jYWNoZWRTdHJ1Y3R1cmVJRCk7CiB9CiAKIERFRklORV9WSVNJVF9DSElMRFJFTihK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAppbmRleCA1MWRjMTNiNzk1
YjBkZjI1MTgzMjRmNWQ0NTJkYjEzMTgyYTRkMjhiLi42ZDZhZTg3YjhiMzhjNDBjZTI1NjNiODM1
NmJiMDRiNDVjM2QzNGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaApAQCAtNzMsMTEgKzczLDkgQEAgY2xh
c3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAg
U3RydWN0dXJlKiBjYWNoZWRTdHJ1Y3R1cmUoVk0mIHZtKSBjb25zdAogICAgIHsKICAgICAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKLSAgICAgICAgaWYgKCFtX2NhY2hlZFN0cnVjdHVyZUlEKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX2NhY2hlZFN0cnVjdHVy
ZUlELmRlY29kZSgpOworICAgICAgICByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1cmVJRC5nZXQoKTsK
ICAgICB9Ci0gICAgU3RydWN0dXJlSUQgY2FjaGVkU3RydWN0dXJlSUQoKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFN0cnVjdHVyZUlEOyB9CisgICAgU3RydWN0dXJlSUQgY2FjaGVkU3RydWN0dXJl
SUQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFN0cnVjdHVyZUlELnZhbHVlKCk7IH0KICAgICB1
aW50MzJfdCBpbmRleGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleGVkTGVuZ3RoOyB9
CiAgICAgdWludDMyX3QgZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleCgpIGNvbnN0IHsgcmV0dXJu
IG1fZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleDsgfQogICAgIHVpbnQzMl90IGVuZEdlbmVyaWNQ
cm9wZXJ0eUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9lbmRHZW5lcmljUHJvcGVydHlJbmRleDsg
fQpAQCAtMTA4LDcgKzEwNiw3IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogICAgIC8vIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBpcyBp
bW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGFsbG93cyBWTSB0byBjYWNoZSB0aGUgZW1w
dHkgb25lLgogICAgIC8vIEFmdGVyIGluc3RhbnRpYXRpbmcgSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLCB3ZSBtdXN0IG5vdCBjaGFuZ2UgYW55IGZpZWxkcy4KICAgICBBdXhpbGlhcnlCYXJyaWVy
PFdyaXRlQmFycmllcjxKU1N0cmluZz4qPiBtX3Byb3BlcnR5TmFtZXM7Ci0gICAgU3RydWN0dXJl
SUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2Nh
Y2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0aDsKICAgICB1aW50
MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CiAgICAgdWludDMyX3QgbV9lbmRHZW5l
cmljUHJvcGVydHlJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVJhcmVEYXRhLmNwcAppbmRleCAyZjYxZGUxZTJjNzFjZTQ5NjZjYzQ3ZDUzZWEw
MjQ5OWZlZTAwMzhiLi43NjkyNTBkNjY1ZjA0OTJmZWUzYzFmYTA3ZWVmM2UzZjljMmI4MmMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0
YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURh
dGEuY3BwCkBAIC02MCwxMSArNjAsMTAgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiAKIFN0cnVjdHVyZVJhcmVEYXRhOjpTdHJ1Y3R1cmVSYXJlRGF0YShW
TSYgdm0sIFN0cnVjdHVyZSogcHJldmlvdXMpCiAgICAgOiBKU0NlbGwodm0sIHZtLnN0cnVjdHVy
ZVJhcmVEYXRhU3RydWN0dXJlLmdldCgpKQorICAgICwgbV9wcmV2aW91cyh2bSwgdGhpcywgcHJl
dmlvdXMsIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpNYXlCZU51bGwpCiAgICAgLCBtX21heE9m
ZnNldChpbnZhbGlkT2Zmc2V0KQogICAgICwgbV90cmFuc2l0aW9uT2Zmc2V0KGludmFsaWRPZmZz
ZXQpCiB7Ci0gICAgaWYgKHByZXZpb3VzKQotICAgICAgICBtX3ByZXZpb3VzLnNldCh2bSwgdGhp
cywgcHJldmlvdXMpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKaW5kZXggY2Yz
MWU5MjkxM2M4YzU2ZDliNzI1YmYwZGI0MTg1NDE4MTFhYWE3Yi4uNjhiZDlhNjE1YjZmZmNlOWZi
MmQwZDdmY2FhYWMwOTg2NDU1OTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCkBAIC0xNDAsNyArMTQwLDYgQEAgY2xhc3MgU3Ry
dWN0dXJlUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIGJvb2wgdHJ5Q2Fj
aGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYsIFN0cnVjdHVyZSosIFN0
cnVjdHVyZUNoYWluKik7CiAKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3ByZXZpb3Vz
OwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBzb21lIHN0b3J5IGZvciBjbGVhcmluZyB0
aGVzZSBwcm9wZXJ0eSBuYW1lcyBjYWNoZXMgaW4gR0MuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjY1OQogICAgIHVpbnRwdHJfdCBtX2NhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIHsgMCB9OwpAQCAtMTU2LDYgKzE1NSw3IEBAIGNs
YXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNwZWNpYWxQcm9wZXJ0eUNhY2hlPiBtX3NwZWNpYWxQcm9wZXJ0eUNhY2hlOwog
ICAgIEJveDxJbmxpbmVXYXRjaHBvaW50U2V0PiBtX3BvbHlQcm90b1dhdGNocG9pbnQ7CiAKKyAg
ICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3ByZXZpb3VzOwogICAgIFByb3BlcnR5T2Zmc2V0
IG1fbWF4T2Zmc2V0OwogICAgIFByb3BlcnR5T2Zmc2V0IG1fdHJhbnNpdGlvbk9mZnNldDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCmluZGV4IDRk
MTE4MjEwMWU1NDdjNmJiZTdmYjEwZDg1YWM0NjZlMTJjMDI2ZWQuLjE2MWQ2MzQwZTRkMjcxMzg0
NDZmMDFjZDlkNTUzZDY5NDczYTc5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJHQ0Fzc2Vy
dGlvbnMuaCIKICNpbmNsdWRlICJIYW5kbGVUeXBlcy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlE
LmgiCiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8d3RmL1Jhd1B0clRyYWl0cy5o
PgogI2luY2x1ZGUgPHd0Zi9SYXdWYWx1ZVRyYWl0cy5oPgpAQCAtMjQ4LDQgKzI0OSwxMDQgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFUsIFRyYWl0c1U+
JiBsaHMsIGNvbnN0IFdyaXRlQmFycmkKICAgICByZXR1cm4gbGhzLmdldCgpID09IHJocy5nZXQo
KTsKIH0KIAorY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgeworcHVibGljOgorICAgIGNv
bnN0ZXhwciBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCgpID0gZGVmYXVsdDsKKworICAgIFdyaXRl
QmFycmllclN0cnVjdHVyZUlEKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJl
KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHNldCh2bSwgb3duZXIsIHZhbHVlKTsKKyAgICB9CisK
KyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRChERkc6OkRlc2lyZWRXcml0ZUJhcnJpZXImLCBT
dHJ1Y3R1cmUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzQ29tcGlsYXRpb25UaHJl
YWQoKSk7CisgICAgICAgIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIodmFsdWUpOworICAgIH0KKwor
ICAgIGVudW0gTWF5QmVOdWxsVGFnIHsgTWF5QmVOdWxsIH07CisgICAgV3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlLCBN
YXlCZU51bGxUYWcpCisgICAgeworICAgICAgICBzZXRNYXlCZU51bGwodm0sIG93bmVyLCB2YWx1
ZSk7CisgICAgfQorCisgICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1
Y3R1cmUqIHZhbHVlKTsKKworICAgIHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwgY29uc3QgSlNDZWxs
KiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSk7CisKKyAgICAvLyBTaG91bGQgb25seSBiZSB1c2Vk
IGJ5IEpTQ2VsbCBkdXJpbmcgZWFybHkgaW5pdGlhbGlzYXRpb24KKyAgICAvLyB3aGVuIHNvbWUg
YmFzaWMgdHlwZXMgYXJlbid0IHlldCBjb21wbGV0ZWx5IGluc3RhbnRpYXRlZAorICAgIHZvaWQg
c2V0RWFybHlWYWx1ZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUp
OworCisgICAgU3RydWN0dXJlKiBnZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgLy8gQ29weSBt
X2NlbGwgdG8gYSBsb2NhbCB0byBhdm9pZCBtdWx0aXBsZS1yZWFkIGlzc3Vlcy4gKFNlZSA8aHR0
cDovL3dlYmtpdC5vcmcvYi8xMTA4NTQ+KQorICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJ
RCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkgeworICAgICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAgICAgICAg
ICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOwor
ICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKKyAgICBTdHJ1Y3R1cmUqIG9wZXJhdG9yKigpIGNvbnN0CisgICAg
eworICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAg
ICAgIEFTU0VSVChzdHJ1Y3R1cmVJRCk7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
c3RydWN0dXJlSUQuZGVjb2RlKCk7CisgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9j
YXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOworICAgICAgICByZXR1cm4gc3RydWN0dXJlOworICAg
IH0KKworICAgIFN0cnVjdHVyZSogb3BlcmF0b3ItPigpIGNvbnN0CisgICAgeworICAgICAgICBT
dHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIEFTU0VSVChz
dHJ1Y3R1cmVJRCk7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3RydWN0dXJlSUQu
ZGVjb2RlKCk7CisgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+
KHN0cnVjdHVyZSkpOworICAgICAgICByZXR1cm4gc3RydWN0dXJlOworICAgIH0KKworICAgIHZv
aWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEIHsg
fTsKKyAgICB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiAhIW1fc3RydWN0dXJlSUQ7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRv
ciEoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICFtX3N0cnVjdHVyZUlEOworICAgIH0K
KworICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihTdHJ1Y3R1cmUqIHZhbHVlKQorICAg
IHsKKyNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisgICAgICAgIFdyaXRlQmFy
cmllckNvdW50ZXJzOjp1c2VzV2l0aG91dEJhcnJpZXJGcm9tQ3BwLmNvdW50KCk7CisjZW5kaWYK
KyAgICAgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVj
dHVyZUlEIHsgfTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3N0
cnVjdHVyZUlEID0gU3RydWN0dXJlSUQ6OmVuY29kZSh2YWx1ZSk7CisgICAgfQorCisgICAgU3Ry
dWN0dXJlKiB1bnZhbGlkYXRlZEdldCgpIGNvbnN0CisgICAgeworICAgICAgICBTdHJ1Y3R1cmVJ
RCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkK
KyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCisgICAgU3RydWN0dXJlSUQgdmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3N0cnVjdHVyZUlEOyB9CisKK3ByaXZhdGU6CisgICAgU3RydWN0dXJlSUQgbV9zdHJ1Y3R1
cmVJRDsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCmluZGV4IGY4ODdlNTMxZjkxY2Fl
OWNjNDJkY2Y2MDRhMzE2MjNlZDk3NzJlZjguLmVlNDA4MDJjMTliZjMxYzk2ZjljMjM3NjJlZDhk
YThjYTEzNzNkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dy
aXRlQmFycmllcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
cml0ZUJhcnJpZXJJbmxpbmVzLmgKQEAgLTYxLDQgKzYxLDI5IEBAIGlubGluZSB2b2lkIFdyaXRl
QmFycmllckJhc2U8VW5rbm93biwgUmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+OjpzZXQoVk0mIHZt
LCBjb25zCiAgICAgdm0ud3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CiB9CiAKK2lubGluZSB2
b2lkIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93
bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZSk7CisgICAgQVNTRVJU
KCFPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7
CisgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpKTsKKyAg
ICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOworfQorCitpbmxpbmUgdm9pZCBXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0TWF5QmVOdWxsKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBv
d25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUpCisgICAgICAgIHZhbGlk
YXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7CisgICAgc2V0RWFybHlW
YWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKK30KKworaW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQ6OnNldEVhcmx5VmFsdWUoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1
Y3R1cmUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgbV9zdHJ1Y3R1cmVJ
RCA9IFN0cnVjdHVyZUlEIHsgfTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3N0cnVj
dHVyZUlEID0gU3RydWN0dXJlSUQ6OmVuY29kZSh2YWx1ZSk7CisgICAgdm0ud3JpdGVCYXJyaWVy
KG93bmVyLCByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0Rv
bGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApp
bmRleCA0NDM0NmRhOTVhMzE4MGExNTFjOWYyODg3YmQ1ODQ3ZjIxODAzYTVmLi43ZDI5YjI5ZGQy
ODY3MDQ0NjY1Njc5N2Y0NzQzNWJjM2VjNDM4OGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC00MDEyLDcgKzQwMTIsNyBAQCB2b2lkIEpTRG9sbGFy
Vk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5zdXJl
QXJyYXlTdG9yYWdlIiwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDEpOwogCi0gICAgbV9v
YmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RT
dGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSkpOworICAg
IG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0
dXJlSUQuc2V0KHZtLCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVj
dFNsb3RTdGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSkp
OwogfQogCiB2b2lkIEpTRG9sbGFyVk06OmFkZEZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rp
b24sIHVuc2lnbmVkIGFyZ3VtZW50cykKQEAgLTQwMzQsNyArNDAzNCw3IEBAIHZvaWQgSlNEb2xs
YXJWTTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQog
ewogICAgIEpTRG9sbGFyVk0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEb2xsYXJWTSo+KGNlbGwp
OwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgdmlz
aXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0
Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUpOworICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmpl
Y3QtPm1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3Ry
dWN0dXJlSUQpOwogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNEb2xsYXJWTSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAppbmRleCAwZjVkOGFkMzU5ZGI2NTI0
YjAwMDRjNTE2Yjg1MDE2M2ZlNzc3MDM2Li4wM2ZlMGE5NjAzZTQwZTNkMjcwNzA3MDQ4MDZlZTgw
MmU3YzU3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmgKQEAg
LTYxLDcgKzYxLDcgQEAgY2xhc3MgSlNEb2xsYXJWTSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0KIAotICAgIFN0cnVjdHVy
ZSogb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0
dXJlKCkgeyByZXR1cm4gbV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNs
b3RTdGF0dXNTdHJ1Y3R1cmUuZ2V0KCk7IH0KKyAgICBTdHJ1Y3R1cmUqIG9iamVjdERvaW5nU2lk
ZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZSgpIHsgcmV0dXJuIG1f
b2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJl
SUQuZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6CiAgICAgSlNEb2xsYXJWTShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBKU0RvbGxhclZNIGZpbmFs
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAgICAgREVDTEFSRV9WSVNJVF9DSElMRFJF
TjsKIAotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0
UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0
cnVjdHVyZUlEIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3Rh
dHVzU3RydWN0dXJlSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446273</attachid>
            <date>2021-12-07 18:20:35 -0800</date>
            <delta_ts>2021-12-08 01:08:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233918-20211207182034.patch</filename>
            <type>text/plain</type>
            <size>75510</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTZlMGQyOTkwZmJmNDdmMWRmMjY0ZTk5YmYwNGE3Yjc0NDAyODc3Li4zZGRkZTZkZTI3ZDIyZjRm
MWIyYjYzZWU4YTE2ODAyMTgyY2VmZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjcgQEAKKzIwMjEtMTItMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkxOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBjbGFzcywgd2hpY2ggaXMgc2ltaWxhciB0byBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiwgYnV0IGludGVybmFsbHksCisgICAgICAgIGl0IGhvbGRz
IFN0cnVjdHVyZUlELCBzbyBzaXplb2YoV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQpIGlzIDQuIFRo
aXMgY2xhc3MgaXMgdXNlZnVsIHRvIHVzZSBTdHJ1Y3R1cmVJRCBmb3IKKyAgICAgICAgbWVtb3J5
IHNhdmluZyB3aGlsZSBrZWVwaW5nIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+J3MgdXNlZnVsIGZl
YXR1cmVzIChhdXRvbWF0aWNhbGx5IGluc2VydHMgd3JpdGUtYmFycmllciB3aGVuCisgICAgICAg
IHNldHRpbmcgZXRjLikuIFRoaXMgYWxzbyBwYXZlcyB0aGUgd2F5IHRvIGludHJvZHVjaW5nIERP
TVN0cnVjdHVyZXMgYXJyYXkgd2l0aCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBpbnN0ZWFkCisg
ICAgICAgIG9mIGNvc3RseSBIYXNoTWFwPENsYXNzSW5mbyosIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+Pi4KKworICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlND
OjpBY2Nlc3NDYXNlOjpBY2Nlc3NDYXNlKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Zm9y
RWFjaERlcGVuZGVudENlbGwgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkdW1w
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6cHJvcGFnYXRlVHJhbnNpdGlvbnMg
Y29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjYW5CZVNoYXJlZCk6CisgICAgICAg
ICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpzdHJ1
Y3R1cmUgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpuZXdTdHJ1Y3R1cmUgY29u
c3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QWNjZXNzQ2FzZTo6QWNjZXNzQ2FzZSk6CisgICAgICAgICogYnl0ZWNvZGUvQ2hlY2tQcml2
YXRlQnJhbmRTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpDaGVja1ByaXZhdGVCcmFuZFN0YXR1
czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgorICAgICAgICAq
IGJ5dGVjb2RlL0RlbGV0ZUJ5U3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6RGVsZXRlQnlTdGF0
dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAgICAgICAg
KiBieXRlY29kZS9HZXRCeVN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkdldEJ5U3RhdHVzOjpj
b21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjayk6CisgICAgICAgICogYnl0
ZWNvZGUvSW5CeVN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkluQnlTdGF0dXM6OmNvbXB1dGVG
b3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAgICAgICAgKiBieXRlY29kZS9J
bmxpbmVBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJB
c0p1bXBJbkFjY2Vzcyk6CisgICAgICAgIChKU0M6OklubGluZUFjY2Vzczo6cmVzZXRTdHViQXNK
dW1wSW5BY2Nlc3MpOgorICAgICAgICAqIGJ5dGVjb2RlL0luc3RhbmNlT2ZTdGF0dXMuY3BwOgor
ICAgICAgICAoSlNDOjpJbnN0YW5jZU9mU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAg
ICAgICAqIGJ5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oOgorICAg
ICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3Ry
dWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2Zp
bGU6OnN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9u
UHJvZmlsZTo6Y2xlYXIpOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlv
blByb2ZpbGU6OnZpc2l0QWdncmVnYXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlOjpjcmVhdGVBbGxvY2F0aW9uU3RydWN0dXJlRnJvbUJhc2UpOgor
ICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9m
U3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9QdXRCeVN0YXR1cy5jcHA6
CisgICAgICAgIChKU0M6OlB1dEJ5U3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAg
ICAqIGJ5dGVjb2RlL1NldFByaXZhdGVCcmFuZFN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OlNl
dFByaXZhdGVCcmFuZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVl
ZGJhY2spOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcDoKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmluaXRHZXRCeUlkU2VsZik6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZVN0dWJJbmZvOjppbml0UHV0QnlJZFJlcGxhY2UpOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdEluQnlJZFNlbGYpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVTdHViSW5mbzo6ZGVyZWYpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
YWJvdXRUb0RpZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjphZGRBY2Nlc3ND
YXNlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OnJlc2V0KToKKyAgICAgICAg
KEpTQzo6U3RydWN0dXJlU3R1YkluZm86OnZpc2l0QWdncmVnYXRlSW1wbCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZVN0dWJJbmZvOjp2aXNpdFdlYWtSZWZlcmVuY2VzKToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlU3R1YkluZm86OnByb3BhZ2F0ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlU3R1YkluZm86OnN1bW1hcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVTdHViSW5mbzo6Y29udGFpbnNQQyBjb25zdCk6CisgICAgICAgICogYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmlubGlu
ZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZv
OjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRCk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNy
ZWF0ZVByb21pc2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21w
aWxlQ3JlYXRlSW50ZXJuYWxGaWVsZE9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAqIGhlYXAvQWJz
dHJhY3RTbG90VmlzaXRvci5oOgorICAgICAgICAqIGhlYXAvQWJzdHJhY3RTbG90VmlzaXRvcklu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kKToKKyAg
ICAgICAgKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvcjo6YXBwZW5kSGlkZGVuKToKKyAgICAgICAg
KiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmFwcGVuZCk6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjphcHBlbmRIaWRkZW4pOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXROb25OdWxsRGVjb2RlU3Ry
dWN0dXJlSUQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3RydWN0
dXJlKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgICogaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVHZXRCeUlk
SW5saW5lQWNjZXNzKToKKyAgICAgICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJh
dGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJh
dG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAqIHJ1bnRpbWUv
RnVuY3Rpb25FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxl
Ojp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFi
bGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3BwOgorICAgICAgICAo
SlNDOjpGdW5jdGlvblJhcmVEYXRhOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogcnVu
dGltZS9GdW5jdGlvblJhcmVEYXRhLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbCk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBy
dW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
dWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6U3Ry
dWN0dXJlUmFyZURhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoK
KyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpXcml0ZUJh
cnJpZXJTdHJ1Y3R1cmVJRDo6V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQpOgorICAgICAgICAoSlND
OjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6Z2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yKiBjb25zdCk6CisgICAgICAgIChKU0M6Oldy
aXRlQmFycmllclN0cnVjdHVyZUlEOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyU3RydWN0dXJlSUQ6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJy
aWVyU3RydWN0dXJlSUQ6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoSlNDOjpXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6b3BlcmF0b3IhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V3Jp
dGVCYXJyaWVyU3RydWN0dXJlSUQ6OnNldFdpdGhvdXRXcml0ZUJhcnJpZXIpOgorICAgICAgICAo
SlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6dW52YWxpZGF0ZWRHZXQgY29uc3QpOgorICAg
ICAgICAoSlNDOjpXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6dmFsdWUgY29uc3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpXcml0ZUJh
cnJpZXJTdHJ1Y3R1cmVJRDo6c2V0KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyU3RydWN0
dXJlSUQ6OnNldE1heUJlTnVsbCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllclN0cnVjdHVy
ZUlEOjpzZXRFYXJseVZhbHVlKToKKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpK
U0RvbGxhclZNOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJW
TS5oOgorCiAyMDIxLTEyLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NjUwMiBhbmQgcjI4NjU4MC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCBh
YWY0Zjc2ZWE0YjliODkxNTc1YmVhYmU1MTA5ZjE0ZjkzZWFkNGM2Li45YWVmY2M5MjdhMDA2MDc0
NTMyMDA0MjE1NjEzNzU5YmY4MTNiYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC02Myw3ICs2Myw3IEBAIEFjY2Vzc0Nhc2U6OkFjY2Vz
c0Nhc2UoVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIENhY2hlYWJsZUlk
ZW50aWZpCiAgICAgLCBtX3BvbHlQcm90b0FjY2Vzc0NoYWluKFdURk1vdmUocHJvdG90eXBlQWNj
ZXNzQ2hhaW4pKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7Ci0gICAgbV9zdHJ1
Y3R1cmUuc2V0TWF5QmVOdWxsKHZtLCBvd25lciwgc3RydWN0dXJlKTsKKyAgICBtX3N0cnVjdHVy
ZUlELnNldE1heUJlTnVsbCh2bSwgb3duZXIsIHN0cnVjdHVyZSk7CiAgICAgbV9jb25kaXRpb25T
ZXQgPSBjb25kaXRpb25TZXQ7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9jb25kaXRpb25TZXQuaXNW
YWxpZCgpKTsKIH0KQEAgLTUzOSw4ICs1MzksOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9y
Pgogdm9pZCBBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50Q2VsbChWTSYsIGNvbnN0IEZ1bmN0
b3ImIGZ1bmN0b3IpIGNvbnN0CiB7CiAgICAgbV9jb25kaXRpb25TZXQuZm9yRWFjaERlcGVuZGVu
dENlbGwoZnVuY3Rvcik7Ci0gICAgaWYgKG1fc3RydWN0dXJlKQotICAgICAgICBmdW5jdG9yKG1f
c3RydWN0dXJlLmdldCgpKTsKKyAgICBpZiAobV9zdHJ1Y3R1cmVJRCkKKyAgICAgICAgZnVuY3Rv
cihtX3N0cnVjdHVyZUlELmdldCgpKTsKICAgICBpZiAobV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikg
ewogICAgICAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogbV9wb2x5UHJvdG9BY2Nl
c3NDaGFpbi0+Y2hhaW4oKSkKICAgICAgICAgICAgIGZ1bmN0b3Ioc3RydWN0dXJlSUQuZGVjb2Rl
KCkpOwpAQCAtODc0LDggKzg3NCw4IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdAogICAgICAgICBpZiAobV90eXBlID09IFRyYW5zaXRpb24gfHwgbV90eXBl
ID09IERlbGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5kKQogICAgICAgICAgICAgb3V0
LnByaW50KCJcbiIsIGluZGVudCwgImZyb20gc3RydWN0dXJlID0gIiwgcG9pbnRlckR1bXAoc3Ry
dWN0dXJlKCkpLAogICAgICAgICAgICAgICAgICJcbiIsIGluZGVudCwgInRvIHN0cnVjdHVyZSA9
ICIsIHBvaW50ZXJEdW1wKG5ld1N0cnVjdHVyZSgpKSk7Ci0gICAgICAgIGVsc2UgaWYgKG1fc3Ry
dWN0dXJlKQotICAgICAgICAgICAgb3V0LnByaW50KCJcbiIsIGluZGVudCwgInN0cnVjdHVyZSA9
ICIsIHBvaW50ZXJEdW1wKG1fc3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGVsc2UgaWYgKG1f
c3RydWN0dXJlSUQpCisgICAgICAgICAgICBvdXQucHJpbnQoIlxuIiwgaW5kZW50LCAic3RydWN0
dXJlID0gIiwgcG9pbnRlckR1bXAobV9zdHJ1Y3R1cmVJRC5nZXQoKSkpOwogICAgIH0KIAogICAg
IGlmICghbV9jb25kaXRpb25TZXQuaXNFbXB0eSgpKQpAQCAtOTA0LDggKzkwNCw4IEBAIGJvb2wg
QWNjZXNzQ2FzZTo6dmlzaXRXZWFrKFZNJiB2bSkgY29uc3QKIHRlbXBsYXRlPHR5cGVuYW1lIFZp
c2l0b3I+CiB2b2lkIEFjY2Vzc0Nhc2U6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKFZpc2l0b3ImIHZp
c2l0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RydWN0dXJlKQotICAgICAgICBtX3N0cnVjdHVy
ZS0+bWFya0lmQ2hlYXAodmlzaXRvcik7CisgICAgaWYgKG1fc3RydWN0dXJlSUQpCisgICAgICAg
IG1fc3RydWN0dXJlSUQtPm1hcmtJZkNoZWFwKHZpc2l0b3IpOwogCiAgICAgaWYgKG1fcG9seVBy
b3RvQWNjZXNzQ2hhaW4pIHsKICAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6
IG1fcG9seVByb3RvQWNjZXNzQ2hhaW4tPmNoYWluKCkpCkBAIC05MTUsOCArOTE1LDggQEAgdm9p
ZCBBY2Nlc3NDYXNlOjpwcm9wYWdhdGVUcmFuc2l0aW9ucyhWaXNpdG9yJiB2aXNpdG9yKSBjb25z
dAogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBUcmFuc2l0aW9uOgogICAgIGNhc2Ug
RGVsZXRlOgotICAgICAgICBpZiAodmlzaXRvci5pc01hcmtlZChtX3N0cnVjdHVyZS0+cHJldmlv
dXNJRCgpKSkKLSAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV9zdHJ1Y3R1
cmUuZ2V0KCkpOworICAgICAgICBpZiAodmlzaXRvci5pc01hcmtlZChtX3N0cnVjdHVyZUlELT5w
cmV2aW91c0lEKCkpKQorICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChtX3N0
cnVjdHVyZUlELmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
YnJlYWs7CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBib29sIEFjY2Vzc0Nhc2U6OmNhbkJlU2hhcmVk
KGNvbnN0IEFjY2Vzc0Nhc2UmIGxocywgY29uc3QgQWNjZXNzQ2FzZSYgcmhzKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKGxocy5tX3ZpYVByb3h5ICE9IHJocy5tX3ZpYVByb3h5KQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGxocy5tX3N0cnVjdHVyZS5nZXQoKSAhPSBy
aHMubV9zdHJ1Y3R1cmUuZ2V0KCkpCisgICAgaWYgKGxocy5tX3N0cnVjdHVyZUlELmdldCgpICE9
IHJocy5tX3N0cnVjdHVyZUlELmdldCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KGxocy5tX2lkZW50aWZpZXIgIT0gcmhzLm1faWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nh
c2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmgKaW5kZXgg
ZmUxY2ZmYmM2NTk4NWU4YzE0NzlhMmNiNTM0YTJmMzg4OGY3NTNhNi4uMWMxY2M3MTY4YWNlNGE0
MzY3ZmM4ZGE0MjJmYWQyZGVkNDRkNTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQWNjZXNzQ2FzZS5oCkBAIC0xODQsMTUgKzE4NCwxNSBAQCBjbGFzcyBBY2Nlc3NDYXNl
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV90eXBlID09IFRyYW5z
aXRpb24gfHwgbV90eXBlID09IERlbGV0ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5kKQot
ICAgICAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJlLT5wcmV2aW91c0lEKCk7Ci0gICAgICAgIHJl
dHVybiBtX3N0cnVjdHVyZS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0cnVjdHVyZUlE
LT5wcmV2aW91c0lEKCk7CisgICAgICAgIHJldHVybiBtX3N0cnVjdHVyZUlELmdldCgpOwogICAg
IH0KICAgICBib29sIGd1YXJkZWRCeVN0cnVjdHVyZUNoZWNrKGNvbnN0IFN0cnVjdHVyZVN0dWJJ
bmZvJikgY29uc3Q7CiAKICAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV90eXBlID09IFRyYW5zaXRpb24gfHwgbV90eXBlID09IERlbGV0
ZSB8fCBtX3R5cGUgPT0gU2V0UHJpdmF0ZUJyYW5kKTsKLSAgICAgICAgcmV0dXJuIG1fc3RydWN0
dXJlLmdldCgpOworICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmVJRC5nZXQoKTsKICAgICB9CiAK
ICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQoKSBjb25zdCB7IHJl
dHVybiBtX2NvbmRpdGlvblNldDsgfQpAQCAtMjcyLDcgKzI3Miw3IEBAIGNsYXNzIEFjY2Vzc0Nh
c2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWNjZXNzQ2FzZT4gewogCiAgICAgdW5z
aWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gY29tcHV0ZUhhc2gobV9j
b25kaXRpb25TZXQuaGFzaCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV90eXBlKSwgbV92aWFQ
cm94eSwgbV9zdHJ1Y3R1cmUudW52YWxpZGF0ZWRHZXQoKSwgbV9vZmZzZXQpOworICAgICAgICBy
ZXR1cm4gY29tcHV0ZUhhc2gobV9jb25kaXRpb25TZXQuaGFzaCgpLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4obV90eXBlKSwgbV92aWFQcm94eSwgbV9zdHJ1Y3R1cmVJRC51bnZhbGlkYXRlZEdldCgp
LCBtX29mZnNldCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgY2FuQmVTaGFyZWQoY29uc3Qg
QWNjZXNzQ2FzZSYsIGNvbnN0IEFjY2Vzc0Nhc2UmKTsKQEAgLTI4NCw3ICsyODQsNyBAQCBjbGFz
cyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsK
ICAgICAgICAgLCBtX3N0YXRlKFdURk1vdmUob3RoZXIubV9zdGF0ZSkpCiAgICAgICAgICwgbV92
aWFQcm94eShXVEZNb3ZlKG90aGVyLm1fdmlhUHJveHkpKQogICAgICAgICAsIG1fb2Zmc2V0KFdU
Rk1vdmUob3RoZXIubV9vZmZzZXQpKQotICAgICAgICAsIG1fc3RydWN0dXJlKFdURk1vdmUob3Ro
ZXIubV9zdHJ1Y3R1cmUpKQorICAgICAgICAsIG1fc3RydWN0dXJlSUQoV1RGTW92ZShvdGhlci5t
X3N0cnVjdHVyZUlEKSkKICAgICAgICAgLCBtX2NvbmRpdGlvblNldChXVEZNb3ZlKG90aGVyLm1f
Y29uZGl0aW9uU2V0KSkKICAgICAgICAgLCBtX3BvbHlQcm90b0FjY2Vzc0NoYWluKFdURk1vdmUo
b3RoZXIubV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikpCiAgICAgICAgICwgbV9pZGVudGlmaWVyKFdU
Rk1vdmUob3RoZXIubV9pZGVudGlmaWVyKSkKQEAgLTI5NSw3ICsyOTUsNyBAQCBjbGFzcyBBY2Nl
c3NDYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICAg
ICAgLCBtX3N0YXRlKG90aGVyLm1fc3RhdGUpCiAgICAgICAgICwgbV92aWFQcm94eShvdGhlci5t
X3ZpYVByb3h5KQogICAgICAgICAsIG1fb2Zmc2V0KG90aGVyLm1fb2Zmc2V0KQotICAgICAgICAs
IG1fc3RydWN0dXJlKG90aGVyLm1fc3RydWN0dXJlKQorICAgICAgICAsIG1fc3RydWN0dXJlSUQo
b3RoZXIubV9zdHJ1Y3R1cmVJRCkKICAgICAgICAgLCBtX2NvbmRpdGlvblNldChvdGhlci5tX2Nv
bmRpdGlvblNldCkKICAgICAgICAgLCBtX3BvbHlQcm90b0FjY2Vzc0NoYWluKG90aGVyLm1fcG9s
eVByb3RvQWNjZXNzQ2hhaW4pCiAgICAgICAgICwgbV9pZGVudGlmaWVyKG90aGVyLm1faWRlbnRp
ZmllcikKQEAgLTM0OCw3ICszNDgsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEFjY2Vzc0Nhc2U+IHsKICAgICAvLyBVc3VhbGx5IHRoaXMgaXMgdGhl
IHN0cnVjdHVyZSB0aGF0IHdlIGV4cGVjdCB0aGUgYmFzZSBvYmplY3QgdG8gaGF2ZS4gQnV0LCB0
aGlzIGlzIHRoZSAqbmV3KgogICAgIC8vIHN0cnVjdHVyZSBmb3IgYSB0cmFuc2l0aW9uIGFuZCB3
ZSByZWx5IG9uIHRoZSBmYWN0IHRoYXQgaXQgaGFzIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGUg
b2xkCiAgICAgLy8gc3RydWN0dXJlLiBGb3IgcHJveGllcywgdGhpcyBpcyB0aGUgc3RydWN0dXJl
IG9mIHRoZSBvYmplY3QgYmVoaW5kIHRoZSBwcm94eS4KLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX3N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3N0cnVjdHVy
ZUlEOwogCiAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgbV9jb25kaXRpb25TZXQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DaGVja1ByaXZhdGVC
cmFuZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2hlY2tQcml2
YXRlQnJhbmRTdGF0dXMuY3BwCmluZGV4IGZmMDQ3MmNkMTAwNjc0YTRlYmJiNGUyMTJhMzg3OTkw
NThlMjNiN2MuLmFiMDdiMmNhOTMwMmE2ODRkZjlhMmJlY2Q0ZmZmNmU1MmFhZmFlZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DaGVja1ByaXZhdGVCcmFuZFN0
YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NoZWNrUHJpdmF0
ZUJyYW5kU3RhdHVzLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIENoZWNrUHJpdmF0ZUJyYW5kU3Rh
dHVzIENoZWNrUHJpdmF0ZUJyYW5kU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhp
dFNpCiAgICAgICAgIHJldHVybiBDaGVja1ByaXZhdGVCcmFuZFN0YXR1cyhOb0luZm9ybWF0aW9u
KTsKIAogICAgIGNhc2UgQ2FjaGVUeXBlOjpTdHViOiB7Ci0gICAgICAgIFBvbHltb3JwaGljQWNj
ZXNzKiBsaXN0ID0gc3R1YkluZm8tPnUuc3R1YjsKKyAgICAgICAgUG9seW1vcnBoaWNBY2Nlc3Mq
IGxpc3QgPSBzdHViSW5mby0+bV9zdHViOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgbGlzdElu
ZGV4ID0gMDsgbGlzdEluZGV4IDwgbGlzdC0+c2l6ZSgpOyArK2xpc3RJbmRleCkgewogICAgICAg
ICAgICAgY29uc3QgQWNjZXNzQ2FzZSYgYWNjZXNzID0gbGlzdC0+YXQobGlzdEluZGV4KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EZWxldGVCeVN0YXR1cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGVsZXRlQnlTdGF0dXMuY3BwCmlu
ZGV4IGUxYjg0M2NiNTk1ZDhmYzYzY2EzNDcxZWQ0OTc3NWJlMzAzYmMxMzQuLmY4NTE3OTUxMGNm
ZWFiYjdjOGU1ZTgwYTAzYTBiZWI1NTBhM2I3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9EZWxldGVCeVN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0RlbGV0ZUJ5U3RhdHVzLmNwcApAQCAtOTksNyArOTksNyBAQCBEZWxl
dGVCeVN0YXR1cyBEZWxldGVCeVN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRT
aXRlRmVlZGJhY2soCiAgICAgICAgIHJldHVybiBEZWxldGVCeVN0YXR1cyhOb0luZm9ybWF0aW9u
KTsKIAogICAgIGNhc2UgQ2FjaGVUeXBlOjpTdHViOiB7Ci0gICAgICAgIFBvbHltb3JwaGljQWNj
ZXNzKiBsaXN0ID0gc3R1YkluZm8tPnUuc3R1YjsKKyAgICAgICAgUG9seW1vcnBoaWNBY2Nlc3Mq
IGxpc3QgPSBzdHViSW5mby0+bV9zdHViOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgbGlzdElu
ZGV4ID0gMDsgbGlzdEluZGV4IDwgbGlzdC0+c2l6ZSgpOyArK2xpc3RJbmRleCkgewogICAgICAg
ICAgICAgY29uc3QgQWNjZXNzQ2FzZSYgYWNjZXNzID0gbGlzdC0+YXQobGlzdEluZGV4KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeVN0YXR1cy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlTdGF0dXMuY3BwCmluZGV4IGY3
ZGY0MDU2NjNjZTMwZjlmYWEwYWUwM2RiODk5MmQxYzljZTRhYzUuLjJiOGNiYTJiNTc4OGQ5MjIz
ZGQ0ODZjNTc5MGZiYzZlMGNkZmEzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeVN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5U3RhdHVzLmNwcApAQCAtMjM2LDcgKzIzNiw3IEBAIEdldEJ5U3RhdHVzIEdl
dEJ5U3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAg
ICB9CiAgICAgICAgIAogICAgIGNhc2UgQ2FjaGVUeXBlOjpTdHViOiB7Ci0gICAgICAgIFBvbHlt
b3JwaGljQWNjZXNzKiBsaXN0ID0gc3R1YkluZm8tPnUuc3R1YjsKKyAgICAgICAgUG9seW1vcnBo
aWNBY2Nlc3MqIGxpc3QgPSBzdHViSW5mby0+bV9zdHViOwogICAgICAgICBpZiAobGlzdC0+c2l6
ZSgpID09IDEpIHsKICAgICAgICAgICAgIGNvbnN0IEFjY2Vzc0Nhc2UmIGFjY2VzcyA9IGxpc3Qt
PmF0KDApOwogICAgICAgICAgICAgc3dpdGNoIChhY2Nlc3MudHlwZSgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5CeVN0YXR1cy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5CeVN0YXR1cy5jcHAKaW5kZXggMTVkNzY0NDIzZDVh
NmFmNTlmMDMyNjczOGQzOTNkOWJlYmY0ZDRjYy4uYjA1ODA2YjRjZTNmNzBkODY1YmMyODM5YWZh
MTIyMmRlZmNkNWQxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0luQnlTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbkJ5
U3RhdHVzLmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIEluQnlTdGF0dXMgSW5CeVN0YXR1czo6Y29t
cHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soY29uc3QgQ29uY3VycmVuCiAg
ICAgfQogCiAgICAgY2FzZSBDYWNoZVR5cGU6OlN0dWI6IHsKLSAgICAgICAgUG9seW1vcnBoaWNB
Y2Nlc3MqIGxpc3QgPSBzdHViSW5mby0+dS5zdHViOworICAgICAgICBQb2x5bW9ycGhpY0FjY2Vz
cyogbGlzdCA9IHN0dWJJbmZvLT5tX3N0dWI7CiAgICAgICAgIGZvciAodW5zaWduZWQgbGlzdElu
ZGV4ID0gMDsgbGlzdEluZGV4IDwgbGlzdC0+c2l6ZSgpOyArK2xpc3RJbmRleCkgewogICAgICAg
ICAgICAgY29uc3QgQWNjZXNzQ2FzZSYgYWNjZXNzID0gbGlzdC0+YXQobGlzdEluZGV4KTsKICAg
ICAgICAgICAgIGlmIChhY2Nlc3MudmlhUHJveHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKaW5kZXggMjFlYjRjMjIxZDM2N2E4NGYwMjk5
MTgwZGE3YzhlOGE5MDNiNTcyYy4uZmI1ZWVhMmRjYmFmMmM0MGEwN2ZhY2I3ZDU3OTMzODhjNWMy
NzZhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFj
Y2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vz
cy5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFz
SnVtcEluQWNjZXNzKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSQogICAgICAg
ICB9CiAKICAgICAgICAgc3R1YkluZm8ubV9jb2RlUHRyID0gdGFyZ2V0OwotICAgICAgICBzdHVi
SW5mby5tX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmVJRCgpOyAvLyBDbGVh
ciBvdXQgdGhlIGlubGluZSBhY2Nlc3MgY29kZS4KKyAgICAgICAgc3R1YkluZm8ubV9pbmxpbmVB
Y2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNj
ZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2
b2lkIElubGluZUFjY2Vzczo6cmVzZXRTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIFN0cnVjdHVyZVN0dWJJbgogewogICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygp
ICYmIGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKSB7CiAgICAg
ICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsK
LSAgICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlID0gU3RydWN0dXJl
SUQoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCisgICAgICAgIHN0dWJJ
bmZvLm1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELmNsZWFyKCk7IC8vIENsZWFyIG91dCB0
aGUgaW5saW5lIGFjY2VzcyBjb2RlLgogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1cy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1cy5jcHAKaW5k
ZXggNzNjNzgxOWI1MTY3NjY5Mzc4MzEzMmQ5OThmZDhlNjQxZjVjZjEyMi4uNWU2NDYxZjJhYmQw
ZWRlMDgxZmI3NGI5MzBjN2FmM2MxNmRhZmUzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9mU3RhdHVzLmNwcApAQCAtODMsNyArODMsNyBAQCBJ
bnN0YW5jZU9mU3RhdHVzIEluc3RhbmNlT2ZTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyhjb25z
dCBDb25jdXJyZW50SlNMb2NrZXImLAogICAgIGlmIChzdHViSW5mby0+Y2FjaGVUeXBlKCkgIT0g
Q2FjaGVUeXBlOjpTdHViKQogICAgICAgICByZXR1cm4gVGFrZXNTbG93UGF0aDsgLy8gVGhpcyBp
cyBjb25zZXJ2YXRpdmUuIEl0IGNvdWxkIGJlIHRoYXQgd2UgaGF2ZSBubyBpbmZvcm1hdGlvbi4K
ICAgICAKLSAgICBQb2x5bW9ycGhpY0FjY2VzcyogbGlzdCA9IHN0dWJJbmZvLT51LnN0dWI7Cisg
ICAgUG9seW1vcnBoaWNBY2Nlc3MqIGxpc3QgPSBzdHViSW5mby0+bV9zdHViOwogICAgIEluc3Rh
bmNlT2ZTdGF0dXMgcmVzdWx0OwogICAgIGZvciAodW5zaWduZWQgbGlzdEluZGV4ID0gMDsgbGlz
dEluZGV4IDwgbGlzdC0+c2l6ZSgpOyArK2xpc3RJbmRleCkgewogICAgICAgICBjb25zdCBBY2Nl
c3NDYXNlJiBhY2Nlc3MgPSBsaXN0LT5hdChsaXN0SW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmls
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludGVybmFsRnVuY3Rpb25BbGxv
Y2F0aW9uUHJvZmlsZS5oCmluZGV4IGRmOGYzNzFhYmQxZDE5NjA3NmQ3NWI0YmRjMTI1ZWQzOWYz
ODI2MGQuLmIxNzdmZWZkMDYzNmUyMmViNTBmZmZiNjI5ZWNlNDExODE0ZTJkZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRlcm5hbEZ1bmN0aW9uQWxsb2Nh
dGlvblByb2ZpbGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW50ZXJu
YWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgKQEAgLTMzLDIxICszMywyMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogY2xhc3MgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZlN0cnVjdHVyZSgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUs
IG1fc3RydWN0dXJlKTsgfQorICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mU3Ry
dWN0dXJlSUQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSW50ZXJuYWxGdW5jdGlvbkFsbG9j
YXRpb25Qcm9maWxlLCBtX3N0cnVjdHVyZUlEKTsgfQogCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUoKSB7IHJldHVybiBtX3N0cnVjdHVyZS5nZXQoKTsgfQorICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlKCkgeyByZXR1cm4gbV9zdHJ1Y3R1cmVJRC5nZXQoKTsgfQogICAgIFN0cnVjdHVyZSogY3Jl
YXRlQWxsb2NhdGlvblN0cnVjdHVyZUZyb21CYXNlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqIG93bmVyLCBKU09iamVjdCogcHJvdG90eXBlLCBTdHJ1Y3R1cmUqIGJhc2UpOwogCi0gICAg
dm9pZCBjbGVhcigpIHsgbV9zdHJ1Y3R1cmUuY2xlYXIoKTsgfQotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFZpc2l0b3I+IHZvaWQgdmlzaXRBZ2dyZWdhdGUoVmlzaXRvciYgdmlzaXRvcikgeyB2aXNp
dG9yLmFwcGVuZChtX3N0cnVjdHVyZSk7IH0KKyAgICB2b2lkIGNsZWFyKCkgeyBtX3N0cnVjdHVy
ZUlELmNsZWFyKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPiB2b2lkIHZpc2l0
QWdncmVnYXRlKFZpc2l0b3ImIHZpc2l0b3IpIHsgdmlzaXRvci5hcHBlbmQobV9zdHJ1Y3R1cmVJ
RCk7IH0KIAogcHJpdmF0ZToKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVy
ZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3N0cnVjdHVyZUlEOwogfTsKIAogaW5s
aW5lIFN0cnVjdHVyZSogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpjcmVhdGVB
bGxvY2F0aW9uU3RydWN0dXJlRnJvbUJhc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogYmFzZUds
b2JhbE9iamVjdCwgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIHByb3RvdHlwZSwgU3RydWN0dXJl
KiBiYXNlU3RydWN0dXJlKQogewotICAgIEFTU0VSVCghbV9zdHJ1Y3R1cmUgfHwgbV9zdHJ1Y3R1
cmUuZ2V0KCktPmNsYXNzSW5mbygpICE9IGJhc2VTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpIHx8IG1f
c3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSAhPSBiYXNlU3RydWN0dXJlLT5nbG9iYWxPYmplY3Qo
KSk7CisgICAgQVNTRVJUKCFtX3N0cnVjdHVyZUlEIHx8IG1fc3RydWN0dXJlSUQuZ2V0KCktPmNs
YXNzSW5mbygpICE9IGJhc2VTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpIHx8IG1fc3RydWN0dXJlSUQt
Pmdsb2JhbE9iamVjdCgpICE9IGJhc2VTdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKICAgICBB
U1NFUlQoYmFzZVN0cnVjdHVyZS0+aGFzTW9ub1Byb3RvKCkpOwogCiAgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmU7CkBAIC02MSw4ICs2MSw4IEBAIGlubGluZSBTdHJ1Y3R1cmUqIEludGVybmFsRnVu
Y3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6Y3JlYXRlQWxsb2NhdGlvblN0cnVjdHVyZUZyCiAgICAg
Ly8gRW5zdXJlIHRoYXQgaWYgYW5vdGhlciB0aHJlYWQgc2VlcyB0aGUgc3RydWN0dXJlLCBpdCB3
aWxsIHNlZSBpdCBwcm9wZXJseSBjcmVhdGVkLgogICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7
CiAKLSAgICBtX3N0cnVjdHVyZS5zZXQodm0sIG93bmVyLCBzdHJ1Y3R1cmUpOwotICAgIHJldHVy
biBtX3N0cnVjdHVyZS5nZXQoKTsKKyAgICBtX3N0cnVjdHVyZUlELnNldCh2bSwgb3duZXIsIHN0
cnVjdHVyZSk7CisgICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlTdGF0dXMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5U3RhdHVzLmNwcAppbmRl
eCA1YzYzOTk3NjAxODFmOWFmYTY2ZDU1ZWQwZWJlNDhjYzE0YjExOTJjLi42ZjU3YzBjNWYwMDZh
MDMyYzc3OWI3ZTkwNmNmY2IyODQ4NGYyMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHV0QnlTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QdXRCeVN0YXR1cy5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCBQdXRCeVN0YXR1
cyBQdXRCeVN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tl
ciYgbG9ja2VyLCBDbwogICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBDYWNoZVR5cGU6OlN0dWI6
IHsKLSAgICAgICAgUG9seW1vcnBoaWNBY2Nlc3MqIGxpc3QgPSBzdHViSW5mby0+dS5zdHViOwor
ICAgICAgICBQb2x5bW9ycGhpY0FjY2VzcyogbGlzdCA9IHN0dWJJbmZvLT5tX3N0dWI7CiAgICAg
ICAgIAogICAgICAgICBQdXRCeVN0YXR1cyByZXN1bHQ7CiAgICAgICAgIHJlc3VsdC5tX3N0YXRl
ID0gU2ltcGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Nl
dFByaXZhdGVCcmFuZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U2V0UHJpdmF0ZUJyYW5kU3RhdHVzLmNwcAppbmRleCA3YjVkNDgxMmZlYzMzYmUzZTUzZjM4ZmMy
YjgwZDI2NGY4N2UwZGU3Li4xZWFkNDBkMjQyNjQyMzUzMzEzMjhjZWQ0MThhM2Y3MjE3MDg2Y2I1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2V0UHJpdmF0ZUJy
YW5kU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2V0UHJp
dmF0ZUJyYW5kU3RhdHVzLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIFNldFByaXZhdGVCcmFuZFN0
YXR1cyBTZXRQcml2YXRlQnJhbmRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0
U2l0ZUZlCiAgICAgICAgIHJldHVybiBTZXRQcml2YXRlQnJhbmRTdGF0dXMoTm9JbmZvcm1hdGlv
bik7CiAKICAgICBjYXNlIENhY2hlVHlwZTo6U3R1YjogewotICAgICAgICBQb2x5bW9ycGhpY0Fj
Y2VzcyogbGlzdCA9IHN0dWJJbmZvLT51LnN0dWI7CisgICAgICAgIFBvbHltb3JwaGljQWNjZXNz
KiBsaXN0ID0gc3R1YkluZm8tPm1fc3R1YjsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGxpc3RJ
bmRleCA9IDA7IGxpc3RJbmRleCA8IGxpc3QtPnNpemUoKTsgKytsaXN0SW5kZXgpIHsKICAgICAg
ICAgICAgIGNvbnN0IEFjY2Vzc0Nhc2UmIGFjY2VzcyA9IGxpc3QtPmF0KGxpc3RJbmRleCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZv
LmNwcAppbmRleCA3MmYwMjkxMTFmNjU3YTFhMTRlNTE4MGFiOTAwNGE5MGJjNjZkZGQwLi5mNDEy
NmYzNzcwZjE4ZTEwY2MzMjFiMGNiNGE0MWVjMjMzMjAwN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKQEAgLTQ5LDgg
KzQ5LDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdEdldEJ5SWRTZWxmKGNvbnN0IENv
bmN1cnJlbnRKU0xvY2tlckJhc2UmIGxvY2tlciwgQ28KICAgICBBU1NFUlQoaGFzQ29uc3RhbnRJ
ZGVudGlmaWVyKTsKICAgICBzZXRDYWNoZVR5cGUobG9ja2VyLCBDYWNoZVR5cGU6OkdldEJ5SWRT
ZWxmKTsKICAgICBtX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOwotICAgIG1faW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZSA9IGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUtPmlkKCk7Ci0gICAgY29k
ZUJsb2NrLT52bSgpLndyaXRlQmFycmllcihjb2RlQmxvY2spOworICAgIG1faW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZUlELnNldChjb2RlQmxvY2stPnZtKCksIGNvZGVCbG9jaywgaW5saW5lQWNj
ZXNzQmFzZVN0cnVjdHVyZSk7CiAgICAgYnlJZFNlbGZPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAg
LTcxLDggKzcwLDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6aW5pdFB1dEJ5SWRSZXBsYWNl
KGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmIGxvY2tlciwKICAgICBBU1NFUlQobV9jYWNo
ZVR5cGUgPT0gQ2FjaGVUeXBlOjpVbnNldCk7CiAgICAgc2V0Q2FjaGVUeXBlKGxvY2tlciwgQ2Fj
aGVUeXBlOjpQdXRCeUlkUmVwbGFjZSk7CiAgICAgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsK
LSAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBpbmxpbmVBY2Nlc3NCYXNlU3RydWN0
dXJlLT5pZCgpOwotICAgIGNvZGVCbG9jay0+dm0oKS53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsK
KyAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5zZXQoY29kZUJsb2NrLT52bSgpLCBj
b2RlQmxvY2ssIGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOwogICAgIGJ5SWRTZWxmT2Zmc2V0
ID0gb2Zmc2V0OwogfQogCkBAIC04MSw4ICs3OSw3IEBAIHZvaWQgU3RydWN0dXJlU3R1YkluZm86
OmluaXRJbkJ5SWRTZWxmKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmIGxvY2tlciwgQ29k
CiAgICAgQVNTRVJUKG1fY2FjaGVUeXBlID09IENhY2hlVHlwZTo6VW5zZXQpOwogICAgIHNldENh
Y2hlVHlwZShsb2NrZXIsIENhY2hlVHlwZTo6SW5CeUlkU2VsZik7CiAgICAgbV9pZGVudGlmaWVy
ID0gaWRlbnRpZmllcjsKLSAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUgPSBpbmxpbmVB
Y2Nlc3NCYXNlU3RydWN0dXJlLT5pZCgpOwotICAgIGNvZGVCbG9jay0+dm0oKS53cml0ZUJhcnJp
ZXIoY29kZUJsb2NrKTsKKyAgICBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5zZXQoY29k
ZUJsb2NrLT52bSgpLCBjb2RlQmxvY2ssIGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpOwogICAg
IGJ5SWRTZWxmT2Zmc2V0ID0gb2Zmc2V0OwogfQogCkBAIC05MCw3ICs4Nyw3IEBAIHZvaWQgU3Ry
dWN0dXJlU3R1YkluZm86OmRlcmVmKCkKIHsKICAgICBzd2l0Y2ggKG1fY2FjaGVUeXBlKSB7CiAg
ICAgY2FzZSBDYWNoZVR5cGU6OlN0dWI6Ci0gICAgICAgIGRlbGV0ZSB1LnN0dWI7CisgICAgICAg
IGRlbGV0ZSBtX3N0dWI7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENhY2hlVHlwZTo6VW5z
ZXQ6CiAgICAgY2FzZSBDYWNoZVR5cGU6OkdldEJ5SWRTZWxmOgpAQCAtMTA4LDcgKzEwNSw3IEBA
IHZvaWQgU3RydWN0dXJlU3R1YkluZm86OmFib3V0VG9EaWUoKQogewogICAgIHN3aXRjaCAobV9j
YWNoZVR5cGUpIHsKICAgICBjYXNlIENhY2hlVHlwZTo6U3R1YjoKLSAgICAgICAgdS5zdHViLT5h
Ym91dFRvRGllKCk7CisgICAgICAgIG1fc3R1Yi0+YWJvdXRUb0RpZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBDYWNoZVR5cGU6OlVuc2V0OgogICAgIGNhc2UgQ2FjaGVUeXBlOjpHZXRC
eUlkU2VsZjoKQEAgLTEzOSw3ICsxMzYsNyBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFN0cnVj
dHVyZVN0dWJJbmZvOjphZGRBY2Nlc3NDYXNlKAogICAgICAgICBBY2Nlc3NHZW5lcmF0aW9uUmVz
dWx0IHJlc3VsdDsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlVHlwZSA9PSBDYWNoZVR5
cGU6OlN0dWIpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHUuc3R1Yi0+YWRkQ2FzZShsb2NrZXIs
IHZtLCBjb2RlQmxvY2ssICp0aGlzLCBhY2Nlc3NDYXNlLnJlbGVhc2VOb25OdWxsKCkpOworICAg
ICAgICAgICAgcmVzdWx0ID0gbV9zdHViLT5hZGRDYXNlKGxvY2tlciwgdm0sIGNvZGVCbG9jaywg
KnRoaXMsIGFjY2Vzc0Nhc2UucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGlmIChTdHJ1Y3R1cmVTdHViSW5mb0ludGVybmFsOjp2ZXJib3NlKQogICAgICAgICAg
ICAgICAgIGRhdGFMb2coIkhhZCBzdHViLCByZXN1bHQ6ICIsIHJlc3VsdCwgIlxuIik7CkBAIC0x
NzYsNyArMTczLDcgQEAgQWNjZXNzR2VuZXJhdGlvblJlc3VsdCBTdHJ1Y3R1cmVTdHViSW5mbzo6
YWRkQWNjZXNzQ2FzZSgKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
c2V0Q2FjaGVUeXBlKGxvY2tlciwgQ2FjaGVUeXBlOjpTdHViKTsKLSAgICAgICAgICAgIHUuc3R1
YiA9IGFjY2Vzcy5yZWxlYXNlKCk7CisgICAgICAgICAgICBtX3N0dWIgPSBhY2Nlc3MucmVsZWFz
ZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBBU1NFUlQobV9jYWNoZVR5cGUgPT0g
Q2FjaGVUeXBlOjpTdHViKTsKQEAgLTIwMiw3ICsxOTksNyBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVz
dWx0IFN0cnVjdHVyZVN0dWJJbmZvOjphZGRBY2Nlc3NDYXNlKAogICAgICAgICAvLyBQb2x5bW9y
cGhpY0FjY2Vzcy4KICAgICAgICAgY2xlYXJCdWZmZXJlZFN0cnVjdHVyZXMoKTsKICAgICAgICAg
Ci0gICAgICAgIHJlc3VsdCA9IHUuc3R1Yi0+cmVnZW5lcmF0ZShsb2NrZXIsIHZtLCBnbG9iYWxP
YmplY3QsIGNvZGVCbG9jaywgZWNtYU1vZGUsICp0aGlzKTsKKyAgICAgICAgcmVzdWx0ID0gbV9z
dHViLT5yZWdlbmVyYXRlKGxvY2tlciwgdm0sIGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBlY21h
TW9kZSwgKnRoaXMpOwogICAgICAgICAKICAgICAgICAgaWYgKFN0cnVjdHVyZVN0dWJJbmZvSW50
ZXJuYWw6OnZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJSZWdlbmVyYXRpb24gcmVzdWx0
OiAiLCByZXN1bHQsICJcbiIpOwpAQCAtMjE2LDExICsyMTMsMTEgQEAgQWNjZXNzR2VuZXJhdGlv
blJlc3VsdCBTdHJ1Y3R1cmVTdHViSW5mbzo6YWRkQWNjZXNzQ2FzZSgKICAgICAgICAgLy8gYWNj
ZXNzIGNvZGUuIFRoYXQncyBiZWNhdXNlIHdoZW4gd2UgZmlyc3QgdHJhbnNpdGlvbiB0byBiZWNv
bWluZyBhIFN0dWIsIHdlIG1heQogICAgICAgICAvLyBiZSBidWZmZXJlZCwgYW5kIHdlIGhhdmUg
bm90IHlldCBnZW5lcmF0ZWQgYW55IGNvZGUuIE9uY2UgdGhlIFN0dWIgZmluYWxseSBnZW5lcmF0
ZXMKICAgICAgICAgLy8gY29kZSwgd2UncmUgbm8gbG9uZ2VyIHJ1bm5pbmcgdGhlIGlubGluZSBh
Y2Nlc3MgY29kZSwgc28gd2UgY2FuIHRoZW4gY2xlYXIgb3V0Ci0gICAgICAgIC8vIG1faW5saW5l
QWNjZXNzQmFzZVN0cnVjdHVyZS4gVGhlIHJlYXNvbiB3ZSBkb24ndCBjbGVhciBtX2lubGluZUFj
Y2Vzc0Jhc2VTdHJ1Y3R1cmUgd2hpbGUKLSAgICAgICAgLy8gd2UncmUgYnVmZmVyZWQgaXMgYmVj
YXVzZSB3ZSByZWx5IG9uIGl0IHRvIHJlc2V0IGR1cmluZyBHQyBpZiBtX2lubGluZUFjY2Vzc0Jh
c2VTdHJ1Y3R1cmUKKyAgICAgICAgLy8gbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuIFRo
ZSByZWFzb24gd2UgZG9uJ3QgY2xlYXIgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQgd2hp
bGUKKyAgICAgICAgLy8gd2UncmUgYnVmZmVyZWQgaXMgYmVjYXVzZSB3ZSByZWx5IG9uIGl0IHRv
IHJlc2V0IGR1cmluZyBHQyBpZiBtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRAogICAgICAg
ICAvLyBpcyBjb2xsZWN0ZWQuCiAgICAgICAgIG1faWRlbnRpZmllciA9IG51bGxwdHI7Ci0gICAg
ICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSA9IFN0cnVjdHVyZUlEKCk7CisgICAgICAg
IG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlELmNsZWFyKCk7CiAgICAgICAgIAogICAgICAg
ICAvLyBJZiB3ZSBnZW5lcmF0ZWQgc29tZSBjb2RlIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBhdHRl
bXB0IHRvIHJlcGF0Y2ggaW4gdGhlIGZ1dHVyZSB1bnRpbCB3ZQogICAgICAgICAvLyBnYXRoZXIg
ZW5vdWdoIGNhc2VzLgpAQCAtMjM1LDcgKzIzMiw3IEBAIHZvaWQgU3RydWN0dXJlU3R1YkluZm86
OnJlc2V0KGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmIGxvY2tlciwgQ29kZUJsb2NrKiBj
CiB7CiAgICAgY2xlYXJCdWZmZXJlZFN0cnVjdHVyZXMoKTsKICAgICBtX2lkZW50aWZpZXIgPSBu
dWxscHRyOwotICAgIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSA9IFN0cnVjdHVyZUlEKCk7
CisgICAgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsKIAogICAgIGlmICht
X2NhY2hlVHlwZSA9PSBDYWNoZVR5cGU6OlVuc2V0KQogICAgICAgICByZXR1cm47CkBAIC0zMjMs
NyArMzIwLDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6dmlzaXRBZ2dyZWdhdGVJbXBsKFZp
c2l0b3ImIHZpc2l0b3IpCiAgICAgY2FzZSBDYWNoZVR5cGU6OkdldEJ5SWRTZWxmOgogICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBDYWNoZVR5cGU6OlN0dWI6Ci0gICAgICAgIHUuc3R1Yi0+dmlz
aXRBZ2dyZWdhdGUodmlzaXRvcik7CisgICAgICAgIG1fc3R1Yi0+dmlzaXRBZ2dyZWdhdGUodmlz
aXRvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0zNDgsNyArMzQ1LDcgQEAg
dm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6dmlzaXRXZWFrUmVmZXJlbmNlcyhjb25zdCBDb25jdXJy
ZW50SlNMb2NrZXJCYXNlJiBsb2NrZXIKICAgICBpZiAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBp
bmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlKHZtKSkKICAgICAgICAgaXNWYWxpZCAmPSB2bS5oZWFw
LmlzTWFya2VkKHN0cnVjdHVyZSk7CiAgICAgaWYgKG1fY2FjaGVUeXBlID09IENhY2hlVHlwZTo6
U3R1YikKLSAgICAgICAgaXNWYWxpZCAmPSB1LnN0dWItPnZpc2l0V2Vhayh2bSk7CisgICAgICAg
IGlzVmFsaWQgJj0gbV9zdHViLT52aXNpdFdlYWsodm0pOwogCiAgICAgaWYgKGlzVmFsaWQpCiAg
ICAgICAgIHJldHVybjsKQEAgLTM2NCw3ICszNjEsNyBAQCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZv
Ojpwcm9wYWdhdGVUcmFuc2l0aW9ucyhWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBzdHJ1Y3R1
cmUtPm1hcmtJZkNoZWFwKHZpc2l0b3IpOwogCiAgICAgaWYgKG1fY2FjaGVUeXBlID09IENhY2hl
VHlwZTo6U3R1YikKLSAgICAgICAgdS5zdHViLT5wcm9wYWdhdGVUcmFuc2l0aW9ucyh2aXNpdG9y
KTsKKyAgICAgICAgbV9zdHViLT5wcm9wYWdhdGVUcmFuc2l0aW9ucyh2aXNpdG9yKTsKIH0KIAog
dGVtcGxhdGUgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6cHJvcGFnYXRlVHJhbnNpdGlvbnMoQWJz
dHJhY3RTbG90VmlzaXRvciYpOwpAQCAtMzc1LDcgKzM3Miw3IEBAIFN0dWJJbmZvU3VtbWFyeSBT
dHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeShWTSYgdm0pIGNvbnN0CiAgICAgU3R1YkluZm9TdW1t
YXJ5IHRha2VzU2xvd1BhdGggPSBTdHViSW5mb1N1bW1hcnk6OlRha2VzU2xvd1BhdGg7CiAgICAg
U3R1YkluZm9TdW1tYXJ5IHNpbXBsZSA9IFN0dWJJbmZvU3VtbWFyeTo6U2ltcGxlOwogICAgIGlm
IChtX2NhY2hlVHlwZSA9PSBDYWNoZVR5cGU6OlN0dWIpIHsKLSAgICAgICAgUG9seW1vcnBoaWNB
Y2Nlc3MqIGxpc3QgPSB1LnN0dWI7CisgICAgICAgIFBvbHltb3JwaGljQWNjZXNzKiBsaXN0ID0g
bV9zdHViOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgICAgIGNvbnN0IEFjY2Vzc0Nhc2UmIGFjY2VzcyA9IGxpc3QtPmF0KGkp
OwogICAgICAgICAgICAgaWYgKGFjY2Vzcy5kb2VzQ2FsbHModm0pKSB7CkBAIC00MDcsNyArNDA0
LDcgQEAgYm9vbCBTdHJ1Y3R1cmVTdHViSW5mbzo6Y29udGFpbnNQQyh2b2lkKiBwYykgY29uc3QK
IHsKICAgICBpZiAobV9jYWNoZVR5cGUgIT0gQ2FjaGVUeXBlOjpTdHViKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHUuc3R1Yi0+Y29udGFpbnNQQyhwYyk7CisgICAgcmV0dXJu
IG1fc3R1Yi0+Y29udGFpbnNQQyhwYyk7CiB9CiAKIEFMV0FZU19JTkxJTkUgdm9pZCBTdHJ1Y3R1
cmVTdHViSW5mbzo6c2V0Q2FjaGVUeXBlKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UmLCBD
YWNoZVR5cGUgbmV3Q2FjaGVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAppbmRleCA3M2JiM2UwNWE2MmVjMGIyMWU3NjExODc4
MzFlZjdkMTM5N2Q5ODM5Li4yNWE5ZGM4YTE4MTZiZTgyNmI0Y2IxNmFlM2MwOWMwYmYxMjFlYjk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkluZm8uaApAQCAtMjExLDYgKzIxMSwxNCBAQCBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAg
ICAgICAgIHJldHVybiBjb25zaWRlckNhY2hpbmcodm0sIGNvZGVCbG9jaywgc3RydWN0dXJlLCBp
bXBsKTsKICAgICB9CiAKKyAgICBTdHJ1Y3R1cmUqIGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUo
Vk0mKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlE
LmdldCgpOworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZCeUlkU2VsZk9m
ZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVTdHViSW5mbywgYnlJZFNl
bGZPZmZzZXQpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklubGluZUFjY2Vzc0Jh
c2VTdHJ1Y3R1cmVJRCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVTdHViSW5m
bywgbV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQpOyB9CisKIHByaXZhdGU6CiAgICAgQUxX
QVlTX0lOTElORSBib29sIGNvbnNpZGVyQ2FjaGluZyhWTSYgdm0sIENvZGVCbG9jayogY29kZUJs
b2NrLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ2FjaGVhYmxlSWRlbnRpZmllciBpbXBsKQogICAg
IHsKQEAgLTM1MSwxOSArMzU5LDEwIEBAIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvIHsKIAogcHVi
bGljOgogICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbjsKKyAgICBQb2x5bW9ycGhpY0FjY2Vzcyog
bV9zdHViIHsgbnVsbHB0ciB9OwogICAgIFByb3BlcnR5T2Zmc2V0IGJ5SWRTZWxmT2Zmc2V0Owot
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVTdHViSW5mbywgYnlJZFNlbGZPZmZzZXQpOyB9Ci0gICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUoKSB7IHJl
dHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RydWN0dXJlU3R1YkluZm8sIG1faW5saW5lQWNjZXNzQmFz
ZVN0cnVjdHVyZSk7IH0KLSAgICB1bmlvbiB7Ci0gICAgICAgIFBvbHltb3JwaGljQWNjZXNzKiBz
dHViOwotICAgIH0gdTsKLSAgICBTdHJ1Y3R1cmUqIGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUo
Vk0mKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUpCi0g
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG1faW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZS5kZWNvZGUoKTsKLSAgICB9Ci0gICAgU3RydWN0dXJlSUQgbV9pbmxpbmVB
Y2Nlc3NCYXNlU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1faW5saW5l
QWNjZXNzQmFzZVN0cnVjdHVyZUlEOworCiBwcml2YXRlOgogICAgIENhY2hlYWJsZUlkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwogICAgIC8vIFJlcHJlc2VudHMgdGhvc2Ugc3RydWN0dXJlcyB0aGF0
IGFscmVhZHkgaGF2ZSBidWZmZXJlZCBBY2Nlc3NDYXNlcyBpbiB0aGUgUG9seW1vcnBoaWNBY2Nl
c3MuCkBAIC00MjIsMTAgKzQyMSwxMSBAQCBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAg
dWludDhfdCBjb3VudGRvd24geyAxIH07CiAgICAgdWludDhfdCByZXBhdGNoQ291bnQgeyAwIH07
CiAgICAgdWludDhfdCBudW1iZXJPZkNvb2xEb3ducyB7IDAgfTsKLQotICAgIENhbGxTaXRlSW5k
ZXggY2FsbFNpdGVJbmRleDsKLQogICAgIHVpbnQ4X3QgYnVmZmVyaW5nQ291bnRkb3duOworcHJp
dmF0ZToKKyAgICBMb2NrIG1fYnVmZmVyZWRTdHJ1Y3R1cmVzTG9jazsKK3B1YmxpYzoKKyAgICBD
YWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXg7CiAgICAgYm9vbCByZXNldEJ5R0MgOiAxOwogICAg
IGJvb2wgdG9va1Nsb3dQYXRoIDogMTsKICAgICBib29sIGV2ZXJDb25zaWRlcmVkIDogMTsKQEAg
LTQzNSw4ICs0MzUsNiBAQCBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgYm9vbCBwcm9w
ZXJ0eUlzU3RyaW5nIDogMTsKICAgICBib29sIHByb3BlcnR5SXNJbnQzMiA6IDE7CiAgICAgYm9v
bCBwcm9wZXJ0eUlzU3ltYm9sIDogMTsKLXByaXZhdGU6Ci0gICAgTG9jayBtX2J1ZmZlcmVkU3Ry
dWN0dXJlc0xvY2s7CiB9OwogCiBpbmxpbmUgQ29kZU9yaWdpbiBnZXRTdHJ1Y3R1cmVTdHViSW5m
b0NvZGVPcmlnaW4oU3RydWN0dXJlU3R1YkluZm8mIHN0cnVjdHVyZVN0dWJJbmZvKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA5NjI5
ZWUxM2M3ZWFmZWM5NjMyNjQxOTQxY2UyNTQ0YzQyODVlYmI0Li5mOTA4MGUyMDc5ODNlZDQ0MGJh
MWMzZTQ4ZmQ2MWJiNjM0ZTk3M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTQ4MTksOCArMTQ4MTksOSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUHJvbWlzZShOb2RlKiBub2RlKQogICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RGdW5jdGlvbihjYWxsZWVHUFIpKTsKICAgICBtX2pp
dC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zm
c2V0T2ZFeGVjdXRhYmxlT3JSYXJlRGF0YSgpKSwgcmFyZURhdGFHUFIpOwogICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmFyZURh
dGFHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTRnVuY3Rpb246OnJhcmVEYXRhVGFn
KSkpOwotICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MocmFyZURhdGFHUFIs
IEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0
dXJlKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyksIHN0cnVjdHVyZUdQUik7Ci0gICAgc2xv
d0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6WmVybywgc3Ry
dWN0dXJlR1BSKSk7CisgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJhcmVE
YXRhR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0
aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRP
ZlN0cnVjdHVyZUlEKCkgLSBKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZyksIHN0cnVjdHVyZUdQUik7
CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpa
ZXJvLCBzdHJ1Y3R1cmVHUFIpKTsKKyAgICBtX2ppdC5lbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVy
ZUlEKHN0cnVjdHVyZUdQUiwgc3RydWN0dXJlR1BSKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJ
bW1QdHIobm9kZS0+aXNJbnRlcm5hbFByb21pc2UoKSA/IEpTSW50ZXJuYWxQcm9taXNlOjppbmZv
KCkgOiBKU1Byb21pc2U6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKG1faml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoMUdQUiwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9P
ZmZzZXQoKSkpKTsKICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1f
aml0LmdyYXBoKCksIGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKQEAgLTE0ODY3LDggKzE0
ODY4LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRP
YmplY3QoTm9kZSogbm9kZSwgT3BlcmF0aW9uIG9wZXIKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmTm90RnVuY3Rpb24oY2FsbGVlR1BSKSk7CiAgICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0
YWJsZU9yUmFyZURhdGEoKSksIHJhcmVEYXRhR1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJhcmVEYXRhR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU0Z1bmN0aW9uOjpyYXJlRGF0YVRhZykpKTsKLSAgICBt
X2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJhcmVEYXRhR1BSLCBGdW5jdGlvblJh
cmVEYXRhOjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50
ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVjdHVyZSgpIC0gSlNG
dW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOwotICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHN0cnVjdHVyZUdQUikp
OworICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6QWRkcmVzcyhyYXJlRGF0YUdQUiwgRnVu
Y3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUo
KSArIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZTo6b2Zmc2V0T2ZTdHJ1Y3R1cmVJ
RCgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBzdHJ1Y3R1cmVHUFIpOworICAgIHNsb3dD
YXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgc3RydWN0
dXJlR1BSKSk7CisgICAgbV9qaXQuZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChzdHJ1Y3R1
cmVHUFIsIHN0cnVjdHVyZUdQUik7CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKEpTQ2xh
c3M6OmluZm8oKSksIHNjcmF0Y2gxR1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJy
YW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSkpKTsK
ICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0LmdyYXBoKCks
IGdsb2JhbE9iamVjdCksIHNjcmF0Y2gxR1BSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggMzE1ZjkwZDRjZWEy
Mzk5NmRkMDcyOGI2YjZiZGNiNDg0YmJiMWU2MC4uYWIxZjViODY3NTlkMDU1NjlkMzhjMDQ4ZGNj
ODNhYTdmZDVmYjBlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg0LDkgKzg0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURhdGFfcHJvdG90eXBl
LCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Qcm9maWxlKCkgKyBP
YmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5cGU6Om9mZnNldE9mUHJvdG90eXBlKCkp
IFwKICAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2lu
dFNldCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9p
bnRTZXQoKSkgXAogICAgIG1hY3JvKEZ1bmN0aW9uUmFyZURhdGFfZXhlY3V0YWJsZSwgRnVuY3Rp
b25SYXJlRGF0YTo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKLSAgICBtYWNybyhGdW5jdGlvblJh
cmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9zdHJ1Y3R1cmUsIEZ1bmN0
aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkg
KyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlKCkp
IFwKLSAgICBtYWNybyhGdW5jdGlvblJhcmVEYXRhX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUsIEZ1
bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mQm91bmRGdW5jdGlvblN0cnVjdHVyZSgpKSBcCi0gICAg
bWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2lu
dCwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0
Y2hwb2ludCgpKSBcCisgICAgbWFjcm8oRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9u
QWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9m
SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxs
b2NhdGlvblByb2ZpbGU6Om9mZnNldE9mU3RydWN0dXJlSUQoKSkgXAogICAgIG1hY3JvKEdldHRl
clNldHRlcl9nZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zmc2V0T2ZHZXR0ZXIoKSkgXAogICAgIG1h
Y3JvKEdldHRlclNldHRlcl9zZXR0ZXIsIEdldHRlclNldHRlcjo6b2Zmc2V0T2ZTZXR0ZXIoKSkg
XAogICAgIG1hY3JvKEpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCwgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTGVuZ3RoKCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAppbmRleCAwMGVkYTU2YTgzNTgxYWVlZTAyNGMxZmYyNTNmMGMyMGE2ZDNk
NDQ4Li4yYjExZjZhYzNkYmUxZjBmN2RhOTYyNmNkMmU0MWU1Zjg5N2I2ZjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC03ODc3LDEwICs3
ODc3LDExIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAgICBtX291dC5hcHBl
bmRUbyhoYXNSYXJlRGF0YSwgaGFzU3RydWN0dXJlKTsKICAgICAgICAgTFZhbHVlIHJhcmVEYXRh
ID0gbV9vdXQuc3ViKHJhcmVEYXRhVGFncywgbV9vdXQuY29uc3RJbnRQdHIoSlNGdW5jdGlvbjo6
cmFyZURhdGFUYWcpKTsKLSAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIo
cmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2Nh
dGlvblByb2ZpbGVfc3RydWN0dXJlKTsKLSAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVy
bzY0KHN0cnVjdHVyZSksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaGFzU3RydWN0dXJlKSk7
CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0LmxvYWQzMihyYXJlRGF0YSwgbV9o
ZWFwcy5GdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZV9z
dHJ1Y3R1cmVJRCk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihzdHJ1Y3R1
cmVJRCksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaGFzU3RydWN0dXJlKSk7CiAKICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oaGFzU3RydWN0dXJlLCBjaGVja0dsb2JhbE9iamVjdENhc2UpOwor
ICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gZGVjb2RlTm9uTnVsbFN0cnVjdHVyZShzdHJ1Y3R1
cmVJRCk7CiAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChtX291dC5sb2FkUHRyKHN0
cnVjdHVyZSwgbV9oZWFwcy5TdHJ1Y3R1cmVfY2xhc3NJbmZvKSwgbV9vdXQuY29uc3RJbnRQdHIo
bV9ub2RlLT5pc0ludGVybmFsUHJvbWlzZSgpID8gSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSA6
IEpTUHJvbWlzZTo6aW5mbygpKSksIHVzdWFsbHkoY2hlY2tHbG9iYWxPYmplY3RDYXNlKSwgcmFy
ZWx5KHNsb3dDYXNlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY2hlY2tHbG9iYWxPYmpl
Y3RDYXNlLCBmYXN0QWxsb2NhdGlvbkNhc2UpOwpAQCAtNzkzMiwxMCArNzkzMywxMSBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaGFzUmFyZURh
dGEsIGhhc1N0cnVjdHVyZSk7CiAgICAgICAgIExWYWx1ZSByYXJlRGF0YSA9IG1fb3V0LnN1Yihy
YXJlRGF0YVRhZ3MsIG1fb3V0LmNvbnN0SW50UHRyKEpTRnVuY3Rpb246OnJhcmVEYXRhVGFnKSk7
Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKHJhcmVEYXRhLCBtX2hl
YXBzLkZ1bmN0aW9uUmFyZURhdGFfaW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlX3N0
cnVjdHVyZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm82NChzdHJ1Y3R1cmUp
LCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOworICAgICAgICBMVmFs
dWUgc3RydWN0dXJlSUQgPSBtX291dC5sb2FkMzIocmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25S
YXJlRGF0YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlSUQpOwor
ICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIoc3RydWN0dXJlSUQpLCByYXJlbHko
c2xvd0Nhc2UpLCB1c3VhbGx5KGhhc1N0cnVjdHVyZSkpOwogCiAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGhhc1N0cnVjdHVyZSwgY2hlY2tHbG9iYWxPYmplY3RDYXNlKTsKKyAgICAgICAgTFZhbHVl
IHN0cnVjdHVyZSA9IGRlY29kZU5vbk51bGxTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpOwogICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobV9vdXQubG9hZFB0cihzdHJ1Y3R1cmUsIG1faGVh
cHMuU3RydWN0dXJlX2NsYXNzSW5mbyksIG1fb3V0LmNvbnN0SW50UHRyKEpTQ2xhc3M6OmluZm8o
KSkpLCB1c3VhbGx5KGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSksIHJhcmVseShzbG93Q2FzZSkpOwog
CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrR2xvYmFsT2JqZWN0Q2FzZSwgZmFzdEFsbG9j
YXRpb25DYXNlKTsKQEAgLTIwOTczLDEzICsyMDk3NSwxOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfRU5ECiAgICAgICAgIG1fZ3JhcGgubV9wbGFuLndlYWtSZWZlcmVuY2VzKCkuYWRkTGF6aWx5
KHRhcmdldCk7CiAgICAgfQogCi0gICAgTFZhbHVlIGxvYWRTdHJ1Y3R1cmUoTFZhbHVlIHZhbHVl
KQorICAgIExWYWx1ZSBkZWNvZGVOb25OdWxsU3RydWN0dXJlKExWYWx1ZSBzdHJ1Y3R1cmVJRCkK
ICAgICB7Ci0gICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVJRCA9IG1fb3V0LmxvYWQzMih2YWx1ZSwg
bV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICBMVmFsdWUgbWFza2VkU3RydWN0
dXJlSUQgPSBtX291dC5iaXRBbmQoc3RydWN0dXJlSUQsIG1fb3V0LmNvbnN0SW50MzIoc3RydWN0
dXJlSURNYXNrKSk7CiAgICAgICAgIHJldHVybiBtX291dC5hZGQobV9vdXQuY29uc3RJbnRQdHIo
Z19qc2NDb25maWcuc3RhcnRPZlN0cnVjdHVyZUhlYXApLCBtX291dC56ZXJvRXh0UHRyKG1hc2tl
ZFN0cnVjdHVyZUlEKSk7CiAgICAgfQogCisgICAgTFZhbHVlIGxvYWRTdHJ1Y3R1cmUoTFZhbHVl
IHZhbHVlKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUlEID0gbV9vdXQubG9hZDMy
KHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CisgICAgICAgIHJldHVybiBkZWNv
ZGVOb25OdWxsU3RydWN0dXJlKHN0cnVjdHVyZUlEKTsKKyAgICB9CisKICAgICBMVmFsdWUgd2Vh
a1BvaW50ZXIoSlNDZWxsKiBwb2ludGVyKQogICAgIHsKICAgICAgICAgYWRkV2Vha1JlZmVyZW5j
ZShwb2ludGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3Ry
YWN0U2xvdFZpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xv
dFZpc2l0b3IuaAppbmRleCBiYzI5Zjc0MTkzMzk4ZDE0Y2ZmNDI1M2Y2MjY4NmRmMTgyNDc4MzBh
Li5kNmY0MTYyZmZhYjlmY2RhMmI0YTJkYzZmMzg0M2RiZjY2ZTkyMTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvci5oCkBAIC00OCw2ICs0
OCw3IEBAIGNsYXNzIFZNOwogY2xhc3MgVmVyaWZpZXJTbG90VmlzaXRvcjsKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIFdlYWs7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFp
dHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2U7CitjbGFzcyBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJ
RDsKIAogY2xhc3MgQWJzdHJhY3RTbG90VmlzaXRvciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQWJzdHJhY3RTbG90VmlzaXRvcik7CkBAIC0xNDMsNiArMTQ0LDggQEAgY2xhc3MgQWJzdHJh
Y3RTbG90VmlzaXRvciB7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFp
dHM+IHZvaWQgYXBwZW5kKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VCwgVHJhaXRzPiYpOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRyYWl0cz4gdm9pZCBhcHBlbmRIaWRkZW4o
Y29uc3QgV3JpdGVCYXJyaWVyQmFzZTxULCBUcmFpdHM+Jik7CisgICAgdm9pZCBhcHBlbmQoY29u
c3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKKyAgICB2b2lkIGFwcGVuZEhpZGRlbihjb25z
dCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yPiB2b2lkIGFwcGVuZChJdGVyYXRvciBiZWdpbiAsIEl0ZXJhdG9yIGVuZCk7CiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIGFwcGVuZFZhbHVlcyhjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFVua25v
d24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3VudCk7CiAgICAgQUxXQVlT
X0lOTElORSB2b2lkIGFwcGVuZFZhbHVlc0hpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFVu
a25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3VudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9ySW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWJzdHJhY3RTbG90VmlzaXRvcklubGlu
ZXMuaAppbmRleCBhZjY2MDM4NjRjNmViZmUyZWZlMWRjOTA4YTFiZDg1MTNjNmViZjU4Li42Mjg0
MzgyZTAwMjExNTY5OGU1Mjk1NmIyZDMxYmRmODE2NmQyYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9BYnN0cmFjdFNsb3RWaXNpdG9ySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fic3RyYWN0U2xvdFZpc2l0b3JJbmxpbmVzLmgKQEAg
LTE1OCw2ICsxNTgsMTYgQEAgQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6
OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFQKICAgICBhcHBlbmRIaWRk
ZW5VbmJhcnJpZXJlZChzbG90LmdldCgpKTsKIH0KIAorQUxXQVlTX0lOTElORSB2b2lkIEFic3Ry
YWN0U2xvdFZpc2l0b3I6OmFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xv
dCkKK3sKKyAgICBhcHBlbmRVbmJhcnJpZXJlZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHNs
b3QuZ2V0KCkpKTsKK30KKworQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6
OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCYgc2xvdCkKK3sKKyAg
ICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHNsb3Qu
Z2V0KCkpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIEFic3RyYWN0U2xvdFZpc2l0b3I6OmFw
cGVuZEhpZGRlblVuYmFycmllcmVkKEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlz
Q2VsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKaW5kZXggNTAz
NjM2OTM4NDI5NjQzNTJjMGQwMjBiYmViOTkwYmUyMWQ3YTg0Ny4uMDZmZDRhZDkwNGQwZDhlNDAy
YTg4NzRkM2M3YTY2NDg2YTFhNmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCkBAIC05Miw2ICs5Miw4IEBAIGNsYXNzIFNsb3RWaXNpdG9yIGZpbmFsIDogcHVi
bGljIEFic3RyYWN0U2xvdFZpc2l0b3IgewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVHJhaXRzPiB2b2lkIGFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0
cz4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBw
ZW5kSGlkZGVuKGNvbnN0IFdyaXRlQmFycmllckJhc2U8VCwgVHJhaXRzPiYpOworICAgIHZvaWQg
YXBwZW5kKGNvbnN0IFdyaXRlQmFycmllclN0cnVjdHVyZUlEJik7CisgICAgdm9pZCBhcHBlbmRI
aWRkZW4oY29uc3QgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQmKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBJdGVyYXRvcj4gdm9pZCBhcHBlbmQoSXRlcmF0b3IgYmVnaW4gLCBJdGVyYXRvciBlbmQp
OwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1ZXMoY29uc3QgV3JpdGVCYXJyaWVy
QmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4qLCBzaXplX3QgY291bnQpOwog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRWYWx1ZXNIaWRkZW4oY29uc3QgV3JpdGVCYXJy
aWVyQmFzZTxVbmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4qLCBzaXplX3QgY291bnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaApp
bmRleCA0NGYyMDljNTk0ZTlmNDhmOTRmOTk3NzRjZTY0NGU4ZmRkYmU4MWMyLi41NDIyM2E2NDc5
NmFmZTk2MmRkNzZkYjIzOWMwMWNjMmVmYjU3ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaApAQCAtMTE2LDYgKzExNiwxNiBAQCBBTFdB
WVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJp
ZXJCYXNlPFQsIFRyYWl0cz4mCiAgICAgYXBwZW5kSGlkZGVuVW5iYXJyaWVyZWQoc2xvdC5nZXQo
KSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kKGNvbnN0IFdy
aXRlQmFycmllclN0cnVjdHVyZUlEJiBzbG90KQoreworICAgIGFwcGVuZFVuYmFycmllcmVkKHJl
aW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oc2xvdC5nZXQoKSkpOworfQorCitBTFdBWVNfSU5MSU5F
IHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEhpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCYgc2xvdCkKK3sKKyAgICBhcHBlbmRIaWRkZW5VbmJhcnJpZXJlZChyZWludGVycHJldF9j
YXN0PEpTQ2VsbCo+KHNsb3QuZ2V0KCkpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgSXRlcmF0
b3I+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChJdGVyYXRvciBiZWdp
biwgSXRlcmF0b3IgZW5kKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuY3BwCmluZGV4IDkzZDliMzNhM2Q0NTJhMTdhMTFkM2FmZGI4ZWIyNmY2Njc0NmMx
ZGIuLjMzYjJiMjdiMjYwNjA5NTkyMTM2ZDQ2NTg1NjU2MTA2N2Y3MDE0OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKQEAgLTM4OSw5ICszODks
OSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6c3RvcmVQcm9wZXJ0eShKU1ZhbHVlUmVncyB2YWx1
ZSwgR1BSUmVnIG9iamVjdCwgR1BSUmVnIG9mZgogICAgICAgICBCYXNlSW5kZXgoc2NyYXRjaCwg
b2Zmc2V0LCBUaW1lc0VpZ2h0LCAoZmlyc3RPdXRPZkxpbmVPZmZzZXQgLSAyKSAqIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkpKTsKIH0KIAotdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3Ry
dWN0dXJlKFZNJiwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJlZ2lzdGVySUQgZGVzdCkKK3ZvaWQgQXNz
ZW1ibHlIZWxwZXJzOjplbWl0Tm9uTnVsbERlY29kZVN0cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291
cmNlLCBSZWdpc3RlcklEIGRlc3QpCiB7Ci0gICAgbG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgZGVzdCk7CisgICAgbW92
ZShzb3VyY2UsIGRlc3QpOwogI2lmIENQVShBRERSRVNTNjQpCiAgICAgLy8gVGhpcyBjb3VsZCB1
c2UgQkZJIG9uIGFybTY0IGJ1dCB0aGF0IG9ubHkgaGVscHMgaWYgdGhlIHN0YXJ0IG9mIHN0cnVj
dHVyZSBoZWFwIGlzIGVuY29kYWJsZSBhcyBhIG1vdiBhbmQgbm90IGFzIGFuIGltbWVkaWF0ZSBp
biB0aGUgYWRkIHNvIGl0J3MgcHJvYmFibHkgbm90IHN1cGVyIGltcG9ydGFudC4KICAgICBhbmQz
MihUcnVzdGVkSW1tMzIoc3RydWN0dXJlSURNYXNrKSwgZGVzdCk7CkBAIC0zOTksNiArMzk5LDEy
IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZShWTSYsIFJlZ2lzdGVy
SUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCiAjZW5kaWYgLy8gbm90IENQVShBRERSRVNTNjQp
CiB9CiAKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZShWTSYsIFJlZ2lz
dGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpCit7CisgICAgbG9hZDMyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgZGVzdCk7
CisgICAgZW1pdE5vbk51bGxEZWNvZGVTdHJ1Y3R1cmVJRChkZXN0LCBkZXN0KTsKK30KKwogdm9p
ZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkUHJvdG90eXBlKFZNJiB2bSwgR1BSUmVnIG9iamVj
dEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExpc3QmIHNsb3dQYXRoKQogewogICAg
IEFTU0VSVChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSAhPSBvYmplY3RHUFIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggYzZlZjU1MTIyZTM3NGVh
ODliN2Y1NDc2ZDQ2YzEwN2ExOWIzNzE1Ni4uZjcxNzYwYmYwNWJhMmNlM2QyZWFkNTUyZDZhYTQy
MmI1YjYwOWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5oCkBAIC0xNTc3LDYgKzE1NzcsNyBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMg
TWFjcm9Bc3NlbWJsZXIgewogICAgICAgICByZXR1cm4gYXJndW1lbnRDb3VudChjb2RlT3JpZ2lu
LmlubGluZUNhbGxGcmFtZSgpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBlbWl0Tm9uTnVsbERl
Y29kZVN0cnVjdHVyZUlEKFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlc3QpOwogICAg
IHZvaWQgZW1pdExvYWRTdHJ1Y3R1cmUoVk0mLCBSZWdpc3RlcklEIHNvdXJjZSwgUmVnaXN0ZXJJ
RCBkZXN0KTsKICAgICB2b2lkIGVtaXRMb2FkUHJvdG90eXBlKFZNJiwgR1BSUmVnIG9iamVjdEdQ
UiwgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncywgSnVtcExpc3QmIHNsb3dQYXRoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNw
cAppbmRleCBjNjdiY2UwOWZmYmM2MGUyNDMzZTYyMmUzNzgyNzhjZjIwNzRiNGJlLi4wNGZmMjJl
NmU0MjVhMDNjNjE0MTQ3MDU2N2YzN2RhNjM2NTM0YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQogc3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5lQWNjZXNz
KEpJVCYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdzIGJhc2VKU1IsIEdQUlJl
ZyBzY3JhdGNoR1BSLCBKU1ZhbHVlUmVncyByZXN1bHRKU1IpCiB7CiAgICAgaml0LmxvYWQzMihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0
dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBq
aXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVB
Y2Nlc3NCYXNlU3RydWN0dXJlKCkpKTsKKyAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJy
YW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRk
cmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNz
QmFzZVN0cnVjdHVyZUlEKCkpKTsKICAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJ
VFN0dWJSb3V0aW5lUHRyVGFnKTsKICAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwogICAg
IGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVT
dHViSW5mbzo6b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7CkBAIC0yMjEs
NyArMjIxLDcgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0
YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWIKICAgICB1c2luZyBCYXNlbGluZVB1
dEJ5SWRSZWdpc3RlcnM6OnNjcmF0Y2gyR1BSOwogCiAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlKCkpKTsKKyAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKEND
YWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHVi
SW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVj
dHVyZUlEKCkpKTsKICAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1Yklu
Zm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0
aW5lUHRyVGFnKTsKICAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwogICAgIGppdC5sb2Fk
MzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7CkBAIC00MTIsNyArNDEyLDcg
QEAgdm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0
aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkkKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRv
bmU7CiAKICAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBheWxv
YWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAg
YXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0
dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZSgpKSk7CisgICAg
YXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0
dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKICAg
ICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1IpOwogICAgIGF1dG8gZmluaXNoZWQgPSBq
aXQuanVtcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25FeGVjdXRhYmxlLmNwcAppbmRleCAxMmQ0OTlhNGU0NTA0Y2VjMTg0ZDdkYmY1YzM2ZWZl
ZGViMWFiNDczLi5hMTc2NDdhYzlhYTIzZTc1NDc1NjcyZTRjNmViNTJmZDA1OWU0YjZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJs
ZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hp
bGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFw
cGVuZCh0aGlzT2JqZWN0LT5tX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCk7CiAgICAgdmlzaXRvci5h
cHBlbmQodGhpc09iamVjdC0+bV91bmxpbmtlZEV4ZWN1dGFibGUpOwogICAgIGlmIChSYXJlRGF0
YSogcmFyZURhdGEgPSB0aGlzT2JqZWN0LT5tX3JhcmVEYXRhLmdldCgpKSB7Ci0gICAgICAgIHZp
c2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZSk7CisgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZUlE
KTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYXNTdHJpbmcpOwogICAgICAg
ICBpZiAoVGVtcGxhdGVPYmplY3RNYXAqIG1hcCA9IHJhcmVEYXRhLT5tX3RlbXBsYXRlT2JqZWN0
TWFwLmdldCgpKSB7CiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgdGhpc09iamVjdC0+Y2Vs
bExvY2soKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkV4ZWN1dGFibGUuaAppbmRleCBhN2Y3NzUxM2U4YWRlMGZlYmY3YTliMzJlZjkzZGY5YjBlNmJh
MjYxLi5mYTk1MDQ1M2E1NDEyYzcyMDBmNWE4MjViODZjZmEwNzY1ZjlkMDQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAt
MjU3LDEyICsyNTcsMTIgQEAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGlj
IFNjcmlwdEV4ZWN1dGFibGUgewogICAgIFN0cnVjdHVyZSogY2FjaGVkUG9seVByb3RvU3RydWN0
dXJlKCkKICAgICB7CiAgICAgICAgIGlmIChVTkxJS0VMWShtX3JhcmVEYXRhKSkKLSAgICAgICAg
ICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZS5nZXQoKTsK
KyAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVy
ZUlELmdldCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgdm9pZCBzZXRD
YWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICB7Ci0gICAgICAgIGVuc3VyZVJhcmVEYXRhKCkubV9jYWNoZWRQb2x5UHJvdG9TdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOworICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLm1fY2Fj
aGVkUG9seVByb3RvU3RydWN0dXJlSUQuc2V0KHZtLCB0aGlzLCBzdHJ1Y3R1cmUpOwogICAgIH0K
IAogICAgIElubGluZVdhdGNocG9pbnRTZXQmIGVuc3VyZVBvbHlQcm90b1dhdGNocG9pbnQoKQpA
QCAtMzEwLDggKzMxMCw4IEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1Ymxp
YyBTY3JpcHRFeGVjdXRhYmxlIHsKICAgICAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJzU3RhcnRP
ZmZzZXQgeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0
IHsgVUlOVF9NQVggfTsKICAgICAgICAgdW5zaWduZWQgbV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0
IHsgVUlOVF9NQVggfTsKKyAgICAgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9jYWNoZWRQ
b2x5UHJvdG9TdHJ1Y3R1cmVJRDsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRlbXBsYXRlT2Jq
ZWN0TWFwPiBtX3RlbXBsYXRlT2JqZWN0TWFwOwotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX2NhY2hlZFBvbHlQcm90b1N0cnVjdHVyZTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpT
U3RyaW5nPiBtX2FzU3RyaW5nOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKaW5kZXggMTIxZDQzMjhjYTA4ZmVhOTAz
OTVjZjExMWNiNDNmYzdmYjU1M2FlZi4uYTEzZGZhNDU2NjgzMTg4Zjc5NGQ3OTkzNmE5MjEzODU2
MWYyMzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25SYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25SYXJlRGF0YS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGdW5jdGlvblJhcmVEYXRhOjp2
aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAKICAgICBy
YXJlRGF0YS0+bV9vYmplY3RBbGxvY2F0aW9uUHJvZmlsZS52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9y
KTsKICAgICByYXJlRGF0YS0+bV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUudmlz
aXRBZ2dyZWdhdGUodmlzaXRvcik7Ci0gICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYm91
bmRGdW5jdGlvblN0cnVjdHVyZSk7CisgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYm91
bmRGdW5jdGlvblN0cnVjdHVyZUlEKTsKICAgICB2aXNpdG9yLmFwcGVuZChyYXJlRGF0YS0+bV9l
eGVjdXRhYmxlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25SYXJlRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25SYXJlRGF0YS5oCmluZGV4IDJjYTA4NmRiYzZlYmRmNzgyZTFmNjE0MTNiMTNkZjAwY2Ni
MTkwNmYuLjBmMWU5ODU2OTM1MTY0N2ExNzkyOTc0NzMwNGU4ZmE3YTYzYzJiZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKQEAgLTcy
LDkgKzcyLDcgQEAgY2xhc3MgRnVuY3Rpb25SYXJlRGF0YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mT2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9vYmpl
Y3RBbGxvY2F0aW9uUHJvZmlsZSk7IH0KICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZz
ZXRPZkFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldCk7
IH0KICAgICBzdGF0aWMgaW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkludGVybmFsRnVuY3Rpb25B
bGxvY2F0aW9uUHJvZmlsZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJhcmVE
YXRhLCBtX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSk7IH0KLSAgICBzdGF0aWMg
aW5saW5lIHB0cmRpZmZfdCBvZmZzZXRPZkJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoRnVuY3Rpb25SYXJlRGF0YSwgbV9ib3VuZEZ1bmN0aW9uU3RydWN0
dXJlKTsgfQogICAgIHN0YXRpYyBpbmxpbmUgcHRyZGlmZl90IG9mZnNldE9mRXhlY3V0YWJsZSgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJhcmVEYXRhLCBtX2V4ZWN1dGFibGUp
OyB9Ci0gICAgc3RhdGljIGlubGluZSBwdHJkaWZmX3Qgb2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmls
ZUNsZWFyaW5nV2F0Y2hwb2ludCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihGdW5jdGlvblJh
cmVEYXRhLCBtX2FsbG9jYXRpb25Qcm9maWxlQ2xlYXJpbmdXYXRjaHBvaW50KTsgfQogCiAgICAg
T2JqZWN0QWxsb2NhdGlvblByb2ZpbGVXaXRoUHJvdG90eXBlKiBvYmplY3RBbGxvY2F0aW9uUHJv
ZmlsZSgpCiAgICAgewpAQCAtMTEzLDggKzExMSw4IEBAIGNsYXNzIEZ1bmN0aW9uUmFyZURhdGEg
ZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgICAgIG1fYWxsb2NhdGlvblByb2ZpbGVX
YXRjaHBvaW50U2V0LnN0YXJ0V2F0Y2hpbmcoKTsKICAgICB9CiAKLSAgICBTdHJ1Y3R1cmUqIGdl
dEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkgeyBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0
aGlzLCBzdHJ1Y3R1cmUpOyB9CisgICAgU3RydWN0dXJlKiBnZXRCb3VuZEZ1bmN0aW9uU3RydWN0
dXJlKCkgeyByZXR1cm4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlSUQuZ2V0KCk7IH0KKyAgICB2
b2lkIHNldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkgeyBtX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmVJRC5zZXQodm0sIHRoaXMsIHN0cnVjdHVyZSk7
IH0KIAogICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9l
eGVjdXRhYmxlLmdldCgpOyB9CiAKQEAgLTE2MCw3ICsxNTgsNyBAQCBjbGFzcyBGdW5jdGlvblJh
cmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgT2JqZWN0QWxsb2NhdGlvblByb2Zp
bGVXaXRoUHJvdG90eXBlIG1fb2JqZWN0QWxsb2NhdGlvblByb2ZpbGU7CiAgICAgSW5saW5lV2F0
Y2hwb2ludFNldCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldDsKICAgICBJbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUgbV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblBy
b2ZpbGU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0
dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fYm91bmRGdW5jdGlvblN0cnVjdHVy
ZUlEOwogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxBbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludD4gbV9h
bGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludDsKICAgICBib29sIG1faGFzUmVpZmll
ZExlbmd0aCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKaW5kZXggMGU0OGUzMzBjYWY5ZjE1ZDIwZGVhZGZiZjJhNjg2MzE1MzUzZWE2
ZC4uNTkyMmQ1NjJjNDZmODAwYjFhYzFhYWQ3ZTE4ZDc3ZDkyYjRhMjE4NyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjI4MSwx
MyArMjI4MSwxNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0Nl
bGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IHRo
aXNPYmplY3QtPm1fbGlua1RpbWVDb25zdGFudHMpCiAgICAgICAgIHByb3BlcnR5LnZpc2l0KHZp
c2l0b3IpOwogCi0jZGVmaW5lIFZJU0lUX1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0
dXJlRmxhZykgaWYgKGZlYXR1cmVGbGFnKSB7IFwKKyNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEVf
UFJPVE9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgaWYgKGZlYXR1cmVGbGFnKSBc
CiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fICMjIGxvd2VyTmFtZSAjIyBQ
cm90b3R5cGUpOyBcCisKKyNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEVfU1RSVUNUVVJFKENhcGl0
YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90
b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgaWYgKGZlYXR1cmVGbGFnKSBcCiAgICAgICAgIHZpc2l0
b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlKTsgXAot
ICAgIH0KIAotICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoVklTSVRfU0lNUExFX1RZ
UEUpCi0gICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoVklTSVRfU0lN
UExFX1RZUEUpCisgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShWSVNJVF9TSU1QTEVf
VFlQRV9TVFJVQ1RVUkUpCisgICAgRk9SX0VBQ0hfQlVJTFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZ
UEUoVklTSVRfU0lNUExFX1RZUEVfU1RSVUNUVVJFKQorICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlM
VElOX1RZUEUoVklTSVRfU0lNUExFX1RZUEVfUFJPVE9UWVBFKQorICAgIEZPUl9FQUNIX0JVSUxU
SU5fREVSSVZFRF9JVEVSQVRPUl9UWVBFKFZJU0lUX1NJTVBMRV9UWVBFX1BST1RPVFlQRSkKIAog
I2RlZmluZSBWSVNJVF9MQVpZX1RZUEUoQ2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFt
ZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UsIGZlYXR1cmVGbGFnKSBpZiAo
ZmVhdHVyZUZsYWcpIFwKICAgICAgICAgdGhpc09iamVjdC0+bV8gIyMgcHJvcGVyTmFtZSAjIyBT
dHJ1Y3R1cmUudmlzaXQodmlzaXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBhOTUyYzk3Yzc1Mjg1MGFmOGE4ODk3YTNjNTlhZDlh
NzU2Njk3YmI3Li4xODRkMWM4YmZhN2E4ZjBhNGFhNTA4MjNmYmE2ZTNiODJiZDE5OWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTM3
NiwyMCArMzc2LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdCB7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fZGVidWdnZXJTY29wZVN0cnVjdHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxP
YmplY3QsIFN0cnVjdHVyZT4gbV93aXRoU2NvcGVTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5
PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1
cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9sZXhpY2FsRW52aXJvbm1lbnRTdHJ1
Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fbW9k
dWxlRW52aXJvbm1lbnRTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9k
aXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9z
Y29wZWRBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9j
bG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmU7Ci0KLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yOwotICAgICAgICAKLSAgICAvLyBM
aXN0cyB0aGUgYWN0dWFsIHN0cnVjdHVyZXMgdXNlZCBmb3IgaGF2aW5nIHRoZXNlIHBhcnRpY3Vs
YXIgaW5kZXhpbmcgc2hhcGVzLgotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fb3JpZ2lu
YWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVbTnVtYmVyT2ZBcnJheUluZGV4aW5nTW9k
ZXNdOwotICAgIC8vIExpc3RzIHRoZSBzdHJ1Y3R1cmVzIHdlIHNob3VsZCB1c2UgZHVyaW5nIGFs
bG9jYXRpb24gZm9yIHRoZXNlIHBhcnRpY3VsYXIgaW5kZXhpbmcgc2hhcGVzLgotICAgIC8vIFRo
ZXNlIHN0cnVjdHVyZXMgd2lsbCBkaWZmZXIgZnJvbSB0aGUgb3JpZ2luYWxzIGxpc3QgYWJvdmUg
d2hlbiB3ZSBhcmUgaGF2aW5nIGEgYmFkIHRpbWUuCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVEdXJpbmdBbGxvY2F0aW9uW051bWJl
ck9mQXJyYXlJbmRleGluZ01vZGVzXTsKLQogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVj
dCwgU3RydWN0dXJlPiBtX2NhbGxiYWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmU7CiAgICAgTGF6eVBy
b3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1fY2FsbGJhY2tGdW5jdGlvblN0cnVj
dHVyZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9jYWxs
YmFja09iamVjdFN0cnVjdHVyZTsKQEAgLTQwMSw0MiArMzg4LDU3IEBAIGNsYXNzIEpTR2xvYmFs
T2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIExhenlQcm9w
ZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2dsaWJDYWxsYmFja0Z1bmN0aW9uU3Ry
dWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2ds
aWJXcmFwcGVyT2JqZWN0U3RydWN0dXJlOwogI2VuZGlmCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmU+IG1fY2FsbGVlU3RydWN0dXJlOwogCi0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9ob3N0RnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQg
bV9sZXhpY2FsRW52aXJvbm1lbnRTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQgbV9kaXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQgbV9zY29wZWRBcmd1bWVudHNTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJl
SUQgbV9jbG9uZWRBcmd1bWVudHNTdHJ1Y3R1cmU7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1
cmVJRCBtX29iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0cnVjdG9yOworCisgICAgLy8gTGlz
dHMgdGhlIGFjdHVhbCBzdHJ1Y3R1cmVzIHVzZWQgZm9yIGhhdmluZyB0aGVzZSBwYXJ0aWN1bGFy
IGluZGV4aW5nIHNoYXBlcy4KKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX29yaWdpbmFs
QXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlW051bWJlck9mQXJyYXlJbmRleGluZ01vZGVz
XTsKKyAgICAvLyBMaXN0cyB0aGUgc3RydWN0dXJlcyB3ZSBzaG91bGQgdXNlIGR1cmluZyBhbGxv
Y2F0aW9uIGZvciB0aGVzZSBwYXJ0aWN1bGFyIGluZGV4aW5nIHNoYXBlcy4KKyAgICAvLyBUaGVz
ZSBzdHJ1Y3R1cmVzIHdpbGwgZGlmZmVyIGZyb20gdGhlIG9yaWdpbmFscyBsaXN0IGFib3ZlIHdo
ZW4gd2UgYXJlIGhhdmluZyBhIGJhZCB0aW1lLgorICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlE
IG1fYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlRHVyaW5nQWxsb2NhdGlvbltOdW1iZXJP
ZkFycmF5SW5kZXhpbmdNb2Rlc107CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX251
bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQg
bV9jYWxsZWVTdHJ1Y3R1cmU7CisKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2hvc3RG
dW5jdGlvblN0cnVjdHVyZTsKIAogICAgIHN0cnVjdCBGdW5jdGlvblN0cnVjdHVyZXMgewotICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBhcnJvd0Z1bmN0aW9uU3RydWN0dXJlOwotICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBzbG9wcHlGdW5jdGlvblN0cnVjdHVyZTsKLSAg
ICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gc3RyaWN0RnVuY3Rpb25TdHJ1Y3R1cmU7Cisg
ICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIGFycm93RnVuY3Rpb25TdHJ1Y3R1cmU7Cisg
ICAgICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIHNsb3BweUZ1bmN0aW9uU3RydWN0dXJlOwor
ICAgICAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBzdHJpY3RGdW5jdGlvblN0cnVjdHVyZTsK
ICAgICB9OwogICAgIEZ1bmN0aW9uU3RydWN0dXJlcyBtX2J1aWx0aW5GdW5jdGlvbnM7CiAgICAg
RnVuY3Rpb25TdHJ1Y3R1cmVzIG1fb3JkaW5hcnlGdW5jdGlvbnM7CiAKKyAgICBQcm9wZXJ0eU9m
ZnNldCBtX2Z1bmN0aW9uTmFtZU9mZnNldDsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X3NoYWRvd1JlYWxtT2JqZWN0U3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlE
IG1fcmVnRXhwU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fYXN5bmNG
dW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FzeW5jR2Vu
ZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9n
ZW5lcmF0b3JGdW5jdGlvblN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X2dlbmVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2FzeW5j
R2VuZXJhdG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fYXJyYXlJ
dGVyYXRvclN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX21hcEl0ZXJh
dG9yU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0cnVjdHVyZUlEIG1fc2V0SXRlcmF0b3JT
dHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9yZWdFeHBNYXRjaGVzQXJy
YXlTdHJ1Y3R1cmU7CisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV9yZWdFeHBNYXRjaGVz
QXJyYXlXaXRoSW5kaWNlc1N0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBt
X3JlZ0V4cE1hdGNoZXNJbmRpY2VzQXJyYXlTdHJ1Y3R1cmU7CisKICAgICBMYXp5UHJvcGVydHk8
SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlOwogICAg
IExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX2N1c3RvbUdldHRlckZ1
bmN0aW9uU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0
dXJlPiBtX2N1c3RvbVNldHRlckZ1bmN0aW9uU3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX25hdGl2ZVN0ZEZ1bmN0aW9uU3RydWN0dXJlOwot
ICAgIFByb3BlcnR5T2Zmc2V0IG1fZnVuY3Rpb25OYW1lT2Zmc2V0OwotICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fc2hhZG93UmVhbG1PYmplY3RTdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBTdHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPEFzeW5j
RnVuY3Rpb25Qcm90b3R5cGU+IG1fYXN5bmNGdW5jdGlvblByb3RvdHlwZTsKICAgICBXcml0ZUJh
cnJpZXI8QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZT4gbV9hc3luY0dlbmVyYXRvckZ1
bmN0aW9uUHJvdG90eXBlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYXN5bmNGdW5j
dGlvblN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2FzeW5jR2VuZXJh
dG9yRnVuY3Rpb25TdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9nZW5l
cmF0b3JGdW5jdGlvblN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2dl
bmVyYXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2FzeW5jR2Vu
ZXJhdG9yU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fYXJyYXlJdGVy
YXRvclN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX21hcEl0ZXJhdG9y
U3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fc2V0SXRlcmF0b3JTdHJ1
Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU+IG1faXRl
cmF0b3JSZXN1bHRPYmplY3RTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU+IG1fZGF0YVByb3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZTsK
ICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9hY2Nlc3NvclBy
b3BlcnR5RGVzY3JpcHRvck9iamVjdFN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKLSAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVdpdGhJbmRpY2VzU3RydWN0dXJlOwotICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0luZGljZXNBcnJheVN0cnVjdHVy
ZTsKICAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIFN0cnVjdHVyZT4gbV9tb2R1bGVS
ZWNvcmRTdHJ1Y3R1cmU7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fbW9kdWxlTmFtZXNwYWNlT2JqZWN0U3RydWN0dXJlOwogICAgIExhenlQcm9wZXJ0eTxK
U0dsb2JhbE9iamVjdCwgU3RydWN0dXJlPiBtX3Byb3h5T2JqZWN0U3RydWN0dXJlOwpAQCAtNDQ0
LDE1ICs0NDYsMTkgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdCB7CiAgICAgTGF6eVByb3BlcnR5PEpTR2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmU+IG1fcHJveHlSZXZva2VTdHJ1Y3R1cmU7CiAgICAgTGF6eUNsYXNzU3RydWN0dXJlIG1fc2hh
cmVkQXJyYXlCdWZmZXJTdHJ1Y3R1cmU7CiAKLSNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJ
TVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgXAotICAgIFdyaXRlQmFycmll
cjxjYXBpdGFsTmFtZSAjIyBQcm90b3R5cGU+IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGU7
IFwKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVj
dHVyZTsKKyNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX1NJTVBMRV9UWVBFX1BST1RPVFlQRShj
YXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwg
cHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKKyAgICBXcml0ZUJhcnJpZXI8Y2FwaXRhbE5h
bWUgIyMgUHJvdG90eXBlPiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlOworCisjZGVmaW5l
IERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9TVFJVQ1RVUkUoY2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2Us
IGZlYXR1cmVGbGFnKSBcCisgICAgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgbV8gIyMgcHJvcGVy
TmFtZSAjIyBTdHJ1Y3R1cmU7CiAKICNkZWZpbmUgREVGSU5FX1NUT1JBR0VfRk9SX0xBWllfVFlQ
RShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFt
ZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKICAgICBMYXp5Q2xhc3NTdHJ1Y3R1cmUg
bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmU7CiAKLSAgICBGT1JfRUFDSF9TSU1QTEVfQlVJ
TFRJTl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRSkKLSAgICBGT1JfRUFDSF9C
VUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZ
UEUpCisgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1Jf
U0lNUExFX1RZUEVfU1RSVUNUVVJFKQorICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVS
QVRPUl9UWVBFKERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9TVFJVQ1RVUkUpCisgICAg
Rk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShERUZJTkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZ
UEVfUFJPVE9UWVBFKQorICAgIEZPUl9FQUNIX0JVSUxUSU5fREVSSVZFRF9JVEVSQVRPUl9UWVBF
KERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUpCiAgICAgCiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgU3RydWN0
dXJlPiBtX3dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlOwpAQCAtNDY0LDcgKzQ3MCw4
IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3QgewogCiAgICAgRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoREVGSU5FX1NUT1JBR0VfRk9S
X0xBWllfVFlQRSkKIAotI3VuZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRQorI3Vu
ZGVmIERFRklORV9TVE9SQUdFX0ZPUl9TSU1QTEVfVFlQRV9QUk9UT1RZUEUKKyN1bmRlZiBERUZJ
TkVfU1RPUkFHRV9GT1JfU0lNUExFX1RZUEVfU1RSVUNUVVJFCiAjdW5kZWYgREVGSU5FX1NUT1JB
R0VfRk9SX0xBWllfVFlQRQogCiAgICAgV3JpdGVCYXJyaWVyPEdldHRlclNldHRlcj4gbV9zcGVj
aWVzR2V0dGVyU2V0dGVyOwpAQCAtNTc0LDYgKzU4MSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0
IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogCiAgICAgYm9vbCBtX2V2YWxF
bmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV93ZWJBc3NlbWJseUVuYWJsZWQgeyB0cnVlIH07
CisgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFsc2UgfTsKICAgICB1bnNp
Z25lZCBtX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2ggeyAxIH07CiAgICAgU3RyaW5nIG1fZXZh
bERpc2FibGVkRXJyb3JNZXNzYWdlOwogICAgIFN0cmluZyBtX3dlYkFzc2VtYmx5RGlzYWJsZWRF
cnJvck1lc3NhZ2U7CkBAIC0xMTk0LDcgKzEyMDIsNiBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6
IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyB2b2lkIGNsZWFyUmFyZURhdGEoSlNDZWxsKik7CiAKLSAgICBib29sIG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MgeyBmYWxzZSB9OwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVE
CiAgICAgUmV0YWluUHRyPEpTV3JhcHBlck1hcD4gbV93cmFwcGVyTWFwOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNwcAppbmRleCBmN2Q5NzQ0OWMyMjNiMTJhN2RmNTBhN2YzNDVlZWEwYjZjNmEw
MDU0Li42ZWUzMjBmN2UzZDkwOWI2Y2QwZTM3OTM2MWRhMGFhMGU4NzU3YzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51
bWVyYXRvci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3QKIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGluZGV4ZWRMZW5ndGgsIHVpbnQzMl90IG51
bWJlclN0cnVjdHVyZVByb3BlcnRpZXMsIFdyaXRlQmFycmllcjxKU1N0cmluZz4qIHByb3BlcnR5
TmFtZXNCdWZmZXIsIHVuc2lnbmVkIHByb3BlcnR5TmFtZXNTaXplKQogICAgIDogSlNDZWxsKHZt
LCB2bS5wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yU3RydWN0dXJlLmdldCgpKQogICAgICwgbV9wcm9w
ZXJ0eU5hbWVzKHZtLCB0aGlzLCBwcm9wZXJ0eU5hbWVzQnVmZmVyKQotICAgICwgbV9jYWNoZWRT
dHJ1Y3R1cmVJRChzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlkKCkgOiBTdHJ1Y3R1cmVJRCgpKQor
ICAgICwgbV9jYWNoZWRTdHJ1Y3R1cmVJRCh2bSwgdGhpcywgc3RydWN0dXJlLCBXcml0ZUJhcnJp
ZXJTdHJ1Y3R1cmVJRDo6TWF5QmVOdWxsKQogICAgICwgbV9pbmRleGVkTGVuZ3RoKGluZGV4ZWRM
ZW5ndGgpCiAgICAgLCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgobnVtYmVyU3RydWN0dXJl
UHJvcGVydGllcykKICAgICAsIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXgocHJvcGVydHlOYW1l
c1NpemUpCkBAIC04Niw5ICs4Niw3IEBAIHZvaWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2
aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAg
IHZpc2l0b3IubWFya0F1eGlsaWFyeShwcm9wZXJ0eU5hbWVzKTsKICAgICAgICAgdmlzaXRvci5h
cHBlbmQocHJvcGVydHlOYW1lcywgcHJvcGVydHlOYW1lcyArIHRoaXNPYmplY3QtPnNpemVPZlBy
b3BlcnR5TmFtZXMoKSk7CiAgICAgfQotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNhY2hlZFN0cnVj
dHVyZUlEKCkpCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQodGhpc09iamVjdC0+
Y2FjaGVkU3RydWN0dXJlSUQoKS5kZWNvZGUoKSk7CisgICAgdmlzaXRvci5hcHBlbmQodGhpc09i
amVjdC0+bV9jYWNoZWRTdHJ1Y3R1cmVJRCk7CiB9CiAKIERFRklORV9WSVNJVF9DSElMRFJFTihK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAppbmRleCA1MWRjMTNiNzk1
YjBkZjI1MTgzMjRmNWQ0NTJkYjEzMTgyYTRkMjhiLi42ZDZhZTg3YjhiMzhjNDBjZTI1NjNiODM1
NmJiMDRiNDVjM2QzNGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaApAQCAtNzMsMTEgKzczLDkgQEAgY2xh
c3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAg
U3RydWN0dXJlKiBjYWNoZWRTdHJ1Y3R1cmUoVk0mIHZtKSBjb25zdAogICAgIHsKICAgICAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKLSAgICAgICAgaWYgKCFtX2NhY2hlZFN0cnVjdHVyZUlEKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX2NhY2hlZFN0cnVjdHVy
ZUlELmRlY29kZSgpOworICAgICAgICByZXR1cm4gbV9jYWNoZWRTdHJ1Y3R1cmVJRC5nZXQoKTsK
ICAgICB9Ci0gICAgU3RydWN0dXJlSUQgY2FjaGVkU3RydWN0dXJlSUQoKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFN0cnVjdHVyZUlEOyB9CisgICAgU3RydWN0dXJlSUQgY2FjaGVkU3RydWN0dXJl
SUQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFN0cnVjdHVyZUlELnZhbHVlKCk7IH0KICAgICB1
aW50MzJfdCBpbmRleGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleGVkTGVuZ3RoOyB9
CiAgICAgdWludDMyX3QgZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleCgpIGNvbnN0IHsgcmV0dXJu
IG1fZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleDsgfQogICAgIHVpbnQzMl90IGVuZEdlbmVyaWNQ
cm9wZXJ0eUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9lbmRHZW5lcmljUHJvcGVydHlJbmRleDsg
fQpAQCAtMTA4LDcgKzEwNiw3IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogICAgIC8vIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBpcyBp
bW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGFsbG93cyBWTSB0byBjYWNoZSB0aGUgZW1w
dHkgb25lLgogICAgIC8vIEFmdGVyIGluc3RhbnRpYXRpbmcgSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLCB3ZSBtdXN0IG5vdCBjaGFuZ2UgYW55IGZpZWxkcy4KICAgICBBdXhpbGlhcnlCYXJyaWVy
PFdyaXRlQmFycmllcjxKU1N0cmluZz4qPiBtX3Byb3BlcnR5TmFtZXM7Ci0gICAgU3RydWN0dXJl
SUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKKyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX2Nh
Y2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0aDsKICAgICB1aW50
MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CiAgICAgdWludDMyX3QgbV9lbmRHZW5l
cmljUHJvcGVydHlJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVJhcmVEYXRhLmNwcAppbmRleCAyZjYxZGUxZTJjNzFjZTQ5NjZjYzQ3ZDUzZWEw
MjQ5OWZlZTAwMzhiLi43NjkyNTBkNjY1ZjA0OTJmZWUzYzFmYTA3ZWVmM2UzZjljMmI4MmMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0
YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURh
dGEuY3BwCkBAIC02MCwxMSArNjAsMTAgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiAKIFN0cnVjdHVyZVJhcmVEYXRhOjpTdHJ1Y3R1cmVSYXJlRGF0YShW
TSYgdm0sIFN0cnVjdHVyZSogcHJldmlvdXMpCiAgICAgOiBKU0NlbGwodm0sIHZtLnN0cnVjdHVy
ZVJhcmVEYXRhU3RydWN0dXJlLmdldCgpKQorICAgICwgbV9wcmV2aW91cyh2bSwgdGhpcywgcHJl
dmlvdXMsIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpNYXlCZU51bGwpCiAgICAgLCBtX21heE9m
ZnNldChpbnZhbGlkT2Zmc2V0KQogICAgICwgbV90cmFuc2l0aW9uT2Zmc2V0KGludmFsaWRPZmZz
ZXQpCiB7Ci0gICAgaWYgKHByZXZpb3VzKQotICAgICAgICBtX3ByZXZpb3VzLnNldCh2bSwgdGhp
cywgcHJldmlvdXMpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKaW5kZXggY2Yz
MWU5MjkxM2M4YzU2ZDliNzI1YmYwZGI0MTg1NDE4MTFhYWE3Yi4uNjhiZDlhNjE1YjZmZmNlOWZi
MmQwZDdmY2FhYWMwOTg2NDU1OTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCkBAIC0xNDAsNyArMTQwLDYgQEAgY2xhc3MgU3Ry
dWN0dXJlUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIGJvb2wgdHJ5Q2Fj
aGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYsIFN0cnVjdHVyZSosIFN0
cnVjdHVyZUNoYWluKik7CiAKLSAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3ByZXZpb3Vz
OwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBzb21lIHN0b3J5IGZvciBjbGVhcmluZyB0
aGVzZSBwcm9wZXJ0eSBuYW1lcyBjYWNoZXMgaW4gR0MuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjY1OQogICAgIHVpbnRwdHJfdCBtX2NhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIHsgMCB9OwpAQCAtMTU2LDYgKzE1NSw3IEBAIGNs
YXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNwZWNpYWxQcm9wZXJ0eUNhY2hlPiBtX3NwZWNpYWxQcm9wZXJ0eUNhY2hlOwog
ICAgIEJveDxJbmxpbmVXYXRjaHBvaW50U2V0PiBtX3BvbHlQcm90b1dhdGNocG9pbnQ7CiAKKyAg
ICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCBtX3ByZXZpb3VzOwogICAgIFByb3BlcnR5T2Zmc2V0
IG1fbWF4T2Zmc2V0OwogICAgIFByb3BlcnR5T2Zmc2V0IG1fdHJhbnNpdGlvbk9mZnNldDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCmluZGV4IDRk
MTE4MjEwMWU1NDdjNmJiZTdmYjEwZDg1YWM0NjZlMTJjMDI2ZWQuLjE2MWQ2MzQwZTRkMjcxMzg0
NDZmMDFjZDlkNTUzZDY5NDczYTc5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJHQ0Fzc2Vy
dGlvbnMuaCIKICNpbmNsdWRlICJIYW5kbGVUeXBlcy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlE
LmgiCiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8d3RmL1Jhd1B0clRyYWl0cy5o
PgogI2luY2x1ZGUgPHd0Zi9SYXdWYWx1ZVRyYWl0cy5oPgpAQCAtMjQ4LDQgKzI0OSwxMDQgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFUsIFRyYWl0c1U+
JiBsaHMsIGNvbnN0IFdyaXRlQmFycmkKICAgICByZXR1cm4gbGhzLmdldCgpID09IHJocy5nZXQo
KTsKIH0KIAorY2xhc3MgV3JpdGVCYXJyaWVyU3RydWN0dXJlSUQgeworcHVibGljOgorICAgIGNv
bnN0ZXhwciBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRCgpID0gZGVmYXVsdDsKKworICAgIFdyaXRl
QmFycmllclN0cnVjdHVyZUlEKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgU3RydWN0dXJl
KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHNldCh2bSwgb3duZXIsIHZhbHVlKTsKKyAgICB9CisK
KyAgICBXcml0ZUJhcnJpZXJTdHJ1Y3R1cmVJRChERkc6OkRlc2lyZWRXcml0ZUJhcnJpZXImLCBT
dHJ1Y3R1cmUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzQ29tcGlsYXRpb25UaHJl
YWQoKSk7CisgICAgICAgIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIodmFsdWUpOworICAgIH0KKwor
ICAgIGVudW0gTWF5QmVOdWxsVGFnIHsgTWF5QmVOdWxsIH07CisgICAgV3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlLCBN
YXlCZU51bGxUYWcpCisgICAgeworICAgICAgICBzZXRNYXlCZU51bGwodm0sIG93bmVyLCB2YWx1
ZSk7CisgICAgfQorCisgICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1
Y3R1cmUqIHZhbHVlKTsKKworICAgIHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwgY29uc3QgSlNDZWxs
KiBvd25lciwgU3RydWN0dXJlKiB2YWx1ZSk7CisKKyAgICAvLyBTaG91bGQgb25seSBiZSB1c2Vk
IGJ5IEpTQ2VsbCBkdXJpbmcgZWFybHkgaW5pdGlhbGlzYXRpb24KKyAgICAvLyB3aGVuIHNvbWUg
YmFzaWMgdHlwZXMgYXJlbid0IHlldCBjb21wbGV0ZWx5IGluc3RhbnRpYXRlZAorICAgIHZvaWQg
c2V0RWFybHlWYWx1ZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFN0cnVjdHVyZSogdmFsdWUp
OworCisgICAgU3RydWN0dXJlKiBnZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgLy8gQ29weSBt
X2NlbGwgdG8gYSBsb2NhbCB0byBhdm9pZCBtdWx0aXBsZS1yZWFkIGlzc3Vlcy4gKFNlZSA8aHR0
cDovL3dlYmtpdC5vcmcvYi8xMTA4NTQ+KQorICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJ
RCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkgeworICAgICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAgICAgICAg
ICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOwor
ICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKKyAgICBTdHJ1Y3R1cmUqIG9wZXJhdG9yKigpIGNvbnN0CisgICAg
eworICAgICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAg
ICAgIEFTU0VSVChzdHJ1Y3R1cmVJRCk7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
c3RydWN0dXJlSUQuZGVjb2RlKCk7CisgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9j
YXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOworICAgICAgICByZXR1cm4gc3RydWN0dXJlOworICAg
IH0KKworICAgIFN0cnVjdHVyZSogb3BlcmF0b3ItPigpIGNvbnN0CisgICAgeworICAgICAgICBT
dHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIEFTU0VSVChz
dHJ1Y3R1cmVJRCk7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3RydWN0dXJlSUQu
ZGVjb2RlKCk7CisgICAgICAgIHZhbGlkYXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+
KHN0cnVjdHVyZSkpOworICAgICAgICByZXR1cm4gc3RydWN0dXJlOworICAgIH0KKworICAgIHZv
aWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVjdHVyZUlEIHsg
fTsKKyAgICB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiAhIW1fc3RydWN0dXJlSUQ7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRv
ciEoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICFtX3N0cnVjdHVyZUlEOworICAgIH0K
KworICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihTdHJ1Y3R1cmUqIHZhbHVlKQorICAg
IHsKKyNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisgICAgICAgIFdyaXRlQmFy
cmllckNvdW50ZXJzOjp1c2VzV2l0aG91dEJhcnJpZXJGcm9tQ3BwLmNvdW50KCk7CisjZW5kaWYK
KyAgICAgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICAgICAgbV9zdHJ1Y3R1cmVJRCA9IFN0cnVj
dHVyZUlEIHsgfTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3N0
cnVjdHVyZUlEID0gU3RydWN0dXJlSUQ6OmVuY29kZSh2YWx1ZSk7CisgICAgfQorCisgICAgU3Ry
dWN0dXJlKiB1bnZhbGlkYXRlZEdldCgpIGNvbnN0CisgICAgeworICAgICAgICBTdHJ1Y3R1cmVJ
RCBzdHJ1Y3R1cmVJRCA9IG1fc3RydWN0dXJlSUQ7CisgICAgICAgIGlmIChzdHJ1Y3R1cmVJRCkK
KyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVJRC5kZWNvZGUoKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCisgICAgU3RydWN0dXJlSUQgdmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3N0cnVjdHVyZUlEOyB9CisKK3ByaXZhdGU6CisgICAgU3RydWN0dXJlSUQgbV9zdHJ1Y3R1
cmVJRDsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCmluZGV4IGY4ODdlNTMxZjkxY2Fl
OWNjNDJkY2Y2MDRhMzE2MjNlZDk3NzJlZjguLmVlNDA4MDJjMTliZjMxYzk2ZjljMjM3NjJlZDhk
YThjYTEzNzNkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dy
aXRlQmFycmllcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
cml0ZUJhcnJpZXJJbmxpbmVzLmgKQEAgLTYxLDQgKzYxLDI5IEBAIGlubGluZSB2b2lkIFdyaXRl
QmFycmllckJhc2U8VW5rbm93biwgUmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+OjpzZXQoVk0mIHZt
LCBjb25zCiAgICAgdm0ud3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CiB9CiAKK2lubGluZSB2
b2lkIFdyaXRlQmFycmllclN0cnVjdHVyZUlEOjpzZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93
bmVyLCBTdHJ1Y3R1cmUqIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZSk7CisgICAgQVNTRVJU
KCFPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7
CisgICAgdmFsaWRhdGVDZWxsKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpKTsKKyAg
ICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOworfQorCitpbmxpbmUgdm9pZCBXcml0
ZUJhcnJpZXJTdHJ1Y3R1cmVJRDo6c2V0TWF5QmVOdWxsKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBv
d25lciwgU3RydWN0dXJlKiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUpCisgICAgICAgIHZhbGlk
YXRlQ2VsbChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7CisgICAgc2V0RWFybHlW
YWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKK30KKworaW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyU3Ry
dWN0dXJlSUQ6OnNldEVhcmx5VmFsdWUoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBTdHJ1
Y3R1cmUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgbV9zdHJ1Y3R1cmVJ
RCA9IFN0cnVjdHVyZUlEIHsgfTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3N0cnVj
dHVyZUlEID0gU3RydWN0dXJlSUQ6OmVuY29kZSh2YWx1ZSk7CisgICAgdm0ud3JpdGVCYXJyaWVy
KG93bmVyLCByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0Rv
bGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApp
bmRleCA0NDM0NmRhOTVhMzE4MGExNTFjOWYyODg3YmQ1ODQ3ZjIxODAzYTVmLi43ZDI5YjI5ZGQy
ODY3MDQ0NjY1Njc5N2Y0NzQzNWJjM2VjNDM4OGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC00MDEyLDcgKzQwMTIsNyBAQCB2b2lkIEpTRG9sbGFy
Vk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5zdXJl
QXJyYXlTdG9yYWdlIiwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDEpOwogCi0gICAgbV9v
YmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RT
dGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSkpOworICAg
IG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0
dXJlSUQuc2V0KHZtLCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVj
dFNsb3RTdGF0dXM6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSkp
OwogfQogCiB2b2lkIEpTRG9sbGFyVk06OmFkZEZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rp
b24sIHVuc2lnbmVkIGFyZ3VtZW50cykKQEAgLTQwMzQsNyArNDAzNCw3IEBAIHZvaWQgSlNEb2xs
YXJWTTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQog
ewogICAgIEpTRG9sbGFyVk0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEb2xsYXJWTSo+KGNlbGwp
OwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgdmlz
aXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0
Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUpOworICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmpl
Y3QtPm1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3Ry
dWN0dXJlSUQpOwogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNEb2xsYXJWTSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uaAppbmRleCAwZjVkOGFkMzU5ZGI2NTI0
YjAwMDRjNTE2Yjg1MDE2M2ZlNzc3MDM2Li4wM2ZlMGE5NjAzZTQwZTNkMjcwNzA3MDQ4MDZlZTgw
MmU3YzU3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmgKQEAg
LTYxLDcgKzYxLDcgQEAgY2xhc3MgSlNEb2xsYXJWTSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0KIAotICAgIFN0cnVjdHVy
ZSogb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0
dXJlKCkgeyByZXR1cm4gbV9vYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNs
b3RTdGF0dXNTdHJ1Y3R1cmUuZ2V0KCk7IH0KKyAgICBTdHJ1Y3R1cmUqIG9iamVjdERvaW5nU2lk
ZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1c1N0cnVjdHVyZSgpIHsgcmV0dXJuIG1f
b2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJl
SUQuZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6CiAgICAgSlNEb2xsYXJWTShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBKU0RvbGxhclZNIGZpbmFs
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAgICAgREVDTEFSRV9WSVNJVF9DSElMRFJF
TjsKIAotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0
UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlOworICAgIFdyaXRlQmFycmllclN0
cnVjdHVyZUlEIG1fb2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3Rh
dHVzU3RydWN0dXJlSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>
<flag name="review"
          id="471631"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>