<?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>225565</bug_id>
          
          <creation_ts>2021-05-08 16:33:44 -0700</creation_ts>
          <short_desc>[JSC] Fix invalid exception checks after recent ErrorInstance changes</short_desc>
          <delta_ts>2021-05-08 19:19:12 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758220</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-08 16:33:44 -0700</bug_when>
    <thetext>[JSC] Fix invalid exception checks after recent ErrorInstance changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758224</commentid>
    <comment_count>1</comment_count>
      <attachid>428096</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-08 16:45:21 -0700</bug_when>
    <thetext>Created attachment 428096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758239</commentid>
    <comment_count>2</comment_count>
      <attachid>428096</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-08 17:40:43 -0700</bug_when>
    <thetext>Comment on attachment 428096
Patch

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

Fancy! r=me with nits.

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:201
&gt; +    EXCEPTION_ASSERT(!scope.exception() || !hasProperty);

Please consider exception check in JSObject::get(): https://github.com/WebKit/WebKit/blob/f418737fae10f605d08e4de1a2ea0f37d977b28f/Source/JavaScriptCore/runtime/JSObject.h#L1500.
I wonder if we need to handle termination exception as well, since HasProperty can be implemented by userland code?

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:204
&gt; +

scope.release();

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:206
&gt; +        RELEASE_AND_RETURN(scope, get(globalObject, propertyName));

return get(globalObject, propertyName);

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:208
&gt; +    RELEASE_AND_RETURN(scope, slot.getValue(globalObject, propertyName));

return slot.getValue(globalObject, propertyName);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758254</commentid>
    <comment_count>3</comment_count>
      <attachid>428106</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-08 18:27:06 -0700</bug_when>
    <thetext>Created attachment 428106
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758265</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-08 19:18:32 -0700</bug_when>
    <thetext>Committed r277238 (237507@main): &lt;https://commits.webkit.org/237507@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428106.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758266</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-08 19:19:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/77703038&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428096</attachid>
            <date>2021-05-08 16:45:21 -0700</date>
            <delta_ts>2021-05-08 18:27:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225565-20210508164520.patch</filename>
            <type>text/plain</type>
            <size>20765</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTBlYTZmN2IwZmViMjE5Yjc3MTY0MWUwZWNmZjZmNWUxYjRhYzI2Li4xZGUzZTc3ZDNjYzYxMDdm
ZjUzNjI0YWQ3NWE3ODBkZjQ3NTM1ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMS0wNS0wOCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gRml4IGludmFsaWQgZXhjZXB0aW9uIGNoZWNrcyBhZnRl
ciByZWNlbnQgRXJyb3JJbnN0YW5jZSBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICByMjc3MjIxIGFuZCByMjc3MjI0IGVhY2ggaW50cm9kdWNl
ZCBpc3N1ZXMgdW5kZXIgdmFsaWRhdGVFeGNlcHRpb25DaGVja3M9MTsgdGhpcyBwYXRjaCBmaXhl
cyB0aGVtLgorCisgICAgICAgIE9mIHBhcnRpY3VsYXIgbm90ZToKKyAgICAgICAgVGhlIGVhcmxp
ZXIgcGF0Y2ggc291Z2h0IHRvIGNvbnNvbGlkYXRlIEVycm9yI2NhdXNlIGxvZ2ljIHVuZGVyIEVy
cm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uLgorICAgICAgICBUaGlzIHBhcnQgbXVzdCBiZSB1
bmRvbmUgYXMgaXQgaXMgY3J1Y2lhbCB0aGF0IG5vbi11c2VyLXRocm93biBlcnJvcnMgYmUgYWJs
ZSB0byBieXBhc3MgdGhhdCBsb2dpYworICAgICAgICAob3RoZXJ3aXNlIHRocm93RXhjZXB0aW9u
IGl0c2VsZiB3b3VsZCBuZWVkIHRvIGJlIGV4Y2VwdGlvbi1jaGVja2VkKS4KKworICAgICAgICAq
IHJ1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVBZ2dyZWdh
dGVFcnJvcik6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OmdldFByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgor
ICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVm
ZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVTeW50YXhFcnJvcik6CisgICAgICAg
IChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlwZUVycm9yKToKKyAgICAgICAgKiBydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogcnVudGltZS9FcnJvckluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRJZlByb3Bl
cnR5RXhpc3RzKToKKyAgICAgICAgKiBydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5j
cHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IpOgorICAg
ICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHA6CisgICAgICAgIChKU0M6
OmNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvci5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUpTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IpOgorCiAyMDIxLTA1LTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgSlNPYmplY3Q6OmdldElmUHJvcGVy
dHlFeGlzdHMgaGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dy
ZWdhdGVFcnJvci5jcHAKaW5kZXggMGJiZDYyYjg3MTViNjU4ODZjYmZhOGE5NGU0YTRhYjJhY2Jm
NzgwMi4uYWNmYzRmZTRmODRjYmIxYzc3OWE2MTQwYzY5OWE0Y2E0N2RlY2RhOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcApAQCAtNDks
NiArNDksNyBAQCBFcnJvckluc3RhbmNlKiBjcmVhdGVBZ2dyZWdhdGVFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVjdAogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgYXV0byogZXJyb3IgPSBFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG1lc3NhZ2UsIG9wdGlvbnMsIGFwcGVuZGVy
LCB0eXBlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGVycm9yLT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmVycm9ycywgYXJyYXksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICByZXR1cm4gZXJyb3I7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAK
aW5kZXggZjI0NGIyOTdiZmY2ZjhmYmRiNjIwMGJkYmYyODcwNmRkY2I1Y2JiNC4uNzkwNjg1NjE2
NTIxOTlmYmI3ZTc0ODZlOTM1NDc5MjQ0Nzc3NjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTQ1LDE2ICsxNDUsMTEgQEAg
dm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGdldFByb3Bl
cnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIHVpbnQ2
NF90IGluZGV4KQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KICAgICBpZiAoSlNWYWx1ZSByZXN1
bHQgPSBvYmplY3QtPnRyeUdldEluZGV4UXVpY2tseShpbmRleCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAKICAgICAvLyBEb24ndCByZXR1cm4gdW5kZWZpbmVkIGlmIHRoZSBwcm9wZXJ0eSBp
cyBub3QgZm91bmQuCi0gICAgYXV0byBwcm9wZXJ0eSA9IG9iamVjdC0+Z2V0SWZQcm9wZXJ0eUV4
aXN0cyhnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICByZXR1cm4gcHJvcGVydHkudmFsdWVP
cihKU1ZhbHVlKCkpOworICAgIHJldHVybiBvYmplY3QtPmdldElmUHJvcGVydHlFeGlzdHMoZ2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKGdsb2JhbE9iamVjdC0+dm0oKSwgaW5kZXgpKTsK
IH0KIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRMZW5ndGgoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU09iamVjdCogb2JqLCB1aW50NjRfdCB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCA4NTRmMmFkYmFiZDU0Y2Ew
NmZhMzQ2ODMwYzJmZDI1Yjk2OTJlOGU2Li5mNjM4YjY2ZGVhZTAxMGZkZmIxNWNiMzAyZWU5YjQ5
NDA1MzljMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0z
NSwzNyArMzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2Uu
aXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJv
ciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3Vy
Y2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsK
LSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZhbEVy
cm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0
cnVjdHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIEpTVmFsdWUoKSwgYXBwZW5k
ZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2Jq
ZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIp
CiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBtZXNzYWdlLCBqc1Vu
ZGVmaW5lZCgpLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJvciwg
dHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6
OlJhbmdlRXJyb3IpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpSYW5nZUVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJlZmVy
ZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNT
RVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0
cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQo
KSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yLCB0cnVl
KTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVm
ZXJlbmNlRXJyb3IpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVT
eW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFT
U0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCks
IGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50YXhFcnJvciwgdHJ1ZSk7Cisg
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5bnRheEVy
cm9yKSwgbWVzc2FnZSwgSlNWYWx1ZSgpLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlw
ZTo6U3ludGF4RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAg
ICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5l
cnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVk
KCksIGFwcGVuZGVyLCB0eXBlLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1l
c3NhZ2UsIEpTVmFsdWUoKSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0
cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyKQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmpl
Y3QqIGNyZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7
CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmlu
ZWQoKSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlVSSUVycm9yLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJy
b3IpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGUgZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZVdpdGhFeHRlbnNpb24gZXJyb3IKIHN0YXRp
YyBKU09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNF
bXB0eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvcik7CisgICAgYXV0byogZXJyb3IgPSBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2Jh
bE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBK
U1ZhbHVlKCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvcik7CiAg
ICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOwogICAgIHJldHVybiBlcnJvcjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAK
aW5kZXggNjM5OTI3NjViZWQ1ODRhN2JmOGU4MDM3NWFkYTQ4YzA1MWEwY2FkNC4uMjNkNjc3Yzdi
YzQyNDEzN2JkZmQzNjZkODQyMjU0N2QxODVlZDcxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTUyLDcgKzUyLDE0IEBAIEVycm9y
SW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLmlz
VW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIHJldHVy
biBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBvcHRp
b25zLCBhcHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJhbWUpOworICAgIEpT
VmFsdWUgY2F1c2U7CisgICAgaWYgKG9wdGlvbnMuaXNPYmplY3QoKSkgeworICAgICAgICAvLyBT
aW5jZSBgdGhyb3cgdW5kZWZpbmVkO2AgaXMgdmFsaWQsIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2gg
dGhlIGNhc2Ugd2hlcmUgYGNhdXNlYCBpcyBhbiBleHBsaWNpdCB1bmRlZmluZWQuCisgICAgICAg
IGNhdXNlID0gYXNPYmplY3Qob3B0aW9ucyktPmdldElmUHJvcGVydHlFeGlzdHMoZ2xvYmFsT2Jq
ZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5jYXVzZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOworICAgIH0KKworICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUs
IGVycm9yVHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBlbmRT
b3VyY2VUb0Vycm9yTWVzc2FnZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRXJyb3JJbnN0YW5jZSog
ZXhjZXB0aW9uLCBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKQEAgLTEwNywxMSArMTE0LDEwIEBAIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291cmNlVG9F
cnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4CiAgICAg
cmV0dXJuIGFwcGVuZGVyKG1lc3NhZ2UsIGNvZGVCbG9jay0+c291cmNlKCkucHJvdmlkZXIoKS0+
Z2V0UmFuZ2Uoc3RhcnQsIHN0b3ApLnRvU3RyaW5nKCksIHR5cGUsIEVycm9ySW5zdGFuY2U6OkZv
dW5kQXBwcm94aW1hdGVTb3VyY2UpOwogfQogCi12b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBKU1ZhbHVlIG9wdGlvbnMsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50
aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKK3ZvaWQgRXJyb3JJbnN0YW5jZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
LCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBtX3NvdXJjZUFw
cGVuZGVyID0gYXBwZW5kZXI7CiAgICAgbV9ydW50aW1lVHlwZUZvckNhdXNlID0gdHlwZTsKQEAg
LTEzNSwxMyArMTQxLDggQEAgdm9pZCBFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFMKICAgICBpZiAoIW1lc3Nh
Z2VXaXRoU291cmNlLmlzTnVsbCgpKQogICAgICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKHZtLCBtZXNzYWdlV2l0aFNvdXJjZSksIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAotICAgIGlmIChv
cHRpb25zLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgLy8gU2luY2UgYHRocm93IHVuZGVmaW5lZDtg
IGlzIHZhbGlkLCB3ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIHRoZSBjYXNlIHdoZXJlIGBjYXVzZWAg
aXMgYW4gZXhwbGljaXQgdW5kZWZpbmVkLgotICAgICAgICBhdXRvIGNhdXNlID0gYXNPYmplY3Qo
b3B0aW9ucyktPmdldElmUHJvcGVydHlFeGlzdHMoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5h
bWVzLT5jYXVzZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0gICAgICAgIGlmIChjYXVzZSkKLSAgICAgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+Y2F1c2UsIGNhdXNlLnZhbHVlKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICB9CisgICAgaWYgKCFjYXVzZS5pc0VtcHR5
KCkpCisgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2F1c2UsIGNhdXNl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9
CiAKIC8vIEJhc2VkIG9uIEVycm9yUHJvdG90eXBlJ3MgZXJyb3JQcm90b0Z1bmNUb1N0cmluZygp
LCBidXQgaXMgbW9kaWZpZWQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAppbmRleCBkZWNhNzdkOGNhMDI5ZjI0MDZjYTczN2E5NGY4ZDU0ZTMxMmZi
MmQxLi43ZDJlNjQzMjZhODFkYjZjNzcwYTQ2M2Q4Zjk2Mzc2NzNkZmIyOTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC01NCwxMCArNTQs
MTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVh
dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBKU1ZhbHVlIG9wdGlvbnMsIFNvdXJjZUFwcGVu
ZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJh
bWUgPSB0cnVlKQorICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51
bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlw
ZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7
CiAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8RXJyb3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVy
ZSwgZXJyb3JUeXBlKTsKLSAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIG1lc3NhZ2UsIG9wdGlvbnMsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJh
bWUpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwg
bWVzc2FnZSwgY2F1c2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOwogICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwgU3RydWN0dXJlKiwgRXJy
b3JUeXBlKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlNWYWx1ZSBvcHRpb25zLCBTb3VyY2VBcHBlbmRlciA9
IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1l
ID0gdHJ1ZSk7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciA9IG51
bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0g
dHJ1ZSk7CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBK
U0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgZ2V0T3duU3BlY2lhbFByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVj
dCosIFByb3BlcnR5TmFtZUFycmF5JiwgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCAwM2U0NjVjMWRmNDRhOGQ0NTdm
MGJhZjllZDE2YjY4MWVkZmZiMjk4Li43MzFmNDRkY2ZkNDM0MGQ0MTM5MDZmZWNmN2U1NmE4YTQ4
MzBjMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTE2
Miw3ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbGJhY2tXaGVu
Tm9FeGNlcHRpb24+IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPENhbGxiYWNrV2hlbk5vRXhjZXB0
aW9uKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxP
YmplY3QqLCBQcm9wZXJ0eU5hbWUsIENhbGxiYWNrV2hlbk5vRXhjZXB0aW9uKSBjb25zdDsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDYWxsYmFja1doZW5Ob0V4Y2VwdGlvbj4gdHlwZW5hbWUgc3Rk
OjpyZXN1bHRfb2Y8Q2FsbGJhY2tXaGVuTm9FeGNlcHRpb24oYm9vbCwgUHJvcGVydHlTbG90Jik+
Ojp0eXBlIGdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiwgQ2FsbGJhY2tXaGVuTm9FeGNlcHRpb24pIGNvbnN0OwogCi0gICAgT3B0aW9u
YWw8SlNWYWx1ZT4gZ2V0SWZQcm9wZXJ0eUV4aXN0cyhKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5
TmFtZSk7CisgICAgSlNWYWx1ZSBnZXRJZlByb3BlcnR5RXhpc3RzKEpTR2xvYmFsT2JqZWN0Kiwg
UHJvcGVydHlOYW1lKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RJbXBsKEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElu
bGluZXMuaAppbmRleCAyNjZkYjZkYjQ0OTk0ZjcwZTE4N2U3NDI1OTFkNmMzNGI5ZGQ2MDFjLi5i
MGNlMGIzY2U3MmM2M2E0ZjFlMjkyMzI0OTdkOTg3NmVjYTI5MTQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtMTkxLDIxICsxOTEs
MjEgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdElubGluZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLWlubGluZSBPcHRpb25hbDxKU1ZhbHVlPiBKU09iamVjdDo6Z2V0SWZQcm9wZXJ0eUV4aXN0
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQoraW5saW5lIEpTVmFsdWUgSlNPYmplY3Q6OmdldElmUHJvcGVydHlFeGlzdHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90
OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KTsKICAgICBib29sIGhhc1Byb3BlcnR5
ID0gZ2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKLSAg
ICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFo
YXNQcm9wZXJ0eSk7Ci0KKyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8
fCAhaGFzUHJvcGVydHkpOwogICAgIGlmICghaGFzUHJvcGVydHkpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoVU5MSUtFTFkoc2xv
dC5pc1RhaW50ZWRCeU9wYXF1ZU9iamVjdCgpKSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBnZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKTsKIAotICAgIHJldHVybiBV
TkxJS0VMWShzbG90LmlzVGFpbnRlZEJ5T3BhcXVlT2JqZWN0KCkpCi0gICAgICAgID8gZ2V0KGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKQotICAgICAgICA6IHNsb3QuZ2V0VmFsdWUoZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgc2xv
dC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSkpOwogfQogCiBpbmxpbmUgYm9v
bCBKU09iamVjdDo6bWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2VzKFZNJiB2bSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmlu
ZGV4IGQ2YWY2MGI4ZWUyNjE4YTE5NDFhNTYwNDFiOGExNzAwYzA2MjQwYzAuLmYyMTliOTMyNmJi
ZGFhZWRmZTNmYTFjNmI4NmYxYWFjM2E1MThiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAtOTQsNyArOTQsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93RXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20gSUMu
IEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIHRoaXMgZnJhbWUgaW4gRXJyb3IncyBzdGFj
ay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSBmYWxzZTsKLSAgICB0aHJv
d0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5
cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBqc1VuZGVmaW5lZCgpLCBudWxs
cHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkp
OworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IsIEpTVmFsdWUo
KSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB1c2VDdXJyZW50
RnJhbWUpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCmluZGV4
IDdiNjBkY2YzZDU3ZmUwMTExMmM5YTcwYTYyNDUyNDc1YmZjMDJhOTAuLmM3ZjllYTg0OGNhZjZj
YmE0MTQ2Y2M0NmY0ZWFiYTdhY2E5ZjVmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3QqIGNyZWF0ZUpTV2ViQXNzZW1i
bHlDb21waWxlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0g
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlKCksIG1lc3NhZ2UsIGpzVW5k
ZWZpbmVkKCksIGRlZmF1bHRTb3VyY2VBcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgp
LCBtZXNzYWdlLCBKU1ZhbHVlKCksIGRlZmF1bHRTb3VyY2VBcHBlbmRlciwgVHlwZU5vdGhpbmcs
IEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJy
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtF
cnJvci5jcHAKaW5kZXggYWE3MTRhZDc5MTZmNGNlOWRhM2IzNGE1MjY1OWMzNjU4MzhiZGViMi4u
Y2YwMjQ1YzM5YWQ3MzFkMmNhYzhkZWRjZWI5MWZlNDc3ZWIxM2I0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRlSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0s
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGds
b2JhbE9iamVjdC0+d2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwganNV
bmRlZmluZWQoKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpFcnJvciwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCks
IG1lc3NhZ2UsIEpTVmFsdWUoKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yLmNwcAppbmRleCA0ODA5ZWIwOWRlMmUzNmJmMWEyZWQ0YzJmMjQ3YTU0MDBhMmYy
ZGQxLi4xMDIyYTUyMjc0MzI5NjdhZWFhNTJiOGI4OTc0Njc5M2JmYWZmNGRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIEpTT2JqZWN0
KiBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFZNJiB2bSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIEFTU0VSVCghbWVz
c2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFs
T2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0cnVjdHVy
ZSgpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5j
ZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgSlNWYWx1ZSgpLCBkZWZhdWx0U291cmNlQXBw
ZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCB0cnVlKTsKIH0KICAgICAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428106</attachid>
            <date>2021-05-08 18:27:06 -0700</date>
            <delta_ts>2021-05-08 19:18:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225565-20210508182705.patch</filename>
            <type>text/plain</type>
            <size>20726</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTBlYTZmN2IwZmViMjE5Yjc3MTY0MWUwZWNmZjZmNWUxYjRhYzI2Li43NjI1ZWJkMzUzZGQ4NmE2
NzdlMGE5ZjE5OTcwOWY3NjM1ZDg1ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMS0wNS0wOCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gRml4IGludmFsaWQgZXhjZXB0aW9uIGNoZWNrcyBhZnRl
ciByZWNlbnQgRXJyb3JJbnN0YW5jZSBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
ZXkgU2h2YXlrYS4KKworICAgICAgICByMjc3MjIxIGFuZCByMjc3MjI0IGVhY2ggaW50cm9kdWNl
ZCBpc3N1ZXMgdW5kZXIgdmFsaWRhdGVFeGNlcHRpb25DaGVja3M9MTsgdGhpcyBwYXRjaCBmaXhl
cyB0aGVtLgorCisgICAgICAgIE9mIHBhcnRpY3VsYXIgbm90ZToKKyAgICAgICAgVGhlIGVhcmxp
ZXIgcGF0Y2ggc291Z2h0IHRvIGNvbnNvbGlkYXRlIEVycm9yI2NhdXNlIGxvZ2ljIHVuZGVyIEVy
cm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uLgorICAgICAgICBUaGlzIHBhcnQgbXVzdCBiZSB1
bmRvbmUgYXMgaXQgaXMgY3J1Y2lhbCB0aGF0IG5vbi11c2VyLXRocm93biBlcnJvcnMgYmUgYWJs
ZSB0byBieXBhc3MgdGhhdCBsb2dpYworICAgICAgICAob3RoZXJ3aXNlIHRocm93RXhjZXB0aW9u
IGl0c2VsZiB3b3VsZCBuZWVkIHRvIGJlIGV4Y2VwdGlvbi1jaGVja2VkKS4KKworICAgICAgICAq
IHJ1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVBZ2dyZWdh
dGVFcnJvcik6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OmdldFByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgor
ICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVm
ZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVTeW50YXhFcnJvcik6CisgICAgICAg
IChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlwZUVycm9yKToKKyAgICAgICAgKiBydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogcnVudGltZS9FcnJvckluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRJZlByb3Bl
cnR5RXhpc3RzKToKKyAgICAgICAgKiBydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5j
cHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IpOgorICAg
ICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHA6CisgICAgICAgIChKU0M6
OmNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvci5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUpTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IpOgorCiAyMDIxLTA1LTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgSlNPYmplY3Q6OmdldElmUHJvcGVy
dHlFeGlzdHMgaGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dy
ZWdhdGVFcnJvci5jcHAKaW5kZXggMGJiZDYyYjg3MTViNjU4ODZjYmZhOGE5NGU0YTRhYjJhY2Jm
NzgwMi4uYWNmYzRmZTRmODRjYmIxYzc3OWE2MTQwYzY5OWE0Y2E0N2RlY2RhOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcApAQCAtNDks
NiArNDksNyBAQCBFcnJvckluc3RhbmNlKiBjcmVhdGVBZ2dyZWdhdGVFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVjdAogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgYXV0byogZXJyb3IgPSBFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG1lc3NhZ2UsIG9wdGlvbnMsIGFwcGVuZGVy
LCB0eXBlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGVycm9yLT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmVycm9ycywgYXJyYXksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICByZXR1cm4gZXJyb3I7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAK
aW5kZXggZjI0NGIyOTdiZmY2ZjhmYmRiNjIwMGJkYmYyODcwNmRkY2I1Y2JiNC4uNzkwNjg1NjE2
NTIxOTlmYmI3ZTc0ODZlOTM1NDc5MjQ0Nzc3NjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTQ1LDE2ICsxNDUsMTEgQEAg
dm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGdldFByb3Bl
cnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIHVpbnQ2
NF90IGluZGV4KQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KICAgICBpZiAoSlNWYWx1ZSByZXN1
bHQgPSBvYmplY3QtPnRyeUdldEluZGV4UXVpY2tseShpbmRleCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAKICAgICAvLyBEb24ndCByZXR1cm4gdW5kZWZpbmVkIGlmIHRoZSBwcm9wZXJ0eSBp
cyBub3QgZm91bmQuCi0gICAgYXV0byBwcm9wZXJ0eSA9IG9iamVjdC0+Z2V0SWZQcm9wZXJ0eUV4
aXN0cyhnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICByZXR1cm4gcHJvcGVydHkudmFsdWVP
cihKU1ZhbHVlKCkpOworICAgIHJldHVybiBvYmplY3QtPmdldElmUHJvcGVydHlFeGlzdHMoZ2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKGdsb2JhbE9iamVjdC0+dm0oKSwgaW5kZXgpKTsK
IH0KIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRMZW5ndGgoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU09iamVjdCogb2JqLCB1aW50NjRfdCB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCA4NTRmMmFkYmFiZDU0Y2Ew
NmZhMzQ2ODMwYzJmZDI1Yjk2OTJlOGU2Li5mNjM4YjY2ZGVhZTAxMGZkZmIxNWNiMzAyZWU5YjQ5
NDA1MzljMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0z
NSwzNyArMzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2Uu
aXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJv
ciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3Vy
Y2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsK
LSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZhbEVy
cm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0
cnVjdHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIEpTVmFsdWUoKSwgYXBwZW5k
ZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2Jq
ZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIp
CiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBtZXNzYWdlLCBqc1Vu
ZGVmaW5lZCgpLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJvciwg
dHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6
OlJhbmdlRXJyb3IpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpSYW5nZUVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJlZmVy
ZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNT
RVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0
cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQo
KSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yLCB0cnVl
KTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVm
ZXJlbmNlRXJyb3IpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVT
eW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFT
U0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCks
IGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50YXhFcnJvciwgdHJ1ZSk7Cisg
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5bnRheEVy
cm9yKSwgbWVzc2FnZSwgSlNWYWx1ZSgpLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlw
ZTo6U3ludGF4RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAg
ICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5l
cnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVk
KCksIGFwcGVuZGVyLCB0eXBlLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1l
c3NhZ2UsIEpTVmFsdWUoKSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0
cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyKQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmpl
Y3QqIGNyZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7
CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmlu
ZWQoKSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlVSSUVycm9yLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJy
b3IpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGUgZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZVdpdGhFeHRlbnNpb24gZXJyb3IKIHN0YXRp
YyBKU09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNF
bXB0eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvcik7CisgICAgYXV0byogZXJyb3IgPSBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2Jh
bE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBK
U1ZhbHVlKCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvcik7CiAg
ICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOwogICAgIHJldHVybiBlcnJvcjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAK
aW5kZXggNjM5OTI3NjViZWQ1ODRhN2JmOGU4MDM3NWFkYTQ4YzA1MWEwY2FkNC4uMjNkNjc3Yzdi
YzQyNDEzN2JkZmQzNjZkODQyMjU0N2QxODVlZDcxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTUyLDcgKzUyLDE0IEBAIEVycm9y
SW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLmlz
VW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIHJldHVy
biBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBvcHRp
b25zLCBhcHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJhbWUpOworICAgIEpT
VmFsdWUgY2F1c2U7CisgICAgaWYgKG9wdGlvbnMuaXNPYmplY3QoKSkgeworICAgICAgICAvLyBT
aW5jZSBgdGhyb3cgdW5kZWZpbmVkO2AgaXMgdmFsaWQsIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2gg
dGhlIGNhc2Ugd2hlcmUgYGNhdXNlYCBpcyBhbiBleHBsaWNpdCB1bmRlZmluZWQuCisgICAgICAg
IGNhdXNlID0gYXNPYmplY3Qob3B0aW9ucyktPmdldElmUHJvcGVydHlFeGlzdHMoZ2xvYmFsT2Jq
ZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5jYXVzZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOworICAgIH0KKworICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUs
IGVycm9yVHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBlbmRT
b3VyY2VUb0Vycm9yTWVzc2FnZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRXJyb3JJbnN0YW5jZSog
ZXhjZXB0aW9uLCBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKQEAgLTEwNywxMSArMTE0LDEwIEBAIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291cmNlVG9F
cnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4CiAgICAg
cmV0dXJuIGFwcGVuZGVyKG1lc3NhZ2UsIGNvZGVCbG9jay0+c291cmNlKCkucHJvdmlkZXIoKS0+
Z2V0UmFuZ2Uoc3RhcnQsIHN0b3ApLnRvU3RyaW5nKCksIHR5cGUsIEVycm9ySW5zdGFuY2U6OkZv
dW5kQXBwcm94aW1hdGVTb3VyY2UpOwogfQogCi12b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBKU1ZhbHVlIG9wdGlvbnMsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50
aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKK3ZvaWQgRXJyb3JJbnN0YW5jZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
LCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBtX3NvdXJjZUFw
cGVuZGVyID0gYXBwZW5kZXI7CiAgICAgbV9ydW50aW1lVHlwZUZvckNhdXNlID0gdHlwZTsKQEAg
LTEzNSwxMyArMTQxLDggQEAgdm9pZCBFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFMKICAgICBpZiAoIW1lc3Nh
Z2VXaXRoU291cmNlLmlzTnVsbCgpKQogICAgICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKHZtLCBtZXNzYWdlV2l0aFNvdXJjZSksIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAotICAgIGlmIChv
cHRpb25zLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgLy8gU2luY2UgYHRocm93IHVuZGVmaW5lZDtg
IGlzIHZhbGlkLCB3ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIHRoZSBjYXNlIHdoZXJlIGBjYXVzZWAg
aXMgYW4gZXhwbGljaXQgdW5kZWZpbmVkLgotICAgICAgICBhdXRvIGNhdXNlID0gYXNPYmplY3Qo
b3B0aW9ucyktPmdldElmUHJvcGVydHlFeGlzdHMoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5h
bWVzLT5jYXVzZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0gICAgICAgIGlmIChjYXVzZSkKLSAgICAgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+Y2F1c2UsIGNhdXNlLnZhbHVlKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICB9CisgICAgaWYgKCFjYXVzZS5pc0VtcHR5
KCkpCisgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2F1c2UsIGNhdXNl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9
CiAKIC8vIEJhc2VkIG9uIEVycm9yUHJvdG90eXBlJ3MgZXJyb3JQcm90b0Z1bmNUb1N0cmluZygp
LCBidXQgaXMgbW9kaWZpZWQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAppbmRleCBkZWNhNzdkOGNhMDI5ZjI0MDZjYTczN2E5NGY4ZDU0ZTMxMmZi
MmQxLi43ZDJlNjQzMjZhODFkYjZjNzcwYTQ2M2Q4Zjk2Mzc2NzNkZmIyOTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC01NCwxMCArNTQs
MTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVh
dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBKU1ZhbHVlIG9wdGlvbnMsIFNvdXJjZUFwcGVu
ZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJh
bWUgPSB0cnVlKQorICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51
bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlw
ZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7
CiAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8RXJyb3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVy
ZSwgZXJyb3JUeXBlKTsKLSAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIG1lc3NhZ2UsIG9wdGlvbnMsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJh
bWUpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwg
bWVzc2FnZSwgY2F1c2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOwogICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwgU3RydWN0dXJlKiwgRXJy
b3JUeXBlKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlNWYWx1ZSBvcHRpb25zLCBTb3VyY2VBcHBlbmRlciA9
IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1l
ID0gdHJ1ZSk7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciA9IG51
bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0g
dHJ1ZSk7CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBK
U0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgZ2V0T3duU3BlY2lhbFByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVj
dCosIFByb3BlcnR5TmFtZUFycmF5JiwgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCAwM2U0NjVjMWRmNDRhOGQ0NTdm
MGJhZjllZDE2YjY4MWVkZmZiMjk4Li43MzFmNDRkY2ZkNDM0MGQ0MTM5MDZmZWNmN2U1NmE4YTQ4
MzBjMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTE2
Miw3ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbGJhY2tXaGVu
Tm9FeGNlcHRpb24+IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPENhbGxiYWNrV2hlbk5vRXhjZXB0
aW9uKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxP
YmplY3QqLCBQcm9wZXJ0eU5hbWUsIENhbGxiYWNrV2hlbk5vRXhjZXB0aW9uKSBjb25zdDsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDYWxsYmFja1doZW5Ob0V4Y2VwdGlvbj4gdHlwZW5hbWUgc3Rk
OjpyZXN1bHRfb2Y8Q2FsbGJhY2tXaGVuTm9FeGNlcHRpb24oYm9vbCwgUHJvcGVydHlTbG90Jik+
Ojp0eXBlIGdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiwgQ2FsbGJhY2tXaGVuTm9FeGNlcHRpb24pIGNvbnN0OwogCi0gICAgT3B0aW9u
YWw8SlNWYWx1ZT4gZ2V0SWZQcm9wZXJ0eUV4aXN0cyhKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5
TmFtZSk7CisgICAgSlNWYWx1ZSBnZXRJZlByb3BlcnR5RXhpc3RzKEpTR2xvYmFsT2JqZWN0Kiwg
UHJvcGVydHlOYW1lKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RJbXBsKEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElu
bGluZXMuaAppbmRleCAyNjZkYjZkYjQ0OTk0ZjcwZTE4N2U3NDI1OTFkNmMzNGI5ZGQ2MDFjLi5m
YTQ5MTliMjhkNWE0YzQzZmQ1YWEwZWJlMDgzMjJiZjdjMWQ0ZTkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtMTkxLDIxICsxOTEs
MjIgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdElubGluZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLWlubGluZSBPcHRpb25hbDxKU1ZhbHVlPiBKU09iamVjdDo6Z2V0SWZQcm9wZXJ0eUV4aXN0
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQoraW5saW5lIEpTVmFsdWUgSlNPYmplY3Q6OmdldElmUHJvcGVydHlFeGlzdHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90
OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KTsKICAgICBib29sIGhhc1Byb3BlcnR5
ID0gZ2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKLSAg
ICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFo
YXNQcm9wZXJ0eSk7Ci0KKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAg
IGlmICghaGFzUHJvcGVydHkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgaWYgKFVOTElLRUxZKHNs
b3QuaXNUYWludGVkQnlPcGFxdWVPYmplY3QoKSkpCisgICAgICAgIHJldHVybiBnZXQoZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwogCi0gICAgcmV0dXJuIFVOTElLRUxZKHNsb3QuaXNUYWlu
dGVkQnlPcGFxdWVPYmplY3QoKSkKLSAgICAgICAgPyBnZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUpCi0gICAgICAgIDogc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSk7CisgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUp
OwogfQogCiBpbmxpbmUgYm9vbCBKU09iamVjdDo6bWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2Vz
KFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxT
ZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0
dGVyRnVuY3Rpb24uY3BwCmluZGV4IGQ2YWY2MGI4ZWUyNjE4YTE5NDFhNTYwNDFiOGExNzAwYzA2
MjQwYzAuLmYyMTliOTMyNmJiZGFhZWRmZTNmYTFjNmI4NmYxYWFjM2E1MThiYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNw
cApAQCAtOTQsNyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93RXJy
b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9u
bHkgY2FsbGVkIGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIHRoaXMgZnJh
bWUgaW4gRXJyb3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VDdXJyZW50RnJhbWUg
PSBmYWxzZTsKLSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVj
dHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBq
c1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3Is
IHVzZUN1cnJlbnRGcmFtZSkpOworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2Nv
cGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3Qt
PmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0eVdy
aXRlRXJyb3IsIEpTVmFsdWUoKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlw
ZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IuY3BwCmluZGV4IDdiNjBkY2YzZDU3ZmUwMTExMmM5YTcwYTYyNDUyNDc1YmZjMDJh
OTAuLmM3ZjllYTg0OGNhZjZjYmE0MTQ2Y2M0NmY0ZWFiYTdhY2E5ZjVmYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3Qq
IGNyZWF0ZUpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVk0mIHZtLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJUKCFtZXNz
YWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJl
KCksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIGRlZmF1bHRTb3VyY2VBcHBlbmRlciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBp
bGVFcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBKU1ZhbHVlKCksIGRlZmF1bHRTb3VyY2VBcHBl
bmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKaW5kZXggYWE3MTRhZDc5MTZmNGNlOWRhM2IzNGE1
MjY1OWMzNjU4MzhiZGViMi4uY2YwMjQ1YzM5YWQ3MzFkMmNhYzhkZWRjZWI5MWZlNDc3ZWIxM2I0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eUxpbmtFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUxpbmtFcnJvci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBK
U09iamVjdCogY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBWTSYgdm0sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQo
IW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1
cmUoKSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TGlu
a0Vycm9yU3RydWN0dXJlKCksIG1lc3NhZ2UsIEpTVmFsdWUoKSwgZGVmYXVsdFNvdXJjZUFwcGVu
ZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCA0ODA5ZWIwOWRlMmUzNmJmMWEy
ZWQ0YzJmMjQ3YTU0MDBhMmYyZGQxLi4xMDIyYTUyMjc0MzI5NjdhZWFhNTJiOGI4OTc0Njc5M2Jm
YWZmNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIEpTT2JqZWN0KiBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVJ1
bnRpbWVFcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBkZWZhdWx0U291
cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCB0cnVlKTsKKyAgICBy
ZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVj
dC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgSlNWYWx1ZSgp
LCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCB0
cnVlKTsKIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>