<?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>231202</bug_id>
          
          <creation_ts>2021-10-04 17:58:14 -0700</creation_ts>
          <short_desc>[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared</short_desc>
          <delta_ts>2022-07-12 21:08:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231419</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>c.jaentsch</cc>
    
    <cc>eduard.comanici</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>1800321</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 17:58:14 -0700</bug_when>
    <thetext>[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800324</commentid>
    <comment_count>1</comment_count>
      <attachid>440132</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 18:03:48 -0700</bug_when>
    <thetext>Created attachment 440132
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800325</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 18:03:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/83815122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800345</commentid>
    <comment_count>3</comment_count>
      <attachid>440140</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 18:42:34 -0700</bug_when>
    <thetext>Created attachment 440140
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800346</commentid>
    <comment_count>4</comment_count>
      <attachid>440141</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 18:48:28 -0700</bug_when>
    <thetext>Created attachment 440141
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800348</commentid>
    <comment_count>5</comment_count>
      <attachid>440142</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 18:52:17 -0700</bug_when>
    <thetext>Created attachment 440142
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800352</commentid>
    <comment_count>6</comment_count>
      <attachid>440145</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 19:19:52 -0700</bug_when>
    <thetext>Created attachment 440145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800354</commentid>
    <comment_count>7</comment_count>
      <attachid>440147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-04 19:30:32 -0700</bug_when>
    <thetext>Created attachment 440147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800631</commentid>
    <comment_count>8</comment_count>
      <attachid>440147</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-05 10:31:36 -0700</bug_when>
    <thetext>Comment on attachment 440147
Patch

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

r=me with some nits

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        invariant was broken since we now have shared empty JSPropertyNameEnumerator, which can

Nit: shared empty =&gt; shared empty sentinel. Might be a bit clearer.

&gt; Source/JavaScriptCore/ChangeLog:27
&gt; +        While reviewing the code, we also found that watchpoint-based validation didn&apos;t care PolyProto.

Nit: care =&gt; care about?

&gt; Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h:107
&gt; +    // JSPropertyNameEnumerator is immutable data structure, which allows VM to cache empty one.

Typo: cache empty one =&gt; cache the empty one.

&gt; Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h:131
&gt; +            if (!(enumeratorAndFlag &amp; StructureRareData::cachedPropertyNameEnumeratorIsValidatedViaTraversingFlag))

Nit: Maybe use OptionSet I personally prefer that but we use this idiom everywhere so idc too much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800636</commentid>
    <comment_count>9</comment_count>
      <attachid>440147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-05 10:48:55 -0700</bug_when>
    <thetext>Comment on attachment 440147
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +        invariant was broken since we now have shared empty JSPropertyNameEnumerator, which can
&gt; 
&gt; Nit: shared empty =&gt; shared empty sentinel. Might be a bit clearer.

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:27
&gt;&gt; +        While reviewing the code, we also found that watchpoint-based validation didn&apos;t care PolyProto.
&gt; 
&gt; Nit: care =&gt; care about?

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h:107
&gt;&gt; +    // JSPropertyNameEnumerator is immutable data structure, which allows VM to cache empty one.
&gt; 
&gt; Typo: cache empty one =&gt; cache the empty one.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h:131
&gt;&gt; +            if (!(enumeratorAndFlag &amp; StructureRareData::cachedPropertyNameEnumeratorIsValidatedViaTraversingFlag))
&gt; 
&gt; Nit: Maybe use OptionSet I personally prefer that but we use this idiom everywhere so idc too much.

Because this is uintptr_t including enumerator pointer itself, we cannot use OptionSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800637</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-05 10:50:00 -0700</bug_when>
    <thetext>Committed r283556 (242521@main): &lt;https://commits.webkit.org/242521@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802873</commentid>
    <comment_count>11</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2021-10-11 16:27:23 -0700</bug_when>
    <thetext>*** Bug 231419 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1882911</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-07-12 21:08:40 -0700</bug_when>
    <thetext>*** Bug 231572 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440132</attachid>
            <date>2021-10-04 18:03:48 -0700</date>
            <delta_ts>2021-10-04 19:04:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231202-20211004180347.patch</filename>
            <type>text/plain</type>
            <size>18410</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDRiMzJhMjkzNGQxZmMzZmNhZDkwNWYyMDk4ZjE0NDMxN2E5N2NkLi4yYTdjNmMxOGFmN2U2NTA2
MTY4MmNhZWQzNDEyYTAxNjUxZDViZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMS0xMC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBzaG91bGQgbm90IGhh
dmUgY2FjaGVkIHByb3RvdHlwZSBjaGFpbiBzaW5jZSBlbXB0eSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IgaXMgc2hhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMDIKKyAgICAgICAgcmRhcjovLzgzODE1MTIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjI4MjAxNCBhc3N1bWVkIGFuIGludmFy
aWFudCB0aGF0IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcidzIFN0cnVjdHVyZUNoYWluIGlzIGlt
bXV0YWJsZS4KKyAgICAgICAgVGhpcyBpbnZhcmlhbnQgaXMgYWxzbyB1c2VkIGluIHZhbGlkYXRp
b24gb2YgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLiBIb3dldmVyLCB0aGlzCisgICAgICAgIGlu
dmFyaWFudCB3YXMgYnJva2VuIHNpbmNlIHdlIG5vdyBoYXZlIHNoYXJlZCBlbXB0eSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IsIHdoaWNoIGNhbgorICAgICAgICBiZSB1c2VkIGZvciBkaWZmZXJl
bnQgc3RydWN0dXJlcyBoYXZpbmcgZGlmZmVyZW50IHByb3RvdHlwZSBjaGFpbi4KKworICAgICAg
ICBTaW5jZSBub3cgd2UgaGF2ZSBzaGFyZWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlCisgICAgICAgIFN0cnVjdHVyZUNo
YWluIGluIGl0cyBtZW1iZXIuIFdoZW4gaW52YWxpZGF0aW5nIFN0cnVjdHVyZUNoYWluIGluIFN0
cnVjdHVyZSwgd2UgYWxzbyBjbGVhcgorICAgICAgICBjYWNoZWQgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yIHNvIHRoYXQgd2UgZG8gbm90IGdldCBhIHN0YWxlIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciBmcm9tCisgICAgICAgIFN0cnVjdHVyZSBldmVuIHRob3VnaCB3YXRjaHBvaW50LWJhc2Vk
IHZhbGlkYXRpb24gaXMgbm90IHVzZWQuCisKKyAgICAgICAgV2hpbGUgcmV2aWV3aW5nIHRoZSBj
b2RlLCB3ZSBhbHNvIGZvdW5kIHRoYXQgd2F0Y2hwb2ludC1iYXNlZCB2YWxpZGF0aW9uIGRpZG4n
dCBjYXJlIFBvbHlQcm90by4KKyAgICAgICAgV2Ugc2hvdWxkIGRpc2FibGUgd2F0Y2hwb2ludC1i
YXNlZCB2YWxpZGF0aW9uIGlmIFBvbHlQcm90byBpcyB1c2VkLgorCisgICAgICAgICogZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRo
cy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAg
KiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAoSlNDOjpwcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvcGVydHlO
YW1lRW51bWVyYXRvclNob3VsZFdhdGNoIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbiBj
b25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y2xlYXJDYWNoZWRQcm90b3R5cGVDaGFp
bik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oOgorICAgICAgICAqIHJ1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yVmlhV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpj
bGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNlZFZhbGlkYXRpb24pOiBEZWxldGVk
LgorCiAyMDIxLTEwLTAzICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAK
ICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVhcmx5IE9jdG9iZXIgMjAyMSBlZGl0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oCmluZGV4IDE5YTJjZjg3OWJiYTIxZDdkMTJmZWNkY2QwZWQ2ZmZlOWNkNjQy
YjYuLmI1MGFiOTY5YjQ0MWQ0ZDNkODFlZWRlNmI1MGUxZjlkZDczZTY5NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CkBAIC0xMTAsNyArMTEwLDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAg
IG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNldCgpKSBc
CiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2NhY2hlZElubGluZUNhcGFjaXR5
LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNhY2hlZElubGluZUNhcGFjaXR5T2Zmc2V0KCkp
IFwKICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkUHJvcGVydHlOYW1l
c1ZlY3RvciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRQcm9wZXJ0eU5hbWVzVmVj
dG9yT2Zmc2V0KCkpIFwKLSAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVk
UHJvdG90eXBlQ2hhaW4sIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6b2Zmc2V0T2ZDYWNoZWRQ
cm90b3R5cGVDaGFpbigpKSBcCiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2Nh
Y2hlZFN0cnVjdHVyZUlELCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNhY2hlZFN0cnVjdHVy
ZUlET2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfZW5kR2Vu
ZXJpY1Byb3BlcnR5SW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZW5kR2VuZXJpY1By
b3BlcnR5SW5kZXhPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cl9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmVu
ZFN0cnVjdHVyZVByb3BlcnR5SW5kZXhPZmZzZXQoKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNDJlZmI3MWM0YTY0MWQ2MjM5NmQ3
NGY2MDQ1ZGE0NjZjNWZjODMxNS4uM2E0NmU0ZDBjM2Y2MGM1M2NkYTBhYmRlZjQwYzBlNjFiMzIw
YWJlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCkBAIC05NzQsNyArOTc0LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1
dF9ieV9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX29mZnNldCA9
IHNsb3QuY2FjaGVkT2Zmc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRh
dGEubV9uZXdTdHJ1Y3R1cmVJRCA9IG5ld1N0cnVjdHVyZS0+aWQoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoIShieXRlY29kZS5tX2ZsYWdzLmlzRGlyZWN0KCkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cnVjdHVyZUNoYWluKiBjaGFpbiA9IG5ld1N0
cnVjdHVyZS0+cHJvdG90eXBlQ2hhaW4oZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlQ2VsbCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4g
PSBuZXdTdHJ1Y3R1cmUtPnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGFzT2JqZWN0
KGJhc2VDZWxsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChjaGFp
bik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fc3RydWN0dXJl
Q2hhaW4uc2V0KHZtLCBjb2RlQmxvY2ssIGNoYWluKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4NWQ5NWFhY2EyZDNiZDc0YWU0YmZjMjk2
ZDc1NmEwNzkzMzQyMDgxLi5kMjgxZWNmOTNhZmRkOTFlOTMxMWUxMzJhMjk5NTc2NjYzYjQwN2Mw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTg2LDcgKzg2LDYgQEAgdm9pZCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYg
dmlzaXRvcikKICAgICAgICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KHByb3BlcnR5TmFtZXMpOwog
ICAgICAgICB2aXNpdG9yLmFwcGVuZChwcm9wZXJ0eU5hbWVzLCBwcm9wZXJ0eU5hbWVzICsgdGhp
c09iamVjdC0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICB9Ci0gICAgdmlzaXRvci5hcHBl
bmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CiAKICAgICBpZiAodGhpc09iamVjdC0+
Y2FjaGVkU3RydWN0dXJlSUQoKSkgewogICAgICAgICBWTSYgdm0gPSB2aXNpdG9yLnZtKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
RW51bWVyYXRvci5oCmluZGV4IDY2NjJlOWZhODFiMjhiMDk2MjM3YTMwYzVkNzlhYzk0MGVjMTMy
N2EuLmQzNWIxOGNhZGZhNTE2OGIzNDAyZTBiYjY0ZTc5NzUyNDQ4N2FjZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVy
YXRvci5oCkBAIC03MiwxMCArNzIsNiBAQCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1lcy5n
ZXQoKVtpbmRleF0uZ2V0KCk7CiAgICAgfQogCi0gICAgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFBy
b3RvdHlwZUNoYWluKCkgY29uc3QgeyByZXR1cm4gbV9wcm90b3R5cGVDaGFpbi5nZXQoKTsgfQot
ICAgIHZvaWQgc2V0Q2FjaGVkUHJvdG90eXBlQ2hhaW4oVk0mIHZtLCBTdHJ1Y3R1cmVDaGFpbiog
cHJvdG90eXBlQ2hhaW4pIHsgcmV0dXJuIG1fcHJvdG90eXBlQ2hhaW4uc2V0KHZtLCB0aGlzLCBw
cm90b3R5cGVDaGFpbik7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkUHJv
dG90eXBlQ2hhaW4oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yLCBtX3Byb3RvdHlwZUNoYWluKTsgfQotCiAgICAgU3RydWN0dXJlKiBjYWNoZWRTdHJ1
Y3R1cmUoVk0mIHZtKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKCFtX2NhY2hlZFN0cnVjdHVy
ZUlEKQpAQCAtMTIwLDcgKzExNiw2IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBm
aW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBSZWZQ
dHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmKTsKIAogICAgIEF1eGlsaWFyeUJhcnJpZXI8V3Jp
dGVCYXJyaWVyPEpTU3RyaW5nPio+IG1fcHJvcGVydHlOYW1lczsKLSAgICBXcml0ZUJhcnJpZXI8
U3RydWN0dXJlQ2hhaW4+IG1fcHJvdG90eXBlQ2hhaW47CiAgICAgU3RydWN0dXJlSUQgbV9jYWNo
ZWRTdHJ1Y3R1cmVJRDsKICAgICB1aW50MzJfdCBtX2luZGV4ZWRMZW5ndGg7CiAgICAgdWludDMy
X3QgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwpAQCAtMTM4LDEzICsxMzMsMTUgQEAgaW5s
aW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogcHJvcGVydHlOYW1lRW51bWVyYXRvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2IKIAogICAgIHVpbnQzMl90IGluZGV4ZWRMZW5ndGggPSBiYXNl
LT5nZXRFbnVtZXJhYmxlTGVuZ3RoKGdsb2JhbE9iamVjdCk7CiAKLSAgICBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxscHRyOwotCiAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBiYXNlLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghaW5kZXhlZExlbmd0aAotICAg
ICAgICAmJiAoZW51bWVyYXRvciA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcigpKSkgewotICAgICAgICBpZiAoZW51bWVyYXRvci0+dmFsaWRhdGVkVmlhV2F0Y2hwb2lu
dCgpIHx8IGVudW1lcmF0b3ItPmNhY2hlZFByb3RvdHlwZUNoYWluKCkgPT0gc3RydWN0dXJlLT5w
cm90b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIGVu
dW1lcmF0b3I7CisgICAgaWYgKCFpbmRleGVkTGVuZ3RoKSB7CisgICAgICAgIGlmIChhdXRvKiBl
bnVtZXJhdG9yID0gc3RydWN0dXJlLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpIHsK
KyAgICAgICAgICAgIGlmIChlbnVtZXJhdG9yLT52YWxpZGF0ZWRWaWFXYXRjaHBvaW50KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGVudW1lcmF0b3I7CisgICAgICAgICAgICBzdHJ1Y3R1cmUt
PnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2UpOyAvLyBSZWZyZXNoIGNhY2hl
ZCBzdHJ1Y3R1cmUgY2hhaW4uCisgICAgICAgICAgICBpZiAoKGVudW1lcmF0b3IgPSBzdHJ1Y3R1
cmUtPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGVudW1lcmF0b3I7CisgICAgICAgIH0KICAgICB9CiAKICAgICB1aW50MzJfdCBudW1iZXJT
dHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsKQEAgLTE2MywxNCArMTYwLDE1IEBAIGlubGluZSBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3IqIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iCiAgICAgICAgIG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMgPSAwOwogICAg
IH0KIAorICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG51bGxwdHI7
CiAgICAgaWYgKCFpbmRleGVkTGVuZ3RoICYmICFwcm9wZXJ0eU5hbWVzLnNpemUoKSkKICAgICAg
ICAgZW51bWVyYXRvciA9IHZtLmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogICAgIGVs
c2UKICAgICAgICAgZW51bWVyYXRvciA9IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRl
KHZtLCBzdHJ1Y3R1cmVBZnRlckdldHRpbmdQcm9wZXJ0eU5hbWVzLCBpbmRleGVkTGVuZ3RoLCBu
dW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBXVEZNb3ZlKHByb3BlcnR5TmFtZXMpKTsKICAgICBp
ZiAoIWluZGV4ZWRMZW5ndGggJiYgc3VjY2Vzc2Z1bGx5Tm9ybWFsaXplZENoYWluICYmIHN0cnVj
dHVyZUFmdGVyR2V0dGluZ1Byb3BlcnR5TmFtZXMgPT0gc3RydWN0dXJlKSB7Ci0gICAgICAgIGVu
dW1lcmF0b3ItPnNldENhY2hlZFByb3RvdHlwZUNoYWluKHZtLCBzdHJ1Y3R1cmUtPnByb3RvdHlw
ZUNoYWluKGdsb2JhbE9iamVjdCwgYmFzZSkpOworICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hh
aW4gPSBzdHJ1Y3R1cmUtPnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2UpOwog
ICAgICAgICBpZiAoc3RydWN0dXJlLT5jYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3Iodm0p
KQotICAgICAgICAgICAgc3RydWN0dXJlLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KHZtLCBlbnVtZXJhdG9yKTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0Q2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvcih2bSwgZW51bWVyYXRvciwgY2hhaW4pOwogICAgIH0KICAgICByZXR1
cm4gZW51bWVyYXRvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuY3BwCmluZGV4IGQxNjQzN2Y2M2IzM2M5ZTBlZWUyMzk0NThmZjUwNjYwZGE0NzVjNmYuLjNh
OGI1YjRiZjM2NDkzYjA0MDUwMjRkMzRmOTFlODQ3MGRhOTk3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTIyOSw5ICsxMjI5LDE1IEBAIHZv
aWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcih0aGlzT2JqZWN0LT5tX2xvY2sp
OwogICAgIAogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fZ2xvYmFsT2JqZWN0KTsK
LSAgICBpZiAoIXRoaXNPYmplY3QtPmlzT2JqZWN0KCkpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5p
c09iamVjdCgpKSB7CisgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGNsZWFyIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvciBzaW5jZSBpdCBpcyBuZXZlciBjYWNoZWQgZm9yIG5vbi1vYmplY3Qg
U3RydWN0dXJlLgorICAgICAgICAvLyBXZSBkbyBub3QgaGF2ZSBjb2RlIGNsZWFyaW5nIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciBzaW5jZSB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgY29u
Y3VycmVudGx5LgogICAgICAgICB0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3RvdHlwZUNoYWluLmNs
ZWFyKCk7Ci0gICAgZWxzZSB7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgaWYgKGF1dG8q
IHJhcmVEYXRhID0gdHJ5UmFyZURhdGEoKSkKKyAgICAgICAgICAgIEFTU0VSVCghcmFyZURhdGEt
PmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CisjZW5kaWYKKyAgICB9IGVsc2Ugewog
ICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZSk7CiAgICAgICAg
IHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4pOwogICAg
IH0KQEAgLTEzOTgsMTIgKzE0MDQsMTQgQEAgYm9vbCBDbGFzc0luZm86Omhhc1N0YXRpY1NldHRl
ck9yUmVhZG9ubHlQcm9wZXJ0aWVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgU3RydWN0dXJlOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQordm9pZCBTdHJ1Y3R1cmU6OnNldENh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IqIGVudW1lcmF0b3IsIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKIHsKKyAgICBBU1NFUlQodHlw
ZUluZm8oKS5pc09iamVjdCgpKTsKICAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKICAgICBp
ZiAoIWhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGFsbG9jYXRlUmFyZURhdGEodm0pOwotICAgIHJh
cmVEYXRhKCktPnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIGVudW1lcmF0b3Ip
OworICAgIEFTU0VSVChjaGFpbiA9PSBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpKTsKKyAg
ICByYXJlRGF0YSgpLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCB0aGlzLCBl
bnVtZXJhdG9yLCBjaGFpbik7CiB9CiAKIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogU3RydWN0
dXJlOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMjZiODc5Mzg1MGIzZjE4ZjFhZWVhMTVi
OGE4OWIxYTg3ZmMzMTNiYy4uOTlhZDIyYTgzMGMwOWE3YWNiZjBiNWU0ZTg2NjhhMWQ3NDRhODQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTMwNyw3
ICszMDcsNiBAQCBjbGFzcyBTdHJ1Y3R1cmUgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBKU1ZhbHVl
IHByb3RvdHlwZUZvckxvb2t1cChKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIEpTVmFsdWUg
cHJvdG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBiYXNlKSBjb25zdDsK
ICAgICBTdHJ1Y3R1cmVDaGFpbiogcHJvdG90eXBlQ2hhaW4oVk0mLCBKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0KiBiYXNlKSBjb25zdDsKLSAgICBTdHJ1Y3R1cmVDaGFpbiogcHJvdG90eXBlQ2hh
aW4oSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogYmFzZSkgY29uc3Q7CiAgICAgREVDTEFSRV9W
SVNJVF9DSElMRFJFTjsKICAgICAKICAgICAvLyBBIFN0cnVjdHVyZSBpcyBjaGVhcCB0byBtYXJr
IGR1cmluZyBHQyBpZiBkb2luZyBzbyB3b3VsZCBvbmx5IGFkZCBhIHNtYWxsIGFuZCBib3VuZGVk
IGFtb3VudApAQCAtNTMwLDcgKzUyOSw3IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0Nl
bGwgewogICAgICAgICAgICAgc2V0SGFzUmVhZE9ubHlPckdldHRlclNldHRlclByb3BlcnRpZXNF
eGNsdWRpbmdQcm90byh0cnVlKTsKICAgICB9CiAKLSAgICB2b2lkIHNldENhY2hlZFByb3BlcnR5
TmFtZUVudW1lcmF0b3IoVk0mLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqKTsKKyAgICB2b2lk
IHNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mLCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IqLCBTdHJ1Y3R1cmVDaGFpbiopOwogICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciog
Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0OwogICAgIGJvb2wgY2FuQ2FjaGVQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJikgY29uc3Q7CiAgICAgYm9vbCBjYW5BY2Nlc3NQcm9w
ZXJ0aWVzUXVpY2tseUZvckVudW1lcmF0aW9uKCkgY29uc3Q7CkBAIC02MzcsNyArNjM2LDcgQEAg
Y2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIHByb3BlcnR5TmFt
ZUVudW1lcmF0b3JTaG91bGRXYXRjaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gZGZn
U2hvdWxkV2F0Y2goKTsKKyAgICAgICAgcmV0dXJuIGRmZ1Nob3VsZFdhdGNoKCkgJiYgIWhhc1Bv
bHlQcm90bygpOwogICAgIH0KICAgICAgICAgCiAgICAgdm9pZCBhZGRUcmFuc2l0aW9uV2F0Y2hw
b2ludChXYXRjaHBvaW50KiB3YXRjaHBvaW50KSBjb25zdApAQCAtODQ5LDYgKzg0OCw4IEBAIGNs
YXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogICAgIAogICAgIHZvaWQgc3RhcnRXYXRj
aGluZ0ludGVybmFsUHJvcGVydGllcyhWTSYpOwogCisgICAgdm9pZCBjbGVhckNhY2hlZFByb3Rv
dHlwZUNoYWluKCk7CisKICAgICBzdGF0aWMgY29uc3RleHByIGludCBzX21heFRyYW5zaXRpb25M
ZW5ndGggPSA2NDsKICAgICBzdGF0aWMgY29uc3RleHByIGludCBzX21heFRyYW5zaXRpb25MZW5n
dGhGb3JOb25FdmFsUHV0QnlJZCA9IDUxMjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCmluZGV4IDUzNWYwZTE5YTRiYjQ5YmVlYzZhMGQx
M2E0OWY2YmJiMGYzN2NkZDMuLjQwYzlmMGE0YWYyYjY1ODhhOWIyNjQ5ODQzMDY2ZGJkYzc5MGQ0
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxp
bmVzLmgKQEAgLTM0MiwxNiArMzQyLDEyIEBAIGlubGluZSBTdHJ1Y3R1cmVDaGFpbiogU3RydWN0
dXJlOjpwcm90b3R5cGVDaGFpbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAg
Ly8gV2UgY2FjaGUgb3VyIHByb3RvdHlwZSBjaGFpbiBzbyBvdXIgY2xpZW50cyBjYW4gc2hhcmUg
aXQuCiAgICAgaWYgKCFpc1ZhbGlkKGdsb2JhbE9iamVjdCwgbV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5nZXQoKSwgYmFzZSkpIHsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90b3R5cGVG
b3JMb29rdXAoZ2xvYmFsT2JqZWN0LCBiYXNlKTsKKyAgICAgICAgY29uc3RfY2FzdDxTdHJ1Y3R1
cmUqPih0aGlzKS0+Y2xlYXJDYWNoZWRQcm90b3R5cGVDaGFpbigpOwogICAgICAgICBtX2NhY2hl
ZFByb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgU3RydWN0dXJlQ2hhaW46OmNyZWF0ZSh2bSwg
cHJvdG90eXBlLmlzTnVsbCgpID8gbnVsbHB0ciA6IGFzT2JqZWN0KHByb3RvdHlwZSkpKTsKICAg
ICB9CiAgICAgcmV0dXJuIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCk7CiB9CiAKLWlubGlu
ZSBTdHJ1Y3R1cmVDaGFpbiogU3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSkgY29uc3QKLXsKLSAgICByZXR1cm4gcHJv
dG90eXBlQ2hhaW4oZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QsIGJhc2UpOwotfQot
CiBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluLCBKU09iamVjdCogYmFz
ZSkgY29uc3QKIHsKICAgICBpZiAoIWNhY2hlZFByb3RvdHlwZUNoYWluKQpAQCAtNzU5LDQgKzc1
NSwxMiBAQCBpbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6OmdldChV
bmlxdWVkU3RyaW5nSW1wbCogcmVwLCB1bnNpZ25lZAogICAgIHJldHVybiBtYXAoKS0+Z2V0KFN0
cnVjdHVyZVRyYW5zaXRpb25UYWJsZTo6SGFzaDo6S2V5KHJlcCwgYXR0cmlidXRlcywgdHJhbnNp
dGlvbktpbmQpKTsKIH0KIAoraW5saW5lIHZvaWQgU3RydWN0dXJlOjpjbGVhckNhY2hlZFByb3Rv
dHlwZUNoYWluKCkKK3sKKyAgICBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmNsZWFyKCk7CisgICAg
aWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1cm47CisgICAgcmFyZURhdGEoKS0+Y2xl
YXJDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRh
LmgKaW5kZXggNzdjMDMzYTY5ZmU1NGMwZWE4MjUyOThiYTk5ZmE2ZWQxOTc0MGU1Zi4uODZkNzMy
YWUwNWI3ODc2Njc2NzIzMjg1NzUwN2MyYjQ0ZjhiYTM1YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCkBAIC04OSw3ICs4OSw4IEBA
IGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdm9p
ZCBjYWNoZVNwZWNpYWxQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIFZNJiwgU3RydWN0dXJlKiBi
YXNlU3RydWN0dXJlLCBKU1ZhbHVlLCBDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXksIGNvbnN0IFBy
b3BlcnR5U2xvdCYpOwogCiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKik7CisgICAgdm9pZCBz
ZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgU3RydWN0dXJlKiwgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKiwgU3RydWN0dXJlQ2hhaW4qKTsKKyAgICB2b2lkIGNsZWFyQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogCiAgICAgSlNJbW11dGFibGVCdXR0ZXJmbHkqIGNh
Y2hlZFByb3BlcnR5TmFtZXMoQ2FjaGVkUHJvcGVydHlOYW1lc0tpbmQpIGNvbnN0OwogICAgIEpT
SW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNoZWRQcm9wZXJ0eU5hbWVzSWdub3JpbmdTZW50aW5lbChD
YWNoZWRQcm9wZXJ0eU5hbWVzS2luZCkgY29uc3Q7CkBAIC0xMTcsOCArMTE4LDYgQEAgY2xhc3Mg
U3RydWN0dXJlUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIHZvaWQgZmlu
YWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKTsKIAotICAgIHZvaWQgaW52YWxpZGF0ZVdhdGNocG9p
bnRCYXNlZFZhbGlkYXRpb24oKTsKLQogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTExJbnRP
ZmZzZXRzRXh0cmFjdG9yOwogICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7CkBAIC0xMzUsNyAr
MTM0LDcgQEAgY2xhc3MgU3RydWN0dXJlUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICBib29sIGNhbkNhY2hlU3BlY2lhbFByb3BlcnR5KENhY2hlZFNwZWNpYWxQcm9wZXJ0eUtl
eSk7CiAgICAgdm9pZCBnaXZlVXBPblNwZWNpYWxQcm9wZXJ0eUNhY2hlKENhY2hlZFNwZWNpYWxQ
cm9wZXJ0eUtleSk7CiAKLSAgICBib29sIHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZp
YVdhdGNocG9pbnQoVk0mLCBTdHJ1Y3R1cmVDaGFpbiopOworICAgIGJvb2wgdHJ5Q2FjaGVQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYsIFN0cnVjdHVyZSosIFN0cnVjdHVy
ZUNoYWluKik7CiAKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3ByZXZpb3VzOwogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBzb21lIHN0b3J5IGZvciBjbGVhcmluZyB0aGVzZSBw
cm9wZXJ0eSBuYW1lcyBjYWNoZXMgaW4gR0MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCmluZGV4IGUyY2IzN2Ji
ODc1YjNjZmUxN2E5NDgyMjUwNmNkMGFmNzg0YzJhNDMuLjliMzc4YjIwN2RlNDVjNzljNzU0OTI4
NjY1NzMwNzJkYjBjMGI3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCkBAIC05MywxMSArOTMsMTEgQEAg
aW5saW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogU3RydWN0dXJlUmFyZURhdGE6OmNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IKICAgICByZXR1cm4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmdldCgpOwogfQogCi1pbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0
Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciogZW51bWVyYXRvcikKK2lubGluZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJl
LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IsIFN0cnVjdHVyZUNoYWluKiBj
aGFpbikKIHsKICAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Iuc2V0KHZtLCB0aGlz
LCBlbnVtZXJhdG9yKTsKICAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JXYXRjaHBv
aW50cyA9IEZpeGVkVmVjdG9yPFN0cnVjdHVyZUNoYWluSW52YWxpZGF0aW9uV2F0Y2hwb2ludD4o
KTsKLSAgICBib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQgPSB0cnlDYWNoZVByb3BlcnR5TmFt
ZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KHZtLCBlbnVtZXJhdG9yLT5jYWNoZWRQcm90b3R5cGVD
aGFpbigpKTsKKyAgICBib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQgPSB0cnlDYWNoZVByb3Bl
cnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KHZtLCBiYXNlU3RydWN0dXJlLCBjaGFpbik7
CiAgICAgZW51bWVyYXRvci0+c2V0VmFsaWRhdGVkVmlhV2F0Y2hwb2ludCh2YWxpZGF0ZWRWaWFX
YXRjaHBvaW50KTsKIH0KIApAQCAtMTY5LDExICsxNjksMTQgQEAgaW5saW5lIHZvaWQgU3RydWN0
dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoVk0mLCBjb25zdCBG
aXJlRGUKIHsKICAgICBpZiAoIW1fc3RydWN0dXJlUmFyZURhdGEtPmlzTGl2ZSgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgbV9zdHJ1Y3R1cmVSYXJlRGF0YS0+aW52YWxpZGF0ZVdhdGNocG9pbnRC
YXNlZFZhbGlkYXRpb24oKTsKKyAgICBtX3N0cnVjdHVyZVJhcmVEYXRhLT5jbGVhckNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIH0KIAotaW5saW5lIGJvb2wgU3RydWN0dXJlUmFyZURh
dGE6OnRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHZtLCBT
dHJ1Y3R1cmVDaGFpbiogY2hhaW4pCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5
Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYgdm0sIFN0cnVjdHVy
ZSogYmFzZVN0cnVjdHVyZSwgU3RydWN0dXJlQ2hhaW4qIGNoYWluKQogeworICAgIGlmIChiYXNl
U3RydWN0dXJlLT5oYXNQb2x5UHJvdG8oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAg
dW5zaWduZWQgc2l6ZSA9IDA7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gY2hhaW4tPmhlYWQo
KTsgKmN1cnJlbnQ7ICsrY3VycmVudCkgewogICAgICAgICArK3NpemU7CkBAIC0xOTMsNyArMTk2
LDcgQEAgaW5saW5lIGJvb2wgU3RydWN0dXJlUmFyZURhdGE6OnRyeUNhY2hlUHJvcGVydHlOYW1l
RW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW5s
aW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmludmFsaWRhdGVXYXRjaHBvaW50QmFzZWRWYWxp
ZGF0aW9uKCkKK2lubGluZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3IoKQogewogICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5jbGVhcigpOwogICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcldhdGNocG9pbnRz
ID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50PigpOwo=
</data>
<flag name="commit-queue"
          id="463979"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440140</attachid>
            <date>2021-10-04 18:42:34 -0700</date>
            <delta_ts>2021-10-04 18:48:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231202-20211004184234.patch</filename>
            <type>text/plain</type>
            <size>31410</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDRiMzJhMjkzNGQxZmMzZmNhZDkwNWYyMDk4ZjE0NDMxN2E5N2NkLi5mYzYwYjc0OTNkMjdhNTJh
OGU1MzdjNmNmNzZhYWI4ZjVmZmI0ZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0xMC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBzaG91bGQgbm90IGhh
dmUgY2FjaGVkIHByb3RvdHlwZSBjaGFpbiBzaW5jZSBlbXB0eSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IgaXMgc2hhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMDIKKyAgICAgICAgcmRhcjovLzgzODE1MTIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjI4MjAxNCBhc3N1bWVkIGFuIGludmFy
aWFudCB0aGF0IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcidzIFN0cnVjdHVyZUNoYWluIGlzIGlt
bXV0YWJsZS4KKyAgICAgICAgVGhpcyBpbnZhcmlhbnQgaXMgYWxzbyB1c2VkIGluIHZhbGlkYXRp
b24gb2YgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLiBIb3dldmVyLCB0aGlzCisgICAgICAgIGlu
dmFyaWFudCB3YXMgYnJva2VuIHNpbmNlIHdlIG5vdyBoYXZlIHNoYXJlZCBlbXB0eSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IsIHdoaWNoIGNhbgorICAgICAgICBiZSB1c2VkIGZvciBkaWZmZXJl
bnQgc3RydWN0dXJlcyBoYXZpbmcgZGlmZmVyZW50IHByb3RvdHlwZSBjaGFpbi4KKworICAgICAg
ICBTaW5jZSBub3cgd2UgaGF2ZSBzaGFyZWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlCisgICAgICAgIFN0cnVjdHVyZUNo
YWluIGluIGl0cyBtZW1iZXIuIFdoZW4gaW52YWxpZGF0aW5nIFN0cnVjdHVyZUNoYWluIGluIFN0
cnVjdHVyZSwgd2UgYWxzbyBjbGVhcgorICAgICAgICBjYWNoZWQgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yIHNvIHRoYXQgd2UgZG8gbm90IGdldCBhIHN0YWxlIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciBmcm9tCisgICAgICAgIFN0cnVjdHVyZSBldmVuIHRob3VnaCB3YXRjaHBvaW50LWJhc2Vk
IHZhbGlkYXRpb24gaXMgbm90IHVzZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92
ZXMgVmFsaWRhdGVkVmlhV2F0Y2hwb2ludCBmbGFnIGluIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBkdWUgdG8gdGhlIHNhbWUKKyAgICAgICAgcmVhc29uLiBXZSBzaG91bGQgbm90IG1vZGlmeSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igb25jZSBpdCBpcyBpbnN0YW50aWF0ZWQuIEluc3RlYWQs
IHdlIGVuY29kZQorICAgICAgICB0aGlzIGZsYWcgYXMgYSBsb3dlc3QgYml0IG9mIG1fY2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvci4gSWYgaXQgaXMgdmFsaWRhdGVkIHZpYSB0cmF2ZXJzaW5n
IChub3Qgd2F0Y2hwb2ludHMpLAorICAgICAgICB0aGVuIHRoaXMgYml0IGlzIHNldC4gU28gd2hl
biBsb2FkaW5nIHRoYXQgcG9pbnRlciBmcm9tIFN0cnVjdHVyZVJhcmVEYXRhLCB3ZSBjYW4gcXVp
Y2tseSBkZXRlY3QKKyAgICAgICAgaXQgd2l0aG91dCBldmVuIGFjY2Vzc2luZyB0byB0aGUgZW51
bWVyYXRvci4gVGhpcyBmaXhlcyB0aGUgaXNzdWUsIGFuZCBpdCBpcyBldmVuIGNsZWFuZXIuCisg
ICAgICAgIFdlIHJlbmFtZSBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IgdG8gbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBzaW5jZSBpdCBub3cKKyAgICAgICAgaW5j
bHVkZXMgdGhpcyBmbGFnLgorCisgICAgICAgIFdoaWxlIHJldmlld2luZyB0aGUgY29kZSwgd2Ug
YWxzbyBmb3VuZCB0aGF0IHdhdGNocG9pbnQtYmFzZWQgdmFsaWRhdGlvbiBkaWRuJ3QgY2FyZSBQ
b2x5UHJvdG8uCisgICAgICAgIFdlIHNob3VsZCBkaXNhYmxlIHdhdGNocG9pbnQtYmFzZWQgdmFs
aWRhdGlvbiBpZiBQb2x5UHJvdG8gaXMgdXNlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAg
ICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAoSlNDOjpwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3Bl
cnR5TmFtZUVudW1lcmF0b3JTaG91bGRXYXRjaCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlQ2hh
aW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsZWFyQ2FjaGVkUHJvdG90eXBl
Q2hhaW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvciBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBv
aW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5
Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNl
ZFZhbGlkYXRpb24pOiBEZWxldGVkLgorCiAyMDIxLTEwLTAzICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVh
cmx5IE9jdG9iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGI0YzhmODYwYjUxNGU2ZDc5ZGYwMWFjN2YyOTZm
YzA4MWRlN2ExZjYuLmM5MGM2MDg5ZTkzZDZiMThiZTMxOWI0NjFkZjAwZGMzYmJhN2M0NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC0xMzk1NCw3ICsxMzk1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKHJhcmVEYXRhKSB7CiAgICAg
ICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVuUmFyZURhdGEgPSBtX2dyYXBoLmZyZWV6ZShyYXJl
RGF0YSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoZnJvemVuUmFyZURh
dGEpLCBzY3JhdGNoMUdQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIpOworICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIFN0cnVjdHVyZVJh
cmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkpLCBz
Y3JhdGNoMUdQUik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAob25seVN0cnVj
dHVyZSkKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIob25seVN0cnVj
dHVyZSksIHNjcmF0Y2gxR1BSKTsKQEAgLTEzOTYzLDExICsxMzk2MywxMSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlFbnVtZXJhdG9yKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwg
U3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHNjcmF0Y2gxR1BSKTsKICAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBl
cnM6Olplcm8sIHNjcmF0Y2gxR1BSKSk7CiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmU3RydWN0dXJlKHNjcmF0Y2gxR1BSKSk7Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURh
dGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIp
OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aDFHUFIsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JBbmRGbGFnKCkpLCBzY3JhdGNoMUdQUik7CiAgICAgICAgIH0KIAogICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzY3Jh
dGNoMUdQUikpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMihD
Q2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFnc09mZnNldCgpKSwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50
KSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxI
ZWxwZXJzOjpOb25aZXJvLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
U3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRl
ZFZpYVRyYXZlcnNpbmdGbGFnKSkpOwogICAgICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1
bXAoKSk7CiAKICAgICAgICAgc2xvd0Nhc2VzLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
MTlhMmNmODc5YmJhMjFkN2QxMmZlY2RjZDBlZDZmZmU5Y2Q2NDJiNi4uODJjYWIwMjE4YzE4YTBk
ZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTExMCw3ICsxMTAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNPYmplY3RfYnV0
dGVyZmx5LCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkSW5saW5lQ2FwYWNpdHksIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5TmFtZXNWZWN0b3JPZmZzZXQoKSkgXAotICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkpIFwK
ICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkU3RydWN0dXJlSUQsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkU3RydWN0dXJlSURPZmZzZXQoKSkgXAogICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9lbmRHZW5lcmljUHJvcGVydHlJbmRleCwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjplbmRHZW5lcmljUHJvcGVydHlJbmRleE9mZnNldCgp
KSBcCiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2VuZFN0cnVjdHVyZVByb3Bl
cnR5SW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZW5kU3RydWN0dXJlUHJvcGVydHlJ
bmRleE9mZnNldCgpKSBcCkBAIC0xNTMsNyArMTUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVk
S2V5cywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lcyhDYWNo
ZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0
YV9jYWNoZWRHZXRPd25Qcm9wZXJ0eU5hbWVzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZD
YWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0
eU5hbWVzKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IoKSkgXAorICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpKSBcCiAgICAgbWFjcm8oSGFzaE1hcElt
cGxfY2FwYWNpdHksIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfYnVmZmVy
LCAgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZz
ZXRPZkJ1ZmZlcigpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfaGVhZCwgIEhhc2hNYXBJbXBs
PEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZIZWFkKCkpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA0
M2QyNmU4M2U5NjgyNWE4ODE5NzhhNGVlMzViYzdlZDMzNTFjMzY1Li42ZjgyN2IyNmQzMDNkMDUy
M2E4YTgwN2MzOGM2NGE4YTU1YzVjYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzQxMywxMiArMTM0MTMsMTIgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1JhcmVEYXRhLCB1bnN1cmUo
cmFyZURhdGFDYXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHJhcmVEYXRhQ2FzZSwgdmFsaWRhdGlvbkNhc2UpOwotICAgICAgICAgICAgTFZh
bHVlIGNhY2hlZCA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0
cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOwotICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdE51bGwoY2FjaGVkKSwgdW5zdXJlKHZhbGlkYXRpb25D
YXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkQW5k
RmxhZyA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0cnVjdHVy
ZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGNhY2hlZEFuZEZsYWcpLCB1bnN1cmUodmFs
aWRhdGlvbkNhc2UpLCB1bnN1cmUoZ2VuZXJpY0Nhc2UpKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8odmFsaWRhdGlvbkNhc2UsIGdlbmVyaWNDYXNlKTsKLSAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihjYWNoZWQpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC50ZXN0Tm9uWmVybzMyKG1fb3V0LmxvYWQzMihjYWNoZWQsIG1faGVhcHMuSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yX2ZsYWdzKSwgbV9vdXQuY29uc3RJbnQzMihKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZpYVdhdGNocG9pbnQpKSwgdW5zdXJlKGNvbnRpbnVhdGlv
biksIHVuc3VyZShnZW5lcmljQ2FzZSkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKGNhY2hlZEFuZEZsYWcpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC50ZXN0SXNaZXJvUHRyKGNhY2hlZEFuZEZsYWcsIG1fb3V0LmNvbnN0SW50UHRyKFN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2
ZXJzaW5nRmxhZykpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7
CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGdlbmVyaWNDYXNlLCBjb250aW51YXRpb24p
OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHZtQ2FsbChwb2ludGVy
VHlwZSgpLCBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCB3ZWFrUG9pbnRlcihn
bG9iYWxPYmplY3QpLCBiYXNlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBjMTg2MzY5OTYwYjFmZWU4YjI3NDU4OWEwMWMxYWM0
NWIzYTlmYmI3Li44NWU4NmNlY2Q2OGNiYmU4ZTVlYTk5Njg2YzQ3MWZlYTIxYWQwYTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAt
MjkwMiwxMCArMjkwMiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvcGVydHlfZW51bWVy
YXRvcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHJl
Z1QxKTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEp
KTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaElmU3RydWN0dXJlKHJlZ1QxKSk7Ci0g
ICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpLCByZWdUMSk7CisgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yQW5kRmxhZygpKSwgcmVnVDEpOwogCiAgICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0UHRyKFplcm8sIHJlZ1QxKSk7Ci0gICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFuY2hU
ZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCkpKTsKKyAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDEsIFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QxKTsKICAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCmluZGV4IDQyZWZiNzFjNGE2NDFkNjIzOTZkNzRmNjA0NWRhNDY2YzVmYzgzMTUu
LjNhNDZlNGQwYzNmNjBjNTNjZGEwYWJkZWY0MGMwZTYxYjMyMGFiZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtOTc0LDcgKzk3NCw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWV0YWRhdGEubV9vZmZzZXQgPSBzbG90LmNhY2hlZE9mZnNldCgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fbmV3U3RydWN0dXJlSUQg
PSBuZXdTdHJ1Y3R1cmUtPmlkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEo
Ynl0ZWNvZGUubV9mbGFncy5pc0RpcmVjdCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4gPSBuZXdTdHJ1Y3R1cmUtPnByb3RvdHlwZUNo
YWluKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZUNlbGwpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIGNoYWluID0gbmV3U3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlQ2VsbCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2hhaW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX3N0cnVjdHVyZUNoYWluLnNldCh2bSwgY29kZUJs
b2NrLCBjaGFpbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRl
eCBmYmRiYTY4ZTBmMzBhMzAwY2U4MjM1NzMxZjBhYTM1YmFjNWVhNGJiLi5kODRiNmVhZDM3ZmRk
YjQzMjBiODQ1MzlkYjc3YzRiNmI4MDQ3ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzExOSw5ICszMTE5
LDkgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAg
ICBiYmVxIEpTQ2VsbDo6bV90eXBlW3QxXSwgU3RydWN0dXJlVHlwZSwgLnNsb3dQYXRoCiAKLSAg
ICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
W3QxXSwgdDEKKyAgICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZ1t0MV0sIHQxCiAgICAgYnRweiB0MSwgLnNsb3dQYXRoCi0gICAg
YnRpeiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZmxhZ3NbdDFdLCAoY29uc3RleHByIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRhdGVkVmlhV2F0Y2hwb2ludCksIC5zbG93UGF0
aAorICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0
aAogCiAgICAgcmV0dXJuKHQxKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4NWQ5NWFhY2Ey
ZDNiZDc0YWU0YmZjMjk2ZDc1NmEwNzkzMzQyMDgxLi5kMjgxZWNmOTNhZmRkOTFlOTMxMWUxMzJh
Mjk5NTc2NjYzYjQwN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTg2LDcgKzg2LDYgQEAg
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCog
Y2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KHBy
b3BlcnR5TmFtZXMpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChwcm9wZXJ0eU5hbWVzLCBwcm9w
ZXJ0eU5hbWVzICsgdGhpc09iamVjdC0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICB9Ci0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CiAKICAgICBp
ZiAodGhpc09iamVjdC0+Y2FjaGVkU3RydWN0dXJlSUQoKSkgewogICAgICAgICBWTSYgdm0gPSB2
aXNpdG9yLnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDY2NjJlOWZhODFiMjhiMDk2MjM3YTMw
YzVkNzlhYzk0MGVjMTMyN2EuLmJlYWE2ZGNiZTE4MGM0ZWYwYTNkNGY0Yjg1Y2YxYTA0YmE0OGNj
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC00NCw4ICs0NCw2IEBAIGNsYXNzIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBHZW5lcmljTW9k
ZSA9IDEgPDwgMiwKICAgICAgICAgLy8gUHJvZmlsaW5nIE9ubHkKICAgICAgICAgSGFzU2Vlbk93
blN0cnVjdHVyZU1vZGVTdHJ1Y3R1cmVNaXNtYXRjaCA9IDEgPDwgMywKLSAgICAgICAgLy8gSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yIE9ubHkKLSAgICAgICAgVmFsaWRhdGVkVmlhV2F0Y2hwb2lu
dCA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGVudW1l
cmF0aW9uTW9kZU1hc2sgPSAoR2VuZXJpY01vZGUgPDwgMSkgLSAxOwpAQCAtNzIsMTAgKzcwLDYg
QEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXMuZ2V0KClbaW5kZXhdLmdldCgpOwogICAg
IH0KIAotICAgIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG90eXBlQ2hhaW4uZ2V0KCk7IH0KLSAgICB2b2lkIHNldENhY2hlZFByb3Rv
dHlwZUNoYWluKFZNJiB2bSwgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKSB7IHJldHVy
biBtX3Byb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgcHJvdG90eXBlQ2hhaW4pOyB9Ci0gICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciwgbV9wcm90b3R5cGVDaGFp
bik7IH0KLQogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJlKFZNJiB2bSkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRTdHJ1Y3R1cmVJRCkKQEAgLTEwMCwxNSArOTQsNiBA
QCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Is
IG1fcHJvcGVydHlOYW1lcyk7CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZGF0ZWRWaWFXYXRjaHBv
aW50KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
VmFsaWRhdGVkVmlhV2F0Y2hwb2ludDsgfQotICAgIHZvaWQgc2V0VmFsaWRhdGVkVmlhV2F0Y2hw
b2ludChib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpCi0gICAgewotICAgICAgICBpZiAodmFs
aWRhdGVkVmlhV2F0Y2hwb2ludCkKLSAgICAgICAgICAgIG1fZmxhZ3MgfD0gSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50OwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2ZsYWdzICY9IH5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZp
YVdhdGNocG9pbnQ7Ci0gICAgfQotCiAgICAgSlNTdHJpbmcqIGNvbXB1dGVOZXh0KEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGJhc2UsIHVpbnQzMl90JiBjdXJyZW50SW5kZXgsIEZsYWcmLCBi
b29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcgPSB0cnVlKTsKIAogICAgIERFQ0xB
UkVfVklTSVRfQ0hJTERSRU47CkBAIC0xMjAsNyArMTA1LDYgQEAgY2xhc3MgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+JiYpOwogCiAgICAgQXV4aWxp
YXJ5QmFycmllcjxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+Kj4gbV9wcm9wZXJ0eU5hbWVzOwotICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmVDaGFpbj4gbV9wcm90b3R5cGVDaGFpbjsKICAgICBTdHJ1
Y3R1cmVJRCBtX2NhY2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0
aDsKICAgICB1aW50MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CkBAIC0xMzgsMTMg
KzEyMiwxNiBAQCBpbmxpbmUgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogCiAgICAgdWludDMyX3QgaW5kZXhl
ZExlbmd0aCA9IGJhc2UtPmdldEVudW1lcmFibGVMZW5ndGgoZ2xvYmFsT2JqZWN0KTsKIAotICAg
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG51bGxwdHI7Ci0KICAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2UtPnN0cnVjdHVyZSh2bSk7Ci0gICAgaWYgKCFpbmRl
eGVkTGVuZ3RoCi0gICAgICAgICYmIChlbnVtZXJhdG9yID0gc3RydWN0dXJlLT5jYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKCkpKSB7Ci0gICAgICAgIGlmIChlbnVtZXJhdG9yLT52YWxpZGF0
ZWRWaWFXYXRjaHBvaW50KCkgfHwgZW51bWVyYXRvci0+Y2FjaGVkUHJvdG90eXBlQ2hhaW4oKSA9
PSBzdHJ1Y3R1cmUtPnByb3RvdHlwZUNoYWluKGdsb2JhbE9iamVjdCwgYmFzZSkpCi0gICAgICAg
ICAgICByZXR1cm4gZW51bWVyYXRvcjsKKyAgICBpZiAoIWluZGV4ZWRMZW5ndGgpIHsKKyAgICAg
ICAgdWludHB0cl90IGVudW1lcmF0b3JBbmRGbGFnID0gc3RydWN0dXJlLT5jYWNoZWRQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpOworICAgICAgICBpZiAoZW51bWVyYXRvckFuZEZsYWcp
IHsKKyAgICAgICAgICAgIGlmICghKGVudW1lcmF0b3JBbmRGbGFnICYgU3RydWN0dXJlUmFyZURh
dGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRlZFZpYVRyYXZlcnNpbmdG
bGFnKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvcio+KGVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+
cHJvdG90eXBlQ2hhaW4odm0sIGdsb2JhbE9iamVjdCwgYmFzZSk7IC8vIFJlZnJlc2ggY2FjaGVk
IHN0cnVjdHVyZSBjaGFpbi4KKyAgICAgICAgICAgIGlmIChhdXRvKiBlbnVtZXJhdG9yID0gc3Ry
dWN0dXJlLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGVudW1lcmF0b3I7CisgICAgICAgIH0KICAgICB9CiAKICAgICB1aW50MzJfdCBudW1i
ZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsKQEAgLTE2MywxNCArMTUwLDE1IEBAIGlubGluZSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAgICAgICAgIG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMgPSAwOwog
ICAgIH0KIAorICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG51bGxw
dHI7CiAgICAgaWYgKCFpbmRleGVkTGVuZ3RoICYmICFwcm9wZXJ0eU5hbWVzLnNpemUoKSkKICAg
ICAgICAgZW51bWVyYXRvciA9IHZtLmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogICAg
IGVsc2UKICAgICAgICAgZW51bWVyYXRvciA9IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3Jl
YXRlKHZtLCBzdHJ1Y3R1cmVBZnRlckdldHRpbmdQcm9wZXJ0eU5hbWVzLCBpbmRleGVkTGVuZ3Ro
LCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBXVEZNb3ZlKHByb3BlcnR5TmFtZXMpKTsKICAg
ICBpZiAoIWluZGV4ZWRMZW5ndGggJiYgc3VjY2Vzc2Z1bGx5Tm9ybWFsaXplZENoYWluICYmIHN0
cnVjdHVyZUFmdGVyR2V0dGluZ1Byb3BlcnR5TmFtZXMgPT0gc3RydWN0dXJlKSB7Ci0gICAgICAg
IGVudW1lcmF0b3ItPnNldENhY2hlZFByb3RvdHlwZUNoYWluKHZtLCBzdHJ1Y3R1cmUtPnByb3Rv
dHlwZUNoYWluKGdsb2JhbE9iamVjdCwgYmFzZSkpOworICAgICAgICBTdHJ1Y3R1cmVDaGFpbiog
Y2hhaW4gPSBzdHJ1Y3R1cmUtPnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2Up
OwogICAgICAgICBpZiAoc3RydWN0dXJlLT5jYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3Io
dm0pKQotICAgICAgICAgICAgc3RydWN0dXJlLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKHZtLCBlbnVtZXJhdG9yKTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0Q2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcih2bSwgZW51bWVyYXRvciwgY2hhaW4pOwogICAgIH0KICAgICBy
ZXR1cm4gZW51bWVyYXRvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCmluZGV4IGQxNjQzN2Y2M2IzM2M5ZTBlZWUyMzk0NThmZjUwNjYwZGE0NzVjNmYu
LmM3YmUyMjc5ZWY5MjE4ZDFjYjg2YzYxMzRjNDY0YTU5NzM0MzQyYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTIyOSw5ICsxMjI5LDE1IEBA
IHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3Im
IHZpc2l0b3IpCiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcih0aGlzT2JqZWN0LT5tX2xv
Y2spOwogICAgIAogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fZ2xvYmFsT2JqZWN0
KTsKLSAgICBpZiAoIXRoaXNPYmplY3QtPmlzT2JqZWN0KCkpCisgICAgaWYgKCF0aGlzT2JqZWN0
LT5pc09iamVjdCgpKSB7CisgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGNsZWFyIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciBzaW5jZSBpdCBpcyBuZXZlciBjYWNoZWQgZm9yIG5vbi1vYmpl
Y3QgU3RydWN0dXJlLgorICAgICAgICAvLyBXZSBkbyBub3QgaGF2ZSBjb2RlIGNsZWFyaW5nIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvciBzaW5jZSB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQg
Y29uY3VycmVudGx5LgogICAgICAgICB0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3RvdHlwZUNoYWlu
LmNsZWFyKCk7Ci0gICAgZWxzZSB7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgaWYgKGF1
dG8qIHJhcmVEYXRhID0gdHJ5UmFyZURhdGEoKSkKKyAgICAgICAgICAgIEFTU0VSVCghcmFyZURh
dGEtPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CisjZW5kaWYKKyAgICB9IGVsc2Ug
ewogICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZSk7CiAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4pOwog
ICAgIH0KQEAgLTEzOTgsMTIgKzE0MDQsMTQgQEAgYm9vbCBDbGFzc0luZm86Omhhc1N0YXRpY1Nl
dHRlck9yUmVhZG9ubHlQcm9wZXJ0aWVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgU3RydWN0dXJlOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQordm9pZCBTdHJ1Y3R1cmU6OnNl
dENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IqIGVudW1lcmF0b3IsIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKIHsKKyAgICBBU1NFUlQo
dHlwZUluZm8oKS5pc09iamVjdCgpKTsKICAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKICAg
ICBpZiAoIWhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGFsbG9jYXRlUmFyZURhdGEodm0pOwotICAg
IHJhcmVEYXRhKCktPnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIGVudW1lcmF0
b3IpOworICAgIEFTU0VSVChjaGFpbiA9PSBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpKTsK
KyAgICByYXJlRGF0YSgpLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCB0aGlz
LCBlbnVtZXJhdG9yLCBjaGFpbik7CiB9CiAKIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogU3Ry
dWN0dXJlOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3QKQEAgLTE0MTMsNiAr
MTQyMSwxMyBAQCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIFN0cnVjdHVyZTo6Y2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0CiAgICAgcmV0dXJuIHJhcmVEYXRhKCktPmNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIH0KIAordWludHB0cl90IFN0cnVjdHVyZTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKSBjb25zdAoreworICAgIGlmICghaGFz
UmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHJhcmVEYXRh
KCktPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCk7Cit9CisKIGJvb2wgU3Ry
dWN0dXJlOjpjYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtKSBjb25zdAogewog
ICAgIGlmICghdGhpcy0+Y2FuQ2FjaGVPd25Qcm9wZXJ0eU5hbWVzKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDI2Yjg3OTM4NTBiM2YxOGYxYWVlYTE1
YjhhODliMWE4N2ZjMzEzYmMuLmI0OTg2MWJjYThkNTBlMDAxNjhlZmI2YWQ1YWRiMWNhNTZmYzk1
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0zMDcs
NyArMzA3LDYgQEAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNWYWx1
ZSBwcm90b3R5cGVGb3JMb29rdXAoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU1ZhbHVl
IHByb3RvdHlwZUZvckxvb2t1cChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogYmFzZSkgY29uc3Q7
CiAgICAgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKFZNJiwgSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCogYmFzZSkgY29uc3Q7Ci0gICAgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNo
YWluKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIGJhc2UpIGNvbnN0OwogICAgIERFQ0xBUkVf
VklTSVRfQ0hJTERSRU47CiAgICAgCiAgICAgLy8gQSBTdHJ1Y3R1cmUgaXMgY2hlYXAgdG8gbWFy
ayBkdXJpbmcgR0MgaWYgZG9pbmcgc28gd291bGQgb25seSBhZGQgYSBzbWFsbCBhbmQgYm91bmRl
ZCBhbW91bnQKQEAgLTUzMCw4ICs1MjksOSBAQCBjbGFzcyBTdHJ1Y3R1cmUgOiBwdWJsaWMgSlND
ZWxsIHsKICAgICAgICAgICAgIHNldEhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVz
RXhjbHVkaW5nUHJvdG8odHJ1ZSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKik7CisgICAgdm9p
ZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKiwgU3RydWN0dXJlQ2hhaW4qKTsKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iq
IGNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSBjb25zdDsKKyAgICB1aW50cHRyX3QgY2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKSBjb25zdDsKICAgICBib29sIGNhbkNh
Y2hlUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYpIGNvbnN0OwogICAgIGJvb2wgY2FuQWNjZXNz
UHJvcGVydGllc1F1aWNrbHlGb3JFbnVtZXJhdGlvbigpIGNvbnN0OwogCkBAIC02MzcsNyArNjM3
LDcgQEAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIHByb3Bl
cnR5TmFtZUVudW1lcmF0b3JTaG91bGRXYXRjaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gZGZnU2hvdWxkV2F0Y2goKTsKKyAgICAgICAgcmV0dXJuIGRmZ1Nob3VsZFdhdGNoKCkgJiYg
IWhhc1BvbHlQcm90bygpOwogICAgIH0KICAgICAgICAgCiAgICAgdm9pZCBhZGRUcmFuc2l0aW9u
V2F0Y2hwb2ludChXYXRjaHBvaW50KiB3YXRjaHBvaW50KSBjb25zdApAQCAtODQ5LDYgKzg0OSw4
IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogICAgIAogICAgIHZvaWQgc3Rh
cnRXYXRjaGluZ0ludGVybmFsUHJvcGVydGllcyhWTSYpOwogCisgICAgdm9pZCBjbGVhckNhY2hl
ZFByb3RvdHlwZUNoYWluKCk7CisKICAgICBzdGF0aWMgY29uc3RleHByIGludCBzX21heFRyYW5z
aXRpb25MZW5ndGggPSA2NDsKICAgICBzdGF0aWMgY29uc3RleHByIGludCBzX21heFRyYW5zaXRp
b25MZW5ndGhGb3JOb25FdmFsUHV0QnlJZCA9IDUxMjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCmluZGV4IDUzNWYwZTE5YTRiYjQ5YmVl
YzZhMGQxM2E0OWY2YmJiMGYzN2NkZDMuLjQwYzlmMGE0YWYyYjY1ODhhOWIyNjQ5ODQzMDY2ZGJk
Yzc5MGQ0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVJbmxpbmVzLmgKQEAgLTM0MiwxNiArMzQyLDEyIEBAIGlubGluZSBTdHJ1Y3R1cmVDaGFpbiog
U3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
CiAgICAgLy8gV2UgY2FjaGUgb3VyIHByb3RvdHlwZSBjaGFpbiBzbyBvdXIgY2xpZW50cyBjYW4g
c2hhcmUgaXQuCiAgICAgaWYgKCFpc1ZhbGlkKGdsb2JhbE9iamVjdCwgbV9jYWNoZWRQcm90b3R5
cGVDaGFpbi5nZXQoKSwgYmFzZSkpIHsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90
b3R5cGVGb3JMb29rdXAoZ2xvYmFsT2JqZWN0LCBiYXNlKTsKKyAgICAgICAgY29uc3RfY2FzdDxT
dHJ1Y3R1cmUqPih0aGlzKS0+Y2xlYXJDYWNoZWRQcm90b3R5cGVDaGFpbigpOwogICAgICAgICBt
X2NhY2hlZFByb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgU3RydWN0dXJlQ2hhaW46OmNyZWF0
ZSh2bSwgcHJvdG90eXBlLmlzTnVsbCgpID8gbnVsbHB0ciA6IGFzT2JqZWN0KHByb3RvdHlwZSkp
KTsKICAgICB9CiAgICAgcmV0dXJuIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCk7CiB9CiAK
LWlubGluZSBTdHJ1Y3R1cmVDaGFpbiogU3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSkgY29uc3QKLXsKLSAgICByZXR1
cm4gcHJvdG90eXBlQ2hhaW4oZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QsIGJhc2Up
OwotfQotCiBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluLCBKU09iamVj
dCogYmFzZSkgY29uc3QKIHsKICAgICBpZiAoIWNhY2hlZFByb3RvdHlwZUNoYWluKQpAQCAtNzU5
LDQgKzc1NSwxMiBAQCBpbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6
OmdldChVbmlxdWVkU3RyaW5nSW1wbCogcmVwLCB1bnNpZ25lZAogICAgIHJldHVybiBtYXAoKS0+
Z2V0KFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTo6SGFzaDo6S2V5KHJlcCwgYXR0cmlidXRlcywg
dHJhbnNpdGlvbktpbmQpKTsKIH0KIAoraW5saW5lIHZvaWQgU3RydWN0dXJlOjpjbGVhckNhY2hl
ZFByb3RvdHlwZUNoYWluKCkKK3sKKyAgICBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmNsZWFyKCk7
CisgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1cm47CisgICAgcmFyZURhdGEo
KS0+Y2xlYXJDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
UmFyZURhdGEuY3BwCmluZGV4IDVmMDJmMWVmNTE2N2EzOGJkNThjNGI5ZjQ4YjZiMTEyZGRmZWJh
NTYuLmMyZjc1NTNiMmNkZWM5ZWNkNjgzYTM5MTY5ODk0NTVjYjUwMjE4MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKQEAg
LTc5LDcgKzc5LDcgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwo
SlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBudW1iZXJPZkNhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleXM7ICsraW5k
ZXgpCiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKHRoaXNPYmplY3QtPmNh
Y2hlZFNwZWNpYWxQcm9wZXJ0eShzdGF0aWNfY2FzdDxDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk+
KGluZGV4KSkpOwogICAgIH0KLSAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOworICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQo
dGhpc09iamVjdC0+Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKTsKICAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBudW1iZXJPZkNhY2hlZFByb3BlcnR5TmFtZXM7ICsr
aW5kZXgpIHsKICAgICAgICAgYXV0byogY2FjaGVkID0gdGhpc09iamVjdC0+bV9jYWNoZWRQcm9w
ZXJ0eU5hbWVzW2luZGV4XS51bnZhbGlkYXRlZEdldCgpOwogICAgICAgICBpZiAoY2FjaGVkICE9
IGNhY2hlZFByb3BlcnR5TmFtZXNTZW50aW5lbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKaW5kZXggNzdjMDMzYTY5ZmU1NGMwZWE4
MjUyOThiYTk5ZmE2ZWQxOTc0MGU1Zi4uNmMxMzAwOWI3YmU3ZTlkMGZhMWE1MWYxYmNhYmExMDJi
NDcxNGNkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVSYXJlRGF0YS5oCkBAIC04OSw3ICs4OSw5IEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdm9pZCBjYWNoZVNwZWNpYWxQcm9wZXJ0eShKU0ds
b2JhbE9iamVjdCosIFZNJiwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU1ZhbHVlLCBDYWNo
ZWRTcGVjaWFsUHJvcGVydHlLZXksIGNvbnN0IFByb3BlcnR5U2xvdCYpOwogCiAgICAgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKiBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKik7CisgICAgdWludHB0cl90IGNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JBbmRGbGFnKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKFZNJiwgU3RydWN0dXJlKiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiwgU3RydWN0
dXJlQ2hhaW4qKTsKKyAgICB2b2lkIGNsZWFyQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigp
OwogCiAgICAgSlNJbW11dGFibGVCdXR0ZXJmbHkqIGNhY2hlZFByb3BlcnR5TmFtZXMoQ2FjaGVk
UHJvcGVydHlOYW1lc0tpbmQpIGNvbnN0OwogICAgIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNo
ZWRQcm9wZXJ0eU5hbWVzSWdub3JpbmdTZW50aW5lbChDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZCkg
Y29uc3Q7CkBAIC0xMDgsMTYgKzExMCwxNyBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVj
dHVyZVJhcmVEYXRhLCBtX2NhY2hlZFByb3BlcnR5TmFtZXMpICsgc2l6ZW9mKFdyaXRlQmFycmll
cjxKU0ltbXV0YWJsZUJ1dHRlcmZseT4pICogc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGtpbmQpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKCkKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkUHJvcGVydHlO
YW1lRW51bWVyYXRvckFuZEZsYWcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihTdHJ1Y3R1cmVSYXJlRGF0YSwgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKTsK
KyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVSYXJlRGF0YSwgbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyk7CiAgICAgfQogCiAgICAgREVDTEFSRV9F
WFBPUlRfSU5GTzsKIAogICAgIHZvaWQgZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKTsKIAot
ICAgIHZvaWQgaW52YWxpZGF0ZVdhdGNocG9pbnRCYXNlZFZhbGlkYXRpb24oKTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVpbnRwdHJfdCBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxp
ZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRy
X3QgY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvck1hc2sgPSB+c3RhdGljX2Nhc3Q8dWludHB0
cl90PigxKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFj
dG9yOwpAQCAtMTM1LDEyICsxMzgsMTIgQEAgY2xhc3MgU3RydWN0dXJlUmFyZURhdGEgZmluYWwg
OiBwdWJsaWMgSlNDZWxsIHsKICAgICBib29sIGNhbkNhY2hlU3BlY2lhbFByb3BlcnR5KENhY2hl
ZFNwZWNpYWxQcm9wZXJ0eUtleSk7CiAgICAgdm9pZCBnaXZlVXBPblNwZWNpYWxQcm9wZXJ0eUNh
Y2hlKENhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleSk7CiAKLSAgICBib29sIHRyeUNhY2hlUHJvcGVy
dHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mLCBTdHJ1Y3R1cmVDaGFpbiopOworICAg
IGJvb2wgdHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYsIFN0
cnVjdHVyZSosIFN0cnVjdHVyZUNoYWluKik7CiAKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJl
PiBtX3ByZXZpb3VzOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBzb21lIHN0b3J5IGZv
ciBjbGVhcmluZyB0aGVzZSBwcm9wZXJ0eSBuYW1lcyBjYWNoZXMgaW4gR0MuCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjY1OQotICAgIFdyaXRlQmFy
cmllcjxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I+IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcjsKKyAgICB1aW50cHRyX3QgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxh
ZyB7IDAgfTsKICAgICBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNo
cG9pbnQ+IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcldhdGNocG9pbnRzOwogICAgIFdy
aXRlQmFycmllcjxKU0ltbXV0YWJsZUJ1dHRlcmZseT4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVzW251
bWJlck9mQ2FjaGVkUHJvcGVydHlOYW1lc10geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCmluZGV4IGUy
Y2IzN2JiODc1YjNjZmUxN2E5NDgyMjUwNmNkMGFmNzg0YzJhNDMuLjA0MGQ1ZWE4OTMyYjc3OWUx
NjExMjQ3NmJmNWZjZDA2NzA5YTQzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCkBAIC05MCwxNSArOTAs
MjAgQEAgaW5saW5lIEpTVmFsdWUgU3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFNwZWNpYWxQcm9w
ZXJ0eShDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXkKIAogaW5saW5lIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciogU3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Io
KSBjb25zdAogewotICAgIHJldHVybiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0
KCk7CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqPiht
X2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnICYgY2FjaGVkUHJvcGVydHlOYW1l
RW51bWVyYXRvck1hc2spOwogfQogCi1pbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0
Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciogZW51bWVyYXRvcikKK2lubGluZSB1aW50cHRyX3QgU3RydWN0dXJlUmFyZURhdGE6OmNh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZzsKK30KKworaW5saW5lIHZvaWQg
U3RydWN0dXJlUmFyZURhdGE6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51
bWVyYXRvciwgU3RydWN0dXJlQ2hhaW4qIGNoYWluKQogewotICAgIG1fY2FjaGVkUHJvcGVydHlO
YW1lRW51bWVyYXRvci5zZXQodm0sIHRoaXMsIGVudW1lcmF0b3IpOwogICAgIG1fY2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcldhdGNocG9pbnRzID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hh
aW5JbnZhbGlkYXRpb25XYXRjaHBvaW50PigpOwotICAgIGJvb2wgdmFsaWRhdGVkVmlhV2F0Y2hw
b2ludCA9IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQodm0sIGVu
dW1lcmF0b3ItPmNhY2hlZFByb3RvdHlwZUNoYWluKCkpOwotICAgIGVudW1lcmF0b3ItPnNldFZh
bGlkYXRlZFZpYVdhdGNocG9pbnQodmFsaWRhdGVkVmlhV2F0Y2hwb2ludCk7CisgICAgYm9vbCB2
YWxpZGF0ZWRWaWFXYXRjaHBvaW50ID0gdHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlh
V2F0Y2hwb2ludCh2bSwgYmFzZVN0cnVjdHVyZSwgY2hhaW4pOworICAgIG1fY2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvckFuZEZsYWcgPSAoKHZhbGlkYXRlZFZpYVdhdGNocG9pbnQgPyAwIDog
Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcp
IHwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW51bWVyYXRvcikpOworICAgIHZtLmhlYXAud3Jp
dGVCYXJyaWVyKHRoaXMsIGVudW1lcmF0b3IpOwogfQogCiBpbmxpbmUgSlNJbW11dGFibGVCdXR0
ZXJmbHkqIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3Bl
cnR5TmFtZXNLaW5kIGtpbmQpIGNvbnN0CkBAIC0xNjksMTEgKzE3NCwxNCBAQCBpbmxpbmUgdm9p
ZCBTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ6OmZpcmVJbnRlcm5hbChWTSYs
IGNvbnN0IEZpcmVEZQogewogICAgIGlmICghbV9zdHJ1Y3R1cmVSYXJlRGF0YS0+aXNMaXZlKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX3N0cnVjdHVyZVJhcmVEYXRhLT5pbnZhbGlkYXRlV2F0
Y2hwb2ludEJhc2VkVmFsaWRhdGlvbigpOworICAgIG1fc3RydWN0dXJlUmFyZURhdGEtPmNsZWFy
Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogfQogCi1pbmxpbmUgYm9vbCBTdHJ1Y3R1
cmVSYXJlRGF0YTo6dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChW
TSYgdm0sIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKK2lubGluZSBib29sIFN0cnVjdHVyZVJhcmVE
YXRhOjp0cnlDYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KFZNJiB2bSwg
U3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCiB7CisgICAg
aWYgKGJhc2VTdHJ1Y3R1cmUtPmhhc1BvbHlQcm90bygpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKICAgICB1bnNpZ25lZCBzaXplID0gMDsKICAgICBmb3IgKGF1dG8qIGN1cnJlbnQgPSBjaGFp
bi0+aGVhZCgpOyAqY3VycmVudDsgKytjdXJyZW50KSB7CiAgICAgICAgICsrc2l6ZTsKQEAgLTE5
Myw5ICsyMDEsOSBAQCBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5Q2FjaGVQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYgdgogICAgIHJldHVybiB0cnVlOwog
fQogCi1pbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRC
YXNlZFZhbGlkYXRpb24oKQoraW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmNsZWFyQ2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpCiB7Ci0gICAgbV9jYWNoZWRQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNsZWFyKCk7CisgICAgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5k
RmxhZyA9IDA7CiAgICAgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yV2F0Y2hwb2ludHMg
PSBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ+KCk7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440141</attachid>
            <date>2021-10-04 18:48:28 -0700</date>
            <delta_ts>2021-10-04 18:52:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231202-20211004184827.patch</filename>
            <type>text/plain</type>
            <size>31404</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDRiMzJhMjkzNGQxZmMzZmNhZDkwNWYyMDk4ZjE0NDMxN2E5N2NkLi5mYzYwYjc0OTNkMjdhNTJh
OGU1MzdjNmNmNzZhYWI4ZjVmZmI0ZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0xMC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBzaG91bGQgbm90IGhh
dmUgY2FjaGVkIHByb3RvdHlwZSBjaGFpbiBzaW5jZSBlbXB0eSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IgaXMgc2hhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMDIKKyAgICAgICAgcmRhcjovLzgzODE1MTIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjI4MjAxNCBhc3N1bWVkIGFuIGludmFy
aWFudCB0aGF0IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcidzIFN0cnVjdHVyZUNoYWluIGlzIGlt
bXV0YWJsZS4KKyAgICAgICAgVGhpcyBpbnZhcmlhbnQgaXMgYWxzbyB1c2VkIGluIHZhbGlkYXRp
b24gb2YgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLiBIb3dldmVyLCB0aGlzCisgICAgICAgIGlu
dmFyaWFudCB3YXMgYnJva2VuIHNpbmNlIHdlIG5vdyBoYXZlIHNoYXJlZCBlbXB0eSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IsIHdoaWNoIGNhbgorICAgICAgICBiZSB1c2VkIGZvciBkaWZmZXJl
bnQgc3RydWN0dXJlcyBoYXZpbmcgZGlmZmVyZW50IHByb3RvdHlwZSBjaGFpbi4KKworICAgICAg
ICBTaW5jZSBub3cgd2UgaGF2ZSBzaGFyZWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlCisgICAgICAgIFN0cnVjdHVyZUNo
YWluIGluIGl0cyBtZW1iZXIuIFdoZW4gaW52YWxpZGF0aW5nIFN0cnVjdHVyZUNoYWluIGluIFN0
cnVjdHVyZSwgd2UgYWxzbyBjbGVhcgorICAgICAgICBjYWNoZWQgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yIHNvIHRoYXQgd2UgZG8gbm90IGdldCBhIHN0YWxlIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciBmcm9tCisgICAgICAgIFN0cnVjdHVyZSBldmVuIHRob3VnaCB3YXRjaHBvaW50LWJhc2Vk
IHZhbGlkYXRpb24gaXMgbm90IHVzZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92
ZXMgVmFsaWRhdGVkVmlhV2F0Y2hwb2ludCBmbGFnIGluIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBkdWUgdG8gdGhlIHNhbWUKKyAgICAgICAgcmVhc29uLiBXZSBzaG91bGQgbm90IG1vZGlmeSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igb25jZSBpdCBpcyBpbnN0YW50aWF0ZWQuIEluc3RlYWQs
IHdlIGVuY29kZQorICAgICAgICB0aGlzIGZsYWcgYXMgYSBsb3dlc3QgYml0IG9mIG1fY2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvci4gSWYgaXQgaXMgdmFsaWRhdGVkIHZpYSB0cmF2ZXJzaW5n
IChub3Qgd2F0Y2hwb2ludHMpLAorICAgICAgICB0aGVuIHRoaXMgYml0IGlzIHNldC4gU28gd2hl
biBsb2FkaW5nIHRoYXQgcG9pbnRlciBmcm9tIFN0cnVjdHVyZVJhcmVEYXRhLCB3ZSBjYW4gcXVp
Y2tseSBkZXRlY3QKKyAgICAgICAgaXQgd2l0aG91dCBldmVuIGFjY2Vzc2luZyB0byB0aGUgZW51
bWVyYXRvci4gVGhpcyBmaXhlcyB0aGUgaXNzdWUsIGFuZCBpdCBpcyBldmVuIGNsZWFuZXIuCisg
ICAgICAgIFdlIHJlbmFtZSBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IgdG8gbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBzaW5jZSBpdCBub3cKKyAgICAgICAgaW5j
bHVkZXMgdGhpcyBmbGFnLgorCisgICAgICAgIFdoaWxlIHJldmlld2luZyB0aGUgY29kZSwgd2Ug
YWxzbyBmb3VuZCB0aGF0IHdhdGNocG9pbnQtYmFzZWQgdmFsaWRhdGlvbiBkaWRuJ3QgY2FyZSBQ
b2x5UHJvdG8uCisgICAgICAgIFdlIHNob3VsZCBkaXNhYmxlIHdhdGNocG9pbnQtYmFzZWQgdmFs
aWRhdGlvbiBpZiBQb2x5UHJvdG8gaXMgdXNlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAg
ICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAoSlNDOjpwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3Bl
cnR5TmFtZUVudW1lcmF0b3JTaG91bGRXYXRjaCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlQ2hh
aW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsZWFyQ2FjaGVkUHJvdG90eXBl
Q2hhaW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvciBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBv
aW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5
Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNl
ZFZhbGlkYXRpb24pOiBEZWxldGVkLgorCiAyMDIxLTEwLTAzICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVh
cmx5IE9jdG9iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGI0YzhmODYwYjUxNGU2ZDc5ZGYwMWFjN2YyOTZm
YzA4MWRlN2ExZjYuLmM5MGM2MDg5ZTkzZDZiMThiZTMxOWI0NjFkZjAwZGMzYmJhN2M0NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC0xMzk1NCw3ICsxMzk1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKHJhcmVEYXRhKSB7CiAgICAg
ICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVuUmFyZURhdGEgPSBtX2dyYXBoLmZyZWV6ZShyYXJl
RGF0YSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoZnJvemVuUmFyZURh
dGEpLCBzY3JhdGNoMUdQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIpOworICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIFN0cnVjdHVyZVJh
cmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkpLCBz
Y3JhdGNoMUdQUik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAob25seVN0cnVj
dHVyZSkKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIob25seVN0cnVj
dHVyZSksIHNjcmF0Y2gxR1BSKTsKQEAgLTEzOTYzLDExICsxMzk2MywxMSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlFbnVtZXJhdG9yKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwg
U3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHNjcmF0Y2gxR1BSKTsKICAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBl
cnM6Olplcm8sIHNjcmF0Y2gxR1BSKSk7CiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmU3RydWN0dXJlKHNjcmF0Y2gxR1BSKSk7Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURh
dGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIp
OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aDFHUFIsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JBbmRGbGFnKCkpLCBzY3JhdGNoMUdQUik7CiAgICAgICAgIH0KIAogICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzY3Jh
dGNoMUdQUikpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMihD
Q2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFnc09mZnNldCgpKSwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50
KSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxI
ZWxwZXJzOjpOb25aZXJvLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
U3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRl
ZFZpYVRyYXZlcnNpbmdGbGFnKSkpOwogICAgICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1
bXAoKSk7CiAKICAgICAgICAgc2xvd0Nhc2VzLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
MTlhMmNmODc5YmJhMjFkN2QxMmZlY2RjZDBlZDZmZmU5Y2Q2NDJiNi4uODJjYWIwMjE4YzE4YTBk
ZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTExMCw3ICsxMTAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNPYmplY3RfYnV0
dGVyZmx5LCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkSW5saW5lQ2FwYWNpdHksIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5TmFtZXNWZWN0b3JPZmZzZXQoKSkgXAotICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkpIFwK
ICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkU3RydWN0dXJlSUQsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkU3RydWN0dXJlSURPZmZzZXQoKSkgXAogICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9lbmRHZW5lcmljUHJvcGVydHlJbmRleCwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjplbmRHZW5lcmljUHJvcGVydHlJbmRleE9mZnNldCgp
KSBcCiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2VuZFN0cnVjdHVyZVByb3Bl
cnR5SW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZW5kU3RydWN0dXJlUHJvcGVydHlJ
bmRleE9mZnNldCgpKSBcCkBAIC0xNTMsNyArMTUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVk
S2V5cywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lcyhDYWNo
ZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0
YV9jYWNoZWRHZXRPd25Qcm9wZXJ0eU5hbWVzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZD
YWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0
eU5hbWVzKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IoKSkgXAorICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpKSBcCiAgICAgbWFjcm8oSGFzaE1hcElt
cGxfY2FwYWNpdHksIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfYnVmZmVy
LCAgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZz
ZXRPZkJ1ZmZlcigpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfaGVhZCwgIEhhc2hNYXBJbXBs
PEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZIZWFkKCkpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA0
M2QyNmU4M2U5NjgyNWE4ODE5NzhhNGVlMzViYzdlZDMzNTFjMzY1Li42ZjgyN2IyNmQzMDNkMDUy
M2E4YTgwN2MzOGM2NGE4YTU1YzVjYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzQxMywxMiArMTM0MTMsMTIgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1JhcmVEYXRhLCB1bnN1cmUo
cmFyZURhdGFDYXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHJhcmVEYXRhQ2FzZSwgdmFsaWRhdGlvbkNhc2UpOwotICAgICAgICAgICAgTFZh
bHVlIGNhY2hlZCA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0
cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOwotICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdE51bGwoY2FjaGVkKSwgdW5zdXJlKHZhbGlkYXRpb25D
YXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkQW5k
RmxhZyA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0cnVjdHVy
ZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGNhY2hlZEFuZEZsYWcpLCB1bnN1cmUodmFs
aWRhdGlvbkNhc2UpLCB1bnN1cmUoZ2VuZXJpY0Nhc2UpKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8odmFsaWRhdGlvbkNhc2UsIGdlbmVyaWNDYXNlKTsKLSAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihjYWNoZWQpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC50ZXN0Tm9uWmVybzMyKG1fb3V0LmxvYWQzMihjYWNoZWQsIG1faGVhcHMuSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yX2ZsYWdzKSwgbV9vdXQuY29uc3RJbnQzMihKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZpYVdhdGNocG9pbnQpKSwgdW5zdXJlKGNvbnRpbnVhdGlv
biksIHVuc3VyZShnZW5lcmljQ2FzZSkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKGNhY2hlZEFuZEZsYWcpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC50ZXN0SXNaZXJvUHRyKGNhY2hlZEFuZEZsYWcsIG1fb3V0LmNvbnN0SW50UHRyKFN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2
ZXJzaW5nRmxhZykpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7
CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGdlbmVyaWNDYXNlLCBjb250aW51YXRpb24p
OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHZtQ2FsbChwb2ludGVy
VHlwZSgpLCBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCB3ZWFrUG9pbnRlcihn
bG9iYWxPYmplY3QpLCBiYXNlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBjMTg2MzY5OTYwYjFmZWU4YjI3NDU4OWEwMWMxYWM0
NWIzYTlmYmI3Li44NWU4NmNlY2Q2OGNiYmU4ZTVlYTk5Njg2YzQ3MWZlYTIxYWQwYTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAt
MjkwMiwxMCArMjkwMiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvcGVydHlfZW51bWVy
YXRvcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHJl
Z1QxKTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEp
KTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaElmU3RydWN0dXJlKHJlZ1QxKSk7Ci0g
ICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpLCByZWdUMSk7CisgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yQW5kRmxhZygpKSwgcmVnVDEpOwogCiAgICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0UHRyKFplcm8sIHJlZ1QxKSk7Ci0gICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFuY2hU
ZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCkpKTsKKyAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDEsIFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QxKTsKICAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCmluZGV4IDQyZWZiNzFjNGE2NDFkNjIzOTZkNzRmNjA0NWRhNDY2YzVmYzgzMTUu
LjNhNDZlNGQwYzNmNjBjNTNjZGEwYWJkZWY0MGMwZTYxYjMyMGFiZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtOTc0LDcgKzk3NCw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWV0YWRhdGEubV9vZmZzZXQgPSBzbG90LmNhY2hlZE9mZnNldCgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fbmV3U3RydWN0dXJlSUQg
PSBuZXdTdHJ1Y3R1cmUtPmlkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEo
Ynl0ZWNvZGUubV9mbGFncy5pc0RpcmVjdCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4gPSBuZXdTdHJ1Y3R1cmUtPnByb3RvdHlwZUNo
YWluKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZUNlbGwpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIGNoYWluID0gbmV3U3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlQ2VsbCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2hhaW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX3N0cnVjdHVyZUNoYWluLnNldCh2bSwgY29kZUJs
b2NrLCBjaGFpbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRl
eCBmYmRiYTY4ZTBmMzBhMzAwY2U4MjM1NzMxZjBhYTM1YmFjNWVhNGJiLi5kODRiNmVhZDM3ZmRk
YjQzMjBiODQ1MzlkYjc3YzRiNmI4MDQ3ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzExOSw5ICszMTE5
LDkgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAg
ICBiYmVxIEpTQ2VsbDo6bV90eXBlW3QxXSwgU3RydWN0dXJlVHlwZSwgLnNsb3dQYXRoCiAKLSAg
ICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
W3QxXSwgdDEKKyAgICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZ1t0MV0sIHQxCiAgICAgYnRweiB0MSwgLnNsb3dQYXRoCi0gICAg
YnRpeiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZmxhZ3NbdDFdLCAoY29uc3RleHByIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRhdGVkVmlhV2F0Y2hwb2ludCksIC5zbG93UGF0
aAorICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0
aAogCiAgICAgcmV0dXJuKHQxKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4NWQ5NWFhY2Ey
ZDNiZDc0YWU0YmZjMjk2ZDc1NmEwNzkzMzQyMDgxLi5kMjgxZWNmOTNhZmRkOTFlOTMxMWUxMzJh
Mjk5NTc2NjYzYjQwN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTg2LDcgKzg2LDYgQEAg
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCog
Y2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KHBy
b3BlcnR5TmFtZXMpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChwcm9wZXJ0eU5hbWVzLCBwcm9w
ZXJ0eU5hbWVzICsgdGhpc09iamVjdC0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICB9Ci0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CiAKICAgICBp
ZiAodGhpc09iamVjdC0+Y2FjaGVkU3RydWN0dXJlSUQoKSkgewogICAgICAgICBWTSYgdm0gPSB2
aXNpdG9yLnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDY2NjJlOWZhODFiMjhiMDk2MjM3YTMw
YzVkNzlhYzk0MGVjMTMyN2EuLmJlYWE2ZGNiZTE4MGM0ZWYwYTNkNGY0Yjg1Y2YxYTA0YmE0OGNj
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC00NCw4ICs0NCw2IEBAIGNsYXNzIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBHZW5lcmljTW9k
ZSA9IDEgPDwgMiwKICAgICAgICAgLy8gUHJvZmlsaW5nIE9ubHkKICAgICAgICAgSGFzU2Vlbk93
blN0cnVjdHVyZU1vZGVTdHJ1Y3R1cmVNaXNtYXRjaCA9IDEgPDwgMywKLSAgICAgICAgLy8gSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yIE9ubHkKLSAgICAgICAgVmFsaWRhdGVkVmlhV2F0Y2hwb2lu
dCA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGVudW1l
cmF0aW9uTW9kZU1hc2sgPSAoR2VuZXJpY01vZGUgPDwgMSkgLSAxOwpAQCAtNzIsMTAgKzcwLDYg
QEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXMuZ2V0KClbaW5kZXhdLmdldCgpOwogICAg
IH0KIAotICAgIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG90eXBlQ2hhaW4uZ2V0KCk7IH0KLSAgICB2b2lkIHNldENhY2hlZFByb3Rv
dHlwZUNoYWluKFZNJiB2bSwgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKSB7IHJldHVy
biBtX3Byb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgcHJvdG90eXBlQ2hhaW4pOyB9Ci0gICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciwgbV9wcm90b3R5cGVDaGFp
bik7IH0KLQogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJlKFZNJiB2bSkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRTdHJ1Y3R1cmVJRCkKQEAgLTEwMCwxNSArOTQsNiBA
QCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Is
IG1fcHJvcGVydHlOYW1lcyk7CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZGF0ZWRWaWFXYXRjaHBv
aW50KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
VmFsaWRhdGVkVmlhV2F0Y2hwb2ludDsgfQotICAgIHZvaWQgc2V0VmFsaWRhdGVkVmlhV2F0Y2hw
b2ludChib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpCi0gICAgewotICAgICAgICBpZiAodmFs
aWRhdGVkVmlhV2F0Y2hwb2ludCkKLSAgICAgICAgICAgIG1fZmxhZ3MgfD0gSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50OwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2ZsYWdzICY9IH5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZp
YVdhdGNocG9pbnQ7Ci0gICAgfQotCiAgICAgSlNTdHJpbmcqIGNvbXB1dGVOZXh0KEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGJhc2UsIHVpbnQzMl90JiBjdXJyZW50SW5kZXgsIEZsYWcmLCBi
b29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcgPSB0cnVlKTsKIAogICAgIERFQ0xB
UkVfVklTSVRfQ0hJTERSRU47CkBAIC0xMjAsNyArMTA1LDYgQEAgY2xhc3MgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+JiYpOwogCiAgICAgQXV4aWxp
YXJ5QmFycmllcjxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+Kj4gbV9wcm9wZXJ0eU5hbWVzOwotICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmVDaGFpbj4gbV9wcm90b3R5cGVDaGFpbjsKICAgICBTdHJ1
Y3R1cmVJRCBtX2NhY2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0
aDsKICAgICB1aW50MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CkBAIC0xMzgsMTMg
KzEyMiwxNiBAQCBpbmxpbmUgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogCiAgICAgdWludDMyX3QgaW5kZXhl
ZExlbmd0aCA9IGJhc2UtPmdldEVudW1lcmFibGVMZW5ndGgoZ2xvYmFsT2JqZWN0KTsKIAotICAg
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG51bGxwdHI7Ci0KICAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2UtPnN0cnVjdHVyZSh2bSk7Ci0gICAgaWYgKCFpbmRl
eGVkTGVuZ3RoCi0gICAgICAgICYmIChlbnVtZXJhdG9yID0gc3RydWN0dXJlLT5jYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKCkpKSB7Ci0gICAgICAgIGlmIChlbnVtZXJhdG9yLT52YWxpZGF0
ZWRWaWFXYXRjaHBvaW50KCkgfHwgZW51bWVyYXRvci0+Y2FjaGVkUHJvdG90eXBlQ2hhaW4oKSA9
PSBzdHJ1Y3R1cmUtPnByb3RvdHlwZUNoYWluKGdsb2JhbE9iamVjdCwgYmFzZSkpCi0gICAgICAg
ICAgICByZXR1cm4gZW51bWVyYXRvcjsKKyAgICBpZiAoIWluZGV4ZWRMZW5ndGgpIHsKKyAgICAg
ICAgdWludHB0cl90IGVudW1lcmF0b3JBbmRGbGFnID0gc3RydWN0dXJlLT5jYWNoZWRQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpOworICAgICAgICBpZiAoZW51bWVyYXRvckFuZEZsYWcp
IHsKKyAgICAgICAgICAgIGlmICghKGVudW1lcmF0b3JBbmRGbGFnICYgU3RydWN0dXJlUmFyZURh
dGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRlZFZpYVRyYXZlcnNpbmdG
bGFnKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvcio+KGVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+
cHJvdG90eXBlQ2hhaW4odm0sIGdsb2JhbE9iamVjdCwgYmFzZSk7IC8vIFJlZnJlc2ggY2FjaGVk
IHN0cnVjdHVyZSBjaGFpbi4KKyAgICAgICAgICAgIGlmIChhdXRvKiBlbnVtZXJhdG9yID0gc3Ry
dWN0dXJlLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGVudW1lcmF0b3I7CisgICAgICAgIH0KICAgICB9CiAKICAgICB1aW50MzJfdCBudW1i
ZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsKQEAgLTE2MywxNCArMTUwLDE1IEBAIGlubGluZSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAgICAgICAgIG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMgPSAwOwog
ICAgIH0KIAorICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG51bGxw
dHI7CiAgICAgaWYgKCFpbmRleGVkTGVuZ3RoICYmICFwcm9wZXJ0eU5hbWVzLnNpemUoKSkKICAg
ICAgICAgZW51bWVyYXRvciA9IHZtLmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogICAg
IGVsc2UKICAgICAgICAgZW51bWVyYXRvciA9IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3Jl
YXRlKHZtLCBzdHJ1Y3R1cmVBZnRlckdldHRpbmdQcm9wZXJ0eU5hbWVzLCBpbmRleGVkTGVuZ3Ro
LCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBXVEZNb3ZlKHByb3BlcnR5TmFtZXMpKTsKICAg
ICBpZiAoIWluZGV4ZWRMZW5ndGggJiYgc3VjY2Vzc2Z1bGx5Tm9ybWFsaXplZENoYWluICYmIHN0
cnVjdHVyZUFmdGVyR2V0dGluZ1Byb3BlcnR5TmFtZXMgPT0gc3RydWN0dXJlKSB7Ci0gICAgICAg
IGVudW1lcmF0b3ItPnNldENhY2hlZFByb3RvdHlwZUNoYWluKHZtLCBzdHJ1Y3R1cmUtPnByb3Rv
dHlwZUNoYWluKGdsb2JhbE9iamVjdCwgYmFzZSkpOworICAgICAgICBTdHJ1Y3R1cmVDaGFpbiog
Y2hhaW4gPSBzdHJ1Y3R1cmUtPnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2Up
OwogICAgICAgICBpZiAoc3RydWN0dXJlLT5jYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3Io
dm0pKQotICAgICAgICAgICAgc3RydWN0dXJlLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKHZtLCBlbnVtZXJhdG9yKTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0Q2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcih2bSwgZW51bWVyYXRvciwgY2hhaW4pOwogICAgIH0KICAgICBy
ZXR1cm4gZW51bWVyYXRvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCmluZGV4IGQxNjQzN2Y2M2IzM2M5ZTBlZWUyMzk0NThmZjUwNjYwZGE0NzVjNmYu
LjA3MmIwZWMwNjk4NzkxMmM1MjNmNjZmZjZjY2IxMjZlNDE5MTkyNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTIyOSw5ICsxMjI5LDE1IEBA
IHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3Im
IHZpc2l0b3IpCiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcih0aGlzT2JqZWN0LT5tX2xv
Y2spOwogICAgIAogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fZ2xvYmFsT2JqZWN0
KTsKLSAgICBpZiAoIXRoaXNPYmplY3QtPmlzT2JqZWN0KCkpCisgICAgaWYgKCF0aGlzT2JqZWN0
LT5pc09iamVjdCgpKSB7CisgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGNsZWFyIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciBzaW5jZSBpdCBpcyBuZXZlciBjYWNoZWQgZm9yIG5vbi1vYmpl
Y3QgU3RydWN0dXJlLgorICAgICAgICAvLyBXZSBkbyBub3QgaGF2ZSBjb2RlIGNsZWFyaW5nIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvciBzaW5jZSB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQg
Y29uY3VycmVudGx5LgogICAgICAgICB0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3RvdHlwZUNoYWlu
LmNsZWFyKCk7Ci0gICAgZWxzZSB7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgaWYgKGF1
dG8qIHJhcmVEYXRhID0gdHJ5UmFyZURhdGEoKSkKKyAgICAgICAgICAgIEFTU0VSVCghcmFyZURh
dGEtPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CisjZW5kaWYKKyAgICB9IGVsc2Ug
ewogICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZSk7CiAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4pOwog
ICAgIH0KQEAgLTEzOTgsMTIgKzE0MDQsMTQgQEAgYm9vbCBDbGFzc0luZm86Omhhc1N0YXRpY1Nl
dHRlck9yUmVhZG9ubHlQcm9wZXJ0aWVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgU3RydWN0dXJlOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQordm9pZCBTdHJ1Y3R1cmU6OnNl
dENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IqIGVudW1lcmF0b3IsIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKIHsKKyAgICBBU1NFUlQo
dHlwZUluZm8oKS5pc09iamVjdCgpKTsKICAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKICAg
ICBpZiAoIWhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGFsbG9jYXRlUmFyZURhdGEodm0pOwotICAg
IHJhcmVEYXRhKCktPnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIGVudW1lcmF0
b3IpOworICAgIEFTU0VSVChjaGFpbiA9PSBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpKTsK
KyAgICByYXJlRGF0YSgpLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCB0aGlz
LCBlbnVtZXJhdG9yLCBjaGFpbik7CiB9CiAKIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogU3Ry
dWN0dXJlOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3QKQEAgLTE0MTMsNiAr
MTQyMSwxMyBAQCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIFN0cnVjdHVyZTo6Y2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0CiAgICAgcmV0dXJuIHJhcmVEYXRhKCktPmNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIH0KIAordWludHB0cl90IFN0cnVjdHVyZTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKSBjb25zdAoreworICAgIGlmICghaGFz
UmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPmNh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCk7Cit9CisKIGJvb2wgU3RydWN0dXJl
OjpjYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtKSBjb25zdAogewogICAgIGlm
ICghdGhpcy0+Y2FuQ2FjaGVPd25Qcm9wZXJ0eU5hbWVzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDI2Yjg3OTM4NTBiM2YxOGYxYWVlYTE1YjhhODli
MWE4N2ZjMzEzYmMuLmI0OTg2MWJjYThkNTBlMDAxNjhlZmI2YWQ1YWRiMWNhNTZmYzk1ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0zMDcsNyArMzA3
LDYgQEAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGVGb3JMb29rdXAoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU1ZhbHVlIHByb3Rv
dHlwZUZvckxvb2t1cChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogYmFzZSkgY29uc3Q7CiAgICAg
U3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCogYmFzZSkgY29uc3Q7Ci0gICAgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIGJhc2UpIGNvbnN0OwogICAgIERFQ0xBUkVfVklTSVRf
Q0hJTERSRU47CiAgICAgCiAgICAgLy8gQSBTdHJ1Y3R1cmUgaXMgY2hlYXAgdG8gbWFyayBkdXJp
bmcgR0MgaWYgZG9pbmcgc28gd291bGQgb25seSBhZGQgYSBzbWFsbCBhbmQgYm91bmRlZCBhbW91
bnQKQEAgLTUzMCw4ICs1MjksOSBAQCBjbGFzcyBTdHJ1Y3R1cmUgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICAgICAgICAgIHNldEhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzRXhjbHVk
aW5nUHJvdG8odHJ1ZSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKik7CisgICAgdm9pZCBzZXRD
YWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KiwgU3RydWN0dXJlQ2hhaW4qKTsKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSBjb25zdDsKKyAgICB1aW50cHRyX3QgY2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKSBjb25zdDsKICAgICBib29sIGNhbkNhY2hlUHJv
cGVydHlOYW1lRW51bWVyYXRvcihWTSYpIGNvbnN0OwogICAgIGJvb2wgY2FuQWNjZXNzUHJvcGVy
dGllc1F1aWNrbHlGb3JFbnVtZXJhdGlvbigpIGNvbnN0OwogCkBAIC02MzcsNyArNjM3LDcgQEAg
Y2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIHByb3BlcnR5TmFt
ZUVudW1lcmF0b3JTaG91bGRXYXRjaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gZGZn
U2hvdWxkV2F0Y2goKTsKKyAgICAgICAgcmV0dXJuIGRmZ1Nob3VsZFdhdGNoKCkgJiYgIWhhc1Bv
bHlQcm90bygpOwogICAgIH0KICAgICAgICAgCiAgICAgdm9pZCBhZGRUcmFuc2l0aW9uV2F0Y2hw
b2ludChXYXRjaHBvaW50KiB3YXRjaHBvaW50KSBjb25zdApAQCAtODQ5LDYgKzg0OSw4IEBAIGNs
YXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogICAgIAogICAgIHZvaWQgc3RhcnRXYXRj
aGluZ0ludGVybmFsUHJvcGVydGllcyhWTSYpOwogCisgICAgdm9pZCBjbGVhckNhY2hlZFByb3Rv
dHlwZUNoYWluKCk7CisKICAgICBzdGF0aWMgY29uc3RleHByIGludCBzX21heFRyYW5zaXRpb25M
ZW5ndGggPSA2NDsKICAgICBzdGF0aWMgY29uc3RleHByIGludCBzX21heFRyYW5zaXRpb25MZW5n
dGhGb3JOb25FdmFsUHV0QnlJZCA9IDUxMjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCmluZGV4IDUzNWYwZTE5YTRiYjQ5YmVlYzZhMGQx
M2E0OWY2YmJiMGYzN2NkZDMuLjQwYzlmMGE0YWYyYjY1ODhhOWIyNjQ5ODQzMDY2ZGJkYzc5MGQ0
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxp
bmVzLmgKQEAgLTM0MiwxNiArMzQyLDEyIEBAIGlubGluZSBTdHJ1Y3R1cmVDaGFpbiogU3RydWN0
dXJlOjpwcm90b3R5cGVDaGFpbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAg
Ly8gV2UgY2FjaGUgb3VyIHByb3RvdHlwZSBjaGFpbiBzbyBvdXIgY2xpZW50cyBjYW4gc2hhcmUg
aXQuCiAgICAgaWYgKCFpc1ZhbGlkKGdsb2JhbE9iamVjdCwgbV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5nZXQoKSwgYmFzZSkpIHsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90b3R5cGVG
b3JMb29rdXAoZ2xvYmFsT2JqZWN0LCBiYXNlKTsKKyAgICAgICAgY29uc3RfY2FzdDxTdHJ1Y3R1
cmUqPih0aGlzKS0+Y2xlYXJDYWNoZWRQcm90b3R5cGVDaGFpbigpOwogICAgICAgICBtX2NhY2hl
ZFByb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgU3RydWN0dXJlQ2hhaW46OmNyZWF0ZSh2bSwg
cHJvdG90eXBlLmlzTnVsbCgpID8gbnVsbHB0ciA6IGFzT2JqZWN0KHByb3RvdHlwZSkpKTsKICAg
ICB9CiAgICAgcmV0dXJuIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCk7CiB9CiAKLWlubGlu
ZSBTdHJ1Y3R1cmVDaGFpbiogU3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSkgY29uc3QKLXsKLSAgICByZXR1cm4gcHJv
dG90eXBlQ2hhaW4oZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QsIGJhc2UpOwotfQot
CiBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluLCBKU09iamVjdCogYmFz
ZSkgY29uc3QKIHsKICAgICBpZiAoIWNhY2hlZFByb3RvdHlwZUNoYWluKQpAQCAtNzU5LDQgKzc1
NSwxMiBAQCBpbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6OmdldChV
bmlxdWVkU3RyaW5nSW1wbCogcmVwLCB1bnNpZ25lZAogICAgIHJldHVybiBtYXAoKS0+Z2V0KFN0
cnVjdHVyZVRyYW5zaXRpb25UYWJsZTo6SGFzaDo6S2V5KHJlcCwgYXR0cmlidXRlcywgdHJhbnNp
dGlvbktpbmQpKTsKIH0KIAoraW5saW5lIHZvaWQgU3RydWN0dXJlOjpjbGVhckNhY2hlZFByb3Rv
dHlwZUNoYWluKCkKK3sKKyAgICBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmNsZWFyKCk7CisgICAg
aWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1cm47CisgICAgcmFyZURhdGEoKS0+Y2xl
YXJDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURh
dGEuY3BwCmluZGV4IDVmMDJmMWVmNTE2N2EzOGJkNThjNGI5ZjQ4YjZiMTEyZGRmZWJhNTYuLmMy
Zjc1NTNiMmNkZWM5ZWNkNjgzYTM5MTY5ODk0NTVjYjUwMjE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKQEAgLTc5LDcg
Kzc5LDcgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxs
KiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0g
MDsgaW5kZXggPCBudW1iZXJPZkNhY2hlZFNwZWNpYWxQcm9wZXJ0eUtleXM7ICsraW5kZXgpCiAg
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKHRoaXNPYmplY3QtPmNhY2hlZFNw
ZWNpYWxQcm9wZXJ0eShzdGF0aWNfY2FzdDxDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXk+KGluZGV4
KSkpOwogICAgIH0KLSAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3IpOworICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQodGhpc09i
amVjdC0+Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKTsKICAgICBmb3IgKHVuc2lnbmVk
IGluZGV4ID0gMDsgaW5kZXggPCBudW1iZXJPZkNhY2hlZFByb3BlcnR5TmFtZXM7ICsraW5kZXgp
IHsKICAgICAgICAgYXV0byogY2FjaGVkID0gdGhpc09iamVjdC0+bV9jYWNoZWRQcm9wZXJ0eU5h
bWVzW2luZGV4XS51bnZhbGlkYXRlZEdldCgpOwogICAgICAgICBpZiAoY2FjaGVkICE9IGNhY2hl
ZFByb3BlcnR5TmFtZXNTZW50aW5lbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKaW5kZXggNzdjMDMzYTY5ZmU1NGMwZWE4MjUyOThi
YTk5ZmE2ZWQxOTc0MGU1Zi4uNmMxMzAwOWI3YmU3ZTlkMGZhMWE1MWYxYmNhYmExMDJiNDcxNGNk
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJl
RGF0YS5oCkBAIC04OSw3ICs4OSw5IEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiAgICAgdm9pZCBjYWNoZVNwZWNpYWxQcm9wZXJ0eShKU0dsb2JhbE9i
amVjdCosIFZNJiwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU1ZhbHVlLCBDYWNoZWRTcGVj
aWFsUHJvcGVydHlLZXksIGNvbnN0IFByb3BlcnR5U2xvdCYpOwogCiAgICAgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKiBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKik7CisgICAgdWludHB0cl90IGNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JB
bmRGbGFnKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KFZNJiwgU3RydWN0dXJlKiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiwgU3RydWN0dXJlQ2hh
aW4qKTsKKyAgICB2b2lkIGNsZWFyQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogCiAg
ICAgSlNJbW11dGFibGVCdXR0ZXJmbHkqIGNhY2hlZFByb3BlcnR5TmFtZXMoQ2FjaGVkUHJvcGVy
dHlOYW1lc0tpbmQpIGNvbnN0OwogICAgIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNoZWRQcm9w
ZXJ0eU5hbWVzSWdub3JpbmdTZW50aW5lbChDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZCkgY29uc3Q7
CkBAIC0xMDgsMTYgKzExMCwxNyBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5hbCA6IHB1
YmxpYyBKU0NlbGwgewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZVJh
cmVEYXRhLCBtX2NhY2hlZFByb3BlcnR5TmFtZXMpICsgc2l6ZW9mKFdyaXRlQmFycmllcjxKU0lt
bXV0YWJsZUJ1dHRlcmZseT4pICogc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGtpbmQpOwogICAgIH0K
IAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKCkKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51
bWVyYXRvckFuZEZsYWcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihT
dHJ1Y3R1cmVSYXJlRGF0YSwgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKTsKKyAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVSYXJlRGF0YSwgbV9jYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyk7CiAgICAgfQogCiAgICAgREVDTEFSRV9FWFBPUlRf
SU5GTzsKIAogICAgIHZvaWQgZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKTsKIAotICAgIHZv
aWQgaW52YWxpZGF0ZVdhdGNocG9pbnRCYXNlZFZhbGlkYXRpb24oKTsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnRwdHJfdCBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRW
aWFUcmF2ZXJzaW5nRmxhZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgY2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvck1hc2sgPSB+c3RhdGljX2Nhc3Q8dWludHB0cl90Pigx
KTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpA
QCAtMTM1LDEyICsxMzgsMTIgQEAgY2xhc3MgU3RydWN0dXJlUmFyZURhdGEgZmluYWwgOiBwdWJs
aWMgSlNDZWxsIHsKICAgICBib29sIGNhbkNhY2hlU3BlY2lhbFByb3BlcnR5KENhY2hlZFNwZWNp
YWxQcm9wZXJ0eUtleSk7CiAgICAgdm9pZCBnaXZlVXBPblNwZWNpYWxQcm9wZXJ0eUNhY2hlKENh
Y2hlZFNwZWNpYWxQcm9wZXJ0eUtleSk7CiAKLSAgICBib29sIHRyeUNhY2hlUHJvcGVydHlOYW1l
RW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mLCBTdHJ1Y3R1cmVDaGFpbiopOworICAgIGJvb2wg
dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYsIFN0cnVjdHVy
ZSosIFN0cnVjdHVyZUNoYWluKik7CiAKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3By
ZXZpb3VzOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBzb21lIHN0b3J5IGZvciBjbGVh
cmluZyB0aGVzZSBwcm9wZXJ0eSBuYW1lcyBjYWNoZXMgaW4gR0MuCiAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjY1OQotICAgIFdyaXRlQmFycmllcjxK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I+IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcjsK
KyAgICB1aW50cHRyX3QgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyB7IDAg
fTsKICAgICBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ+
IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcldhdGNocG9pbnRzOwogICAgIFdyaXRlQmFy
cmllcjxKU0ltbXV0YWJsZUJ1dHRlcmZseT4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVzW251bWJlck9m
Q2FjaGVkUHJvcGVydHlOYW1lc10geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCmluZGV4IGUyY2IzN2Ji
ODc1YjNjZmUxN2E5NDgyMjUwNmNkMGFmNzg0YzJhNDMuLjA0MGQ1ZWE4OTMyYjc3OWUxNjExMjQ3
NmJmNWZjZDA2NzA5YTQzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oCkBAIC05MCwxNSArOTAsMjAgQEAg
aW5saW5lIEpTVmFsdWUgU3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFNwZWNpYWxQcm9wZXJ0eShD
YWNoZWRTcGVjaWFsUHJvcGVydHlLZXkKIAogaW5saW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciogU3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSBjb25z
dAogewotICAgIHJldHVybiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0KCk7Cisg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqPihtX2NhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnICYgY2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvck1hc2spOwogfQogCi1pbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0Q2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciog
ZW51bWVyYXRvcikKK2lubGluZSB1aW50cHRyX3QgU3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZzsKK30KKworaW5saW5lIHZvaWQgU3RydWN0
dXJlUmFyZURhdGE6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRv
ciwgU3RydWN0dXJlQ2hhaW4qIGNoYWluKQogewotICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51
bWVyYXRvci5zZXQodm0sIHRoaXMsIGVudW1lcmF0b3IpOwogICAgIG1fY2FjaGVkUHJvcGVydHlO
YW1lRW51bWVyYXRvcldhdGNocG9pbnRzID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZh
bGlkYXRpb25XYXRjaHBvaW50PigpOwotICAgIGJvb2wgdmFsaWRhdGVkVmlhV2F0Y2hwb2ludCA9
IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQodm0sIGVudW1lcmF0
b3ItPmNhY2hlZFByb3RvdHlwZUNoYWluKCkpOwotICAgIGVudW1lcmF0b3ItPnNldFZhbGlkYXRl
ZFZpYVdhdGNocG9pbnQodmFsaWRhdGVkVmlhV2F0Y2hwb2ludCk7CisgICAgYm9vbCB2YWxpZGF0
ZWRWaWFXYXRjaHBvaW50ID0gdHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hw
b2ludCh2bSwgYmFzZVN0cnVjdHVyZSwgY2hhaW4pOworICAgIG1fY2FjaGVkUHJvcGVydHlOYW1l
RW51bWVyYXRvckFuZEZsYWcgPSAoKHZhbGlkYXRlZFZpYVdhdGNocG9pbnQgPyAwIDogY2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpIHwgYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4oZW51bWVyYXRvcikpOworICAgIHZtLmhlYXAud3JpdGVCYXJy
aWVyKHRoaXMsIGVudW1lcmF0b3IpOwogfQogCiBpbmxpbmUgSlNJbW11dGFibGVCdXR0ZXJmbHkq
IFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3BlcnR5TmFt
ZXNLaW5kIGtpbmQpIGNvbnN0CkBAIC0xNjksMTEgKzE3NCwxNCBAQCBpbmxpbmUgdm9pZCBTdHJ1
Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ6OmZpcmVJbnRlcm5hbChWTSYsIGNvbnN0
IEZpcmVEZQogewogICAgIGlmICghbV9zdHJ1Y3R1cmVSYXJlRGF0YS0+aXNMaXZlKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX3N0cnVjdHVyZVJhcmVEYXRhLT5pbnZhbGlkYXRlV2F0Y2hwb2lu
dEJhc2VkVmFsaWRhdGlvbigpOworICAgIG1fc3RydWN0dXJlUmFyZURhdGEtPmNsZWFyQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogfQogCi1pbmxpbmUgYm9vbCBTdHJ1Y3R1cmVSYXJl
RGF0YTo6dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYgdm0s
IFN0cnVjdHVyZUNoYWluKiBjaGFpbikKK2lubGluZSBib29sIFN0cnVjdHVyZVJhcmVEYXRhOjp0
cnlDYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KFZNJiB2bSwgU3RydWN0
dXJlKiBiYXNlU3RydWN0dXJlLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCiB7CisgICAgaWYgKGJh
c2VTdHJ1Y3R1cmUtPmhhc1BvbHlQcm90bygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICB1bnNpZ25lZCBzaXplID0gMDsKICAgICBmb3IgKGF1dG8qIGN1cnJlbnQgPSBjaGFpbi0+aGVh
ZCgpOyAqY3VycmVudDsgKytjdXJyZW50KSB7CiAgICAgICAgICsrc2l6ZTsKQEAgLTE5Myw5ICsy
MDEsOSBAQCBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5Q2FjaGVQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYgdgogICAgIHJldHVybiB0cnVlOwogfQogCi1p
bmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNlZFZh
bGlkYXRpb24oKQoraW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmNsZWFyQ2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcigpCiB7Ci0gICAgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmNsZWFyKCk7CisgICAgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyA9
IDA7CiAgICAgbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yV2F0Y2hwb2ludHMgPSBGaXhl
ZFZlY3RvcjxTdHJ1Y3R1cmVDaGFpbkludmFsaWRhdGlvbldhdGNocG9pbnQ+KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440142</attachid>
            <date>2021-10-04 18:52:17 -0700</date>
            <delta_ts>2021-10-04 20:08:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231202-20211004185216.patch</filename>
            <type>text/plain</type>
            <size>31690</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDRiMzJhMjkzNGQxZmMzZmNhZDkwNWYyMDk4ZjE0NDMxN2E5N2NkLi5mYzYwYjc0OTNkMjdhNTJh
OGU1MzdjNmNmNzZhYWI4ZjVmZmI0ZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0xMC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBzaG91bGQgbm90IGhh
dmUgY2FjaGVkIHByb3RvdHlwZSBjaGFpbiBzaW5jZSBlbXB0eSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IgaXMgc2hhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMDIKKyAgICAgICAgcmRhcjovLzgzODE1MTIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjI4MjAxNCBhc3N1bWVkIGFuIGludmFy
aWFudCB0aGF0IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcidzIFN0cnVjdHVyZUNoYWluIGlzIGlt
bXV0YWJsZS4KKyAgICAgICAgVGhpcyBpbnZhcmlhbnQgaXMgYWxzbyB1c2VkIGluIHZhbGlkYXRp
b24gb2YgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLiBIb3dldmVyLCB0aGlzCisgICAgICAgIGlu
dmFyaWFudCB3YXMgYnJva2VuIHNpbmNlIHdlIG5vdyBoYXZlIHNoYXJlZCBlbXB0eSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IsIHdoaWNoIGNhbgorICAgICAgICBiZSB1c2VkIGZvciBkaWZmZXJl
bnQgc3RydWN0dXJlcyBoYXZpbmcgZGlmZmVyZW50IHByb3RvdHlwZSBjaGFpbi4KKworICAgICAg
ICBTaW5jZSBub3cgd2UgaGF2ZSBzaGFyZWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlCisgICAgICAgIFN0cnVjdHVyZUNo
YWluIGluIGl0cyBtZW1iZXIuIFdoZW4gaW52YWxpZGF0aW5nIFN0cnVjdHVyZUNoYWluIGluIFN0
cnVjdHVyZSwgd2UgYWxzbyBjbGVhcgorICAgICAgICBjYWNoZWQgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yIHNvIHRoYXQgd2UgZG8gbm90IGdldCBhIHN0YWxlIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciBmcm9tCisgICAgICAgIFN0cnVjdHVyZSBldmVuIHRob3VnaCB3YXRjaHBvaW50LWJhc2Vk
IHZhbGlkYXRpb24gaXMgbm90IHVzZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92
ZXMgVmFsaWRhdGVkVmlhV2F0Y2hwb2ludCBmbGFnIGluIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBkdWUgdG8gdGhlIHNhbWUKKyAgICAgICAgcmVhc29uLiBXZSBzaG91bGQgbm90IG1vZGlmeSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igb25jZSBpdCBpcyBpbnN0YW50aWF0ZWQuIEluc3RlYWQs
IHdlIGVuY29kZQorICAgICAgICB0aGlzIGZsYWcgYXMgYSBsb3dlc3QgYml0IG9mIG1fY2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvci4gSWYgaXQgaXMgdmFsaWRhdGVkIHZpYSB0cmF2ZXJzaW5n
IChub3Qgd2F0Y2hwb2ludHMpLAorICAgICAgICB0aGVuIHRoaXMgYml0IGlzIHNldC4gU28gd2hl
biBsb2FkaW5nIHRoYXQgcG9pbnRlciBmcm9tIFN0cnVjdHVyZVJhcmVEYXRhLCB3ZSBjYW4gcXVp
Y2tseSBkZXRlY3QKKyAgICAgICAgaXQgd2l0aG91dCBldmVuIGFjY2Vzc2luZyB0byB0aGUgZW51
bWVyYXRvci4gVGhpcyBmaXhlcyB0aGUgaXNzdWUsIGFuZCBpdCBpcyBldmVuIGNsZWFuZXIuCisg
ICAgICAgIFdlIHJlbmFtZSBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IgdG8gbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBzaW5jZSBpdCBub3cKKyAgICAgICAgaW5j
bHVkZXMgdGhpcyBmbGFnLgorCisgICAgICAgIFdoaWxlIHJldmlld2luZyB0aGUgY29kZSwgd2Ug
YWxzbyBmb3VuZCB0aGF0IHdhdGNocG9pbnQtYmFzZWQgdmFsaWRhdGlvbiBkaWRuJ3QgY2FyZSBQ
b2x5UHJvdG8uCisgICAgICAgIFdlIHNob3VsZCBkaXNhYmxlIHdhdGNocG9pbnQtYmFzZWQgdmFs
aWRhdGlvbiBpZiBQb2x5UHJvdG8gaXMgdXNlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAg
ICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAoSlNDOjpwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3Bl
cnR5TmFtZUVudW1lcmF0b3JTaG91bGRXYXRjaCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlQ2hh
aW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsZWFyQ2FjaGVkUHJvdG90eXBl
Q2hhaW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvciBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBv
aW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5
Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNl
ZFZhbGlkYXRpb24pOiBEZWxldGVkLgorCiAyMDIxLTEwLTAzICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVh
cmx5IE9jdG9iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGI0YzhmODYwYjUxNGU2ZDc5ZGYwMWFjN2YyOTZm
YzA4MWRlN2ExZjYuLmM5MGM2MDg5ZTkzZDZiMThiZTMxOWI0NjFkZjAwZGMzYmJhN2M0NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC0xMzk1NCw3ICsxMzk1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKHJhcmVEYXRhKSB7CiAgICAg
ICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVuUmFyZURhdGEgPSBtX2dyYXBoLmZyZWV6ZShyYXJl
RGF0YSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoZnJvemVuUmFyZURh
dGEpLCBzY3JhdGNoMUdQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIpOworICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIFN0cnVjdHVyZVJh
cmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkpLCBz
Y3JhdGNoMUdQUik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAob25seVN0cnVj
dHVyZSkKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIob25seVN0cnVj
dHVyZSksIHNjcmF0Y2gxR1BSKTsKQEAgLTEzOTYzLDExICsxMzk2MywxMSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlFbnVtZXJhdG9yKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwg
U3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHNjcmF0Y2gxR1BSKTsKICAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBl
cnM6Olplcm8sIHNjcmF0Y2gxR1BSKSk7CiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmU3RydWN0dXJlKHNjcmF0Y2gxR1BSKSk7Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURh
dGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIp
OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aDFHUFIsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JBbmRGbGFnKCkpLCBzY3JhdGNoMUdQUik7CiAgICAgICAgIH0KIAogICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzY3Jh
dGNoMUdQUikpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMihD
Q2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFnc09mZnNldCgpKSwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50
KSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxI
ZWxwZXJzOjpOb25aZXJvLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
U3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRl
ZFZpYVRyYXZlcnNpbmdGbGFnKSkpOwogICAgICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1
bXAoKSk7CiAKICAgICAgICAgc2xvd0Nhc2VzLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
MTlhMmNmODc5YmJhMjFkN2QxMmZlY2RjZDBlZDZmZmU5Y2Q2NDJiNi4uODJjYWIwMjE4YzE4YTBk
ZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTExMCw3ICsxMTAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNPYmplY3RfYnV0
dGVyZmx5LCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkSW5saW5lQ2FwYWNpdHksIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5TmFtZXNWZWN0b3JPZmZzZXQoKSkgXAotICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkpIFwK
ICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkU3RydWN0dXJlSUQsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkU3RydWN0dXJlSURPZmZzZXQoKSkgXAogICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9lbmRHZW5lcmljUHJvcGVydHlJbmRleCwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjplbmRHZW5lcmljUHJvcGVydHlJbmRleE9mZnNldCgp
KSBcCiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2VuZFN0cnVjdHVyZVByb3Bl
cnR5SW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZW5kU3RydWN0dXJlUHJvcGVydHlJ
bmRleE9mZnNldCgpKSBcCkBAIC0xNTMsNyArMTUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVk
S2V5cywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lcyhDYWNo
ZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0
YV9jYWNoZWRHZXRPd25Qcm9wZXJ0eU5hbWVzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZD
YWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0
eU5hbWVzKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IoKSkgXAorICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpKSBcCiAgICAgbWFjcm8oSGFzaE1hcElt
cGxfY2FwYWNpdHksIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfYnVmZmVy
LCAgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZz
ZXRPZkJ1ZmZlcigpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfaGVhZCwgIEhhc2hNYXBJbXBs
PEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZIZWFkKCkpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA0
M2QyNmU4M2U5NjgyNWE4ODE5NzhhNGVlMzViYzdlZDMzNTFjMzY1Li42ZjgyN2IyNmQzMDNkMDUy
M2E4YTgwN2MzOGM2NGE4YTU1YzVjYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzQxMywxMiArMTM0MTMsMTIgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1JhcmVEYXRhLCB1bnN1cmUo
cmFyZURhdGFDYXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHJhcmVEYXRhQ2FzZSwgdmFsaWRhdGlvbkNhc2UpOwotICAgICAgICAgICAgTFZh
bHVlIGNhY2hlZCA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0
cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOwotICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdE51bGwoY2FjaGVkKSwgdW5zdXJlKHZhbGlkYXRpb25D
YXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkQW5k
RmxhZyA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0cnVjdHVy
ZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGNhY2hlZEFuZEZsYWcpLCB1bnN1cmUodmFs
aWRhdGlvbkNhc2UpLCB1bnN1cmUoZ2VuZXJpY0Nhc2UpKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8odmFsaWRhdGlvbkNhc2UsIGdlbmVyaWNDYXNlKTsKLSAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihjYWNoZWQpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC50ZXN0Tm9uWmVybzMyKG1fb3V0LmxvYWQzMihjYWNoZWQsIG1faGVhcHMuSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yX2ZsYWdzKSwgbV9vdXQuY29uc3RJbnQzMihKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZpYVdhdGNocG9pbnQpKSwgdW5zdXJlKGNvbnRpbnVhdGlv
biksIHVuc3VyZShnZW5lcmljQ2FzZSkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKGNhY2hlZEFuZEZsYWcpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC50ZXN0SXNaZXJvUHRyKGNhY2hlZEFuZEZsYWcsIG1fb3V0LmNvbnN0SW50UHRyKFN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2
ZXJzaW5nRmxhZykpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7
CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGdlbmVyaWNDYXNlLCBjb250aW51YXRpb24p
OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHZtQ2FsbChwb2ludGVy
VHlwZSgpLCBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCB3ZWFrUG9pbnRlcihn
bG9iYWxPYmplY3QpLCBiYXNlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBjMTg2MzY5OTYwYjFmZWU4YjI3NDU4OWEwMWMxYWM0
NWIzYTlmYmI3Li44NWU4NmNlY2Q2OGNiYmU4ZTVlYTk5Njg2YzQ3MWZlYTIxYWQwYTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAt
MjkwMiwxMCArMjkwMiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvcGVydHlfZW51bWVy
YXRvcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHJl
Z1QxKTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEp
KTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaElmU3RydWN0dXJlKHJlZ1QxKSk7Ci0g
ICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpLCByZWdUMSk7CisgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yQW5kRmxhZygpKSwgcmVnVDEpOwogCiAgICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0UHRyKFplcm8sIHJlZ1QxKSk7Ci0gICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFuY2hU
ZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCkpKTsKKyAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDEsIFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QxKTsKICAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCmluZGV4IDQyZWZiNzFjNGE2NDFkNjIzOTZkNzRmNjA0NWRhNDY2YzVmYzgzMTUu
LjNhNDZlNGQwYzNmNjBjNTNjZGEwYWJkZWY0MGMwZTYxYjMyMGFiZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtOTc0LDcgKzk3NCw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWV0YWRhdGEubV9vZmZzZXQgPSBzbG90LmNhY2hlZE9mZnNldCgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fbmV3U3RydWN0dXJlSUQg
PSBuZXdTdHJ1Y3R1cmUtPmlkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEo
Ynl0ZWNvZGUubV9mbGFncy5pc0RpcmVjdCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4gPSBuZXdTdHJ1Y3R1cmUtPnByb3RvdHlwZUNo
YWluKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZUNlbGwpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIGNoYWluID0gbmV3U3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlQ2VsbCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2hhaW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX3N0cnVjdHVyZUNoYWluLnNldCh2bSwgY29kZUJs
b2NrLCBjaGFpbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRl
eCBmYmRiYTY4ZTBmMzBhMzAwY2U4MjM1NzMxZjBhYTM1YmFjNWVhNGJiLi5kODRiNmVhZDM3ZmRk
YjQzMjBiODQ1MzlkYjc3YzRiNmI4MDQ3ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzExOSw5ICszMTE5
LDkgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAg
ICBiYmVxIEpTQ2VsbDo6bV90eXBlW3QxXSwgU3RydWN0dXJlVHlwZSwgLnNsb3dQYXRoCiAKLSAg
ICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
W3QxXSwgdDEKKyAgICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZ1t0MV0sIHQxCiAgICAgYnRweiB0MSwgLnNsb3dQYXRoCi0gICAg
YnRpeiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZmxhZ3NbdDFdLCAoY29uc3RleHByIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRhdGVkVmlhV2F0Y2hwb2ludCksIC5zbG93UGF0
aAorICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0
aAogCiAgICAgcmV0dXJuKHQxKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4NWQ5NWFhY2Ey
ZDNiZDc0YWU0YmZjMjk2ZDc1NmEwNzkzMzQyMDgxLi5kMjgxZWNmOTNhZmRkOTFlOTMxMWUxMzJh
Mjk5NTc2NjYzYjQwN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTg2LDcgKzg2LDYgQEAg
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCog
Y2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KHBy
b3BlcnR5TmFtZXMpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChwcm9wZXJ0eU5hbWVzLCBwcm9w
ZXJ0eU5hbWVzICsgdGhpc09iamVjdC0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICB9Ci0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CiAKICAgICBp
ZiAodGhpc09iamVjdC0+Y2FjaGVkU3RydWN0dXJlSUQoKSkgewogICAgICAgICBWTSYgdm0gPSB2
aXNpdG9yLnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDY2NjJlOWZhODFiMjhiMDk2MjM3YTMw
YzVkNzlhYzk0MGVjMTMyN2EuLmI0NmVlOWI2MWM3MDk2MzlmZWY4YmM1ZGJjNzNjYTFhNGI0YzU5
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC00NCw4ICs0NCw2IEBAIGNsYXNzIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBHZW5lcmljTW9k
ZSA9IDEgPDwgMiwKICAgICAgICAgLy8gUHJvZmlsaW5nIE9ubHkKICAgICAgICAgSGFzU2Vlbk93
blN0cnVjdHVyZU1vZGVTdHJ1Y3R1cmVNaXNtYXRjaCA9IDEgPDwgMywKLSAgICAgICAgLy8gSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yIE9ubHkKLSAgICAgICAgVmFsaWRhdGVkVmlhV2F0Y2hwb2lu
dCA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGVudW1l
cmF0aW9uTW9kZU1hc2sgPSAoR2VuZXJpY01vZGUgPDwgMSkgLSAxOwpAQCAtNzIsMTAgKzcwLDYg
QEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXMuZ2V0KClbaW5kZXhdLmdldCgpOwogICAg
IH0KIAotICAgIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG90eXBlQ2hhaW4uZ2V0KCk7IH0KLSAgICB2b2lkIHNldENhY2hlZFByb3Rv
dHlwZUNoYWluKFZNJiB2bSwgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKSB7IHJldHVy
biBtX3Byb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgcHJvdG90eXBlQ2hhaW4pOyB9Ci0gICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciwgbV9wcm90b3R5cGVDaGFp
bik7IH0KLQogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJlKFZNJiB2bSkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRTdHJ1Y3R1cmVJRCkKQEAgLTEwMCwxNSArOTQsNiBA
QCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Is
IG1fcHJvcGVydHlOYW1lcyk7CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZGF0ZWRWaWFXYXRjaHBv
aW50KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
VmFsaWRhdGVkVmlhV2F0Y2hwb2ludDsgfQotICAgIHZvaWQgc2V0VmFsaWRhdGVkVmlhV2F0Y2hw
b2ludChib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpCi0gICAgewotICAgICAgICBpZiAodmFs
aWRhdGVkVmlhV2F0Y2hwb2ludCkKLSAgICAgICAgICAgIG1fZmxhZ3MgfD0gSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50OwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2ZsYWdzICY9IH5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZp
YVdhdGNocG9pbnQ7Ci0gICAgfQotCiAgICAgSlNTdHJpbmcqIGNvbXB1dGVOZXh0KEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGJhc2UsIHVpbnQzMl90JiBjdXJyZW50SW5kZXgsIEZsYWcmLCBi
b29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcgPSB0cnVlKTsKIAogICAgIERFQ0xB
UkVfVklTSVRfQ0hJTERSRU47CkBAIC0xMTksOCArMTA0LDkgQEAgY2xhc3MgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKFZNJiwgU3RydWN0dXJlKiwgdWludDMyX3QsIHVpbnQzMl90LCBXcml0ZUJhcnJp
ZXI8SlNTdHJpbmc+KiwgdW5zaWduZWQpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBS
ZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmKTsKIAorICAgIC8vIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvciBpcyBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGFsbG93cyBWTSB0
byBjYWNoZSBlbXB0eSBvbmUuCisgICAgLy8gQWZ0ZXIgaW5zdGFudGlhdGluZyBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IsIHdlIG11c3Qgbm90IGNoYW5nZSBhbnkgZmllbGRzLgogICAgIEF1eGls
aWFyeUJhcnJpZXI8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPio+IG1fcHJvcGVydHlOYW1lczsKLSAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlQ2hhaW4+IG1fcHJvdG90eXBlQ2hhaW47CiAgICAgU3Ry
dWN0dXJlSUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKICAgICB1aW50MzJfdCBtX2luZGV4ZWRMZW5n
dGg7CiAgICAgdWludDMyX3QgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwpAQCAtMTM4LDEz
ICsxMjQsMTYgQEAgaW5saW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogcHJvcGVydHlOYW1l
RW51bWVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIAogICAgIHVpbnQzMl90IGluZGV4
ZWRMZW5ndGggPSBiYXNlLT5nZXRFbnVtZXJhYmxlTGVuZ3RoKGdsb2JhbE9iamVjdCk7CiAKLSAg
ICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxscHRyOwotCiAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghaW5k
ZXhlZExlbmd0aAotICAgICAgICAmJiAoZW51bWVyYXRvciA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcigpKSkgewotICAgICAgICBpZiAoZW51bWVyYXRvci0+dmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCgpIHx8IGVudW1lcmF0b3ItPmNhY2hlZFByb3RvdHlwZUNoYWluKCkg
PT0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKQotICAgICAg
ICAgICAgcmV0dXJuIGVudW1lcmF0b3I7CisgICAgaWYgKCFpbmRleGVkTGVuZ3RoKSB7CisgICAg
ICAgIHVpbnRwdHJfdCBlbnVtZXJhdG9yQW5kRmxhZyA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKTsKKyAgICAgICAgaWYgKGVudW1lcmF0b3JBbmRGbGFn
KSB7CisgICAgICAgICAgICBpZiAoIShlbnVtZXJhdG9yQW5kRmxhZyAmIFN0cnVjdHVyZVJhcmVE
YXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5n
RmxhZykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqPihlbnVtZXJhdG9yQW5kRmxhZyk7CisgICAgICAgICAgICBzdHJ1Y3R1cmUt
PnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2UpOyAvLyBSZWZyZXNoIGNhY2hl
ZCBzdHJ1Y3R1cmUgY2hhaW4uCisgICAgICAgICAgICBpZiAoYXV0byogZW51bWVyYXRvciA9IHN0
cnVjdHVyZS0+Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKQorICAgICAgICAgICAgICAg
IHJldHVybiBlbnVtZXJhdG9yOworICAgICAgICB9CiAgICAgfQogCiAgICAgdWludDMyX3QgbnVt
YmVyU3RydWN0dXJlUHJvcGVydGllcyA9IDA7CkBAIC0xNjMsMTQgKzE1MiwxNSBAQCBpbmxpbmUg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogICAgICAgICBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsK
ICAgICB9CiAKKyAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxs
cHRyOwogICAgIGlmICghaW5kZXhlZExlbmd0aCAmJiAhcHJvcGVydHlOYW1lcy5zaXplKCkpCiAg
ICAgICAgIGVudW1lcmF0b3IgPSB2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKICAg
ICBlbHNlCiAgICAgICAgIGVudW1lcmF0b3IgPSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNy
ZWF0ZSh2bSwgc3RydWN0dXJlQWZ0ZXJHZXR0aW5nUHJvcGVydHlOYW1lcywgaW5kZXhlZExlbmd0
aCwgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSk7CiAg
ICAgaWYgKCFpbmRleGVkTGVuZ3RoICYmIHN1Y2Nlc3NmdWxseU5vcm1hbGl6ZWRDaGFpbiAmJiBz
dHJ1Y3R1cmVBZnRlckdldHRpbmdQcm9wZXJ0eU5hbWVzID09IHN0cnVjdHVyZSkgewotICAgICAg
ICBlbnVtZXJhdG9yLT5zZXRDYWNoZWRQcm90b3R5cGVDaGFpbih2bSwgc3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKTsKKyAgICAgICAgU3RydWN0dXJlQ2hhaW4q
IGNoYWluID0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBiYXNl
KTsKICAgICAgICAgaWYgKHN0cnVjdHVyZS0+Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KHZtKSkKLSAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcih2bSwgZW51bWVyYXRvcik7CisgICAgICAgICAgICBzdHJ1Y3R1cmUtPnNldENhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIGVudW1lcmF0b3IsIGNoYWluKTsKICAgICB9CiAgICAg
cmV0dXJuIGVudW1lcmF0b3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmNwcAppbmRleCBkMTY0MzdmNjNiMzNjOWUwZWVlMjM5NDU4ZmY1MDY2MGRhNDc1YzZm
Li4wNzJiMGVjMDY5ODc5MTJjNTIzZjY2ZmY2Y2NiMTI2ZTQxOTE5MjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTEyMjksOSArMTIyOSwxNSBA
QCB2b2lkIFN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9y
JiB2aXNpdG9yKQogICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIodGhpc09iamVjdC0+bV9s
b2NrKTsKICAgICAKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2dsb2JhbE9iamVj
dCk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pc09iamVjdCgpKQorICAgIGlmICghdGhpc09iamVj
dC0+aXNPYmplY3QoKSkgeworICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBjbGVhciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2luY2UgaXQgaXMgbmV2ZXIgY2FjaGVkIGZvciBub24tb2Jq
ZWN0IFN0cnVjdHVyZS4KKyAgICAgICAgLy8gV2UgZG8gbm90IGhhdmUgY29kZSBjbGVhcmluZyBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igc2luY2UgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVk
IGNvbmN1cnJlbnRseS4KICAgICAgICAgdGhpc09iamVjdC0+bV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5jbGVhcigpOwotICAgIGVsc2UgeworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGlmIChh
dXRvKiByYXJlRGF0YSA9IHRyeVJhcmVEYXRhKCkpCisgICAgICAgICAgICBBU1NFUlQoIXJhcmVE
YXRhLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpOworI2VuZGlmCisgICAgfSBlbHNl
IHsKICAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGUpOwogICAg
ICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3RvdHlwZUNoYWluKTsK
ICAgICB9CkBAIC0xMzk4LDEyICsxNDA0LDE0IEBAIGJvb2wgQ2xhc3NJbmZvOjpoYXNTdGF0aWNT
ZXR0ZXJPclJlYWRvbmx5UHJvcGVydGllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFN0cnVjdHVyZTo6c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0s
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikKK3ZvaWQgU3RydWN0dXJlOjpz
ZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKiBlbnVtZXJhdG9yLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCiB7CisgICAgQVNTRVJU
KHR5cGVJbmZvKCkuaXNPYmplY3QoKSk7CiAgICAgQVNTRVJUKCFpc0RpY3Rpb25hcnkoKSk7CiAg
ICAgaWYgKCFoYXNSYXJlRGF0YSgpKQogICAgICAgICBhbGxvY2F0ZVJhcmVEYXRhKHZtKTsKLSAg
ICByYXJlRGF0YSgpLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCBlbnVtZXJh
dG9yKTsKKyAgICBBU1NFUlQoY2hhaW4gPT0gbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKSk7
CisgICAgcmFyZURhdGEoKS0+c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcih2bSwgdGhp
cywgZW51bWVyYXRvciwgY2hhaW4pOwogfQogCiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIFN0
cnVjdHVyZTo6Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0CkBAIC0xNDEzLDYg
KzE0MjEsMTMgQEAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBTdHJ1Y3R1cmU6OmNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoKSBjb25zdAogICAgIHJldHVybiByYXJlRGF0YSgpLT5jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7CiB9CiAKK3VpbnRwdHJfdCBTdHJ1Y3R1cmU6OmNh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3QKK3sKKyAgICBpZiAoIWhh
c1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiByYXJlRGF0YSgpLT5j
YWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpOworfQorCiBib29sIFN0cnVjdHVy
ZTo6Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSkgY29uc3QKIHsKICAgICBp
ZiAoIXRoaXMtPmNhbkNhY2hlT3duUHJvcGVydHlOYW1lcygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCAyNmI4NzkzODUwYjNmMThmMWFlZWExNWI4YTg5
YjFhODdmYzMxM2JjLi5iNDk4NjFiY2E4ZDUwZTAwMTY4ZWZiNmFkNWFkYjFjYTU2ZmM5NWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMzA3LDcgKzMw
Nyw2IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTVmFsdWUgcHJv
dG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGVGb3JMb29rdXAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGJhc2UpIGNvbnN0OwogICAg
IFN0cnVjdHVyZUNoYWluKiBwcm90b3R5cGVDaGFpbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqIGJhc2UpIGNvbnN0OwotICAgIFN0cnVjdHVyZUNoYWluKiBwcm90b3R5cGVDaGFpbihK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBiYXNlKSBjb25zdDsKICAgICBERUNMQVJFX1ZJU0lU
X0NISUxEUkVOOwogICAgIAogICAgIC8vIEEgU3RydWN0dXJlIGlzIGNoZWFwIHRvIG1hcmsgZHVy
aW5nIEdDIGlmIGRvaW5nIHNvIHdvdWxkIG9ubHkgYWRkIGEgc21hbGwgYW5kIGJvdW5kZWQgYW1v
dW50CkBAIC01MzAsOCArNTI5LDkgQEAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgICAgICBzZXRIYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJvcGVydGllc0V4Y2x1
ZGluZ1Byb3RvKHRydWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1l
RW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopOworICAgIHZvaWQgc2V0
Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciosIFN0cnVjdHVyZUNoYWluKik7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7CisgICAgdWludHB0cl90IGNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3Q7CiAgICAgYm9vbCBjYW5DYWNoZVBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mKSBjb25zdDsKICAgICBib29sIGNhbkFjY2Vzc1Byb3Bl
cnRpZXNRdWlja2x5Rm9yRW51bWVyYXRpb24oKSBjb25zdDsKIApAQCAtNjM3LDcgKzYzNyw3IEBA
IGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgYm9vbCBwcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yU2hvdWxkV2F0Y2goKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGRm
Z1Nob3VsZFdhdGNoKCk7CisgICAgICAgIHJldHVybiBkZmdTaG91bGRXYXRjaCgpICYmICFoYXNQ
b2x5UHJvdG8oKTsKICAgICB9CiAgICAgICAgIAogICAgIHZvaWQgYWRkVHJhbnNpdGlvbldhdGNo
cG9pbnQoV2F0Y2hwb2ludCogd2F0Y2hwb2ludCkgY29uc3QKQEAgLTg0OSw2ICs4NDksOCBAQCBj
bGFzcyBTdHJ1Y3R1cmUgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAKICAgICB2b2lkIHN0YXJ0V2F0
Y2hpbmdJbnRlcm5hbFByb3BlcnRpZXMoVk0mKTsKIAorICAgIHZvaWQgY2xlYXJDYWNoZWRQcm90
b3R5cGVDaGFpbigpOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9u
TGVuZ3RoID0gNjQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVu
Z3RoRm9yTm9uRXZhbFB1dEJ5SWQgPSA1MTI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAppbmRleCA1MzVmMGUxOWE0YmI0OWJlZWM2YTBk
MTNhNDlmNmJiYjBmMzdjZGQzLi40MGM5ZjBhNGFmMmI2NTg4YTliMjY0OTg0MzA2NmRiZGM3OTBk
NDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oCkBAIC0zNDIsMTYgKzM0MiwxMiBAQCBpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVj
dHVyZTo6cHJvdG90eXBlQ2hhaW4oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAg
IC8vIFdlIGNhY2hlIG91ciBwcm90b3R5cGUgY2hhaW4gc28gb3VyIGNsaWVudHMgY2FuIHNoYXJl
IGl0LgogICAgIGlmICghaXNWYWxpZChnbG9iYWxPYmplY3QsIG1fY2FjaGVkUHJvdG90eXBlQ2hh
aW4uZ2V0KCksIGJhc2UpKSB7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gcHJvdG90eXBl
Rm9yTG9va3VwKGdsb2JhbE9iamVjdCwgYmFzZSk7CisgICAgICAgIGNvbnN0X2Nhc3Q8U3RydWN0
dXJlKj4odGhpcyktPmNsZWFyQ2FjaGVkUHJvdG90eXBlQ2hhaW4oKTsKICAgICAgICAgbV9jYWNo
ZWRQcm90b3R5cGVDaGFpbi5zZXQodm0sIHRoaXMsIFN0cnVjdHVyZUNoYWluOjpjcmVhdGUodm0s
IHByb3RvdHlwZS5pc051bGwoKSA/IG51bGxwdHIgOiBhc09iamVjdChwcm90b3R5cGUpKSk7CiAg
ICAgfQogICAgIHJldHVybiBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpOwogfQogCi1pbmxp
bmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHBy
b3RvdHlwZUNoYWluKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBiYXNlKTsKLX0K
LQogaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNPYmplY3QqIGJh
c2UpIGNvbnN0CiB7CiAgICAgaWYgKCFjYWNoZWRQcm90b3R5cGVDaGFpbikKQEAgLTc1OSw0ICs3
NTUsMTIgQEAgaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOjpnZXQo
VW5pcXVlZFN0cmluZ0ltcGwqIHJlcCwgdW5zaWduZWQKICAgICByZXR1cm4gbWFwKCktPmdldChT
dHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6Okhhc2g6OktleShyZXAsIGF0dHJpYnV0ZXMsIHRyYW5z
aXRpb25LaW5kKSk7CiB9CiAKK2lubGluZSB2b2lkIFN0cnVjdHVyZTo6Y2xlYXJDYWNoZWRQcm90
b3R5cGVDaGFpbigpCit7CisgICAgbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5jbGVhcigpOworICAg
IGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJhcmVEYXRhKCktPmNs
ZWFyQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVE
YXRhLmNwcAppbmRleCA1ZjAyZjFlZjUxNjdhMzhiZDU4YzRiOWY0OGI2YjExMmRkZmViYTU2Li5j
MmY3NTUzYjJjZGVjOWVjZDY4M2EzOTE2OTg5NDU1Y2I1MDIxODFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2Vs
bCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9
IDA7IGluZGV4IDwgbnVtYmVyT2ZDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXlzOyArK2luZGV4KQog
ICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZCh0aGlzT2JqZWN0LT5jYWNoZWRT
cGVjaWFsUHJvcGVydHkoc3RhdGljX2Nhc3Q8Q2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5PihpbmRl
eCkpKTsKICAgICB9Ci0gICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9jYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKHRoaXNP
YmplY3QtPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbmRleCA9IDA7IGluZGV4IDwgbnVtYmVyT2ZDYWNoZWRQcm9wZXJ0eU5hbWVzOyArK2luZGV4
KSB7CiAgICAgICAgIGF1dG8qIGNhY2hlZCA9IHRoaXNPYmplY3QtPm1fY2FjaGVkUHJvcGVydHlO
YW1lc1tpbmRleF0udW52YWxpZGF0ZWRHZXQoKTsKICAgICAgICAgaWYgKGNhY2hlZCAhPSBjYWNo
ZWRQcm9wZXJ0eU5hbWVzU2VudGluZWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCmluZGV4IDc3YzAzM2E2OWZlNTRjMGVhODI1Mjk4
YmE5OWZhNmVkMTk3NDBlNWYuLjZjMTMwMDliN2JlN2U5ZDBmYTFhNTFmMWJjYWJhMTAyYjQ3MTRj
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuaApAQCAtODksNyArODksOSBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewogICAgIHZvaWQgY2FjaGVTcGVjaWFsUHJvcGVydHkoSlNHbG9iYWxP
YmplY3QqLCBWTSYsIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgSlNWYWx1ZSwgQ2FjaGVkU3Bl
Y2lhbFByb3BlcnR5S2V5LCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciogY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0OwotICAg
IHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvciopOworICAgIHVpbnRwdHJfdCBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
QW5kRmxhZygpIGNvbnN0OworICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
cihWTSYsIFN0cnVjdHVyZSosIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciosIFN0cnVjdHVyZUNo
YWluKik7CisgICAgdm9pZCBjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIAog
ICAgIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3Bl
cnR5TmFtZXNLaW5kKSBjb25zdDsKICAgICBKU0ltbXV0YWJsZUJ1dHRlcmZseSogY2FjaGVkUHJv
cGVydHlOYW1lc0lnbm9yaW5nU2VudGluZWwoQ2FjaGVkUHJvcGVydHlOYW1lc0tpbmQpIGNvbnN0
OwpAQCAtMTA4LDE2ICsxMTAsMTcgQEAgY2xhc3MgU3RydWN0dXJlUmFyZURhdGEgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVS
YXJlRGF0YSwgbV9jYWNoZWRQcm9wZXJ0eU5hbWVzKSArIHNpemVvZihXcml0ZUJhcnJpZXI8SlNJ
bW11dGFibGVCdXR0ZXJmbHk+KSAqIHN0YXRpY19jYXN0PHVuc2lnbmVkPihraW5kKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcigpCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVu
dW1lcmF0b3JBbmRGbGFnKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
U3RydWN0dXJlUmFyZURhdGEsIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcik7CisgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RydWN0dXJlUmFyZURhdGEsIG1fY2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcpOwogICAgIH0KIAogICAgIERFQ0xBUkVfRVhQT1JU
X0lORk87CiAKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7CiAKLSAgICB2
b2lkIGludmFsaWRhdGVXYXRjaHBvaW50QmFzZWRWYWxpZGF0aW9uKCk7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50cHRyX3QgY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVk
VmlhVHJhdmVyc2luZ0ZsYWcgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGNh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JNYXNrID0gfnN0YXRpY19jYXN0PHVpbnRwdHJfdD4o
MSk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsK
QEAgLTEzNSwxMiArMTM4LDEyIEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgYm9vbCBjYW5DYWNoZVNwZWNpYWxQcm9wZXJ0eShDYWNoZWRTcGVj
aWFsUHJvcGVydHlLZXkpOwogICAgIHZvaWQgZ2l2ZVVwT25TcGVjaWFsUHJvcGVydHlDYWNoZShD
YWNoZWRTcGVjaWFsUHJvcGVydHlLZXkpOwogCi0gICAgYm9vbCB0cnlDYWNoZVByb3BlcnR5TmFt
ZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KFZNJiwgU3RydWN0dXJlQ2hhaW4qKTsKKyAgICBib29s
IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mLCBTdHJ1Y3R1
cmUqLCBTdHJ1Y3R1cmVDaGFpbiopOwogCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9w
cmV2aW91czsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgc29tZSBzdG9yeSBmb3IgY2xl
YXJpbmcgdGhlc2UgcHJvcGVydHkgbmFtZXMgY2FjaGVzIGluIEdDLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2NTkKLSAgICBXcml0ZUJhcnJpZXI8
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yPiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3I7
CisgICAgdWludHB0cl90IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcgeyAw
IH07CiAgICAgRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50
PiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JXYXRjaHBvaW50czsKICAgICBXcml0ZUJh
cnJpZXI8SlNJbW11dGFibGVCdXR0ZXJmbHk+IG1fY2FjaGVkUHJvcGVydHlOYW1lc1tudW1iZXJP
ZkNhY2hlZFByb3BlcnR5TmFtZXNdIHsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaAppbmRleCBlMmNiMzdi
Yjg3NWIzY2ZlMTdhOTQ4MjI1MDZjZDBhZjc4NGMyYTQzLi4wNDBkNWVhODkzMmI3NzllMTYxMTI0
NzZiZjVmY2QwNjcwOWE0M2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaApAQCAtOTAsMTUgKzkwLDIwIEBA
IGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRTcGVjaWFsUHJvcGVydHko
Q2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5CiAKIGlubGluZSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IqIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmdldCgpOwor
ICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4obV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyAmIGNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JNYXNrKTsKIH0KIAotaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnNldENhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iq
IGVudW1lcmF0b3IpCitpbmxpbmUgdWludHB0cl90IFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWc7Cit9CisKK2lubGluZSB2b2lkIFN0cnVj
dHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0
b3IsIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKIHsKLSAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUVu
dW1lcmF0b3Iuc2V0KHZtLCB0aGlzLCBlbnVtZXJhdG9yKTsKICAgICBtX2NhY2hlZFByb3BlcnR5
TmFtZUVudW1lcmF0b3JXYXRjaHBvaW50cyA9IEZpeGVkVmVjdG9yPFN0cnVjdHVyZUNoYWluSW52
YWxpZGF0aW9uV2F0Y2hwb2ludD4oKTsKLSAgICBib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQg
PSB0cnlDYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KHZtLCBlbnVtZXJh
dG9yLT5jYWNoZWRQcm90b3R5cGVDaGFpbigpKTsKLSAgICBlbnVtZXJhdG9yLT5zZXRWYWxpZGF0
ZWRWaWFXYXRjaHBvaW50KHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpOworICAgIGJvb2wgdmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCA9IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNo
cG9pbnQodm0sIGJhc2VTdHJ1Y3R1cmUsIGNoYWluKTsKKyAgICBtX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3JBbmRGbGFnID0gKCh2YWxpZGF0ZWRWaWFXYXRjaHBvaW50ID8gMCA6IGNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRlZFZpYVRyYXZlcnNpbmdGbGFnKSB8IGJp
dHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVudW1lcmF0b3IpKTsKKyAgICB2bS5oZWFwLndyaXRlQmFy
cmllcih0aGlzLCBlbnVtZXJhdG9yKTsKIH0KIAogaW5saW5lIEpTSW1tdXRhYmxlQnV0dGVyZmx5
KiBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkUHJvcGVydHlOYW1lcyhDYWNoZWRQcm9wZXJ0eU5h
bWVzS2luZCBraW5kKSBjb25zdApAQCAtMTY5LDExICsxNzQsMTQgQEAgaW5saW5lIHZvaWQgU3Ry
dWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoVk0mLCBjb25z
dCBGaXJlRGUKIHsKICAgICBpZiAoIW1fc3RydWN0dXJlUmFyZURhdGEtPmlzTGl2ZSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgbV9zdHJ1Y3R1cmVSYXJlRGF0YS0+aW52YWxpZGF0ZVdhdGNocG9p
bnRCYXNlZFZhbGlkYXRpb24oKTsKKyAgICBtX3N0cnVjdHVyZVJhcmVEYXRhLT5jbGVhckNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIH0KIAotaW5saW5lIGJvb2wgU3RydWN0dXJlUmFy
ZURhdGE6OnRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHZt
LCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmVSYXJlRGF0YTo6
dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYgdm0sIFN0cnVj
dHVyZSogYmFzZVN0cnVjdHVyZSwgU3RydWN0dXJlQ2hhaW4qIGNoYWluKQogeworICAgIGlmIChi
YXNlU3RydWN0dXJlLT5oYXNQb2x5UHJvdG8oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgdW5zaWduZWQgc2l6ZSA9IDA7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gY2hhaW4tPmhl
YWQoKTsgKmN1cnJlbnQ7ICsrY3VycmVudCkgewogICAgICAgICArK3NpemU7CkBAIC0xOTMsOSAr
MjAxLDkgQEAgaW5saW5lIGJvb2wgU3RydWN0dXJlUmFyZURhdGE6OnRyeUNhY2hlUHJvcGVydHlO
YW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
aW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmludmFsaWRhdGVXYXRjaHBvaW50QmFzZWRW
YWxpZGF0aW9uKCkKK2lubGluZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoKQogewotICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvci5jbGVhcigpOworICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcg
PSAwOwogICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcldhdGNocG9pbnRzID0gRml4
ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50PigpOwogfQogCg==
</data>
<flag name="commit-queue"
          id="463988"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440145</attachid>
            <date>2021-10-04 19:19:52 -0700</date>
            <delta_ts>2021-10-04 19:58:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231202-20211004191951.patch</filename>
            <type>text/plain</type>
            <size>34915</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDRiMzJhMjkzNGQxZmMzZmNhZDkwNWYyMDk4ZjE0NDMxN2E5N2NkLi5mYzYwYjc0OTNkMjdhNTJh
OGU1MzdjNmNmNzZhYWI4ZjVmZmI0ZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0xMC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBzaG91bGQgbm90IGhh
dmUgY2FjaGVkIHByb3RvdHlwZSBjaGFpbiBzaW5jZSBlbXB0eSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IgaXMgc2hhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMDIKKyAgICAgICAgcmRhcjovLzgzODE1MTIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjI4MjAxNCBhc3N1bWVkIGFuIGludmFy
aWFudCB0aGF0IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcidzIFN0cnVjdHVyZUNoYWluIGlzIGlt
bXV0YWJsZS4KKyAgICAgICAgVGhpcyBpbnZhcmlhbnQgaXMgYWxzbyB1c2VkIGluIHZhbGlkYXRp
b24gb2YgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLiBIb3dldmVyLCB0aGlzCisgICAgICAgIGlu
dmFyaWFudCB3YXMgYnJva2VuIHNpbmNlIHdlIG5vdyBoYXZlIHNoYXJlZCBlbXB0eSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IsIHdoaWNoIGNhbgorICAgICAgICBiZSB1c2VkIGZvciBkaWZmZXJl
bnQgc3RydWN0dXJlcyBoYXZpbmcgZGlmZmVyZW50IHByb3RvdHlwZSBjaGFpbi4KKworICAgICAg
ICBTaW5jZSBub3cgd2UgaGF2ZSBzaGFyZWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlCisgICAgICAgIFN0cnVjdHVyZUNo
YWluIGluIGl0cyBtZW1iZXIuIFdoZW4gaW52YWxpZGF0aW5nIFN0cnVjdHVyZUNoYWluIGluIFN0
cnVjdHVyZSwgd2UgYWxzbyBjbGVhcgorICAgICAgICBjYWNoZWQgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yIHNvIHRoYXQgd2UgZG8gbm90IGdldCBhIHN0YWxlIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciBmcm9tCisgICAgICAgIFN0cnVjdHVyZSBldmVuIHRob3VnaCB3YXRjaHBvaW50LWJhc2Vk
IHZhbGlkYXRpb24gaXMgbm90IHVzZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92
ZXMgVmFsaWRhdGVkVmlhV2F0Y2hwb2ludCBmbGFnIGluIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBkdWUgdG8gdGhlIHNhbWUKKyAgICAgICAgcmVhc29uLiBXZSBzaG91bGQgbm90IG1vZGlmeSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igb25jZSBpdCBpcyBpbnN0YW50aWF0ZWQuIEluc3RlYWQs
IHdlIGVuY29kZQorICAgICAgICB0aGlzIGZsYWcgYXMgYSBsb3dlc3QgYml0IG9mIG1fY2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvci4gSWYgaXQgaXMgdmFsaWRhdGVkIHZpYSB0cmF2ZXJzaW5n
IChub3Qgd2F0Y2hwb2ludHMpLAorICAgICAgICB0aGVuIHRoaXMgYml0IGlzIHNldC4gU28gd2hl
biBsb2FkaW5nIHRoYXQgcG9pbnRlciBmcm9tIFN0cnVjdHVyZVJhcmVEYXRhLCB3ZSBjYW4gcXVp
Y2tseSBkZXRlY3QKKyAgICAgICAgaXQgd2l0aG91dCBldmVuIGFjY2Vzc2luZyB0byB0aGUgZW51
bWVyYXRvci4gVGhpcyBmaXhlcyB0aGUgaXNzdWUsIGFuZCBpdCBpcyBldmVuIGNsZWFuZXIuCisg
ICAgICAgIFdlIHJlbmFtZSBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IgdG8gbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBzaW5jZSBpdCBub3cKKyAgICAgICAgaW5j
bHVkZXMgdGhpcyBmbGFnLgorCisgICAgICAgIFdoaWxlIHJldmlld2luZyB0aGUgY29kZSwgd2Ug
YWxzbyBmb3VuZCB0aGF0IHdhdGNocG9pbnQtYmFzZWQgdmFsaWRhdGlvbiBkaWRuJ3QgY2FyZSBQ
b2x5UHJvdG8uCisgICAgICAgIFdlIHNob3VsZCBkaXNhYmxlIHdhdGNocG9pbnQtYmFzZWQgdmFs
aWRhdGlvbiBpZiBQb2x5UHJvdG8gaXMgdXNlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAg
ICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAoSlNDOjpwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3Bl
cnR5TmFtZUVudW1lcmF0b3JTaG91bGRXYXRjaCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlQ2hh
aW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsZWFyQ2FjaGVkUHJvdG90eXBl
Q2hhaW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvciBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBv
aW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5
Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNl
ZFZhbGlkYXRpb24pOiBEZWxldGVkLgorCiAyMDIxLTEwLTAzICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVh
cmx5IE9jdG9iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGI0YzhmODYwYjUxNGU2ZDc5ZGYwMWFjN2YyOTZm
YzA4MWRlN2ExZjYuLmM5MGM2MDg5ZTkzZDZiMThiZTMxOWI0NjFkZjAwZGMzYmJhN2M0NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC0xMzk1NCw3ICsxMzk1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKHJhcmVEYXRhKSB7CiAgICAg
ICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVuUmFyZURhdGEgPSBtX2dyYXBoLmZyZWV6ZShyYXJl
RGF0YSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoZnJvemVuUmFyZURh
dGEpLCBzY3JhdGNoMUdQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIpOworICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIFN0cnVjdHVyZVJh
cmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkpLCBz
Y3JhdGNoMUdQUik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAob25seVN0cnVj
dHVyZSkKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIob25seVN0cnVj
dHVyZSksIHNjcmF0Y2gxR1BSKTsKQEAgLTEzOTYzLDExICsxMzk2MywxMSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlFbnVtZXJhdG9yKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwg
U3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHNjcmF0Y2gxR1BSKTsKICAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBl
cnM6Olplcm8sIHNjcmF0Y2gxR1BSKSk7CiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmU3RydWN0dXJlKHNjcmF0Y2gxR1BSKSk7Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURh
dGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIp
OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aDFHUFIsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JBbmRGbGFnKCkpLCBzY3JhdGNoMUdQUik7CiAgICAgICAgIH0KIAogICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzY3Jh
dGNoMUdQUikpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMihD
Q2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFnc09mZnNldCgpKSwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50
KSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxI
ZWxwZXJzOjpOb25aZXJvLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
U3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRl
ZFZpYVRyYXZlcnNpbmdGbGFnKSkpOwogICAgICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1
bXAoKSk7CiAKICAgICAgICAgc2xvd0Nhc2VzLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
MTlhMmNmODc5YmJhMjFkN2QxMmZlY2RjZDBlZDZmZmU5Y2Q2NDJiNi4uODJjYWIwMjE4YzE4YTBk
ZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTExMCw3ICsxMTAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNPYmplY3RfYnV0
dGVyZmx5LCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkSW5saW5lQ2FwYWNpdHksIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5TmFtZXNWZWN0b3JPZmZzZXQoKSkgXAotICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkpIFwK
ICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkU3RydWN0dXJlSUQsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkU3RydWN0dXJlSURPZmZzZXQoKSkgXAogICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9lbmRHZW5lcmljUHJvcGVydHlJbmRleCwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjplbmRHZW5lcmljUHJvcGVydHlJbmRleE9mZnNldCgp
KSBcCiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2VuZFN0cnVjdHVyZVByb3Bl
cnR5SW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZW5kU3RydWN0dXJlUHJvcGVydHlJ
bmRleE9mZnNldCgpKSBcCkBAIC0xNTMsNyArMTUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVk
S2V5cywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lcyhDYWNo
ZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0
YV9jYWNoZWRHZXRPd25Qcm9wZXJ0eU5hbWVzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZD
YWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0
eU5hbWVzKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IoKSkgXAorICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpKSBcCiAgICAgbWFjcm8oSGFzaE1hcElt
cGxfY2FwYWNpdHksIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfYnVmZmVy
LCAgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZz
ZXRPZkJ1ZmZlcigpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfaGVhZCwgIEhhc2hNYXBJbXBs
PEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZIZWFkKCkpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA0
M2QyNmU4M2U5NjgyNWE4ODE5NzhhNGVlMzViYzdlZDMzNTFjMzY1Li42ZjgyN2IyNmQzMDNkMDUy
M2E4YTgwN2MzOGM2NGE4YTU1YzVjYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzQxMywxMiArMTM0MTMsMTIgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1JhcmVEYXRhLCB1bnN1cmUo
cmFyZURhdGFDYXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHJhcmVEYXRhQ2FzZSwgdmFsaWRhdGlvbkNhc2UpOwotICAgICAgICAgICAgTFZh
bHVlIGNhY2hlZCA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0
cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOwotICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdE51bGwoY2FjaGVkKSwgdW5zdXJlKHZhbGlkYXRpb25D
YXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkQW5k
RmxhZyA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0cnVjdHVy
ZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGNhY2hlZEFuZEZsYWcpLCB1bnN1cmUodmFs
aWRhdGlvbkNhc2UpLCB1bnN1cmUoZ2VuZXJpY0Nhc2UpKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8odmFsaWRhdGlvbkNhc2UsIGdlbmVyaWNDYXNlKTsKLSAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihjYWNoZWQpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC50ZXN0Tm9uWmVybzMyKG1fb3V0LmxvYWQzMihjYWNoZWQsIG1faGVhcHMuSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yX2ZsYWdzKSwgbV9vdXQuY29uc3RJbnQzMihKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZpYVdhdGNocG9pbnQpKSwgdW5zdXJlKGNvbnRpbnVhdGlv
biksIHVuc3VyZShnZW5lcmljQ2FzZSkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKGNhY2hlZEFuZEZsYWcpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC50ZXN0SXNaZXJvUHRyKGNhY2hlZEFuZEZsYWcsIG1fb3V0LmNvbnN0SW50UHRyKFN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2
ZXJzaW5nRmxhZykpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7
CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGdlbmVyaWNDYXNlLCBjb250aW51YXRpb24p
OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHZtQ2FsbChwb2ludGVy
VHlwZSgpLCBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCB3ZWFrUG9pbnRlcihn
bG9iYWxPYmplY3QpLCBiYXNlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBjMTg2MzY5OTYwYjFmZWU4YjI3NDU4OWEwMWMxYWM0
NWIzYTlmYmI3Li44NWU4NmNlY2Q2OGNiYmU4ZTVlYTk5Njg2YzQ3MWZlYTIxYWQwYTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAt
MjkwMiwxMCArMjkwMiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvcGVydHlfZW51bWVy
YXRvcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHJl
Z1QxKTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEp
KTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaElmU3RydWN0dXJlKHJlZ1QxKSk7Ci0g
ICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpLCByZWdUMSk7CisgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yQW5kRmxhZygpKSwgcmVnVDEpOwogCiAgICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0UHRyKFplcm8sIHJlZ1QxKSk7Ci0gICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFuY2hU
ZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCkpKTsKKyAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDEsIFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QxKTsKICAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCmluZGV4IDQyZWZiNzFjNGE2NDFkNjIzOTZkNzRmNjA0NWRhNDY2YzVmYzgzMTUu
LjNhNDZlNGQwYzNmNjBjNTNjZGEwYWJkZWY0MGMwZTYxYjMyMGFiZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtOTc0LDcgKzk3NCw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWV0YWRhdGEubV9vZmZzZXQgPSBzbG90LmNhY2hlZE9mZnNldCgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fbmV3U3RydWN0dXJlSUQg
PSBuZXdTdHJ1Y3R1cmUtPmlkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEo
Ynl0ZWNvZGUubV9mbGFncy5pc0RpcmVjdCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4gPSBuZXdTdHJ1Y3R1cmUtPnByb3RvdHlwZUNo
YWluKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZUNlbGwpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIGNoYWluID0gbmV3U3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlQ2VsbCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2hhaW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX3N0cnVjdHVyZUNoYWluLnNldCh2bSwgY29kZUJs
b2NrLCBjaGFpbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRl
eCBmYmRiYTY4ZTBmMzBhMzAwY2U4MjM1NzMxZjBhYTM1YmFjNWVhNGJiLi5kODRiNmVhZDM3ZmRk
YjQzMjBiODQ1MzlkYjc3YzRiNmI4MDQ3ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzExOSw5ICszMTE5
LDkgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAg
ICBiYmVxIEpTQ2VsbDo6bV90eXBlW3QxXSwgU3RydWN0dXJlVHlwZSwgLnNsb3dQYXRoCiAKLSAg
ICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
W3QxXSwgdDEKKyAgICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZ1t0MV0sIHQxCiAgICAgYnRweiB0MSwgLnNsb3dQYXRoCi0gICAg
YnRpeiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZmxhZ3NbdDFdLCAoY29uc3RleHByIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRhdGVkVmlhV2F0Y2hwb2ludCksIC5zbG93UGF0
aAorICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0
aAogCiAgICAgcmV0dXJuKHQxKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4NWQ5NWFhY2Ey
ZDNiZDc0YWU0YmZjMjk2ZDc1NmEwNzkzMzQyMDgxLi5kMjgxZWNmOTNhZmRkOTFlOTMxMWUxMzJh
Mjk5NTc2NjYzYjQwN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTg2LDcgKzg2LDYgQEAg
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCog
Y2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KHBy
b3BlcnR5TmFtZXMpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChwcm9wZXJ0eU5hbWVzLCBwcm9w
ZXJ0eU5hbWVzICsgdGhpc09iamVjdC0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICB9Ci0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CiAKICAgICBp
ZiAodGhpc09iamVjdC0+Y2FjaGVkU3RydWN0dXJlSUQoKSkgewogICAgICAgICBWTSYgdm0gPSB2
aXNpdG9yLnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDY2NjJlOWZhODFiMjhiMDk2MjM3YTMw
YzVkNzlhYzk0MGVjMTMyN2EuLmI0NmVlOWI2MWM3MDk2MzlmZWY4YmM1ZGJjNzNjYTFhNGI0YzU5
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC00NCw4ICs0NCw2IEBAIGNsYXNzIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBHZW5lcmljTW9k
ZSA9IDEgPDwgMiwKICAgICAgICAgLy8gUHJvZmlsaW5nIE9ubHkKICAgICAgICAgSGFzU2Vlbk93
blN0cnVjdHVyZU1vZGVTdHJ1Y3R1cmVNaXNtYXRjaCA9IDEgPDwgMywKLSAgICAgICAgLy8gSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yIE9ubHkKLSAgICAgICAgVmFsaWRhdGVkVmlhV2F0Y2hwb2lu
dCA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGVudW1l
cmF0aW9uTW9kZU1hc2sgPSAoR2VuZXJpY01vZGUgPDwgMSkgLSAxOwpAQCAtNzIsMTAgKzcwLDYg
QEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXMuZ2V0KClbaW5kZXhdLmdldCgpOwogICAg
IH0KIAotICAgIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG90eXBlQ2hhaW4uZ2V0KCk7IH0KLSAgICB2b2lkIHNldENhY2hlZFByb3Rv
dHlwZUNoYWluKFZNJiB2bSwgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKSB7IHJldHVy
biBtX3Byb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgcHJvdG90eXBlQ2hhaW4pOyB9Ci0gICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciwgbV9wcm90b3R5cGVDaGFp
bik7IH0KLQogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJlKFZNJiB2bSkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRTdHJ1Y3R1cmVJRCkKQEAgLTEwMCwxNSArOTQsNiBA
QCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Is
IG1fcHJvcGVydHlOYW1lcyk7CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZGF0ZWRWaWFXYXRjaHBv
aW50KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
VmFsaWRhdGVkVmlhV2F0Y2hwb2ludDsgfQotICAgIHZvaWQgc2V0VmFsaWRhdGVkVmlhV2F0Y2hw
b2ludChib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpCi0gICAgewotICAgICAgICBpZiAodmFs
aWRhdGVkVmlhV2F0Y2hwb2ludCkKLSAgICAgICAgICAgIG1fZmxhZ3MgfD0gSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50OwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2ZsYWdzICY9IH5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZp
YVdhdGNocG9pbnQ7Ci0gICAgfQotCiAgICAgSlNTdHJpbmcqIGNvbXB1dGVOZXh0KEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGJhc2UsIHVpbnQzMl90JiBjdXJyZW50SW5kZXgsIEZsYWcmLCBi
b29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcgPSB0cnVlKTsKIAogICAgIERFQ0xB
UkVfVklTSVRfQ0hJTERSRU47CkBAIC0xMTksOCArMTA0LDkgQEAgY2xhc3MgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKFZNJiwgU3RydWN0dXJlKiwgdWludDMyX3QsIHVpbnQzMl90LCBXcml0ZUJhcnJp
ZXI8SlNTdHJpbmc+KiwgdW5zaWduZWQpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBS
ZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmKTsKIAorICAgIC8vIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvciBpcyBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGFsbG93cyBWTSB0
byBjYWNoZSBlbXB0eSBvbmUuCisgICAgLy8gQWZ0ZXIgaW5zdGFudGlhdGluZyBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IsIHdlIG11c3Qgbm90IGNoYW5nZSBhbnkgZmllbGRzLgogICAgIEF1eGls
aWFyeUJhcnJpZXI8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPio+IG1fcHJvcGVydHlOYW1lczsKLSAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlQ2hhaW4+IG1fcHJvdG90eXBlQ2hhaW47CiAgICAgU3Ry
dWN0dXJlSUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKICAgICB1aW50MzJfdCBtX2luZGV4ZWRMZW5n
dGg7CiAgICAgdWludDMyX3QgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwpAQCAtMTM4LDEz
ICsxMjQsMTYgQEAgaW5saW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogcHJvcGVydHlOYW1l
RW51bWVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIAogICAgIHVpbnQzMl90IGluZGV4
ZWRMZW5ndGggPSBiYXNlLT5nZXRFbnVtZXJhYmxlTGVuZ3RoKGdsb2JhbE9iamVjdCk7CiAKLSAg
ICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxscHRyOwotCiAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghaW5k
ZXhlZExlbmd0aAotICAgICAgICAmJiAoZW51bWVyYXRvciA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcigpKSkgewotICAgICAgICBpZiAoZW51bWVyYXRvci0+dmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCgpIHx8IGVudW1lcmF0b3ItPmNhY2hlZFByb3RvdHlwZUNoYWluKCkg
PT0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKQotICAgICAg
ICAgICAgcmV0dXJuIGVudW1lcmF0b3I7CisgICAgaWYgKCFpbmRleGVkTGVuZ3RoKSB7CisgICAg
ICAgIHVpbnRwdHJfdCBlbnVtZXJhdG9yQW5kRmxhZyA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKTsKKyAgICAgICAgaWYgKGVudW1lcmF0b3JBbmRGbGFn
KSB7CisgICAgICAgICAgICBpZiAoIShlbnVtZXJhdG9yQW5kRmxhZyAmIFN0cnVjdHVyZVJhcmVE
YXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5n
RmxhZykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqPihlbnVtZXJhdG9yQW5kRmxhZyk7CisgICAgICAgICAgICBzdHJ1Y3R1cmUt
PnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2UpOyAvLyBSZWZyZXNoIGNhY2hl
ZCBzdHJ1Y3R1cmUgY2hhaW4uCisgICAgICAgICAgICBpZiAoYXV0byogZW51bWVyYXRvciA9IHN0
cnVjdHVyZS0+Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKQorICAgICAgICAgICAgICAg
IHJldHVybiBlbnVtZXJhdG9yOworICAgICAgICB9CiAgICAgfQogCiAgICAgdWludDMyX3QgbnVt
YmVyU3RydWN0dXJlUHJvcGVydGllcyA9IDA7CkBAIC0xNjMsMTQgKzE1MiwxNSBAQCBpbmxpbmUg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogICAgICAgICBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsK
ICAgICB9CiAKKyAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxs
cHRyOwogICAgIGlmICghaW5kZXhlZExlbmd0aCAmJiAhcHJvcGVydHlOYW1lcy5zaXplKCkpCiAg
ICAgICAgIGVudW1lcmF0b3IgPSB2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKICAg
ICBlbHNlCiAgICAgICAgIGVudW1lcmF0b3IgPSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNy
ZWF0ZSh2bSwgc3RydWN0dXJlQWZ0ZXJHZXR0aW5nUHJvcGVydHlOYW1lcywgaW5kZXhlZExlbmd0
aCwgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSk7CiAg
ICAgaWYgKCFpbmRleGVkTGVuZ3RoICYmIHN1Y2Nlc3NmdWxseU5vcm1hbGl6ZWRDaGFpbiAmJiBz
dHJ1Y3R1cmVBZnRlckdldHRpbmdQcm9wZXJ0eU5hbWVzID09IHN0cnVjdHVyZSkgewotICAgICAg
ICBlbnVtZXJhdG9yLT5zZXRDYWNoZWRQcm90b3R5cGVDaGFpbih2bSwgc3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKTsKKyAgICAgICAgU3RydWN0dXJlQ2hhaW4q
IGNoYWluID0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBiYXNl
KTsKICAgICAgICAgaWYgKHN0cnVjdHVyZS0+Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KHZtKSkKLSAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcih2bSwgZW51bWVyYXRvcik7CisgICAgICAgICAgICBzdHJ1Y3R1cmUtPnNldENhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIGVudW1lcmF0b3IsIGNoYWluKTsKICAgICB9CiAgICAg
cmV0dXJuIGVudW1lcmF0b3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmNwcAppbmRleCBkMTY0MzdmNjNiMzNjOWUwZWVlMjM5NDU4ZmY1MDY2MGRhNDc1YzZm
Li4wNzJiMGVjMDY5ODc5MTJjNTIzZjY2ZmY2Y2NiMTI2ZTQxOTE5MjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTEyMjksOSArMTIyOSwxNSBA
QCB2b2lkIFN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9y
JiB2aXNpdG9yKQogICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIodGhpc09iamVjdC0+bV9s
b2NrKTsKICAgICAKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2dsb2JhbE9iamVj
dCk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pc09iamVjdCgpKQorICAgIGlmICghdGhpc09iamVj
dC0+aXNPYmplY3QoKSkgeworICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBjbGVhciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2luY2UgaXQgaXMgbmV2ZXIgY2FjaGVkIGZvciBub24tb2Jq
ZWN0IFN0cnVjdHVyZS4KKyAgICAgICAgLy8gV2UgZG8gbm90IGhhdmUgY29kZSBjbGVhcmluZyBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igc2luY2UgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVk
IGNvbmN1cnJlbnRseS4KICAgICAgICAgdGhpc09iamVjdC0+bV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5jbGVhcigpOwotICAgIGVsc2UgeworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGlmIChh
dXRvKiByYXJlRGF0YSA9IHRyeVJhcmVEYXRhKCkpCisgICAgICAgICAgICBBU1NFUlQoIXJhcmVE
YXRhLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpOworI2VuZGlmCisgICAgfSBlbHNl
IHsKICAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGUpOwogICAg
ICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3RvdHlwZUNoYWluKTsK
ICAgICB9CkBAIC0xMzk4LDEyICsxNDA0LDE0IEBAIGJvb2wgQ2xhc3NJbmZvOjpoYXNTdGF0aWNT
ZXR0ZXJPclJlYWRvbmx5UHJvcGVydGllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFN0cnVjdHVyZTo6c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0s
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikKK3ZvaWQgU3RydWN0dXJlOjpz
ZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKiBlbnVtZXJhdG9yLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCiB7CisgICAgQVNTRVJU
KHR5cGVJbmZvKCkuaXNPYmplY3QoKSk7CiAgICAgQVNTRVJUKCFpc0RpY3Rpb25hcnkoKSk7CiAg
ICAgaWYgKCFoYXNSYXJlRGF0YSgpKQogICAgICAgICBhbGxvY2F0ZVJhcmVEYXRhKHZtKTsKLSAg
ICByYXJlRGF0YSgpLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCBlbnVtZXJh
dG9yKTsKKyAgICBBU1NFUlQoY2hhaW4gPT0gbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKSk7
CisgICAgcmFyZURhdGEoKS0+c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcih2bSwgdGhp
cywgZW51bWVyYXRvciwgY2hhaW4pOwogfQogCiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIFN0
cnVjdHVyZTo6Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0CkBAIC0xNDEzLDYg
KzE0MjEsMTMgQEAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBTdHJ1Y3R1cmU6OmNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoKSBjb25zdAogICAgIHJldHVybiByYXJlRGF0YSgpLT5jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7CiB9CiAKK3VpbnRwdHJfdCBTdHJ1Y3R1cmU6OmNh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3QKK3sKKyAgICBpZiAoIWhh
c1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiByYXJlRGF0YSgpLT5j
YWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpOworfQorCiBib29sIFN0cnVjdHVy
ZTo6Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSkgY29uc3QKIHsKICAgICBp
ZiAoIXRoaXMtPmNhbkNhY2hlT3duUHJvcGVydHlOYW1lcygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCAyNmI4NzkzODUwYjNmMThmMWFlZWExNWI4YTg5
YjFhODdmYzMxM2JjLi5iNDk4NjFiY2E4ZDUwZTAwMTY4ZWZiNmFkNWFkYjFjYTU2ZmM5NWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMzA3LDcgKzMw
Nyw2IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTVmFsdWUgcHJv
dG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGVGb3JMb29rdXAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGJhc2UpIGNvbnN0OwogICAg
IFN0cnVjdHVyZUNoYWluKiBwcm90b3R5cGVDaGFpbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqIGJhc2UpIGNvbnN0OwotICAgIFN0cnVjdHVyZUNoYWluKiBwcm90b3R5cGVDaGFpbihK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBiYXNlKSBjb25zdDsKICAgICBERUNMQVJFX1ZJU0lU
X0NISUxEUkVOOwogICAgIAogICAgIC8vIEEgU3RydWN0dXJlIGlzIGNoZWFwIHRvIG1hcmsgZHVy
aW5nIEdDIGlmIGRvaW5nIHNvIHdvdWxkIG9ubHkgYWRkIGEgc21hbGwgYW5kIGJvdW5kZWQgYW1v
dW50CkBAIC01MzAsOCArNTI5LDkgQEAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgICAgICBzZXRIYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJvcGVydGllc0V4Y2x1
ZGluZ1Byb3RvKHRydWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1l
RW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopOworICAgIHZvaWQgc2V0
Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciosIFN0cnVjdHVyZUNoYWluKik7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7CisgICAgdWludHB0cl90IGNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3Q7CiAgICAgYm9vbCBjYW5DYWNoZVBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mKSBjb25zdDsKICAgICBib29sIGNhbkFjY2Vzc1Byb3Bl
cnRpZXNRdWlja2x5Rm9yRW51bWVyYXRpb24oKSBjb25zdDsKIApAQCAtNjM3LDcgKzYzNyw3IEBA
IGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgYm9vbCBwcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yU2hvdWxkV2F0Y2goKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGRm
Z1Nob3VsZFdhdGNoKCk7CisgICAgICAgIHJldHVybiBkZmdTaG91bGRXYXRjaCgpICYmICFoYXNQ
b2x5UHJvdG8oKTsKICAgICB9CiAgICAgICAgIAogICAgIHZvaWQgYWRkVHJhbnNpdGlvbldhdGNo
cG9pbnQoV2F0Y2hwb2ludCogd2F0Y2hwb2ludCkgY29uc3QKQEAgLTg0OSw2ICs4NDksOCBAQCBj
bGFzcyBTdHJ1Y3R1cmUgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAKICAgICB2b2lkIHN0YXJ0V2F0
Y2hpbmdJbnRlcm5hbFByb3BlcnRpZXMoVk0mKTsKIAorICAgIHZvaWQgY2xlYXJDYWNoZWRQcm90
b3R5cGVDaGFpbigpOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9u
TGVuZ3RoID0gNjQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVu
Z3RoRm9yTm9uRXZhbFB1dEJ5SWQgPSA1MTI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAppbmRleCA1MzVmMGUxOWE0YmI0OWJlZWM2YTBk
MTNhNDlmNmJiYjBmMzdjZGQzLi40MGM5ZjBhNGFmMmI2NTg4YTliMjY0OTg0MzA2NmRiZGM3OTBk
NDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oCkBAIC0zNDIsMTYgKzM0MiwxMiBAQCBpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVj
dHVyZTo6cHJvdG90eXBlQ2hhaW4oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAg
IC8vIFdlIGNhY2hlIG91ciBwcm90b3R5cGUgY2hhaW4gc28gb3VyIGNsaWVudHMgY2FuIHNoYXJl
IGl0LgogICAgIGlmICghaXNWYWxpZChnbG9iYWxPYmplY3QsIG1fY2FjaGVkUHJvdG90eXBlQ2hh
aW4uZ2V0KCksIGJhc2UpKSB7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gcHJvdG90eXBl
Rm9yTG9va3VwKGdsb2JhbE9iamVjdCwgYmFzZSk7CisgICAgICAgIGNvbnN0X2Nhc3Q8U3RydWN0
dXJlKj4odGhpcyktPmNsZWFyQ2FjaGVkUHJvdG90eXBlQ2hhaW4oKTsKICAgICAgICAgbV9jYWNo
ZWRQcm90b3R5cGVDaGFpbi5zZXQodm0sIHRoaXMsIFN0cnVjdHVyZUNoYWluOjpjcmVhdGUodm0s
IHByb3RvdHlwZS5pc051bGwoKSA/IG51bGxwdHIgOiBhc09iamVjdChwcm90b3R5cGUpKSk7CiAg
ICAgfQogICAgIHJldHVybiBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpOwogfQogCi1pbmxp
bmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHBy
b3RvdHlwZUNoYWluKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBiYXNlKTsKLX0K
LQogaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNPYmplY3QqIGJh
c2UpIGNvbnN0CiB7CiAgICAgaWYgKCFjYWNoZWRQcm90b3R5cGVDaGFpbikKQEAgLTc1OSw0ICs3
NTUsMTIgQEAgaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOjpnZXQo
VW5pcXVlZFN0cmluZ0ltcGwqIHJlcCwgdW5zaWduZWQKICAgICByZXR1cm4gbWFwKCktPmdldChT
dHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6Okhhc2g6OktleShyZXAsIGF0dHJpYnV0ZXMsIHRyYW5z
aXRpb25LaW5kKSk7CiB9CiAKK2lubGluZSB2b2lkIFN0cnVjdHVyZTo6Y2xlYXJDYWNoZWRQcm90
b3R5cGVDaGFpbigpCit7CisgICAgbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5jbGVhcigpOworICAg
IGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJhcmVEYXRhKCktPmNs
ZWFyQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVE
YXRhLmNwcAppbmRleCA1ZjAyZjFlZjUxNjdhMzhiZDU4YzRiOWY0OGI2YjExMmRkZmViYTU2Li5j
MmY3NTUzYjJjZGVjOWVjZDY4M2EzOTE2OTg5NDU1Y2I1MDIxODFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2Vs
bCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9
IDA7IGluZGV4IDwgbnVtYmVyT2ZDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXlzOyArK2luZGV4KQog
ICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZCh0aGlzT2JqZWN0LT5jYWNoZWRT
cGVjaWFsUHJvcGVydHkoc3RhdGljX2Nhc3Q8Q2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5PihpbmRl
eCkpKTsKICAgICB9Ci0gICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9jYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKHRoaXNP
YmplY3QtPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbmRleCA9IDA7IGluZGV4IDwgbnVtYmVyT2ZDYWNoZWRQcm9wZXJ0eU5hbWVzOyArK2luZGV4
KSB7CiAgICAgICAgIGF1dG8qIGNhY2hlZCA9IHRoaXNPYmplY3QtPm1fY2FjaGVkUHJvcGVydHlO
YW1lc1tpbmRleF0udW52YWxpZGF0ZWRHZXQoKTsKICAgICAgICAgaWYgKGNhY2hlZCAhPSBjYWNo
ZWRQcm9wZXJ0eU5hbWVzU2VudGluZWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCmluZGV4IDc3YzAzM2E2OWZlNTRjMGVhODI1Mjk4
YmE5OWZhNmVkMTk3NDBlNWYuLjZjMTMwMDliN2JlN2U5ZDBmYTFhNTFmMWJjYWJhMTAyYjQ3MTRj
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuaApAQCAtODksNyArODksOSBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewogICAgIHZvaWQgY2FjaGVTcGVjaWFsUHJvcGVydHkoSlNHbG9iYWxP
YmplY3QqLCBWTSYsIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgSlNWYWx1ZSwgQ2FjaGVkU3Bl
Y2lhbFByb3BlcnR5S2V5LCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciogY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0OwotICAg
IHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvciopOworICAgIHVpbnRwdHJfdCBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
QW5kRmxhZygpIGNvbnN0OworICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
cihWTSYsIFN0cnVjdHVyZSosIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciosIFN0cnVjdHVyZUNo
YWluKik7CisgICAgdm9pZCBjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIAog
ICAgIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3Bl
cnR5TmFtZXNLaW5kKSBjb25zdDsKICAgICBKU0ltbXV0YWJsZUJ1dHRlcmZseSogY2FjaGVkUHJv
cGVydHlOYW1lc0lnbm9yaW5nU2VudGluZWwoQ2FjaGVkUHJvcGVydHlOYW1lc0tpbmQpIGNvbnN0
OwpAQCAtMTA4LDE2ICsxMTAsMTcgQEAgY2xhc3MgU3RydWN0dXJlUmFyZURhdGEgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmVS
YXJlRGF0YSwgbV9jYWNoZWRQcm9wZXJ0eU5hbWVzKSArIHNpemVvZihXcml0ZUJhcnJpZXI8SlNJ
bW11dGFibGVCdXR0ZXJmbHk+KSAqIHN0YXRpY19jYXN0PHVuc2lnbmVkPihraW5kKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcigpCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVu
dW1lcmF0b3JBbmRGbGFnKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
U3RydWN0dXJlUmFyZURhdGEsIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcik7CisgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RydWN0dXJlUmFyZURhdGEsIG1fY2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcpOwogICAgIH0KIAogICAgIERFQ0xBUkVfRVhQT1JU
X0lORk87CiAKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7CiAKLSAgICB2
b2lkIGludmFsaWRhdGVXYXRjaHBvaW50QmFzZWRWYWxpZGF0aW9uKCk7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50cHRyX3QgY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVk
VmlhVHJhdmVyc2luZ0ZsYWcgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGNh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JNYXNrID0gfnN0YXRpY19jYXN0PHVpbnRwdHJfdD4o
MSk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsK
QEAgLTEzNSwxMiArMTM4LDEyIEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgYm9vbCBjYW5DYWNoZVNwZWNpYWxQcm9wZXJ0eShDYWNoZWRTcGVj
aWFsUHJvcGVydHlLZXkpOwogICAgIHZvaWQgZ2l2ZVVwT25TcGVjaWFsUHJvcGVydHlDYWNoZShD
YWNoZWRTcGVjaWFsUHJvcGVydHlLZXkpOwogCi0gICAgYm9vbCB0cnlDYWNoZVByb3BlcnR5TmFt
ZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KFZNJiwgU3RydWN0dXJlQ2hhaW4qKTsKKyAgICBib29s
IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mLCBTdHJ1Y3R1
cmUqLCBTdHJ1Y3R1cmVDaGFpbiopOwogCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9w
cmV2aW91czsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgc29tZSBzdG9yeSBmb3IgY2xl
YXJpbmcgdGhlc2UgcHJvcGVydHkgbmFtZXMgY2FjaGVzIGluIEdDLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2NTkKLSAgICBXcml0ZUJhcnJpZXI8
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yPiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3I7
CisgICAgdWludHB0cl90IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcgeyAw
IH07CiAgICAgRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50
PiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JXYXRjaHBvaW50czsKICAgICBXcml0ZUJh
cnJpZXI8SlNJbW11dGFibGVCdXR0ZXJmbHk+IG1fY2FjaGVkUHJvcGVydHlOYW1lc1tudW1iZXJP
ZkNhY2hlZFByb3BlcnR5TmFtZXNdIHsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaAppbmRleCBlMmNiMzdi
Yjg3NWIzY2ZlMTdhOTQ4MjI1MDZjZDBhZjc4NGMyYTQzLi4wNDBkNWVhODkzMmI3NzllMTYxMTI0
NzZiZjVmY2QwNjcwOWE0M2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaApAQCAtOTAsMTUgKzkwLDIwIEBA
IGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRTcGVjaWFsUHJvcGVydHko
Q2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5CiAKIGlubGluZSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IqIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmdldCgpOwor
ICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4obV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyAmIGNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JNYXNrKTsKIH0KIAotaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnNldENhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iq
IGVudW1lcmF0b3IpCitpbmxpbmUgdWludHB0cl90IFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWc7Cit9CisKK2lubGluZSB2b2lkIFN0cnVj
dHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0
b3IsIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKIHsKLSAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUVu
dW1lcmF0b3Iuc2V0KHZtLCB0aGlzLCBlbnVtZXJhdG9yKTsKICAgICBtX2NhY2hlZFByb3BlcnR5
TmFtZUVudW1lcmF0b3JXYXRjaHBvaW50cyA9IEZpeGVkVmVjdG9yPFN0cnVjdHVyZUNoYWluSW52
YWxpZGF0aW9uV2F0Y2hwb2ludD4oKTsKLSAgICBib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQg
PSB0cnlDYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KHZtLCBlbnVtZXJh
dG9yLT5jYWNoZWRQcm90b3R5cGVDaGFpbigpKTsKLSAgICBlbnVtZXJhdG9yLT5zZXRWYWxpZGF0
ZWRWaWFXYXRjaHBvaW50KHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpOworICAgIGJvb2wgdmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCA9IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNo
cG9pbnQodm0sIGJhc2VTdHJ1Y3R1cmUsIGNoYWluKTsKKyAgICBtX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3JBbmRGbGFnID0gKCh2YWxpZGF0ZWRWaWFXYXRjaHBvaW50ID8gMCA6IGNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRlZFZpYVRyYXZlcnNpbmdGbGFnKSB8IGJp
dHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVudW1lcmF0b3IpKTsKKyAgICB2bS5oZWFwLndyaXRlQmFy
cmllcih0aGlzLCBlbnVtZXJhdG9yKTsKIH0KIAogaW5saW5lIEpTSW1tdXRhYmxlQnV0dGVyZmx5
KiBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkUHJvcGVydHlOYW1lcyhDYWNoZWRQcm9wZXJ0eU5h
bWVzS2luZCBraW5kKSBjb25zdApAQCAtMTY5LDExICsxNzQsMTQgQEAgaW5saW5lIHZvaWQgU3Ry
dWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoVk0mLCBjb25z
dCBGaXJlRGUKIHsKICAgICBpZiAoIW1fc3RydWN0dXJlUmFyZURhdGEtPmlzTGl2ZSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgbV9zdHJ1Y3R1cmVSYXJlRGF0YS0+aW52YWxpZGF0ZVdhdGNocG9p
bnRCYXNlZFZhbGlkYXRpb24oKTsKKyAgICBtX3N0cnVjdHVyZVJhcmVEYXRhLT5jbGVhckNhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIH0KIAotaW5saW5lIGJvb2wgU3RydWN0dXJlUmFy
ZURhdGE6OnRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHZt
LCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmVSYXJlRGF0YTo6
dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChWTSYgdm0sIFN0cnVj
dHVyZSogYmFzZVN0cnVjdHVyZSwgU3RydWN0dXJlQ2hhaW4qIGNoYWluKQogeworICAgIGlmIChi
YXNlU3RydWN0dXJlLT5oYXNQb2x5UHJvdG8oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgdW5zaWduZWQgc2l6ZSA9IDA7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gY2hhaW4tPmhl
YWQoKTsgKmN1cnJlbnQ7ICsrY3VycmVudCkgewogICAgICAgICArK3NpemU7CkBAIC0xOTMsOSAr
MjAxLDkgQEAgaW5saW5lIGJvb2wgU3RydWN0dXJlUmFyZURhdGE6OnRyeUNhY2hlUHJvcGVydHlO
YW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
aW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmludmFsaWRhdGVXYXRjaHBvaW50QmFzZWRW
YWxpZGF0aW9uKCkKK2lubGluZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoKQogewotICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvci5jbGVhcigpOworICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcg
PSAwOwogICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcldhdGNocG9pbnRzID0gRml4
ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50PigpOwogfQogCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRk
ZGNlMjBiNWFlOGE5YjE4OTg0ZGFjN2FiYjAxZDg0NmRlYjNmNWIuLjUxNjhjMjg1YzVkOTIwNmJj
MzZmM2ViOTY3NTYxMjRjNDllYWJiZTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAtMDQgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlIGNhY2hlZCBwcm90b3R5cGUgY2hhaW4gc2lu
Y2UgZW1wdHkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGlzIHNoYXJlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvZm9yLWluLXZhbGlk
YXRpb24tcG9seS1wcm90by5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKGZhY3RvcnkuVGVzdCk6CisgICAgICAgIChmYWN0b3J5KToKKyAg
ICAgICAgKiBzdHJlc3MvZm9yLWluLXZhbGlkYXRpb24td2F0Y2hwb2ludC5qczogQWRkZWQuCisg
ICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKFRlc3QpOgorICAg
ICAgICAoZmFjdG9yeSk6CisKIDIwMjEtMTAtMDIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVcGRhdGUgdGVzdDI2MiBjb25maWcueWFtbCBzaW5j
ZSBPU1MgV2ViS2l0IG5vdyB1c2VzIElDVSA2NC4yIGhlYWRlcgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvZm9yLWluLXZhbGlkYXRpb24tcG9seS1wcm90by5qcyBiL0pTVGVzdHMvc3RyZXNz
L2Zvci1pbi12YWxpZGF0aW9uLXBvbHktcHJvdG8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZiNmZmMmVjMGY3
YzE5ZDAyYTRjOTkwZmZhMjhlNTBjNzg1YmUxYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXBvbHktcHJvdG8uanMKQEAgLTAsMCArMSwzNCBAQAor
Ly9AIHJlcXVpcmVPcHRpb25zKCItLWZvcmNlUG9seVByb3RvPTEiKQorZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3Qob2JqZWN0KSB7CisgICAgdmFyIHJlc3VsdCA9IFtdCisgICAgZm9yICh2YXIgayBp
biBvYmplY3QpCisgICAgICAgIHJlc3VsdC5wdXNoKGspOworICAgIHJldHVybiBKU09OLnN0cmlu
Z2lmeShyZXN1bHQpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBjb25zdHJ1Y3RvcnMgPSBb
XQorT2JqZWN0LnByb3RvdHlwZS5oZXkgPSAzMjsKK2Z1bmN0aW9uIGZhY3RvcnkoKSB7CisgICAg
ZnVuY3Rpb24gVGVzdCgpIHsgfQorICAgIGNvbnN0cnVjdG9ycy5wdXNoKFRlc3QpOworICAgIHJl
dHVybiBuZXcgVGVzdDsKK30KKwordmFyIG9iamVjdCA9IGZhY3RvcnkoKTsKK3Nob3VsZEJlKHRl
c3Qob2JqZWN0KSwgYFsiaGV5Il1gKTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFsiaGV5Il1g
KTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFsiaGV5Il1gKTsKK3ZhciBvYmplY3QyID0gZmFj
dG9yeSgpOworc2hvdWxkQmUodGVzdChvYmplY3QyKSwgYFsiaGV5Il1gKTsKK3Nob3VsZEJlKHRl
c3Qob2JqZWN0MiksIGBbImhleSJdYCk7CitzaG91bGRCZSh0ZXN0KG9iamVjdDIpLCBgWyJoZXki
XWApOworb2JqZWN0Mi5fX3Byb3RvX18gPSB7IG9rOiAzMyB9Oworc2hvdWxkQmUodGVzdChvYmpl
Y3QyKSwgYFsib2siLCJoZXkiXWApOworc2hvdWxkQmUodGVzdChvYmplY3QyKSwgYFsib2siLCJo
ZXkiXWApOworc2hvdWxkQmUodGVzdChvYmplY3QyKSwgYFsib2siLCJoZXkiXWApOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLWluLXZhbGlkYXRpb24td2F0Y2hwb2ludC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXdhdGNocG9pbnQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWVhNjc0YTRkMTY1NDYzYmY5YzJmZDY2NmMwMzk0YWZiMDZjNmZjOQotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXdhdGNocG9pbnQuanMKQEAgLTAs
MCArMSwzNCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1
ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KSB7CisgICAgdmFyIHJl
c3VsdCA9IFtdCisgICAgZm9yICh2YXIgayBpbiBvYmplY3QpCisgICAgICAgIHJlc3VsdC5wdXNo
KGspOworICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZXN1bHQpOworfQorbm9JbmxpbmUodGVz
dCk7CisKK2Z1bmN0aW9uIFRlc3QoKSB7IH0KK2Z1bmN0aW9uIGZhY3RvcnkoKSB7IHJldHVybiBu
ZXcgVGVzdDsgfQorCit2YXIgb2JqZWN0ID0gZmFjdG9yeSgpOworc2hvdWxkQmUodGVzdChvYmpl
Y3QpLCBgW11gKTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFtdYCk7CitzaG91bGRCZSh0ZXN0
KG9iamVjdCksIGBbXWApOworb2JqZWN0Lm9rID0gNDI7CitkZWxldGUgb2JqZWN0Lm9rOworc2hv
dWxkQmUodGVzdChvYmplY3QpLCBgW11gKTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFtdYCk7
CitzaG91bGRCZSh0ZXN0KG9iamVjdCksIGBbXWApOworVGVzdC5wcm90b3R5cGUub2sgPSA0MjsK
K2RlbGV0ZSBUZXN0LnByb3RvdHlwZS5vazsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFtdYCk7
CitzaG91bGRCZSh0ZXN0KG9iamVjdCksIGBbXWApOworc2hvdWxkQmUodGVzdChvYmplY3QpLCBg
W11gKTsKK1Rlc3QucHJvdG90eXBlLm9rID0gNDI7Cit0ZXN0KHt9KTsKK3Rlc3Qoe30pOworc2hv
dWxkQmUodGVzdChvYmplY3QpLCBgWyJvayJdYCk7Cg==
</data>
<flag name="commit-queue"
          id="463986"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440147</attachid>
            <date>2021-10-04 19:30:32 -0700</date>
            <delta_ts>2021-10-05 10:31:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231202-20211004193032.patch</filename>
            <type>text/plain</type>
            <size>34927</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDRiMzJhMjkzNGQxZmMzZmNhZDkwNWYyMDk4ZjE0NDMxN2E5N2NkLi5mYzYwYjc0OTNkMjdhNTJh
OGU1MzdjNmNmNzZhYWI4ZjVmZmI0ZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0xMC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBzaG91bGQgbm90IGhh
dmUgY2FjaGVkIHByb3RvdHlwZSBjaGFpbiBzaW5jZSBlbXB0eSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IgaXMgc2hhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMDIKKyAgICAgICAgcmRhcjovLzgzODE1MTIyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjI4MjAxNCBhc3N1bWVkIGFuIGludmFy
aWFudCB0aGF0IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcidzIFN0cnVjdHVyZUNoYWluIGlzIGlt
bXV0YWJsZS4KKyAgICAgICAgVGhpcyBpbnZhcmlhbnQgaXMgYWxzbyB1c2VkIGluIHZhbGlkYXRp
b24gb2YgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLiBIb3dldmVyLCB0aGlzCisgICAgICAgIGlu
dmFyaWFudCB3YXMgYnJva2VuIHNpbmNlIHdlIG5vdyBoYXZlIHNoYXJlZCBlbXB0eSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IsIHdoaWNoIGNhbgorICAgICAgICBiZSB1c2VkIGZvciBkaWZmZXJl
bnQgc3RydWN0dXJlcyBoYXZpbmcgZGlmZmVyZW50IHByb3RvdHlwZSBjaGFpbi4KKworICAgICAg
ICBTaW5jZSBub3cgd2UgaGF2ZSBzaGFyZWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlCisgICAgICAgIFN0cnVjdHVyZUNo
YWluIGluIGl0cyBtZW1iZXIuIFdoZW4gaW52YWxpZGF0aW5nIFN0cnVjdHVyZUNoYWluIGluIFN0
cnVjdHVyZSwgd2UgYWxzbyBjbGVhcgorICAgICAgICBjYWNoZWQgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yIHNvIHRoYXQgd2UgZG8gbm90IGdldCBhIHN0YWxlIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciBmcm9tCisgICAgICAgIFN0cnVjdHVyZSBldmVuIHRob3VnaCB3YXRjaHBvaW50LWJhc2Vk
IHZhbGlkYXRpb24gaXMgbm90IHVzZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92
ZXMgVmFsaWRhdGVkVmlhV2F0Y2hwb2ludCBmbGFnIGluIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBkdWUgdG8gdGhlIHNhbWUKKyAgICAgICAgcmVhc29uLiBXZSBzaG91bGQgbm90IG1vZGlmeSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igb25jZSBpdCBpcyBpbnN0YW50aWF0ZWQuIEluc3RlYWQs
IHdlIGVuY29kZQorICAgICAgICB0aGlzIGZsYWcgYXMgYSBsb3dlc3QgYml0IG9mIG1fY2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvci4gSWYgaXQgaXMgdmFsaWRhdGVkIHZpYSB0cmF2ZXJzaW5n
IChub3Qgd2F0Y2hwb2ludHMpLAorICAgICAgICB0aGVuIHRoaXMgYml0IGlzIHNldC4gU28gd2hl
biBsb2FkaW5nIHRoYXQgcG9pbnRlciBmcm9tIFN0cnVjdHVyZVJhcmVEYXRhLCB3ZSBjYW4gcXVp
Y2tseSBkZXRlY3QKKyAgICAgICAgaXQgd2l0aG91dCBldmVuIGFjY2Vzc2luZyB0byB0aGUgZW51
bWVyYXRvci4gVGhpcyBmaXhlcyB0aGUgaXNzdWUsIGFuZCBpdCBpcyBldmVuIGNsZWFuZXIuCisg
ICAgICAgIFdlIHJlbmFtZSBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IgdG8gbV9jYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBzaW5jZSBpdCBub3cKKyAgICAgICAgaW5j
bHVkZXMgdGhpcyBmbGFnLgorCisgICAgICAgIFdoaWxlIHJldmlld2luZyB0aGUgY29kZSwgd2Ug
YWxzbyBmb3VuZCB0aGF0IHdhdGNocG9pbnQtYmFzZWQgdmFsaWRhdGlvbiBkaWRuJ3QgY2FyZSBQ
b2x5UHJvdG8uCisgICAgICAgIFdlIHNob3VsZCBkaXNhYmxlIHdhdGNocG9pbnQtYmFzZWQgdmFs
aWRhdGlvbiBpZiBQb2x5UHJvdG8gaXMgdXNlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAg
ICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKiBydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAoSlNDOjpwcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3Bl
cnR5TmFtZUVudW1lcmF0b3JTaG91bGRXYXRjaCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlQ2hh
aW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsZWFyQ2FjaGVkUHJvdG90eXBl
Q2hhaW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2Fj
aGVkUHJvcGVydHlOYW1lRW51bWVyYXRvciBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBv
aW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dHJ5
Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6aW52YWxpZGF0ZVdhdGNocG9pbnRCYXNl
ZFZhbGlkYXRpb24pOiBEZWxldGVkLgorCiAyMDIxLTEwLTAzICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVh
cmx5IE9jdG9iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGI0YzhmODYwYjUxNGU2ZDc5ZGYwMWFjN2YyOTZm
YzA4MWRlN2ExZjYuLmM5MGM2MDg5ZTkzZDZiMThiZTMxOWI0NjFkZjAwZGMzYmJhN2M0NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC0xMzk1NCw3ICsxMzk1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKHJhcmVEYXRhKSB7CiAgICAg
ICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVuUmFyZURhdGEgPSBtX2dyYXBoLmZyZWV6ZShyYXJl
RGF0YSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoZnJvemVuUmFyZURh
dGEpLCBzY3JhdGNoMUdQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIpOworICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIFN0cnVjdHVyZVJh
cmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkpLCBz
Y3JhdGNoMUdQUik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAob25seVN0cnVj
dHVyZSkKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIob25seVN0cnVj
dHVyZSksIHNjcmF0Y2gxR1BSKTsKQEAgLTEzOTYzLDExICsxMzk2MywxMSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlFbnVtZXJhdG9yKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwg
U3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHNjcmF0Y2gxR1BSKTsKICAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBl
cnM6Olplcm8sIHNjcmF0Y2gxR1BSKSk7CiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaElmU3RydWN0dXJlKHNjcmF0Y2gxR1BSKSk7Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgU3RydWN0dXJlUmFyZURh
dGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKSwgc2NyYXRjaDFHUFIp
OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aDFHUFIsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3JBbmRGbGFnKCkpLCBzY3JhdGNoMUdQUik7CiAgICAgICAgIH0KIAogICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzY3Jh
dGNoMUdQUikpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMihD
Q2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFnc09mZnNldCgpKSwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50
KSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxI
ZWxwZXJzOjpOb25aZXJvLCBzY3JhdGNoMUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
U3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRl
ZFZpYVRyYXZlcnNpbmdGbGFnKSkpOwogICAgICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1
bXAoKSk7CiAKICAgICAgICAgc2xvd0Nhc2VzLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
MTlhMmNmODc5YmJhMjFkN2QxMmZlY2RjZDBlZDZmZmU5Y2Q2NDJiNi4uODJjYWIwMjE4YzE4YTBk
ZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTExMCw3ICsxMTAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNPYmplY3RfYnV0
dGVyZmx5LCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkSW5saW5lQ2FwYWNpdHksIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5TmFtZXNWZWN0b3JPZmZzZXQoKSkgXAotICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm90b3R5cGVDaGFpbiwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkpIFwK
ICAgICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkU3RydWN0dXJlSUQsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkU3RydWN0dXJlSURPZmZzZXQoKSkgXAogICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9lbmRHZW5lcmljUHJvcGVydHlJbmRleCwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjplbmRHZW5lcmljUHJvcGVydHlJbmRleE9mZnNldCgp
KSBcCiAgICAgbWFjcm8oSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yX2VuZFN0cnVjdHVyZVByb3Bl
cnR5SW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZW5kU3RydWN0dXJlUHJvcGVydHlJ
bmRleE9mZnNldCgpKSBcCkBAIC0xNTMsNyArMTUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVk
S2V5cywgU3RydWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkUHJvcGVydHlOYW1lcyhDYWNo
ZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cykpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVSYXJlRGF0
YV9jYWNoZWRHZXRPd25Qcm9wZXJ0eU5hbWVzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZD
YWNoZWRQcm9wZXJ0eU5hbWVzKENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0
eU5hbWVzKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IsIFN0cnVjdHVyZVJhcmVEYXRhOjpvZmZzZXRPZkNhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3IoKSkgXAorICAgIG1hY3JvKFN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpKSBcCiAgICAgbWFjcm8oSGFzaE1hcElt
cGxfY2FwYWNpdHksIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfYnVmZmVy
LCAgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZz
ZXRPZkJ1ZmZlcigpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfaGVhZCwgIEhhc2hNYXBJbXBs
PEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZIZWFkKCkpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA0
M2QyNmU4M2U5NjgyNWE4ODE5NzhhNGVlMzViYzdlZDMzNTFjMzY1Li42ZjgyN2IyNmQzMDNkMDUy
M2E4YTgwN2MzOGM2NGE4YTU1YzVjYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzQxMywxMiArMTM0MTMsMTIgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1JhcmVEYXRhLCB1bnN1cmUo
cmFyZURhdGFDYXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHJhcmVEYXRhQ2FzZSwgdmFsaWRhdGlvbkNhc2UpOwotICAgICAgICAgICAgTFZh
bHVlIGNhY2hlZCA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0
cnVjdHVyZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IpOwotICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdE51bGwoY2FjaGVkKSwgdW5zdXJlKHZhbGlkYXRpb25D
YXNlKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkQW5k
RmxhZyA9IG1fb3V0LmxvYWRQdHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0cnVjdHVy
ZVJhcmVEYXRhX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGNhY2hlZEFuZEZsYWcpLCB1bnN1cmUodmFs
aWRhdGlvbkNhc2UpLCB1bnN1cmUoZ2VuZXJpY0Nhc2UpKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8odmFsaWRhdGlvbkNhc2UsIGdlbmVyaWNDYXNlKTsKLSAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihjYWNoZWQpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC50ZXN0Tm9uWmVybzMyKG1fb3V0LmxvYWQzMihjYWNoZWQsIG1faGVhcHMuSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yX2ZsYWdzKSwgbV9vdXQuY29uc3RJbnQzMihKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZpYVdhdGNocG9pbnQpKSwgdW5zdXJlKGNvbnRpbnVhdGlv
biksIHVuc3VyZShnZW5lcmljQ2FzZSkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKGNhY2hlZEFuZEZsYWcpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291
dC50ZXN0SXNaZXJvUHRyKGNhY2hlZEFuZEZsYWcsIG1fb3V0LmNvbnN0SW50UHRyKFN0cnVjdHVy
ZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2
ZXJzaW5nRmxhZykpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKGdlbmVyaWNDYXNlKSk7
CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGdlbmVyaWNDYXNlLCBjb250aW51YXRpb24p
OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHZtQ2FsbChwb2ludGVy
VHlwZSgpLCBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCB3ZWFrUG9pbnRlcihn
bG9iYWxPYmplY3QpLCBiYXNlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBjMTg2MzY5OTYwYjFmZWU4YjI3NDU4OWEwMWMxYWM0
NWIzYTlmYmI3Li44NWU4NmNlY2Q2OGNiYmU4ZTVlYTk5Njg2YzQ3MWZlYTIxYWQwYTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAt
MjkwMiwxMCArMjkwMiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvcGVydHlfZW51bWVy
YXRvcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMSwgU3RydWN0dXJlOjpwcmV2aW91c09yUmFyZURhdGFPZmZzZXQoKSksIHJl
Z1QxKTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEp
KTsKICAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaElmU3RydWN0dXJlKHJlZ1QxKSk7Ci0g
ICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpLCByZWdUMSk7CisgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QxLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yQW5kRmxhZygpKSwgcmVnVDEpOwogCiAgICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0UHRyKFplcm8sIHJlZ1QxKSk7Ci0gICAgZ2VuZXJpY0Nhc2VzLmFwcGVuZChicmFuY2hU
ZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCkpKTsKKyAgICBnZW5lcmljQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDEsIFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QxKTsKICAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCmluZGV4IDQyZWZiNzFjNGE2NDFkNjIzOTZkNzRmNjA0NWRhNDY2YzVmYzgzMTUu
LjNhNDZlNGQwYzNmNjBjNTNjZGEwYWJkZWY0MGMwZTYxYjMyMGFiZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtOTc0LDcgKzk3NCw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWV0YWRhdGEubV9vZmZzZXQgPSBzbG90LmNhY2hlZE9mZnNldCgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1fbmV3U3RydWN0dXJlSUQg
PSBuZXdTdHJ1Y3R1cmUtPmlkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEo
Ynl0ZWNvZGUubV9mbGFncy5pc0RpcmVjdCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4gPSBuZXdTdHJ1Y3R1cmUtPnByb3RvdHlwZUNo
YWluKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZUNlbGwpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIGNoYWluID0gbmV3U3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlQ2VsbCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2hhaW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tX3N0cnVjdHVyZUNoYWluLnNldCh2bSwgY29kZUJs
b2NrLCBjaGFpbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRl
eCBmYmRiYTY4ZTBmMzBhMzAwY2U4MjM1NzMxZjBhYTM1YmFjNWVhNGJiLi5kODRiNmVhZDM3ZmRk
YjQzMjBiODQ1MzlkYjc3YzRiNmI4MDQ3ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzExOSw5ICszMTE5
LDkgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAg
ICBiYmVxIEpTQ2VsbDo6bV90eXBlW3QxXSwgU3RydWN0dXJlVHlwZSwgLnNsb3dQYXRoCiAKLSAg
ICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
W3QxXSwgdDEKKyAgICBsb2FkcCBTdHJ1Y3R1cmVSYXJlRGF0YTo6bV9jYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZ1t0MV0sIHQxCiAgICAgYnRweiB0MSwgLnNsb3dQYXRoCi0gICAg
YnRpeiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZmxhZ3NbdDFdLCAoY29uc3RleHByIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6VmFsaWRhdGVkVmlhV2F0Y2hwb2ludCksIC5zbG93UGF0
aAorICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0
aAogCiAgICAgcmV0dXJuKHQxKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4NWQ5NWFhY2Ey
ZDNiZDc0YWU0YmZjMjk2ZDc1NmEwNzkzMzQyMDgxLi5kMjgxZWNmOTNhZmRkOTFlOTMxMWUxMzJh
Mjk5NTc2NjYzYjQwN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTg2LDcgKzg2LDYgQEAg
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCog
Y2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KHBy
b3BlcnR5TmFtZXMpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChwcm9wZXJ0eU5hbWVzLCBwcm9w
ZXJ0eU5hbWVzICsgdGhpc09iamVjdC0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICB9Ci0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CiAKICAgICBp
ZiAodGhpc09iamVjdC0+Y2FjaGVkU3RydWN0dXJlSUQoKSkgewogICAgICAgICBWTSYgdm0gPSB2
aXNpdG9yLnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDY2NjJlOWZhODFiMjhiMDk2MjM3YTMw
YzVkNzlhYzk0MGVjMTMyN2EuLmI0NmVlOWI2MWM3MDk2MzlmZWY4YmM1ZGJjNzNjYTFhNGI0YzU5
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC00NCw4ICs0NCw2IEBAIGNsYXNzIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBHZW5lcmljTW9k
ZSA9IDEgPDwgMiwKICAgICAgICAgLy8gUHJvZmlsaW5nIE9ubHkKICAgICAgICAgSGFzU2Vlbk93
blN0cnVjdHVyZU1vZGVTdHJ1Y3R1cmVNaXNtYXRjaCA9IDEgPDwgMywKLSAgICAgICAgLy8gSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yIE9ubHkKLSAgICAgICAgVmFsaWRhdGVkVmlhV2F0Y2hwb2lu
dCA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGVudW1l
cmF0aW9uTW9kZU1hc2sgPSAoR2VuZXJpY01vZGUgPDwgMSkgLSAxOwpAQCAtNzIsMTAgKzcwLDYg
QEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXMuZ2V0KClbaW5kZXhdLmdldCgpOwogICAg
IH0KIAotICAgIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG90eXBlQ2hhaW4uZ2V0KCk7IH0KLSAgICB2b2lkIHNldENhY2hlZFByb3Rv
dHlwZUNoYWluKFZNJiB2bSwgU3RydWN0dXJlQ2hhaW4qIHByb3RvdHlwZUNoYWluKSB7IHJldHVy
biBtX3Byb3RvdHlwZUNoYWluLnNldCh2bSwgdGhpcywgcHJvdG90eXBlQ2hhaW4pOyB9Ci0gICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFByb3RvdHlwZUNoYWluKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciwgbV9wcm90b3R5cGVDaGFp
bik7IH0KLQogICAgIFN0cnVjdHVyZSogY2FjaGVkU3RydWN0dXJlKFZNJiB2bSkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRTdHJ1Y3R1cmVJRCkKQEAgLTEwMCwxNSArOTQsNiBA
QCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Is
IG1fcHJvcGVydHlOYW1lcyk7CiAgICAgfQogCi0gICAgYm9vbCB2YWxpZGF0ZWRWaWFXYXRjaHBv
aW50KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
VmFsaWRhdGVkVmlhV2F0Y2hwb2ludDsgfQotICAgIHZvaWQgc2V0VmFsaWRhdGVkVmlhV2F0Y2hw
b2ludChib29sIHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpCi0gICAgewotICAgICAgICBpZiAodmFs
aWRhdGVkVmlhV2F0Y2hwb2ludCkKLSAgICAgICAgICAgIG1fZmxhZ3MgfD0gSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjpWYWxpZGF0ZWRWaWFXYXRjaHBvaW50OwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2ZsYWdzICY9IH5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OlZhbGlkYXRlZFZp
YVdhdGNocG9pbnQ7Ci0gICAgfQotCiAgICAgSlNTdHJpbmcqIGNvbXB1dGVOZXh0KEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGJhc2UsIHVpbnQzMl90JiBjdXJyZW50SW5kZXgsIEZsYWcmLCBi
b29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcgPSB0cnVlKTsKIAogICAgIERFQ0xB
UkVfVklTSVRfQ0hJTERSRU47CkBAIC0xMTksOCArMTA0LDkgQEAgY2xhc3MgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKFZNJiwgU3RydWN0dXJlKiwgdWludDMyX3QsIHVpbnQzMl90LCBXcml0ZUJhcnJp
ZXI8SlNTdHJpbmc+KiwgdW5zaWduZWQpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBS
ZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmKTsKIAorICAgIC8vIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvciBpcyBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGFsbG93cyBWTSB0
byBjYWNoZSBlbXB0eSBvbmUuCisgICAgLy8gQWZ0ZXIgaW5zdGFudGlhdGluZyBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IsIHdlIG11c3Qgbm90IGNoYW5nZSBhbnkgZmllbGRzLgogICAgIEF1eGls
aWFyeUJhcnJpZXI8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPio+IG1fcHJvcGVydHlOYW1lczsKLSAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlQ2hhaW4+IG1fcHJvdG90eXBlQ2hhaW47CiAgICAgU3Ry
dWN0dXJlSUQgbV9jYWNoZWRTdHJ1Y3R1cmVJRDsKICAgICB1aW50MzJfdCBtX2luZGV4ZWRMZW5n
dGg7CiAgICAgdWludDMyX3QgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwpAQCAtMTM4LDEz
ICsxMjQsMTYgQEAgaW5saW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogcHJvcGVydHlOYW1l
RW51bWVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIAogICAgIHVpbnQzMl90IGluZGV4
ZWRMZW5ndGggPSBiYXNlLT5nZXRFbnVtZXJhYmxlTGVuZ3RoKGdsb2JhbE9iamVjdCk7CiAKLSAg
ICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxscHRyOwotCiAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghaW5k
ZXhlZExlbmd0aAotICAgICAgICAmJiAoZW51bWVyYXRvciA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcigpKSkgewotICAgICAgICBpZiAoZW51bWVyYXRvci0+dmFsaWRh
dGVkVmlhV2F0Y2hwb2ludCgpIHx8IGVudW1lcmF0b3ItPmNhY2hlZFByb3RvdHlwZUNoYWluKCkg
PT0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKQotICAgICAg
ICAgICAgcmV0dXJuIGVudW1lcmF0b3I7CisgICAgaWYgKCFpbmRleGVkTGVuZ3RoKSB7CisgICAg
ICAgIHVpbnRwdHJfdCBlbnVtZXJhdG9yQW5kRmxhZyA9IHN0cnVjdHVyZS0+Y2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvckFuZEZsYWcoKTsKKyAgICAgICAgaWYgKGVudW1lcmF0b3JBbmRGbGFn
KSB7CisgICAgICAgICAgICBpZiAoIShlbnVtZXJhdG9yQW5kRmxhZyAmIFN0cnVjdHVyZVJhcmVE
YXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5n
RmxhZykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqPihlbnVtZXJhdG9yQW5kRmxhZyk7CisgICAgICAgICAgICBzdHJ1Y3R1cmUt
PnByb3RvdHlwZUNoYWluKHZtLCBnbG9iYWxPYmplY3QsIGJhc2UpOyAvLyBSZWZyZXNoIGNhY2hl
ZCBzdHJ1Y3R1cmUgY2hhaW4uCisgICAgICAgICAgICBpZiAoYXV0byogZW51bWVyYXRvciA9IHN0
cnVjdHVyZS0+Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpKQorICAgICAgICAgICAgICAg
IHJldHVybiBlbnVtZXJhdG9yOworICAgICAgICB9CiAgICAgfQogCiAgICAgdWludDMyX3QgbnVt
YmVyU3RydWN0dXJlUHJvcGVydGllcyA9IDA7CkBAIC0xNjMsMTQgKzE1MiwxNSBAQCBpbmxpbmUg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogICAgICAgICBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsK
ICAgICB9CiAKKyAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IgPSBudWxs
cHRyOwogICAgIGlmICghaW5kZXhlZExlbmd0aCAmJiAhcHJvcGVydHlOYW1lcy5zaXplKCkpCiAg
ICAgICAgIGVudW1lcmF0b3IgPSB2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKICAg
ICBlbHNlCiAgICAgICAgIGVudW1lcmF0b3IgPSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNy
ZWF0ZSh2bSwgc3RydWN0dXJlQWZ0ZXJHZXR0aW5nUHJvcGVydHlOYW1lcywgaW5kZXhlZExlbmd0
aCwgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSk7CiAg
ICAgaWYgKCFpbmRleGVkTGVuZ3RoICYmIHN1Y2Nlc3NmdWxseU5vcm1hbGl6ZWRDaGFpbiAmJiBz
dHJ1Y3R1cmVBZnRlckdldHRpbmdQcm9wZXJ0eU5hbWVzID09IHN0cnVjdHVyZSkgewotICAgICAg
ICBlbnVtZXJhdG9yLT5zZXRDYWNoZWRQcm90b3R5cGVDaGFpbih2bSwgc3RydWN0dXJlLT5wcm90
b3R5cGVDaGFpbihnbG9iYWxPYmplY3QsIGJhc2UpKTsKKyAgICAgICAgU3RydWN0dXJlQ2hhaW4q
IGNoYWluID0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbih2bSwgZ2xvYmFsT2JqZWN0LCBiYXNl
KTsKICAgICAgICAgaWYgKHN0cnVjdHVyZS0+Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KHZtKSkKLSAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcih2bSwgZW51bWVyYXRvcik7CisgICAgICAgICAgICBzdHJ1Y3R1cmUtPnNldENhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIGVudW1lcmF0b3IsIGNoYWluKTsKICAgICB9CiAgICAg
cmV0dXJuIGVudW1lcmF0b3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmNwcAppbmRleCBkMTY0MzdmNjNiMzNjOWUwZWVlMjM5NDU4ZmY1MDY2MGRhNDc1YzZm
Li41YzJlZDVlNGFjMTI4MDE0ZjFmNGU3ZGIwMTRlMzlkZjg5YmNiZDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTEyMjksOSArMTIyOSwxNSBA
QCB2b2lkIFN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9y
JiB2aXNpdG9yKQogICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIodGhpc09iamVjdC0+bV9s
b2NrKTsKICAgICAKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2dsb2JhbE9iamVj
dCk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pc09iamVjdCgpKQorICAgIGlmICghdGhpc09iamVj
dC0+aXNPYmplY3QoKSkgeworICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBjbGVhciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Igc2luY2UgaXQgaXMgbmV2ZXIgY2FjaGVkIGZvciBub24tb2Jq
ZWN0IFN0cnVjdHVyZS4KKyAgICAgICAgLy8gV2UgZG8gbm90IGhhdmUgY29kZSBjbGVhcmluZyBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igc2luY2UgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVk
IGNvbmN1cnJlbnRseS4KICAgICAgICAgdGhpc09iamVjdC0+bV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5jbGVhcigpOwotICAgIGVsc2UgeworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGlmIChh
dXRvKiByYXJlRGF0YSA9IHRoaXNPYmplY3QtPnRyeVJhcmVEYXRhKCkpCisgICAgICAgICAgICBB
U1NFUlQoIXJhcmVEYXRhLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpOworI2VuZGlm
CisgICAgfSBlbHNlIHsKICAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90
b3R5cGUpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hlZFByb3Rv
dHlwZUNoYWluKTsKICAgICB9CkBAIC0xMzk4LDEyICsxNDA0LDE0IEBAIGJvb2wgQ2xhc3NJbmZv
OjpoYXNTdGF0aWNTZXR0ZXJPclJlYWRvbmx5UHJvcGVydGllcygpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFN0cnVjdHVyZTo6c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcihWTSYgdm0sIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikKK3ZvaWQg
U3RydWN0dXJlOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCiB7
CisgICAgQVNTRVJUKHR5cGVJbmZvKCkuaXNPYmplY3QoKSk7CiAgICAgQVNTRVJUKCFpc0RpY3Rp
b25hcnkoKSk7CiAgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQogICAgICAgICBhbGxvY2F0ZVJhcmVE
YXRhKHZtKTsKLSAgICByYXJlRGF0YSgpLT5zZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KHZtLCBlbnVtZXJhdG9yKTsKKyAgICBBU1NFUlQoY2hhaW4gPT0gbV9jYWNoZWRQcm90b3R5cGVD
aGFpbi5nZXQoKSk7CisgICAgcmFyZURhdGEoKS0+c2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcih2bSwgdGhpcywgZW51bWVyYXRvciwgY2hhaW4pOwogfQogCiBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IqIFN0cnVjdHVyZTo6Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpIGNvbnN0
CkBAIC0xNDEzLDYgKzE0MjEsMTMgQEAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBTdHJ1Y3R1
cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSBjb25zdAogICAgIHJldHVybiByYXJl
RGF0YSgpLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7CiB9CiAKK3VpbnRwdHJfdCBT
dHJ1Y3R1cmU6OmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3QKK3sK
KyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBy
YXJlRGF0YSgpLT5jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpOworfQorCiBi
b29sIFN0cnVjdHVyZTo6Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSkgY29u
c3QKIHsKICAgICBpZiAoIXRoaXMtPmNhbkNhY2hlT3duUHJvcGVydHlOYW1lcygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCAyNmI4NzkzODUwYjNmMThm
MWFlZWExNWI4YTg5YjFhODdmYzMxM2JjLi5iNDk4NjFiY2E4ZDUwZTAwMTY4ZWZiNmFkNWFkYjFj
YTU2ZmM5NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApA
QCAtMzA3LDcgKzMwNyw2IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogICAg
IEpTVmFsdWUgcHJvdG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAg
SlNWYWx1ZSBwcm90b3R5cGVGb3JMb29rdXAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGJhc2Up
IGNvbnN0OwogICAgIFN0cnVjdHVyZUNoYWluKiBwcm90b3R5cGVDaGFpbihWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGJhc2UpIGNvbnN0OwotICAgIFN0cnVjdHVyZUNoYWluKiBwcm90
b3R5cGVDaGFpbihKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBiYXNlKSBjb25zdDsKICAgICBE
RUNMQVJFX1ZJU0lUX0NISUxEUkVOOwogICAgIAogICAgIC8vIEEgU3RydWN0dXJlIGlzIGNoZWFw
IHRvIG1hcmsgZHVyaW5nIEdDIGlmIGRvaW5nIHNvIHdvdWxkIG9ubHkgYWRkIGEgc21hbGwgYW5k
IGJvdW5kZWQgYW1vdW50CkBAIC01MzAsOCArNTI5LDkgQEAgY2xhc3MgU3RydWN0dXJlIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgICAgICAgICBzZXRIYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJv
cGVydGllc0V4Y2x1ZGluZ1Byb3RvKHRydWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0Q2FjaGVk
UHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopOwor
ICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciosIFN0cnVjdHVyZUNoYWluKik7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKiBjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7CisgICAgdWludHB0
cl90IGNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkgY29uc3Q7CiAgICAgYm9v
bCBjYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mKSBjb25zdDsKICAgICBib29sIGNh
bkFjY2Vzc1Byb3BlcnRpZXNRdWlja2x5Rm9yRW51bWVyYXRpb24oKSBjb25zdDsKIApAQCAtNjM3
LDcgKzYzNyw3IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgYm9v
bCBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yU2hvdWxkV2F0Y2goKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGRmZ1Nob3VsZFdhdGNoKCk7CisgICAgICAgIHJldHVybiBkZmdTaG91bGRXYXRj
aCgpICYmICFoYXNQb2x5UHJvdG8oKTsKICAgICB9CiAgICAgICAgIAogICAgIHZvaWQgYWRkVHJh
bnNpdGlvbldhdGNocG9pbnQoV2F0Y2hwb2ludCogd2F0Y2hwb2ludCkgY29uc3QKQEAgLTg0OSw2
ICs4NDksOCBAQCBjbGFzcyBTdHJ1Y3R1cmUgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAKICAgICB2
b2lkIHN0YXJ0V2F0Y2hpbmdJbnRlcm5hbFByb3BlcnRpZXMoVk0mKTsKIAorICAgIHZvaWQgY2xl
YXJDYWNoZWRQcm90b3R5cGVDaGFpbigpOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19t
YXhUcmFuc2l0aW9uTGVuZ3RoID0gNjQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhU
cmFuc2l0aW9uTGVuZ3RoRm9yTm9uRXZhbFB1dEJ5SWQgPSA1MTI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAppbmRleCA1MzVmMGUxOWE0
YmI0OWJlZWM2YTBkMTNhNDlmNmJiYjBmMzdjZGQzLi40MGM5ZjBhNGFmMmI2NTg4YTliMjY0OTg0
MzA2NmRiZGM3OTBkNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlSW5saW5lcy5oCkBAIC0zNDIsMTYgKzM0MiwxMiBAQCBpbmxpbmUgU3RydWN0dXJl
Q2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsTwogICAgIC8vIFdlIGNhY2hlIG91ciBwcm90b3R5cGUgY2hhaW4gc28gb3VyIGNsaWVu
dHMgY2FuIHNoYXJlIGl0LgogICAgIGlmICghaXNWYWxpZChnbG9iYWxPYmplY3QsIG1fY2FjaGVk
UHJvdG90eXBlQ2hhaW4uZ2V0KCksIGJhc2UpKSB7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBl
ID0gcHJvdG90eXBlRm9yTG9va3VwKGdsb2JhbE9iamVjdCwgYmFzZSk7CisgICAgICAgIGNvbnN0
X2Nhc3Q8U3RydWN0dXJlKj4odGhpcyktPmNsZWFyQ2FjaGVkUHJvdG90eXBlQ2hhaW4oKTsKICAg
ICAgICAgbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5zZXQodm0sIHRoaXMsIFN0cnVjdHVyZUNoYWlu
OjpjcmVhdGUodm0sIHByb3RvdHlwZS5pc051bGwoKSA/IG51bGxwdHIgOiBhc09iamVjdChwcm90
b3R5cGUpKSk7CiAgICAgfQogICAgIHJldHVybiBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgp
OwogfQogCi1pbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIHByb3RvdHlwZUNoYWluKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
LCBiYXNlKTsKLX0KLQogaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbiwg
SlNPYmplY3QqIGJhc2UpIGNvbnN0CiB7CiAgICAgaWYgKCFjYWNoZWRQcm90b3R5cGVDaGFpbikK
QEAgLTc1OSw0ICs3NTUsMTIgQEAgaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlVHJhbnNpdGlv
blRhYmxlOjpnZXQoVW5pcXVlZFN0cmluZ0ltcGwqIHJlcCwgdW5zaWduZWQKICAgICByZXR1cm4g
bWFwKCktPmdldChTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGU6Okhhc2g6OktleShyZXAsIGF0dHJp
YnV0ZXMsIHRyYW5zaXRpb25LaW5kKSk7CiB9CiAKK2lubGluZSB2b2lkIFN0cnVjdHVyZTo6Y2xl
YXJDYWNoZWRQcm90b3R5cGVDaGFpbigpCit7CisgICAgbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5j
bGVhcigpOworICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJh
cmVEYXRhKCktPmNsZWFyQ2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZVJhcmVEYXRhLmNwcAppbmRleCA1ZjAyZjFlZjUxNjdhMzhiZDU4YzRiOWY0OGI2YjEx
MmRkZmViYTU2Li5jMmY3NTUzYjJjZGVjOWVjZDY4M2EzOTE2OTg5NDU1Y2I1MDIxODFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
Y3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRy
ZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpbmRleCA9IDA7IGluZGV4IDwgbnVtYmVyT2ZDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXlz
OyArK2luZGV4KQogICAgICAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZCh0aGlzT2Jq
ZWN0LT5jYWNoZWRTcGVjaWFsUHJvcGVydHkoc3RhdGljX2Nhc3Q8Q2FjaGVkU3BlY2lhbFByb3Bl
cnR5S2V5PihpbmRleCkpKTsKICAgICB9Ci0gICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+
bV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVuZFVuYmFy
cmllcmVkKHRoaXNPYmplY3QtPmNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbnVtYmVyT2ZDYWNoZWRQcm9wZXJ0eU5h
bWVzOyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8qIGNhY2hlZCA9IHRoaXNPYmplY3QtPm1fY2Fj
aGVkUHJvcGVydHlOYW1lc1tpbmRleF0udW52YWxpZGF0ZWRHZXQoKTsKICAgICAgICAgaWYgKGNh
Y2hlZCAhPSBjYWNoZWRQcm9wZXJ0eU5hbWVzU2VudGluZWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCmluZGV4IDc3YzAzM2E2OWZl
NTRjMGVhODI1Mjk4YmE5OWZhNmVkMTk3NDBlNWYuLjZjMTMwMDliN2JlN2U5ZDBmYTFhNTFmMWJj
YWJhMTAyYjQ3MTRjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlUmFyZURhdGEuaApAQCAtODksNyArODksOSBAQCBjbGFzcyBTdHJ1Y3R1cmVSYXJl
RGF0YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHZvaWQgY2FjaGVTcGVjaWFsUHJvcGVy
dHkoSlNHbG9iYWxPYmplY3QqLCBWTSYsIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgSlNWYWx1
ZSwgQ2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5LCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKIAogICAg
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcigp
IGNvbnN0OwotICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvciopOworICAgIHVpbnRwdHJfdCBjYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yQW5kRmxhZygpIGNvbnN0OworICAgIHZvaWQgc2V0Q2FjaGVkUHJvcGVydHlO
YW1lRW51bWVyYXRvcihWTSYsIFN0cnVjdHVyZSosIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcios
IFN0cnVjdHVyZUNoYWluKik7CisgICAgdm9pZCBjbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1l
cmF0b3IoKTsKIAogICAgIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBjYWNoZWRQcm9wZXJ0eU5hbWVz
KENhY2hlZFByb3BlcnR5TmFtZXNLaW5kKSBjb25zdDsKICAgICBKU0ltbXV0YWJsZUJ1dHRlcmZs
eSogY2FjaGVkUHJvcGVydHlOYW1lc0lnbm9yaW5nU2VudGluZWwoQ2FjaGVkUHJvcGVydHlOYW1l
c0tpbmQpIGNvbnN0OwpAQCAtMTA4LDE2ICsxMTAsMTcgQEAgY2xhc3MgU3RydWN0dXJlUmFyZURh
dGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihTdHJ1Y3R1cmVSYXJlRGF0YSwgbV9jYWNoZWRQcm9wZXJ0eU5hbWVzKSArIHNpemVvZihXcml0
ZUJhcnJpZXI8SlNJbW11dGFibGVCdXR0ZXJmbHk+KSAqIHN0YXRpY19jYXN0PHVuc2lnbmVkPihr
aW5kKTsKICAgICB9CiAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvcigpCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoU3RydWN0dXJlUmFyZURhdGEsIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcik7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RydWN0dXJlUmFyZURhdGEs
IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWcpOwogICAgIH0KIAogICAgIERF
Q0xBUkVfRVhQT1JUX0lORk87CiAKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZN
Jik7CiAKLSAgICB2b2lkIGludmFsaWRhdGVXYXRjaHBvaW50QmFzZWRWYWxpZGF0aW9uKCk7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
cklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludHB0cl90IGNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JNYXNrID0gfnN0YXRpY19jYXN0
PHVpbnRwdHJfdD4oMSk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0
c0V4dHJhY3RvcjsKQEAgLTEzNSwxMiArMTM4LDEyIEBAIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRh
IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgYm9vbCBjYW5DYWNoZVNwZWNpYWxQcm9wZXJ0
eShDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXkpOwogICAgIHZvaWQgZ2l2ZVVwT25TcGVjaWFsUHJv
cGVydHlDYWNoZShDYWNoZWRTcGVjaWFsUHJvcGVydHlLZXkpOwogCi0gICAgYm9vbCB0cnlDYWNo
ZVByb3BlcnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50KFZNJiwgU3RydWN0dXJlQ2hhaW4q
KTsKKyAgICBib29sIHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQo
Vk0mLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmVDaGFpbiopOwogCiAgICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9wcmV2aW91czsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgc29tZSBz
dG9yeSBmb3IgY2xlYXJpbmcgdGhlc2UgcHJvcGVydHkgbmFtZXMgY2FjaGVzIGluIEdDLgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2NTkKLSAgICBX
cml0ZUJhcnJpZXI8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yPiBtX2NhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3I7CisgICAgdWludHB0cl90IG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
ckFuZEZsYWcgeyAwIH07CiAgICAgRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRp
b25XYXRjaHBvaW50PiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JXYXRjaHBvaW50czsK
ICAgICBXcml0ZUJhcnJpZXI8SlNJbW11dGFibGVCdXR0ZXJmbHk+IG1fY2FjaGVkUHJvcGVydHlO
YW1lc1tudW1iZXJPZkNhY2hlZFByb3BlcnR5TmFtZXNdIHsgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaApp
bmRleCBlMmNiMzdiYjg3NWIzY2ZlMTdhOTQ4MjI1MDZjZDBhZjc4NGMyYTQzLi4wNDBkNWVhODkz
MmI3NzllMTYxMTI0NzZiZjVmY2QwNjcwOWE0M2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaApAQCAtOTAs
MTUgKzkwLDIwIEBAIGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRTcGVj
aWFsUHJvcGVydHkoQ2FjaGVkU3BlY2lhbFByb3BlcnR5S2V5CiAKIGlubGluZSBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IqIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmdldCgpOworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKj4obV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZyAmIGNhY2hlZFByb3Bl
cnR5TmFtZUVudW1lcmF0b3JNYXNrKTsKIH0KIAotaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURh
dGE6OnNldENhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpCitpbmxpbmUgdWludHB0cl90IFN0cnVjdHVyZVJhcmVE
YXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yQW5kRmxhZygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvckFuZEZsYWc7Cit9CisKK2lubGlu
ZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpzZXRDYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IqIGVudW1lcmF0b3IsIFN0cnVjdHVyZUNoYWluKiBjaGFpbikKIHsKLSAgICBtX2NhY2hlZFBy
b3BlcnR5TmFtZUVudW1lcmF0b3Iuc2V0KHZtLCB0aGlzLCBlbnVtZXJhdG9yKTsKICAgICBtX2Nh
Y2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JXYXRjaHBvaW50cyA9IEZpeGVkVmVjdG9yPFN0cnVj
dHVyZUNoYWluSW52YWxpZGF0aW9uV2F0Y2hwb2ludD4oKTsKLSAgICBib29sIHZhbGlkYXRlZFZp
YVdhdGNocG9pbnQgPSB0cnlDYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3JWaWFXYXRjaHBvaW50
KHZtLCBlbnVtZXJhdG9yLT5jYWNoZWRQcm90b3R5cGVDaGFpbigpKTsKLSAgICBlbnVtZXJhdG9y
LT5zZXRWYWxpZGF0ZWRWaWFXYXRjaHBvaW50KHZhbGlkYXRlZFZpYVdhdGNocG9pbnQpOworICAg
IGJvb2wgdmFsaWRhdGVkVmlhV2F0Y2hwb2ludCA9IHRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVy
YXRvclZpYVdhdGNocG9pbnQodm0sIGJhc2VTdHJ1Y3R1cmUsIGNoYWluKTsKKyAgICBtX2NhY2hl
ZFByb3BlcnR5TmFtZUVudW1lcmF0b3JBbmRGbGFnID0gKCh2YWxpZGF0ZWRWaWFXYXRjaHBvaW50
ID8gMCA6IGNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3JJc1ZhbGlkYXRlZFZpYVRyYXZlcnNp
bmdGbGFnKSB8IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVudW1lcmF0b3IpKTsKKyAgICB2bS5o
ZWFwLndyaXRlQmFycmllcih0aGlzLCBlbnVtZXJhdG9yKTsKIH0KIAogaW5saW5lIEpTSW1tdXRh
YmxlQnV0dGVyZmx5KiBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkUHJvcGVydHlOYW1lcyhDYWNo
ZWRQcm9wZXJ0eU5hbWVzS2luZCBraW5kKSBjb25zdApAQCAtMTY5LDExICsxNzQsMTQgQEAgaW5s
aW5lIHZvaWQgU3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50OjpmaXJlSW50ZXJu
YWwoVk0mLCBjb25zdCBGaXJlRGUKIHsKICAgICBpZiAoIW1fc3RydWN0dXJlUmFyZURhdGEtPmlz
TGl2ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9zdHJ1Y3R1cmVSYXJlRGF0YS0+aW52YWxp
ZGF0ZVdhdGNocG9pbnRCYXNlZFZhbGlkYXRpb24oKTsKKyAgICBtX3N0cnVjdHVyZVJhcmVEYXRh
LT5jbGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKIH0KIAotaW5saW5lIGJvb2wg
U3RydWN0dXJlUmFyZURhdGE6OnRyeUNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNo
cG9pbnQoVk0mIHZtLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCitpbmxpbmUgYm9vbCBTdHJ1Y3R1
cmVSYXJlRGF0YTo6dHJ5Q2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yVmlhV2F0Y2hwb2ludChW
TSYgdm0sIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgU3RydWN0dXJlQ2hhaW4qIGNoYWluKQog
eworICAgIGlmIChiYXNlU3RydWN0dXJlLT5oYXNQb2x5UHJvdG8oKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCiAgICAgdW5zaWduZWQgc2l6ZSA9IDA7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50
ID0gY2hhaW4tPmhlYWQoKTsgKmN1cnJlbnQ7ICsrY3VycmVudCkgewogICAgICAgICArK3NpemU7
CkBAIC0xOTMsOSArMjAxLDkgQEAgaW5saW5lIGJvb2wgU3RydWN0dXJlUmFyZURhdGE6OnRyeUNh
Y2hlUHJvcGVydHlOYW1lRW51bWVyYXRvclZpYVdhdGNocG9pbnQoVk0mIHYKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmludmFsaWRhdGVXYXRj
aHBvaW50QmFzZWRWYWxpZGF0aW9uKCkKK2lubGluZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpj
bGVhckNhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3IoKQogewotICAgIG1fY2FjaGVkUHJvcGVy
dHlOYW1lRW51bWVyYXRvci5jbGVhcigpOworICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvckFuZEZsYWcgPSAwOwogICAgIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcldhdGNo
cG9pbnRzID0gRml4ZWRWZWN0b3I8U3RydWN0dXJlQ2hhaW5JbnZhbGlkYXRpb25XYXRjaHBvaW50
PigpOwogfQogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGRkZGNlMjBiNWFlOGE5YjE4OTg0ZGFjN2FiYjAxZDg0NmRlYjNmNWIuLjUxNjhj
Mjg1YzVkOTIwNmJjMzZmM2ViOTY3NTYxMjRjNDllYWJiZTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEt
MTAtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Igc2hvdWxkIG5vdCBoYXZlIGNhY2hlZCBwcm90b3R5
cGUgY2hhaW4gc2luY2UgZW1wdHkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGlzIHNoYXJlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3Mv
Zm9yLWluLXZhbGlkYXRpb24tcG9seS1wcm90by5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGZhY3RvcnkuVGVzdCk6CisgICAgICAgIChm
YWN0b3J5KToKKyAgICAgICAgKiBzdHJlc3MvZm9yLWluLXZhbGlkYXRpb24td2F0Y2hwb2ludC5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KFRlc3QpOgorICAgICAgICAoZmFjdG9yeSk6CisKIDIwMjEtMTAtMDIgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVcGRhdGUgdGVzdDI2MiBjb25m
aWcueWFtbCBzaW5jZSBPU1MgV2ViS2l0IG5vdyB1c2VzIElDVSA2NC4yIGhlYWRlcgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLWluLXZhbGlkYXRpb24tcG9seS1wcm90by5qcyBiL0pT
VGVzdHMvc3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXBvbHktcHJvdG8uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjZiNmZmMmVjMGY3YzE5ZDAyYTRjOTkwZmZhMjhlNTBjNzg1YmUxYwotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXBvbHktcHJvdG8uanMKQEAgLTAs
MCArMSwzNCBAQAorLy9AIHJlcXVpcmVPcHRpb25zKCItLWZvcmNlUG9seVByb3RvPTEiKQorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KSB7CisgICAgdmFyIHJlc3VsdCA9IFtdCisgICAg
Zm9yICh2YXIgayBpbiBvYmplY3QpCisgICAgICAgIHJlc3VsdC5wdXNoKGspOworICAgIHJldHVy
biBKU09OLnN0cmluZ2lmeShyZXN1bHQpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBjb25z
dHJ1Y3RvcnMgPSBbXQorT2JqZWN0LnByb3RvdHlwZS5oZXkgPSAzMjsKK2Z1bmN0aW9uIGZhY3Rv
cnkoKSB7CisgICAgZnVuY3Rpb24gVGVzdCgpIHsgfQorICAgIGNvbnN0cnVjdG9ycy5wdXNoKFRl
c3QpOworICAgIHJldHVybiBuZXcgVGVzdDsKK30KKwordmFyIG9iamVjdCA9IGZhY3RvcnkoKTsK
K3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFsiaGV5Il1gKTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0
KSwgYFsiaGV5Il1gKTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFsiaGV5Il1gKTsKK3ZhciBv
YmplY3QyID0gZmFjdG9yeSgpOworc2hvdWxkQmUodGVzdChvYmplY3QyKSwgYFsiaGV5Il1gKTsK
K3Nob3VsZEJlKHRlc3Qob2JqZWN0MiksIGBbImhleSJdYCk7CitzaG91bGRCZSh0ZXN0KG9iamVj
dDIpLCBgWyJoZXkiXWApOworb2JqZWN0Mi5fX3Byb3RvX18gPSB7IG9rOiAzMyB9Oworc2hvdWxk
QmUodGVzdChvYmplY3QyKSwgYFsib2siLCJoZXkiXWApOworc2hvdWxkQmUodGVzdChvYmplY3Qy
KSwgYFsib2siLCJoZXkiXWApOworc2hvdWxkQmUodGVzdChvYmplY3QyKSwgYFsib2siLCJoZXki
XWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLWluLXZhbGlkYXRpb24td2F0Y2hw
b2ludC5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXdhdGNocG9pbnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWVhNjc0YTRkMTY1NDYzYmY5YzJmZDY2NmMwMzk0YWZiMDZjNmZjOQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi12YWxpZGF0aW9uLXdhdGNocG9p
bnQuanMKQEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KSB7
CisgICAgdmFyIHJlc3VsdCA9IFtdCisgICAgZm9yICh2YXIgayBpbiBvYmplY3QpCisgICAgICAg
IHJlc3VsdC5wdXNoKGspOworICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZXN1bHQpOworfQor
bm9JbmxpbmUodGVzdCk7CisKK2Z1bmN0aW9uIFRlc3QoKSB7IH0KK2Z1bmN0aW9uIGZhY3Rvcnko
KSB7IHJldHVybiBuZXcgVGVzdDsgfQorCit2YXIgb2JqZWN0ID0gZmFjdG9yeSgpOworc2hvdWxk
QmUodGVzdChvYmplY3QpLCBgW11gKTsKK3Nob3VsZEJlKHRlc3Qob2JqZWN0KSwgYFtdYCk7Citz
aG91bGRCZSh0ZXN0KG9iamVjdCksIGBbXWApOworb2JqZWN0Lm9rID0gNDI7CitkZWxldGUgb2Jq
ZWN0Lm9rOworc2hvdWxkQmUodGVzdChvYmplY3QpLCBgW11gKTsKK3Nob3VsZEJlKHRlc3Qob2Jq
ZWN0KSwgYFtdYCk7CitzaG91bGRCZSh0ZXN0KG9iamVjdCksIGBbXWApOworVGVzdC5wcm90b3R5
cGUub2sgPSA0MjsKK2RlbGV0ZSBUZXN0LnByb3RvdHlwZS5vazsKK3Nob3VsZEJlKHRlc3Qob2Jq
ZWN0KSwgYFtdYCk7CitzaG91bGRCZSh0ZXN0KG9iamVjdCksIGBbXWApOworc2hvdWxkQmUodGVz
dChvYmplY3QpLCBgW11gKTsKK1Rlc3QucHJvdG90eXBlLm9rID0gNDI7Cit0ZXN0KHt9KTsKK3Rl
c3Qoe30pOworc2hvdWxkQmUodGVzdChvYmplY3QpLCBgWyJvayJdYCk7Cg==
</data>
<flag name="review"
          id="463985"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>