<?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>223302</bug_id>
          
          <creation_ts>2021-03-16 20:15:34 -0700</creation_ts>
          <short_desc>[JSC] Implement Error#cause</short_desc>
          <delta_ts>2021-05-07 12:23:13 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223404</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=225535</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>223407</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1740362</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-16 20:15:34 -0700</bug_when>
    <thetext>[JSC] Implement Error#cause</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740366</commentid>
    <comment_count>1</comment_count>
      <attachid>423427</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-16 20:29:22 -0700</bug_when>
    <thetext>Created attachment 423427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740368</commentid>
    <comment_count>2</comment_count>
      <attachid>423427</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-16 20:33:36 -0700</bug_when>
    <thetext>Comment on attachment 423427
Patch

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

&gt; Source/JavaScriptCore/API/JSObjectRef.cpp:236
&gt;      JSValue message = argumentCount ? toJS(globalObject, arguments[0]) : jsUndefined();
&gt; +    JSValue options = argumentCount &gt; 1 ? toJS(globalObject, arguments[1]) : jsUndefined();
&gt;      Structure* errorStructure = globalObject-&gt;errorStructure();
&gt; -    JSObject* result = ErrorInstance::create(globalObject, errorStructure, message);
&gt; +    JSObject* result = ErrorInstance::create(globalObject, errorStructure, message, options);

Note: We don&apos;t need to add support to JSObjectMakeError, but it&apos;s literally no extra effort to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740369</commentid>
    <comment_count>3</comment_count>
      <attachid>423427</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-16 20:39:45 -0700</bug_when>
    <thetext>Comment on attachment 423427
Patch

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

r=me

&gt; JSTests/stress/error-cause.js:6
&gt; +const errorConstructors = [Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, AggregateError];

Can we add WebAssembly Errors if `typeof WebAssembly !== &quot;undefined&quot;`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740372</commentid>
    <comment_count>4</comment_count>
      <attachid>423430</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-16 20:58:58 -0700</bug_when>
    <thetext>Created attachment 423430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740382</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-16 22:05:37 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #3)
&gt; &gt; JSTests/stress/error-cause.js:6
&gt; &gt; +const errorConstructors = [Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, AggregateError];
&gt; 
&gt; Can we add WebAssembly Errors if `typeof WebAssembly !== &quot;undefined&quot;`?

Oops, we actually don&apos;t want to test these; their behavior hasn&apos;t changed (since they&apos;re not part of ECMA-262), it&apos;s just that they depend on ErrorInstance, whose interface changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740383</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 22:07:24 -0700</bug_when>
    <thetext>ChangeLog entry in JSTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740384</commentid>
    <comment_count>7</comment_count>
      <attachid>423435</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-16 22:17:21 -0700</bug_when>
    <thetext>Created attachment 423435
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740393</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 23:02:47 -0700</bug_when>
    <thetext>Committed r274552: &lt;https://commits.webkit.org/r274552&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423435.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740394</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-16 23:03:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/75512624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740845</commentid>
    <comment_count>10</comment_count>
      <attachid>423435</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-03-17 12:31:01 -0700</bug_when>
    <thetext>Comment on attachment 423435
Patch for landing

This should probably be behind a JSC flag (it can be on by default though) since it&apos;s technically a feature, albeit a simple one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740862</commentid>
    <comment_count>11</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-17 13:00:17 -0700</bug_when>
    <thetext>Out of curiosity what does this look like in Web Inspector?  Should it have special treatment there given that one of the motivations for this feature was for developer tooling/debugging/etc.?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740951</commentid>
    <comment_count>12</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-17 16:37:51 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #10)
&gt; Comment on attachment 423435 [details]
&gt; Patch for landing
&gt; 
&gt; This should probably be behind a JSC flag (it can be on by default though)
&gt; since it&apos;s technically a feature, albeit a simple one.

Alright, I can add that to the WASM-related follow-up patch.

(In reply to Devin Rousso from comment #11)
&gt; Out of curiosity what does this look like in Web Inspector?  Should it have
&gt; special treatment there given that one of the motivations for this feature
&gt; was for developer tooling/debugging/etc.?

It should look the same as before for now. It would make sense to have a helpful display for this information, though of course it&apos;s possible to use this information for non-debugging purposes too -- to give better error messages, to do different things based on the first error in the cascade, etc.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423427</attachid>
            <date>2021-03-16 20:29:22 -0700</date>
            <delta_ts>2021-03-16 22:17:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223302-20210316202922.patch</filename>
            <type>text/plain</type>
            <size>35721</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZDIyZmVmMDFjZjk0ZDlhZWFmMmM5Njk5ZWUzNjk2YTllMzQ4YzIxLi5jYmY1Zjg3OWI2YjM4YWM4
NDBhYzY3YmRiMjk4OTQxNmI0ZGVhMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMS0wMy0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IEVycm9yI2NhdXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzMDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgdGhlIEVycm9yLnByb3RvdHlwZS5jYXVzZSBwcm9wb3NhbCwgd2hpY2ggcmVhY2hlZCBTdGFn
ZSAzIGF0IGxhc3Qgd2VlaydzIFRDMzkgbWVldGluZzoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIu
Y29tL3RjMzkvcHJvcG9zYWwtZXJyb3ItY2F1c2UKKworICAgICAgICBUaGlzIHZlcnkgc2ltcGxl
IHByb3Bvc2FsIGFsbG93cyB0byBvbmUgcmVmZXJlbmNlIHRoZSAiZXJyb3IgdGhhdCBjYXVzZWQg
dGhpcyBvbmUiIGluIGEgY2FzY2FkaW5nIHNjZW5hcmlvLgorICAgICAgICBJdCBkb2VzIHNvIGJ5
IGFkZGluZyBhbiBvcHRpb25zIGJhZyBwYXJhbWV0ZXIgdG8gdGhlIEVycm9yLCBfTmF0aXZlRXJy
b3JfLCBhbmQgQWdncmVnYXRlRXJyb3IgY29uc3RydWN0b3JzLgorICAgICAgICBJZiBpdCBpcyBh
biBvYmplY3Qgd2l0aCBhIGBjYXVzZWAgcHJvcGVydHksIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHVz
ZWQ7IGlmIG5vdCwgbm90aGluZyBoYXBwZW5zIGF0IGFsbC4KKworICAgICAgICAqIEFQSS9KU09i
amVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdE1ha2VFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9BZ2dyZWdhdGVFcnJvci5jcHA6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvQWdncmVnYXRlRXJyb3IuaDoKKyAgICAgICAgKiBydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5n
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAo
SlNDOjpjcmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6
CisgICAgICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0
dGVyVHlwZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRp
bWUvRXJyb3JJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5j
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBy
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVF
cnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKToKKyAgICAgICAg
KiBydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxTZXR0
ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAq
IHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHA6CisgICAgICAgIChKU0M6OkpT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dl
YkFzc2VtYmx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtF
cnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUp
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorCiAyMDIxLTAzLTE2ICBLaGVtIFJhaiAgPHJhai5raGVtQGdtYWls
LmNvbT4KIAogICAgICAgICBbQ01ha2VdIEJ1aWxkIGZhaWxzIG9uIFJJU0MtViB3aXRoIEdDQyAx
MQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAppbmRleCA5NTg0Zjc2
ZTVjZmVmMGVhOWJhYjViYjYyMWQ3NTIxZTA4NzViYzM3Li40NWRjZDIzNjRiYTRlY2JhNzU4NjA2
OGViNWE0NzY3MGViZjUyMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTT2JqZWN0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0
UmVmLmNwcApAQCAtMjMxLDggKzIzMSw5IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUVycm9y
KEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSBtZXNz
YWdlID0gYXJndW1lbnRDb3VudCA/IHRvSlMoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHNbMF0pIDog
anNVbmRlZmluZWQoKTsKKyAgICBKU1ZhbHVlIG9wdGlvbnMgPSBhcmd1bWVudENvdW50ID4gMSA/
IHRvSlMoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHNbMV0pIDoganNVbmRlZmluZWQoKTsKICAgICBT
dHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgp
OwotICAgIEpTT2JqZWN0KiByZXN1bHQgPSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdl
LCBvcHRpb25zKTsKIAogICAgIGlmIChoYW5kbGVFeGNlcHRpb25JZk5lZWRlZChzY29wZSwgY3R4
LCBleGNlcHRpb24pID09IEV4Y2VwdGlvblN0YXR1czo6RGlkVGhyb3cpCiAgICAgICAgIHJlc3Vs
dCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
Z2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdh
dGVFcnJvci5jcHAKaW5kZXggMjk2Yzg1Y2M5MGUwNWI1NDU0N2Y2NjJhN2UyZjhhMWUxMzBhNDZk
Yy4uYjdmZWE3MThkNDNlNGU4NGIyYmE1NmFlYTM3Y2VjNmIwNjM0MGY0MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcApAQCAtNDAsOSAr
NDAsOSBAQCBBZ2dyZWdhdGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKIHsKIH0KIAotdm9pZCBBZ2dyZWdhdGVFcnJvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBNYXJrZWRBcmd1bWVu
dEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKK3ZvaWQgQWdn
cmVnYXRlRXJyb3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZmZXImIGVycm9ycywgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGlt
ZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVz
c2FnZSwgY2F1c2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOwogICAgIEFTU0VS
VChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiAKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC01MCwxNSArNTAsMTUgQEAgdm9pZCBBZ2dyZWdhdGVFcnJvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdAog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiB9CiAKLUFnZ3JlZ2F0ZUVy
cm9yKiBBZ2dyZWdhdGVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgZXJyb3JzLCBKU1ZhbHVlIG1l
c3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVz
ZUN1cnJlbnRGcmFtZSkKK0FnZ3JlZ2F0ZUVycm9yKiBBZ2dyZWdhdGVFcnJvcjo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTVmFsdWUgZXJyb3JzLCBKU1ZhbHVlIG1lc3NhZ2UsIEpTVmFsdWUgb3B0aW9ucywgU291cmNl
QXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1l
KQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIFN0
cmluZyBtZXNzYWdlU3RyaW5nOwotICAgIGlmICghbWVzc2FnZS5pc1VuZGVmaW5lZCgpKSB7Ci0g
ICAgICAgIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIH0KKyAg
ICBTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygp
IDogbWVzc2FnZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOworCisgICAgSlNWYWx1ZSBjYXVzZSA9ICFvcHRpb25zLmlz
T2JqZWN0KCkgPyBqc1VuZGVmaW5lZCgpIDogb3B0aW9ucy5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5w
cm9wZXJ0eU5hbWVzLT5jYXVzZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBlcnJvcnNMaXN0OwogICAgIGZvckVh
Y2hJbkl0ZXJhYmxlKGdsb2JhbE9iamVjdCwgZXJyb3JzLCBbJl0gKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBKU1ZhbHVlIG5leHRWYWx1ZSkgewpAQCAtNjgsNyArNjgsNyBAQCBBZ2dyZWdhdGVFcnJv
ciogQWdncmVnYXRlRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
TSYgdm0sIFN0cgogICAgIH0pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBjcmVhdGUoZ2xvYmFsT2JqZWN0
LCB2bSwgc3RydWN0dXJlLCBlcnJvcnNMaXN0LCBtZXNzYWdlU3RyaW5nLCBhcHBlbmRlciwgdHlw
ZSwgdXNlQ3VycmVudEZyYW1lKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBjcmVh
dGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBlcnJvcnNMaXN0LCBtZXNzYWdlU3RyaW5n
LCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVF
cnJvci5oCmluZGV4IDg4NTIwYzFkNjY0MzU1YWIwNmU4MmVhZjU3ODM1ODRmMzk1OTMxOGUuLmY0
ODg3ZDc1ODJkNjY5OTRmZTExMTMzNjM0ZDJjOTNhMDFkNzFhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaApAQCAtNDksMTYgKzQ5LDE2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oRXJyb3JJbnN0YW5jZVR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgQWdncmVnYXRlRXJyb3IqIGNyZWF0ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9
IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAgc3RhdGljIEFn
Z3JlZ2F0ZUVycm9yKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZmZXImIGVycm9y
cywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciBh
cHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1
c2VDdXJyZW50RnJhbWUgPSB0cnVlKQogICAgIHsKICAgICAgICAgYXV0byogaW5zdGFuY2UgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxBZ2dyZWdhdGVFcnJvcj4odm0uaGVhcCkpIEFnZ3Jl
Z2F0ZUVycm9yKHZtLCBzdHJ1Y3R1cmUpOwotICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRp
b24odm0sIGdsb2JhbE9iamVjdCwgZXJyb3JzLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdXNl
Q3VycmVudEZyYW1lKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIGVycm9ycywgbWVzc2FnZSwgY2F1c2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJy
ZW50RnJhbWUpOwogICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCi0gICAgc3RhdGlj
IEFnZ3JlZ2F0ZUVycm9yKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBWTSYsIFN0cnVjdHVyZSos
IEpTVmFsdWUgZXJyb3JzLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0
ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVl
KTsKKyAgICBzdGF0aWMgQWdncmVnYXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFZN
JiwgU3RydWN0dXJlKiwgSlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgSlNWYWx1ZSBv
cHRpb25zLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhp
bmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJy
b3JzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVu
dGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBNYXJrZWRB
cmd1bWVudEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEpTVmFsdWUgY2F1
c2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywg
Ym9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBB
Z2dyZWdhdGVFcnJvcihWTSYsIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRl
eCAzZDFhMDRjYWY1ZTQwN2IwZjljYTlhMjQ0YjU4MzhhYmYwN2FkMjI0Li42ZjhmZWFlM2JlYWFk
OGZkYzZmOTY0YTY2MmE2YTIzNTdlZGViYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAt
NjAsOCArNjAsOSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFnZ3JlZ2F0ZUVycm9y
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBKU1ZhbHVlIGVycm9ycyA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MCk7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKyAgICBK
U1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDIpOwogICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6
QWdncmVnYXRlRXJyb3IpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQWdncmVnYXRlRXJy
b3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVjdHVyZSwgZXJyb3JzLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JTdHJ1
Y3R1cmUsIGVycm9ycywgbWVzc2FnZSwgb3B0aW9ucywgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZh
bHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBZ2dyZWdhdGVF
cnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQpAQCAtNzAsMTMgKzcxLDE0IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGds
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
ZXJyb3JzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBj
YWxsRnJhbWUtPmFyZ3VtZW50KDEpOworICAgIEpTVmFsdWUgb3B0aW9ucyA9IGNhbGxGcmFtZS0+
YXJndW1lbnQoMik7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZy
YW1lLT5uZXdUYXJnZXQoKSk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IEpTQ19H
RVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlV2l0aEVycm9yVHlwZTxFcnJv
clR5cGU6OkFnZ3JlZ2F0ZUVycm9yPiwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVycm9y
U3RydWN0dXJlKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JTdHJ1Y3R1
cmUsIGVycm9ycywgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSkpOworICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEFnZ3JlZ2F0ZUVycm9y
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JTdHJ1Y3R1cmUsIGVycm9ycywgbWVzc2Fn
ZSwgb3B0aW9ucywgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oCmluZGV4IDIwY2NmZDc4NmE4OTJkZDQzZWUwODA2ODMzNjViZDZiYzg2MWIw
YmEuLmM0MDRhMWNkYzgyYTIyMDI2NDE4MWM4MmNlMTdkNjBkMGM5ZmUwM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtODQs
NiArODQsNyBAQAogICAgIG1hY3JvKGNhbGxlZSkgXAogICAgIG1hY3JvKGNhbGxlcikgXAogICAg
IG1hY3JvKGNhc2VGaXJzdCkgXAorICAgIG1hY3JvKGNhdXNlKSBcCiAgICAgbWFjcm8oY2xlYXIp
IFwKICAgICBtYWNybyhjb2xsYXRpb24pIFwKICAgICBtYWNybyhjb2x1bW4pIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCBmY2FjZjFlMzIyZWIyNzI3ODc0ZmYy
NTI2MjQxZWQ3YmU5OGNlNTM3Li42NTQ2ZDBmZWU2YzdhYmYzZmEzY2U3YTVkMTNkYTQ1MTAxYTA5
NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0zNSwzNyAr
MzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNl
OjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0
eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1lc3NhZ2Us
IGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgp
LCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiBK
U09iamVjdCogY3JlYXRlRXZhbEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5k
ZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFs
T2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFw
cGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFdmFsRXJyb3IsIHRydWUpOworICAgIHJl
dHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpFdmFsRXJyb3IpLCBt
ZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXZhbEVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3Rh
bmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNF
bXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6UmFuZ2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpSYW5nZUVycm9yLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6UmFuZ2VFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVu
ZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpSYW5nZUVycm9yLCB0cnVlKTsKIH0KIAogSlNP
YmplY3QqIGNyZWF0ZVJlZmVyZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBw
ZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xv
YmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yKSwgbWVz
c2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yLCB0
cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6
UmVmZXJlbmNlRXJyb3IpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBhcHBlbmRlciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCog
Y3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsK
ICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5j
ZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3Qt
PmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3ludGF4RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRl
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6U3ludGF4RXJyb3IsIHRydWUpOworICAgIHJldHVy
biBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCks
IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpT
eW50YXhFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3Rh
bmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSkKIHsKICAgICBB
U1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9y
U3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUs
IEVycm9yVHlwZTo6VHlwZUVycm9yLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVy
cm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQo
KSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0cnVlKTsKIH0KIAogSlNP
YmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQpAQCAtNzYs
NyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmplY3QqIGNyZWF0ZVVSSUVy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
RXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFt
ZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBF
cnJvclR5cGU6OlVSSUVycm9yLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9y
U3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBh
cHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VVJJRXJyb3IsIHRydWUpOwogfQogCiBK
U09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JU
eXBlIGVycm9yVHlwZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTEzLDcgKzExMyw3IEBA
IEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJv
clR5cGVXaXRoRXh0ZW5zaW9uIGVycm9yCiBKU09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
ICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFs
T2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvcik7CisgICAgYXV0byogZXJy
b3IgPSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBt
ZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpU
eXBlRXJyb3IpOwogICAgIGVycm9yLT5zZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKTsKICAgICBy
ZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ5Zjc4MTMzZWMyMzBjNTgwMDQxZDE2ZTQ5Y2U3ZmQx
NjMxMTJiMGIuLmMwYjFiM2VmMjQyZWU2ZDBiNjAwMDM0YTQwZTZlM2E5OTI5Y2Q1ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC01MywxOSArNTMsMjEgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVy
cm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7Cisg
ICAgSlNWYWx1ZSBvcHRpb25zID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKIAogICAgIEpTT2Jq
ZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKICAgICBT
dHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwg
ZXJyb3JTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5
cGU6OkVycm9yLCBmYWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVj
dHVyZSwgbWVzc2FnZSwgb3B0aW9ucywgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXJyb3IsIGZhbHNlKSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9y
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKKyAgICBKU1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCk7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFs
T2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVy
cm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
b3B0aW9ucywgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7
CiB9CiAKIGJvb2wgRXJyb3JDb25zdHJ1Y3Rvcjo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcAppbmRleCAwZjg2ZTIyYjkyZGRkNmQxMzk4NThiODZl
NTZjZWFkY2FlY2UwZDQ5Li40MDQ1OTk4N2Q5NTQxYzQzM2JjMzBiYzVmNTczODY0M2Q1ZWQ4NDA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNw
cApAQCAtNDQsMTMgKzQ0LDE4IEBAIEVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFuY2UoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXJyb3JUeXBlIGVycm9yVHlwZSkKIHsKIH0KIAotRXJy
b3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVu
ZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBFcnJvclR5cGUgZXJyb3JUeXBlLCBib29s
IHVzZUN1cnJlbnRGcmFtZSkKK0Vycm9ySW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1
ZSBtZXNzYWdlLCBKU1ZhbHVlIG9wdGlvbnMsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50
aW1lVHlwZSB0eXBlLCBFcnJvclR5cGUgZXJyb3JUeXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywg
YXBwZW5kZXIsIHR5cGUsIGVycm9yVHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKKworICAgIEpTVmFs
dWUgY2F1c2UgPSAhb3B0aW9ucy5pc09iamVjdCgpID8ganNVbmRlZmluZWQoKSA6IG9wdGlvbnMu
Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+Y2F1c2UpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworCisgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxP
YmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGNhdXNlLCBhcHBlbmRlciwgdHlw
ZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJhbWUpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFwcGVu
ZFNvdXJjZVRvRXJyb3JNZXNzYWdlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFcnJvckluc3RhbmNl
KiBleGNlcHRpb24sIEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQpAQCAtMTA1LDcgKzExMCw3IEBAIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291cmNlVG9F
cnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4CiAgICAg
cmV0dXJuIGFwcGVuZGVyKG1lc3NhZ2UsIGNvZGVCbG9jay0+c291cmNlKCkucHJvdmlkZXIoKS0+
Z2V0UmFuZ2Uoc3RhcnQsIHN0b3ApLnRvU3RyaW5nKCksIHR5cGUsIEVycm9ySW5zdGFuY2U6OkZv
dW5kQXBwcm94aW1hdGVTb3VyY2UpOwogfQogCi12b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSwgYm9v
bCB1c2VDdXJyZW50RnJhbWUpCit2b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBKU1ZhbHVlIGNhdXNlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlw
ZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CkBAIC0xMzEsNiArMTM2LDkgQEAg
dm9pZCBFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IFMKIAogICAgIGlmICghbWVzc2FnZVdpdGhTb3VyY2UuaXNO
dWxsKCkpCiAgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwg
anNTdHJpbmcodm0sIG1lc3NhZ2VXaXRoU291cmNlKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworCisgICAgaWYgKCFjYXVzZS5pc1VuZGVmaW5l
ZCgpKQorICAgICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNhdXNlLCBjYXVz
ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwog
fQogCiAvLyBCYXNlZCBvbiBFcnJvclByb3RvdHlwZSdzIGVycm9yUHJvdG9GdW5jVG9TdHJpbmco
KSwgYnV0IGlzIG1vZGlmaWVkIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmgKaW5kZXggOTg3MTM1NzIxYjMwNTY2MjMwZDI2MWM4MzNhZDhkZWNhNTQ2
MTQ1NC4uNDQxNmMxMDk4NDY3MTNiZTQ2NWZlZGE4OGQzMTNhNDlkNzVhYTA1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtNTQsMTQgKzU0
LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oRXJyb3JJbnN0YW5jZVR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3Jl
YXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBu
dWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0gVHlwZU5vdGhpbmcsIEVycm9yVHlwZSBlcnJvclR5
cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAg
c3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEpT
VmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5
cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBFcnJvclR5cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpF
cnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKQogICAgIHsKICAgICAgICAgRXJyb3JJ
bnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3Rh
bmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5jZSh2bSwgc3RydWN0dXJlLCBlcnJvclR5cGUpOwot
ICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2Fn
ZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgICAgIGluc3RhbmNlLT5m
aW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBjYXVzZSwgYXBwZW5kZXIs
IHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9
CiAKLSAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRp
bWVUeXBlID0gVHlwZU5vdGhpbmcsIEVycm9yVHlwZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wg
dXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CisgICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0
ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSwgSlNWYWx1ZSBv
cHRpb25zLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhp
bmcsIEVycm9yVHlwZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0g
dHJ1ZSk7CiAKICAgICBib29sIGhhc1NvdXJjZUFwcGVuZGVyKCkgY29uc3QgeyByZXR1cm4gISFt
X3NvdXJjZUFwcGVuZGVyOyB9CiAgICAgU291cmNlQXBwZW5kZXIgc291cmNlQXBwZW5kZXIoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZUFwcGVuZGVyOyB9CkBAIC05NCw3ICs5NCw3IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwgU3RydWN0dXJl
KiwgRXJyb3JUeXBlKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9i
amVjdCosIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5
cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKKyAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUg
PSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAogICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRPd25TcGVjaWFs
UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lQXJy
YXkmLCBEb250RW51bVByb3BlcnRpZXNNb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCAwNjlj
ZjcxM2E1OTJhMGNiYjExZmQzYjljN2ExM2Q5NjE4M2ZiMGQyLi5jOTU5MzFhYmMyZjM1YTU2ZjYz
MDg1ZGI4ZGZlM2RmNWFhODUwYmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC02OTUsNyArNjk1
LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFy
Z3VtZW50c0NhbGxlZUFuZENhbGxlciwgKEpTR2wKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jTWFrZVR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0g
Z2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvcik7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1
cmUsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgZmFsc2UpKTsKIH0KIAogSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjU3
YWE1NTBmMzc4YmExMDc4OTA4NDc0ZTE0ODQ2ZDdiZDNhMzVjNC4uMjEzZDlmYjdhNjhhYjJhYzhm
OTZkODY3MGQ4YWUzNDZmMTM5ZTNmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTUwLDE5ICs1MCwy
MSBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5
cGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvYmFsTwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNW
YWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIG9wdGlv
bnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9
IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwogICAgIFN0cnVjdHVyZSogZXJyb3JT
dHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBlcnJvclN0cnVjdHVyZVdp
dGhFcnJvclR5cGU8ZXJyb3JUeXBlPiwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBl
cnJvclR5cGUsIGZhbHNlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0
dXJlLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBm
YWxzZSkpKTsKIH0KIAogdGVtcGxhdGU8RXJyb3JUeXBlIGVycm9yVHlwZT4KIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgSlNWYWx1ZSBv
cHRpb25zID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3Ry
dWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShlcnJvclR5cGUpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUs
IGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgb3B0aW9ucywgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKTsKIH0KIAogSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAppbmRleCAwZGRiMmM2YTUwZjQ2YmM2MzY5OTVj
YTQ2ZDdmMThlNWIyNjg2M2VmLi5kNmFmNjBiOGVlMjYxOGExOTQxYTU2MDQxYjhhMTcwMGMwNjI0
MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVy
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0
ZXJGdW5jdGlvbi5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxUaHJvd0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0K
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgLy8gVGhpcyBm
dW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tIElDLiBBbmQgd2UgZG8gbm90IHdhbnQgdG8gaW5j
bHVkZSB0aGlzIGZyYW1lIGluIEVycm9yJ3Mgc3RhY2suCiAgICAgY29uc3RleHByIGJvb2wgdXNl
Q3VycmVudEZyYW1lID0gZmFsc2U7Ci0gICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVj
dC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBSZWFkb25seVByb3BlcnR5
V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB1
c2VDdXJyZW50RnJhbWUpKTsKKyAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5l
cnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0
ZUVycm9yLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpU
eXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkpOwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxl
RXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvci5jcHAKaW5kZXggOWViZDNkNDQ2YTlkYTlhZDE5ZDdiYTQxOTkwMDYzZmM1YTYz
MjhmZi4uMzMwODJiNTA1Nzc1MGFjZjlmYzAzNDc3ZTBkZGM5ZGUxMmM2Njg4MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ciogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG8K
IHsKICAgICBhdXRvKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3I+KHZtLmhlYXApKSBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
KHZtLCBzdHJ1Y3R1cmUpOwogICAgIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZTsKLSAgICBp
bnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgZGVmYXVs
dFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKTsKKyAgICBpbnN0
YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwganNVbmRlZmlu
ZWQoKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1l
KTsKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKaW5kZXggOWIyMDA1
OGVjZjM0YWY5MWI2YjE4ZDE1ZjY1MTU3ODVjMjE3MmUyZC4uNmM4MjY0YmM2ZDMwNGZiNmEyY2E0
YjNmZDc4NjNmMDc2MWQxYTE1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAg
SlNXZWJBc3NlbWJseUxpbmtFcnJvciogSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKIHsKICAgICBhdXRvKiBpbnN0YW5jZSA9IG5ldyAoTm90
TnVsbCwgYWxsb2NhdGVDZWxsPEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I+KHZtLmhlYXApKSBKU1dl
YkFzc2VtYmx5TGlua0Vycm9yKHZtLCBzdHJ1Y3R1cmUpOwogICAgIGJvb2wgdXNlQ3VycmVudEZy
YW1lID0gdHJ1ZTsKLSAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVj
dCwgbWVzc2FnZSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywgdXNlQ3VycmVu
dEZyYW1lKTsKKyAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwg
bWVzc2FnZSwganNVbmRlZmluZWQoKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGlu
ZywgdXNlQ3VycmVudEZyYW1lKTsKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvci5jcHAKaW5kZXggMTkzM2E2ZTM4ODhmYmVhY2NmMDdhYzJiMzdjNzQ1MDQ4NGZhNTFm
Mi4uY2RlOTliMTdkZDQxYWIxMzU2ZTBhNGM4OTdjMzdkMzY4MmIxOTU2YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciog
SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG8KIHsK
ICAgICBhdXRvKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3I+KHZtLmhlYXApKSBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKHZt
LCBzdHJ1Y3R1cmUpOwogICAgIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZTsKLSAgICBpbnN0
YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgZGVmYXVsdFNv
dXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKTsKKyAgICBpbnN0YW5j
ZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwganNVbmRlZmluZWQo
KSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKTsK
ICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggNTYxODFlNDIyODMxODdhODNlNzZmNGQ4OTA4NjQxM2IwMDlkMzhmYy4u
ZWM2YzczNWJlMGMzZDRlZGNkODFlZTg1NTEzYjJlMjU2N2I4YWNkZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE8KIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFz
c2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6
OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseUNvbXBpbGVF
cnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggMWM2MGM4YzVjMTk0NzUxODFkZDMwY2E2MGVmM2RkYzY1ZDNjZDUwYy4uOTll
MTA4NGY3MTEwNTQ5NjUzMjliN2Q2NDcyZDNlZjk0NGQ0OTliNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAg
IFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TGlu
a0Vycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVy
cm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IqIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZSogdGhpc1By
b3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMDY2
ZjI2YzljOWE3Njc5YzMxYTMxMWQ0YjhkZGM1OTEyZWQ0NTczZi4uNDA5MDNiNTdlODdlYzIwMmQx
MjIyNDA1N2RkOWFhYWMwOGZkZmRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9y
U3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlw
ZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IqIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogdGhp
c1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNDk5Zjk4Yjk0NzAwZjY4ZWE3MTE4NmRkNmRhM2VlZGNlOGM4N2Q1Mi4uMzUw
NjA5YjI2OTQ3Yzg5YmMzNDNkMDMzOGEyYzk0NWFiNDI4ZDBmMiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAg
ICAgW0pTQ10gSW1wbGVtZW50IEVycm9yI2NhdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMuIHRlc3QyNjIgZG9lc24ndCBjdXJyZW50
bHkgaGF2ZSBhbnksIGJ1dCB0aGUgc3BlYyBpcyBleGNlZWRpbmdseSBzaW1wbGUgYW55d2F5Lgor
CisgICAgICAgICogc3RyZXNzL2Vycm9yLWNhdXNlLmpzOiBBZGRlZC4KKwogMjAyMS0wMy0xNCAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJ1biBv
bmUgTW96aWxsYSB0ZXN0IGV4cGxpY2l0bHkgdW5kZXIgUFNUIHNpbmNlIHRoaXMgdGVzdCBkb2Vz
IG5vdCB3b3JrIHdoZW4gd2UgYXJlIG1vdmluZyBmcm9tIFBTVCB0byBQRFQKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2Vycm9yLWNhdXNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvZXJyb3ItY2F1
c2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjA4NTA5ZGU4YTU4MjBiMzUwNDg5NGMwY2QyZDlkYjM4YjE5MDRl
OQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Vycm9yLWNhdXNlLmpzCkBAIC0w
LDAgKzEsMjYgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3Rl
ZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOworfQorCitjb25zdCBlcnJvckNvbnN0
cnVjdG9ycyA9IFtFcnJvciwgRXZhbEVycm9yLCBSYW5nZUVycm9yLCBSZWZlcmVuY2VFcnJvciwg
U3ludGF4RXJyb3IsIFR5cGVFcnJvciwgVVJJRXJyb3IsIEFnZ3JlZ2F0ZUVycm9yXTsKK2NvbnN0
IGNvbnN0cnVjdEVycm9yID0gKEUsIC4uLmFyZ3MpID0+IEUgPT09IEFnZ3JlZ2F0ZUVycm9yID8g
bmV3IEUoW10sICcnLCAuLi5hcmdzKSA6IG5ldyBFKCcnLCAuLi5hcmdzKTsKKworZm9yIChjb25z
dCBFIG9mIGVycm9yQ29uc3RydWN0b3JzKSB7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3Io
RSkuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgdW5k
ZWZpbmVkKS5jYXVzZSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihF
LCBudWxsKS5jYXVzZSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihF
LCB0cnVlKS5jYXVzZSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihF
LCAzKS5jYXVzZSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCAn
aGknKS5jYXVzZSwgdW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCB7
fSkuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgeyBj
YXVzZTogdW5kZWZpbmVkIH0pLmNhdXNlLCB1bmRlZmluZWQpOworCisgICAgc2hvdWxkQmUoY29u
c3RydWN0RXJyb3IoRSwgeyBjYXVzZTogbnVsbCB9KS5jYXVzZSwgbnVsbCk7CisgICAgc2hvdWxk
QmUoY29uc3RydWN0RXJyb3IoRSwgeyBjYXVzZTogdHJ1ZSB9KS5jYXVzZSwgdHJ1ZSk7CisgICAg
c2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgeyBjYXVzZTogMyB9KS5jYXVzZSwgMyk7CisgICAg
c2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgeyBjYXVzZTogJ2hpJyB9KS5jYXVzZSwgJ2hpJyk7
CisKKyAgICBjb25zdCBjYXVzZSA9IG5ldyBFcnJvcigpOworICAgIHNob3VsZEJlKGNvbnN0cnVj
dEVycm9yKEUsIHsgY2F1c2UgfSkuY2F1c2UsIGNhdXNlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423430</attachid>
            <date>2021-03-16 20:58:58 -0700</date>
            <delta_ts>2021-03-16 22:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223302-20210316205858.patch</filename>
            <type>text/plain</type>
            <size>35864</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZDIyZmVmMDFjZjk0ZDlhZWFmMmM5Njk5ZWUzNjk2YTllMzQ4YzIxLi4zZDkyYTJmYTM3YWY5MzE2
MzdhMTQ4NTk1NzUzNTViNjU1ODFhZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMS0wMy0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IEVycm9yI2NhdXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzMDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyB0aGUgRXJyb3IucHJvdG90eXBlLmNhdXNlIHByb3Bvc2FsLCB3aGljaCByZWFjaGVkIFN0YWdl
IDMgYXQgbGFzdCB3ZWVrJ3MgVEMzOSBtZWV0aW5nOgorICAgICAgICBodHRwczovL2dpdGh1Yi5j
b20vdGMzOS9wcm9wb3NhbC1lcnJvci1jYXVzZQorCisgICAgICAgIFRoaXMgdmVyeSBzaW1wbGUg
cHJvcG9zYWwgYWxsb3dzIHRvIG9uZSByZWZlcmVuY2UgdGhlICJlcnJvciB0aGF0IGNhdXNlZCB0
aGlzIG9uZSIgaW4gYSBjYXNjYWRpbmcgc2NlbmFyaW8uCisgICAgICAgIEl0IGRvZXMgc28gYnkg
YWRkaW5nIGFuIG9wdGlvbnMgYmFnIHBhcmFtZXRlciB0byB0aGUgRXJyb3IsIF9OYXRpdmVFcnJv
cl8sIGFuZCBBZ2dyZWdhdGVFcnJvciBjb25zdHJ1Y3RvcnMuCisgICAgICAgIElmIGl0IGlzIGFu
IG9iamVjdCB3aXRoIGEgYGNhdXNlYCBwcm9wZXJ0eSwgdGhlIHByb3BlcnR5IHdpbGwgYmUgdXNl
ZDsgaWYgbm90LCBub3RoaW5nIGhhcHBlbnMgYXQgYWxsLgorCisgICAgICAgICogQVBJL0pTT2Jq
ZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0TWFrZUVycm9yKToKKyAgICAgICAgKiBydW50
aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmNyZWF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQWdn
cmVnYXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVFcnJvcik6Cisg
ICAgICAgIChKU0M6OmNyZWF0ZUV2YWxFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVJhbmdl
RXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSZWZlcmVuY2VFcnJvcik6CisgICAgICAgIChK
U0M6OmNyZWF0ZVN5bnRheEVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlVHlwZUVycm9yKToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlVVJJRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVHZXR0
ZXJUeXBlRXJyb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNl
OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6
Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRl
ckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
d2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yOjpjcmVhdGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZSk6
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTYgIEtoZW0gUmFqICA8cmFqLmtoZW1AZ21haWwu
Y29tPgogCiAgICAgICAgIFtDTWFrZV0gQnVpbGQgZmFpbHMgb24gUklTQy1WIHdpdGggR0NDIDEx
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDk1ODRmNzZl
NWNmZWYwZWE5YmFiNWJiNjIxZDc1MjFlMDg3NWJjMzcuLjQ1ZGNkMjM2NGJhNGVjYmE3NTg2MDY4
ZWI1YTQ3NjcwZWJmNTIyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCkBAIC0yMzEsOCArMjMxLDkgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlRXJyb3Io
SlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmEKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIG1lc3Nh
Z2UgPSBhcmd1bWVudENvdW50ID8gdG9KUyhnbG9iYWxPYmplY3QsIGFyZ3VtZW50c1swXSkgOiBq
c1VuZGVmaW5lZCgpOworICAgIEpTVmFsdWUgb3B0aW9ucyA9IGFyZ3VtZW50Q291bnQgPiAxID8g
dG9KUyhnbG9iYWxPYmplY3QsIGFyZ3VtZW50c1sxXSkgOiBqc1VuZGVmaW5lZCgpOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCk7
Ci0gICAgSlNPYmplY3QqIHJlc3VsdCA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2Us
IG9wdGlvbnMpOwogCiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVlZGVkKHNjb3BlLCBjdHgs
IGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKICAgICAgICAgcmVzdWx0
ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0
ZUVycm9yLmNwcAppbmRleCAyOTZjODVjYzkwZTA1YjU0NTQ3ZjY2MmE3ZTJmOGExZTEzMGE0NmRj
Li5iN2ZlYTcxOGQ0M2U0ZTg0YjJiYTU2YWVhMzdjZWM2YjA2MzQwZjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCkBAIC00MCw5ICs0
MCw5IEBAIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogewogfQogCi12b2lkIEFnZ3JlZ2F0ZUVycm9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IE1hcmtlZEFyZ3VtZW50
QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBw
ZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQordm9pZCBBZ2dy
ZWdhdGVFcnJvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1l
VHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVu
dEZyYW1lKTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNz
YWdlLCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTUwLDE1ICs1MCwxNSBAQCB2b2lkIEFnZ3JlZ2F0ZUVycm9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIH0KIAotQWdncmVnYXRlRXJy
b3IqIEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVz
c2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNl
Q3VycmVudEZyYW1lKQorQWdncmVnYXRlRXJyb3IqIEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgSlNWYWx1ZSBvcHRpb25zLCBTb3VyY2VB
cHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUp
CiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgU3Ry
aW5nIG1lc3NhZ2VTdHJpbmc7Ci0gICAgaWYgKCFtZXNzYWdlLmlzVW5kZWZpbmVkKCkpIHsKLSAg
ICAgICAgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
LSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgfQorICAg
IFN0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8gU3RyaW5nKCkg
OiBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICBKU1ZhbHVlIGNhdXNlID0gIW9wdGlvbnMuaXNP
YmplY3QoKSA/IGpzVW5kZWZpbmVkKCkgOiBvcHRpb25zLmdldChnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPmNhdXNlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxs
cHRyKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGVycm9yc0xpc3Q7CiAgICAgZm9yRWFj
aEluSXRlcmFibGUoZ2xvYmFsT2JqZWN0LCBlcnJvcnMsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUgbmV4dFZhbHVlKSB7CkBAIC02OCw3ICs2OCw3IEBAIEFnZ3JlZ2F0ZUVycm9y
KiBBZ2dyZWdhdGVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZN
JiB2bSwgU3RyCiAgICAgfSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGNyZWF0ZShnbG9iYWxPYmplY3Qs
IHZtLCBzdHJ1Y3R1cmUsIGVycm9yc0xpc3QsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBl
LCB1c2VDdXJyZW50RnJhbWUpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGNyZWF0
ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIGVycm9yc0xpc3QsIG1lc3NhZ2VTdHJpbmcs
IGNhdXNlLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdn
cmVnYXRlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVy
cm9yLmgKaW5kZXggODg1MjBjMWQ2NjQzNTVhYjA2ZTgyZWFmNTc4MzU4NGYzOTU5MzE4ZS4uZjQ4
ODdkNzU4MmQ2Njk5NGZlMTExMzM2MzRkMmM5M2EwMWQ3MWE4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oCkBAIC00OSwxNiArNDksMTYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvciogY3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0g
VHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKKyAgICBzdGF0aWMgQWdn
cmVnYXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3Jz
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IHRydWUpCiAgICAgewogICAgICAgICBhdXRvKiBpbnN0YW5jZSA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEFnZ3JlZ2F0ZUVycm9yPih2bS5oZWFwKSkgQWdncmVn
YXRlRXJyb3Iodm0sIHN0cnVjdHVyZSk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlv
bih2bSwgZ2xvYmFsT2JqZWN0LCBlcnJvcnMsIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VD
dXJyZW50RnJhbWUpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2Jh
bE9iamVjdCwgZXJyb3JzLCBtZXNzYWdlLCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
QWdncmVnYXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFZNJiwgU3RydWN0dXJlKiwg
SlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRy
LCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUp
OworICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvciogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgVk0m
LCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIGVycm9ycywgSlNWYWx1ZSBtZXNzYWdlLCBKU1ZhbHVlIG9w
dGlvbnMsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGlu
ZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJv
cnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50
aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOworICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IE1hcmtlZEFy
Z3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlNWYWx1ZSBjYXVz
ZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBi
b29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFn
Z3JlZ2F0ZUVycm9yKFZNJiwgU3RydWN0dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4
IDNkMWEwNGNhZjVlNDA3YjBmOWNhOWEyNDRiNTgzOGFiZjA3YWQyMjQuLjZmOGZlYWUzYmVhYWQ4
ZmRjNmY5NjRhNjYyYTZhMjM1N2VkZWJhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02
MCw4ICs2MCw5IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsQWdncmVnYXRlRXJyb3JD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIEpTVmFsdWUgZXJyb3JzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworICAgIEpT
VmFsdWUgb3B0aW9ucyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMik7CiAgICAgU3RydWN0dXJlKiBl
cnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpB
Z2dyZWdhdGVFcnJvcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShBZ2dyZWdhdGVFcnJv
cjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGVycm9yU3RydWN0dXJlLCBlcnJvcnMsIG1lc3Nh
Z2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoQWdncmVnYXRlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVj
dHVyZSwgZXJyb3JzLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFs
c2UpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVy
cm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCkBAIC03MCwxMyArNzEsMTQgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2wK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBl
cnJvcnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMSk7CisgICAgSlNWYWx1ZSBvcHRpb25zID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgyKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gSlNDX0dF
VF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgZXJyb3JTdHJ1Y3R1cmVXaXRoRXJyb3JUeXBlPEVycm9y
VHlwZTo6QWdncmVnYXRlRXJyb3I+LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBBU1NFUlQoZXJyb3JT
dHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoQWdncmVnYXRlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVjdHVy
ZSwgZXJyb3JzLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoQWdncmVnYXRlRXJyb3I6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVjdHVyZSwgZXJyb3JzLCBtZXNzYWdl
LCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmgKaW5kZXggMjBjY2ZkNzg2YTg5MmRkNDNlZTA4MDY4MzM2NWJkNmJjODYxYjBi
YS4uYzQwNGExY2RjODJhMjIwMjY0MTgxYzgyY2UxN2Q2MGQwYzlmZTAzYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC04NCw2
ICs4NCw3IEBACiAgICAgbWFjcm8oY2FsbGVlKSBcCiAgICAgbWFjcm8oY2FsbGVyKSBcCiAgICAg
bWFjcm8oY2FzZUZpcnN0KSBcCisgICAgbWFjcm8oY2F1c2UpIFwKICAgICBtYWNybyhjbGVhcikg
XAogICAgIG1hY3JvKGNvbGxhdGlvbikgXAogICAgIG1hY3JvKGNvbHVtbikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4IGZjYWNmMWUzMjJlYjI3Mjc4NzRmZjI1
MjYyNDFlZDdiZTk4Y2U1MzcuLjY1NDZkMGZlZTZjN2FiZjNmYTNjZTdhNWQxM2RhNDUxMDFhMDk0
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKQEAgLTM1LDM3ICsz
NSwzNyBAQCBuYW1lc3BhY2UgSlNDIHsKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6
OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwg
YXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCB0cnVlKTsKKyAgICByZXR1
cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgp
LCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCks
IGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CiB9CiAKIEpT
T2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRl
cikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxP
YmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZhbEVycm9yKSwgbWVzc2FnZSwgYXBw
ZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
dmFsRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFu
Y2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0Vt
cHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBl
OjpSYW5nZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6
OlJhbmdlRXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1
cmUoRXJyb3JUeXBlOjpSYW5nZUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgYXBwZW5k
ZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJhbmdlRXJyb3IsIHRydWUpOwogfQogCiBKU09i
amVjdCogY3JlYXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBl
bmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9i
YWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3IpLCBtZXNz
YWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3IsIHRy
dWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpS
ZWZlcmVuY2VFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90
aGluZywgRXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBj
cmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewog
ICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+
ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50YXhFcnJvciwgdHJ1ZSk7CisgICAgcmV0dXJu
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwg
Z2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5bnRheEVycm9yKSwgbWVz
c2FnZSwganNVbmRlZmluZWQoKSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlN5
bnRheEVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVR5cGVFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFu
Y2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlKQogewogICAgIEFT
U0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwg
RXJyb3JUeXBlOjpUeXBlRXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJy
b3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgp
LCBhcHBlbmRlciwgdHlwZSwgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHRydWUpOwogfQogCiBKU09i
amVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCkBAIC03Niw3
ICs3Niw3IEBAIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvckluc3RhCiBKU09iamVjdCogY3JlYXRlVVJJRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBF
cnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1l
c3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJl
KEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVy
cm9yVHlwZTo6VVJJRXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFw
cGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpT
T2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5
cGUgZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAg
SlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9y
VHlwZVdpdGhFeHRlbnNpb24gZXJyb3IKIEpTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewog
ICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIGF1dG8qIGVycm9yID0gRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxP
YmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKKyAgICBhdXRvKiBlcnJv
ciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5
cGVFcnJvcik7CiAgICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOwogICAgIHJl
dHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDlmNzgxMzNlYzIzMGM1ODAwNDFkMTZlNDljZTdmZDE2
MzExMmIwYi4uYzBiMWIzZWYyNDJlZTZkMGI2MDAwMzRhNDBlNmUzYTk5MjljZDU4NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTUzLDE5ICs1MywyMSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAg
ICBKU1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogCiAgICAgSlNPYmpl
Y3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBl
cnJvclN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlw
ZTo6RXJyb3IsIGZhbHNlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0
dXJlLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgZmFsc2UpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRXJyb3JD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OworICAgIEpTVmFsdWUgb3B0aW9ucyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CiAgICAgU3Ry
dWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJy
b3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBv
cHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsK
IH0KIAogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDBmODZlMjJiOTJkZGQ2ZDEzOTg1OGI4NmU1
NmNlYWRjYWVjZTBkNDkuLjQwNDU5OTg3ZDk1NDFjNDMzYmMzMGJjNWY1NzM4NjQzZDVlZDg0MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CkBAIC00NCwxMyArNDQsMTggQEAgRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQogewogfQogCi1FcnJv
ckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5k
ZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wg
dXNlQ3VycmVudEZyYW1lKQorRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVl
IG1lc3NhZ2UsIEpTVmFsdWUgb3B0aW9ucywgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRp
bWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKICAgICBTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1dURlN0cmluZyhnbG9iYWxP
YmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIHJl
dHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBh
cHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJhbWUpOworCisgICAgSlNWYWx1
ZSBjYXVzZSA9ICFvcHRpb25zLmlzT2JqZWN0KCkgPyBqc1VuZGVmaW5lZCgpIDogb3B0aW9ucy5n
ZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5jYXVzZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9i
amVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywgY2F1c2UsIGFwcGVuZGVyLCB0eXBl
LCBlcnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBwZW5k
U291cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2Uq
IGV4Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCkBAIC0xMDUsNyArMTEwLDcgQEAgc3RhdGljIFN0cmluZyBhcHBlbmRTb3VyY2VUb0Vy
cm9yTWVzc2FnZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRXJyb3JJbnN0YW5jZSogZXgKICAgICBy
ZXR1cm4gYXBwZW5kZXIobWVzc2FnZSwgY29kZUJsb2NrLT5zb3VyY2UoKS5wcm92aWRlcigpLT5n
ZXRSYW5nZShzdGFydCwgc3RvcCkudG9TdHJpbmcoKSwgdHlwZSwgRXJyb3JJbnN0YW5jZTo6Rm91
bmRBcHByb3hpbWF0ZVNvdXJjZSk7CiB9CiAKLXZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29s
IHVzZUN1cnJlbnRGcmFtZSkKK3ZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBl
LCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKQEAgLTEzMSw2ICsxMzYsOSBAQCB2
b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgUwogCiAgICAgaWYgKCFtZXNzYWdlV2l0aFNvdXJjZS5pc051
bGwoKSkKICAgICAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBq
c1N0cmluZyh2bSwgbWVzc2FnZVdpdGhTb3VyY2UpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisKKyAgICBpZiAoIWNhdXNlLmlzVW5kZWZpbmVk
KCkpCisgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2F1c2UsIGNhdXNl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9
CiAKIC8vIEJhc2VkIG9uIEVycm9yUHJvdG90eXBlJ3MgZXJyb3JQcm90b0Z1bmNUb1N0cmluZygp
LCBidXQgaXMgbW9kaWZpZWQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAppbmRleCA5ODcxMzU3MjFiMzA1NjYyMzBkMjYxYzgzM2FkOGRlY2E1NDYx
NDU0Li40NDE2YzEwOTg0NjcxM2JlNDY1ZmVkYTg4ZDMxM2E0OWQ3NWFhMDVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC01NCwxNCArNTQs
MTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVh
dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51
bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlw
ZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKKyAgICBz
dGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlNW
YWx1ZSBjYXVzZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlw
ZSB0eXBlID0gVHlwZU5vdGhpbmcsIEVycm9yVHlwZSBlcnJvclR5cGUgPSBFcnJvclR5cGU6OkVy
cm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCiAgICAgewogICAgICAgICBFcnJvcklu
c3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFu
Y2U+KHZtLmhlYXApKSBFcnJvckluc3RhbmNlKHZtLCBzdHJ1Y3R1cmUsIGVycm9yVHlwZSk7Ci0g
ICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdl
LCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICAgICAgaW5zdGFuY2UtPmZp
bmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2UsIGNhdXNlLCBhcHBlbmRlciwg
dHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0K
IAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGlt
ZVR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1
c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKKyAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1ZSBtZXNzYWdlLCBKU1ZhbHVlIG9w
dGlvbnMsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKTsKIAogICAgIGJvb2wgaGFzU291cmNlQXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiAhIW1f
c291cmNlQXBwZW5kZXI7IH0KICAgICBTb3VyY2VBcHBlbmRlciBzb3VyY2VBcHBlbmRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlQXBwZW5kZXI7IH0KQEAgLTk0LDcgKzk0LDcgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVycm9ySW5zdGFuY2UoVk0mLCBTdHJ1Y3R1cmUq
LCBFcnJvclR5cGUpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlw
ZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOworICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgSlNWYWx1ZSBjYXVzZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9
IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGdldE93blNwZWNpYWxQ
cm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIERvbnRFbnVtUHJvcGVydGllc01vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDA2OWNm
NzEzYTU5MmEwY2JiMTFmZDNiOWM3YTEzZDk2MTgzZmIwZDIuLmM5NTkzMWFiYzJmMzVhNTZmNjMw
ODVkYjhkZmUzZGY1YWE4NTBiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NSw3ICs2OTUs
NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJn
dW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAoSlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGds
b2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBn
bG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGVycm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90
aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwganNVbmRlZmluZWQoKSwgbnVsbHB0ciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3RvR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBmNTdh
YTU1MGYzNzhiYTEwNzg5MDg0NzRlMTQ4NDZkN2JkM2EzNWM0Li4yMTNkOWZiN2E2OGFiMmFjOGY5
NmQ4NjcwZDhhZTM0NmYxMzllM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTAsMTkgKzUwLDIx
IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlw
ZT46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgIEpTVmFsdWUgb3B0aW9u
cyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0g
YXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0
cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlV2l0
aEVycm9yVHlwZTxlcnJvclR5cGU+LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFs
T2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGVy
cm9yVHlwZSwgZmFsc2UpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1
cmUsIG1lc3NhZ2UsIG9wdGlvbnMsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZh
bHNlKSkpOwogfQogCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgogaW5saW5lIEVuY29k
ZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIG9w
dGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1
Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKGVycm9yVHlwZSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwg
ZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRy
LCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbEV2YWxFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IDBkZGIyYzZhNTBmNDZiYzYzNjk5NWNh
NDZkN2YxOGU1YjI2ODYzZWYuLmQ2YWY2MGI4ZWUyNjE4YTE5NDFhNTYwNDFiOGExNzAwYzA2MjQw
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJG
dW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRl
ckZ1bmN0aW9uLmNwcApAQCAtOTQsNyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y2FsbFRocm93RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNs
dWRlIHRoaXMgZnJhbWUgaW4gRXJyb3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VD
dXJyZW50RnJhbWUgPSBmYWxzZTsKLSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0
LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlX
cml0ZUVycm9yLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVz
ZUN1cnJlbnRGcmFtZSkpOworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUs
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPmVy
cm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRl
RXJyb3IsIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5
cGVFcnJvciwgdXNlQ3VycmVudEZyYW1lKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcAppbmRleCA5ZWJkM2Q0NDZhOWRhOWFkMTlkN2JhNDE5OTAwNjNmYzVhNjMy
OGZmLi4zMzA4MmI1MDU3NzUwYWNmOWZjMDM0NzdlMGRkYzlkZTEyYzY2ODgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
KiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsbwog
ewogICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvcj4odm0uaGVhcCkpIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Io
dm0sIHN0cnVjdHVyZSk7CiAgICAgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlOwotICAgIGlu
c3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBkZWZhdWx0
U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpOworICAgIGluc3Rh
bmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBqc1VuZGVmaW5l
ZCgpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUp
OwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAppbmRleCA5YjIwMDU4
ZWNmMzRhZjkxYjZiMThkMTVmNjUxNTc4NWMyMTcyZTJkLi42YzgyNjRiYzZkMzA0ZmI2YTJjYTRi
M2ZkNzg2M2YwNzYxZDFhMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iagogewogICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJseUxpbmtFcnJvcj4odm0uaGVhcCkpIEpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3Iodm0sIHN0cnVjdHVyZSk7CiAgICAgYm9vbCB1c2VDdXJyZW50RnJh
bWUgPSB0cnVlOwotICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0
LCBtZXNzYWdlLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50
RnJhbWUpOworICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBt
ZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5n
LCB1c2VDdXJyZW50RnJhbWUpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yLmNwcAppbmRleCAxOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0ZmE1MWYy
Li5jZGU5OWIxN2RkNDFhYjEzNTZlMGE0Yzg5N2MzN2QzNjgyYjE5NTZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKiBK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsbwogewog
ICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcj4odm0uaGVhcCkpIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3Iodm0s
IHN0cnVjdHVyZSk7CiAgICAgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlOwotICAgIGluc3Rh
bmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBkZWZhdWx0U291
cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpOworICAgIGluc3RhbmNl
LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgp
LCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpOwog
ICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcAppbmRleCA1NjE4MWU0MjI4MzE4N2E4M2U3NmY0ZDg5MDg2NDEzYjAwOWQzOGZjLi5l
YzZjNzM1YmUwYzNkNGVkY2Q4MWVlODU1MTNiMmUyNTY3YjhhY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjMsNyArNjMsNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsTwogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yUHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmNwcAppbmRleCAxYzYwYzhjNWMxOTQ3NTE4MWRkMzBjYTYwZWYzZGRjNjVkM2NkNTBjLi45OWUx
MDg0ZjcxMTA1NDk2NTMyOWI3ZDY0NzJkM2VmOTQ0ZDQ5OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNjMsNyArNjMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAg
U3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlMaW5r
RXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJy
b3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3RvciogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5TGlua0Vycm9yUHJvdG90eXBlKiB0aGlzUHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAwNjZm
MjZjOWM5YTc2NzljMzFhMzExZDRiOGRkYzU5MTJlZDQ1NzNmLi40MDkwM2I1N2U4N2VjMjAyZDEy
MjI0MDU3ZGQ5YWFhYzA4ZmRmZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVj
dG9yLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JT
dHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJl
LCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
ciogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKiB0aGlz
UHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCA0OTlmOThiOTQ3MDBmNjhlYTcxMTg2ZGQ2ZGEzZWVkY2U4Yzg3ZDUyLi45ZmJi
MTUxYzQwZTBlY2QzNThhOWQ1NGQ3Yzk3NTc3YTQ5NDQ5NTk0IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIx
LTAzLTE2ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBbSlNDXSBJbXBsZW1lbnQgRXJyb3IjY2F1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzMwMgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3Vr
ZSBTdXp1a2kuCisKKyAgICAgICAgQWRkIHRlc3RzLiB0ZXN0MjYyIGRvZXNuJ3QgY3VycmVudGx5
IGhhdmUgYW55LCBidXQgdGhlIHNwZWMgaXMgZXhjZWVkaW5nbHkgc2ltcGxlIGFueXdheS4KKwor
ICAgICAgICAqIHN0cmVzcy9lcnJvci1jYXVzZS5qczogQWRkZWQuCisKIDIwMjEtMDMtMTQgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSdW4gb25l
IE1vemlsbGEgdGVzdCBleHBsaWNpdGx5IHVuZGVyIFBTVCBzaW5jZSB0aGlzIHRlc3QgZG9lcyBu
b3Qgd29yayB3aGVuIHdlIGFyZSBtb3ZpbmcgZnJvbSBQU1QgdG8gUERUCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9lcnJvci1jYXVzZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Vycm9yLWNhdXNl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA5MTAzNmI3ZmRhMTYxYTNjOWQwZjc5ZGU1MThkZjEyNGI1NzU4Y2EK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9lcnJvci1jYXVzZS5qcwpAQCAtMCww
ICsxLDI5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQg
JHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKK30KKworbGV0IGVycm9yQ29uc3RydWN0
b3JzID0gW0Vycm9yLCBFdmFsRXJyb3IsIFJhbmdlRXJyb3IsIFJlZmVyZW5jZUVycm9yLCBTeW50
YXhFcnJvciwgVHlwZUVycm9yLCBVUklFcnJvciwgQWdncmVnYXRlRXJyb3JdOworaWYgKHR5cGVv
ZiBXZWJBc3NlbWJseSAhPT0gJ3VuZGVmaW5lZCcpCisgICAgZXJyb3JDb25zdHJ1Y3RvcnMucHVz
aChXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsIFdlYkFzc2VtYmx5LkxpbmtFcnJvciwgV2ViQXNz
ZW1ibHkuUnVudGltZUVycm9yKTsKKworY29uc3QgY29uc3RydWN0RXJyb3IgPSAoRSwgLi4uYXJn
cykgPT4gRSA9PT0gQWdncmVnYXRlRXJyb3IgPyBuZXcgRShbXSwgJycsIC4uLmFyZ3MpIDogbmV3
IEUoJycsIC4uLmFyZ3MpOworCitmb3IgKGNvbnN0IEUgb2YgZXJyb3JDb25zdHJ1Y3RvcnMpIHsK
KyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFKS5jYXVzZSwgdW5kZWZpbmVkKTsKKyAgICBz
aG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCB1bmRlZmluZWQpLmNhdXNlLCB1bmRlZmluZWQpOwor
ICAgIHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIG51bGwpLmNhdXNlLCB1bmRlZmluZWQpOwor
ICAgIHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIHRydWUpLmNhdXNlLCB1bmRlZmluZWQpOwor
ICAgIHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIDMpLmNhdXNlLCB1bmRlZmluZWQpOworICAg
IHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsICdoaScpLmNhdXNlLCB1bmRlZmluZWQpOworICAg
IHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIHt9KS5jYXVzZSwgdW5kZWZpbmVkKTsKKworICAg
IHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIHsgY2F1c2U6IHVuZGVmaW5lZCB9KS5jYXVzZSwg
dW5kZWZpbmVkKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCB7IGNhdXNlOiBudWxs
IH0pLmNhdXNlLCBudWxsKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCB7IGNhdXNl
OiB0cnVlIH0pLmNhdXNlLCB0cnVlKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCB7
IGNhdXNlOiAzIH0pLmNhdXNlLCAzKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RFcnJvcihFLCB7
IGNhdXNlOiAnaGknIH0pLmNhdXNlLCAnaGknKTsKKworICAgIGNvbnN0IGNhdXNlID0gbmV3IEVy
cm9yKCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgeyBjYXVzZSB9KS5jYXVzZSwg
Y2F1c2UpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423435</attachid>
            <date>2021-03-16 22:17:21 -0700</date>
            <delta_ts>2021-03-16 23:02:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223302-20210316221722.patch</filename>
            <type>text/plain</type>
            <size>35719</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZDIyZmVmMDFjZjk0ZDlhZWFmMmM5Njk5ZWUzNjk2YTllMzQ4YzIxLi4zZDkyYTJmYTM3YWY5MzE2
MzdhMTQ4NTk1NzUzNTViNjU1ODFhZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMS0wMy0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IEVycm9yI2NhdXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzMDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyB0aGUgRXJyb3IucHJvdG90eXBlLmNhdXNlIHByb3Bvc2FsLCB3aGljaCByZWFjaGVkIFN0YWdl
IDMgYXQgbGFzdCB3ZWVrJ3MgVEMzOSBtZWV0aW5nOgorICAgICAgICBodHRwczovL2dpdGh1Yi5j
b20vdGMzOS9wcm9wb3NhbC1lcnJvci1jYXVzZQorCisgICAgICAgIFRoaXMgdmVyeSBzaW1wbGUg
cHJvcG9zYWwgYWxsb3dzIHRvIG9uZSByZWZlcmVuY2UgdGhlICJlcnJvciB0aGF0IGNhdXNlZCB0
aGlzIG9uZSIgaW4gYSBjYXNjYWRpbmcgc2NlbmFyaW8uCisgICAgICAgIEl0IGRvZXMgc28gYnkg
YWRkaW5nIGFuIG9wdGlvbnMgYmFnIHBhcmFtZXRlciB0byB0aGUgRXJyb3IsIF9OYXRpdmVFcnJv
cl8sIGFuZCBBZ2dyZWdhdGVFcnJvciBjb25zdHJ1Y3RvcnMuCisgICAgICAgIElmIGl0IGlzIGFu
IG9iamVjdCB3aXRoIGEgYGNhdXNlYCBwcm9wZXJ0eSwgdGhlIHByb3BlcnR5IHdpbGwgYmUgdXNl
ZDsgaWYgbm90LCBub3RoaW5nIGhhcHBlbnMgYXQgYWxsLgorCisgICAgICAgICogQVBJL0pTT2Jq
ZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0TWFrZUVycm9yKToKKyAgICAgICAgKiBydW50
aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmNyZWF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQWdn
cmVnYXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVFcnJvcik6Cisg
ICAgICAgIChKU0M6OmNyZWF0ZUV2YWxFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVJhbmdl
RXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSZWZlcmVuY2VFcnJvcik6CisgICAgICAgIChK
U0M6OmNyZWF0ZVN5bnRheEVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlVHlwZUVycm9yKToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlVVJJRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVHZXR0
ZXJUeXBlRXJyb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNl
OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6
Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAq
IHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRl
ckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
d2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yOjpjcmVhdGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZSk6
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTYgIEtoZW0gUmFqICA8cmFqLmtoZW1AZ21haWwu
Y29tPgogCiAgICAgICAgIFtDTWFrZV0gQnVpbGQgZmFpbHMgb24gUklTQy1WIHdpdGggR0NDIDEx
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDk1ODRmNzZl
NWNmZWYwZWE5YmFiNWJiNjIxZDc1MjFlMDg3NWJjMzcuLjQ1ZGNkMjM2NGJhNGVjYmE3NTg2MDY4
ZWI1YTQ3NjcwZWJmNTIyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCkBAIC0yMzEsOCArMjMxLDkgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlRXJyb3Io
SlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmEKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIG1lc3Nh
Z2UgPSBhcmd1bWVudENvdW50ID8gdG9KUyhnbG9iYWxPYmplY3QsIGFyZ3VtZW50c1swXSkgOiBq
c1VuZGVmaW5lZCgpOworICAgIEpTVmFsdWUgb3B0aW9ucyA9IGFyZ3VtZW50Q291bnQgPiAxID8g
dG9KUyhnbG9iYWxPYmplY3QsIGFyZ3VtZW50c1sxXSkgOiBqc1VuZGVmaW5lZCgpOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCk7
Ci0gICAgSlNPYmplY3QqIHJlc3VsdCA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2Us
IG9wdGlvbnMpOwogCiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVlZGVkKHNjb3BlLCBjdHgs
IGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKICAgICAgICAgcmVzdWx0
ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0
ZUVycm9yLmNwcAppbmRleCAyOTZjODVjYzkwZTA1YjU0NTQ3ZjY2MmE3ZTJmOGExZTEzMGE0NmRj
Li5iN2ZlYTcxOGQ0M2U0ZTg0YjJiYTU2YWVhMzdjZWM2YjA2MzQwZjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCkBAIC00MCw5ICs0
MCw5IEBAIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogewogfQogCi12b2lkIEFnZ3JlZ2F0ZUVycm9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IE1hcmtlZEFyZ3VtZW50
QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBw
ZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQordm9pZCBBZ2dy
ZWdhdGVFcnJvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1l
VHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVu
dEZyYW1lKTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNz
YWdlLCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTUwLDE1ICs1MCwxNSBAQCB2b2lkIEFnZ3JlZ2F0ZUVycm9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIH0KIAotQWdncmVnYXRlRXJy
b3IqIEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVz
c2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNl
Q3VycmVudEZyYW1lKQorQWdncmVnYXRlRXJyb3IqIEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgSlNWYWx1ZSBvcHRpb25zLCBTb3VyY2VB
cHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUp
CiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgU3Ry
aW5nIG1lc3NhZ2VTdHJpbmc7Ci0gICAgaWYgKCFtZXNzYWdlLmlzVW5kZWZpbmVkKCkpIHsKLSAg
ICAgICAgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
LSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgfQorICAg
IFN0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8gU3RyaW5nKCkg
OiBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICBKU1ZhbHVlIGNhdXNlID0gIW9wdGlvbnMuaXNP
YmplY3QoKSA/IGpzVW5kZWZpbmVkKCkgOiBvcHRpb25zLmdldChnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPmNhdXNlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxs
cHRyKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGVycm9yc0xpc3Q7CiAgICAgZm9yRWFj
aEluSXRlcmFibGUoZ2xvYmFsT2JqZWN0LCBlcnJvcnMsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUgbmV4dFZhbHVlKSB7CkBAIC02OCw3ICs2OCw3IEBAIEFnZ3JlZ2F0ZUVycm9y
KiBBZ2dyZWdhdGVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZN
JiB2bSwgU3RyCiAgICAgfSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGNyZWF0ZShnbG9iYWxPYmplY3Qs
IHZtLCBzdHJ1Y3R1cmUsIGVycm9yc0xpc3QsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBl
LCB1c2VDdXJyZW50RnJhbWUpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGNyZWF0
ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIGVycm9yc0xpc3QsIG1lc3NhZ2VTdHJpbmcs
IGNhdXNlLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdn
cmVnYXRlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVy
cm9yLmgKaW5kZXggODg1MjBjMWQ2NjQzNTVhYjA2ZTgyZWFmNTc4MzU4NGYzOTU5MzE4ZS4uZjQ4
ODdkNzU4MmQ2Njk5NGZlMTExMzM2MzRkMmM5M2EwMWQ3MWE4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oCkBAIC00OSwxNiArNDksMTYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvciogY3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0g
VHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKKyAgICBzdGF0aWMgQWdn
cmVnYXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3Jz
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IHRydWUpCiAgICAgewogICAgICAgICBhdXRvKiBpbnN0YW5jZSA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEFnZ3JlZ2F0ZUVycm9yPih2bS5oZWFwKSkgQWdncmVn
YXRlRXJyb3Iodm0sIHN0cnVjdHVyZSk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlv
bih2bSwgZ2xvYmFsT2JqZWN0LCBlcnJvcnMsIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VD
dXJyZW50RnJhbWUpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2Jh
bE9iamVjdCwgZXJyb3JzLCBtZXNzYWdlLCBjYXVzZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
QWdncmVnYXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFZNJiwgU3RydWN0dXJlKiwg
SlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRy
LCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUp
OworICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvciogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgVk0m
LCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIGVycm9ycywgSlNWYWx1ZSBtZXNzYWdlLCBKU1ZhbHVlIG9w
dGlvbnMsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGlu
ZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJv
cnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50
aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOworICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IE1hcmtlZEFy
Z3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlNWYWx1ZSBjYXVz
ZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBi
b29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFn
Z3JlZ2F0ZUVycm9yKFZNJiwgU3RydWN0dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4
IDNkMWEwNGNhZjVlNDA3YjBmOWNhOWEyNDRiNTgzOGFiZjA3YWQyMjQuLjZmOGZlYWUzYmVhYWQ4
ZmRjNmY5NjRhNjYyYTZhMjM1N2VkZWJhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02
MCw4ICs2MCw5IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsQWdncmVnYXRlRXJyb3JD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIEpTVmFsdWUgZXJyb3JzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworICAgIEpT
VmFsdWUgb3B0aW9ucyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMik7CiAgICAgU3RydWN0dXJlKiBl
cnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpB
Z2dyZWdhdGVFcnJvcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShBZ2dyZWdhdGVFcnJv
cjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGVycm9yU3RydWN0dXJlLCBlcnJvcnMsIG1lc3Nh
Z2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoQWdncmVnYXRlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVj
dHVyZSwgZXJyb3JzLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFs
c2UpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVy
cm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCkBAIC03MCwxMyArNzEsMTQgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2wK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBl
cnJvcnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMSk7CisgICAgSlNWYWx1ZSBvcHRpb25zID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgyKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gSlNDX0dF
VF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgZXJyb3JTdHJ1Y3R1cmVXaXRoRXJyb3JUeXBlPEVycm9y
VHlwZTo6QWdncmVnYXRlRXJyb3I+LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBBU1NFUlQoZXJyb3JT
dHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoQWdncmVnYXRlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVjdHVy
ZSwgZXJyb3JzLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoQWdncmVnYXRlRXJyb3I6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBlcnJvclN0cnVjdHVyZSwgZXJyb3JzLCBtZXNzYWdl
LCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmgKaW5kZXggMjBjY2ZkNzg2YTg5MmRkNDNlZTA4MDY4MzM2NWJkNmJjODYxYjBi
YS4uYzQwNGExY2RjODJhMjIwMjY0MTgxYzgyY2UxN2Q2MGQwYzlmZTAzYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC04NCw2
ICs4NCw3IEBACiAgICAgbWFjcm8oY2FsbGVlKSBcCiAgICAgbWFjcm8oY2FsbGVyKSBcCiAgICAg
bWFjcm8oY2FzZUZpcnN0KSBcCisgICAgbWFjcm8oY2F1c2UpIFwKICAgICBtYWNybyhjbGVhcikg
XAogICAgIG1hY3JvKGNvbGxhdGlvbikgXAogICAgIG1hY3JvKGNvbHVtbikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4IGZjYWNmMWUzMjJlYjI3Mjc4NzRmZjI1
MjYyNDFlZDdiZTk4Y2U1MzcuLjY1NDZkMGZlZTZjN2FiZjNmYTNjZTdhNWQxM2RhNDUxMDFhMDk0
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKQEAgLTM1LDM3ICsz
NSwzNyBAQCBuYW1lc3BhY2UgSlNDIHsKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6
OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwg
YXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCB0cnVlKTsKKyAgICByZXR1
cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgp
LCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCks
IGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CiB9CiAKIEpT
T2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRl
cikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxP
YmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZhbEVycm9yKSwgbWVzc2FnZSwgYXBw
ZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
dmFsRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFu
Y2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0Vt
cHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBl
OjpSYW5nZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6
OlJhbmdlRXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1
cmUoRXJyb3JUeXBlOjpSYW5nZUVycm9yKSwgbWVzc2FnZSwganNVbmRlZmluZWQoKSwgYXBwZW5k
ZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJhbmdlRXJyb3IsIHRydWUpOwogfQogCiBKU09i
amVjdCogY3JlYXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBl
bmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9i
YWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3IpLCBtZXNz
YWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3IsIHRy
dWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpS
ZWZlcmVuY2VFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFwcGVuZGVyLCBUeXBlTm90
aGluZywgRXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBj
cmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewog
ICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+
ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50YXhFcnJvciwgdHJ1ZSk7CisgICAgcmV0dXJu
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwg
Z2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5bnRheEVycm9yKSwgbWVz
c2FnZSwganNVbmRlZmluZWQoKSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlN5
bnRheEVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVR5cGVFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFu
Y2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlKQogewogICAgIEFT
U0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwg
RXJyb3JUeXBlOjpUeXBlRXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJy
b3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgp
LCBhcHBlbmRlciwgdHlwZSwgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHRydWUpOwogfQogCiBKU09i
amVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCkBAIC03Niw3
ICs3Niw3IEBAIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvckluc3RhCiBKU09iamVjdCogY3JlYXRlVVJJRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBF
cnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1l
c3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJl
KEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVy
cm9yVHlwZTo6VVJJRXJyb3IsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGpzVW5kZWZpbmVkKCksIGFw
cGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpT
T2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5
cGUgZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAg
SlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9y
VHlwZVdpdGhFeHRlbnNpb24gZXJyb3IKIEpTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewog
ICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIGF1dG8qIGVycm9yID0gRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxP
YmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKKyAgICBhdXRvKiBlcnJv
ciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1l
c3NhZ2UsIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5
cGVFcnJvcik7CiAgICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOwogICAgIHJl
dHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDlmNzgxMzNlYzIzMGM1ODAwNDFkMTZlNDljZTdmZDE2
MzExMmIwYi4uYzBiMWIzZWYyNDJlZTZkMGI2MDAwMzRhNDBlNmUzYTk5MjljZDU4NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTUzLDE5ICs1MywyMSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAg
ICBKU1ZhbHVlIG9wdGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogCiAgICAgSlNPYmpl
Y3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBl
cnJvclN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlw
ZTo6RXJyb3IsIGZhbHNlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0
dXJlLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgZmFsc2UpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRXJyb3JD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OworICAgIEpTVmFsdWUgb3B0aW9ucyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CiAgICAgU3Ry
dWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJy
b3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBv
cHRpb25zLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsK
IH0KIAogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDBmODZlMjJiOTJkZGQ2ZDEzOTg1OGI4NmU1
NmNlYWRjYWVjZTBkNDkuLjQwNDU5OTg3ZDk1NDFjNDMzYmMzMGJjNWY1NzM4NjQzZDVlZDg0MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CkBAIC00NCwxMyArNDQsMTggQEAgRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQogewogfQogCi1FcnJv
ckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5k
ZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wg
dXNlQ3VycmVudEZyYW1lKQorRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVl
IG1lc3NhZ2UsIEpTVmFsdWUgb3B0aW9ucywgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRp
bWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKICAgICBTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1dURlN0cmluZyhnbG9iYWxP
YmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIHJl
dHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBh
cHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJhbWUpOworCisgICAgSlNWYWx1
ZSBjYXVzZSA9ICFvcHRpb25zLmlzT2JqZWN0KCkgPyBqc1VuZGVmaW5lZCgpIDogb3B0aW9ucy5n
ZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5jYXVzZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9i
amVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywgY2F1c2UsIGFwcGVuZGVyLCB0eXBl
LCBlcnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBwZW5k
U291cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2Uq
IGV4Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCkBAIC0xMDUsNyArMTEwLDcgQEAgc3RhdGljIFN0cmluZyBhcHBlbmRTb3VyY2VUb0Vy
cm9yTWVzc2FnZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRXJyb3JJbnN0YW5jZSogZXgKICAgICBy
ZXR1cm4gYXBwZW5kZXIobWVzc2FnZSwgY29kZUJsb2NrLT5zb3VyY2UoKS5wcm92aWRlcigpLT5n
ZXRSYW5nZShzdGFydCwgc3RvcCkudG9TdHJpbmcoKSwgdHlwZSwgRXJyb3JJbnN0YW5jZTo6Rm91
bmRBcHByb3hpbWF0ZVNvdXJjZSk7CiB9CiAKLXZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29s
IHVzZUN1cnJlbnRGcmFtZSkKK3ZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEpTVmFsdWUgY2F1c2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBl
LCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKQEAgLTEzMSw2ICsxMzYsOSBAQCB2
b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgUwogCiAgICAgaWYgKCFtZXNzYWdlV2l0aFNvdXJjZS5pc051
bGwoKSkKICAgICAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBq
c1N0cmluZyh2bSwgbWVzc2FnZVdpdGhTb3VyY2UpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisKKyAgICBpZiAoIWNhdXNlLmlzVW5kZWZpbmVk
KCkpCisgICAgICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2F1c2UsIGNhdXNl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9
CiAKIC8vIEJhc2VkIG9uIEVycm9yUHJvdG90eXBlJ3MgZXJyb3JQcm90b0Z1bmNUb1N0cmluZygp
LCBidXQgaXMgbW9kaWZpZWQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAppbmRleCA5ODcxMzU3MjFiMzA1NjYyMzBkMjYxYzgzM2FkOGRlY2E1NDYx
NDU0Li40NDE2YzEwOTg0NjcxM2JlNDY1ZmVkYTg4ZDMxM2E0OWQ3NWFhMDVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC01NCwxNCArNTQs
MTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVh
dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51
bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlw
ZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKKyAgICBz
dGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgSlNW
YWx1ZSBjYXVzZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlw
ZSB0eXBlID0gVHlwZU5vdGhpbmcsIEVycm9yVHlwZSBlcnJvclR5cGUgPSBFcnJvclR5cGU6OkVy
cm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCiAgICAgewogICAgICAgICBFcnJvcklu
c3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFu
Y2U+KHZtLmhlYXApKSBFcnJvckluc3RhbmNlKHZtLCBzdHJ1Y3R1cmUsIGVycm9yVHlwZSk7Ci0g
ICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdl
LCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICAgICAgaW5zdGFuY2UtPmZp
bmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2UsIGNhdXNlLCBhcHBlbmRlciwg
dHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0K
IAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGlt
ZVR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1
c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKKyAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1ZSBtZXNzYWdlLCBKU1ZhbHVlIG9w
dGlvbnMsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKTsKIAogICAgIGJvb2wgaGFzU291cmNlQXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiAhIW1f
c291cmNlQXBwZW5kZXI7IH0KICAgICBTb3VyY2VBcHBlbmRlciBzb3VyY2VBcHBlbmRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlQXBwZW5kZXI7IH0KQEAgLTk0LDcgKzk0LDcgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVycm9ySW5zdGFuY2UoVk0mLCBTdHJ1Y3R1cmUq
LCBFcnJvclR5cGUpOwogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlw
ZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOworICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgSlNWYWx1ZSBjYXVzZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9
IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGdldE93blNwZWNpYWxQ
cm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIERvbnRFbnVtUHJvcGVydGllc01vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDA2OWNm
NzEzYTU5MmEwY2JiMTFmZDNiOWM3YTEzZDk2MTgzZmIwZDIuLmM5NTkzMWFiYzJmMzVhNTZmNjMw
ODVkYjhkZmUzZGY1YWE4NTBiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NSw3ICs2OTUs
NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJn
dW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAoSlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGds
b2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBn
bG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGVycm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90
aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwganNVbmRlZmluZWQoKSwgbnVsbHB0ciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3RvR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBmNTdh
YTU1MGYzNzhiYTEwNzg5MDg0NzRlMTQ4NDZkN2JkM2EzNWM0Li4yMTNkOWZiN2E2OGFiMmFjOGY5
NmQ4NjcwZDhhZTM0NmYxMzllM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTAsMTkgKzUwLDIx
IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlw
ZT46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgIEpTVmFsdWUgb3B0aW9u
cyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0g
YXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0
cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlV2l0
aEVycm9yVHlwZTxlcnJvclR5cGU+LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFs
T2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGVy
cm9yVHlwZSwgZmFsc2UpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1
cmUsIG1lc3NhZ2UsIG9wdGlvbnMsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZh
bHNlKSkpOwogfQogCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgogaW5saW5lIEVuY29k
ZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIG9w
dGlvbnMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1
Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKGVycm9yVHlwZSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwg
ZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBvcHRpb25zLCBudWxscHRy
LCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbEV2YWxFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IDBkZGIyYzZhNTBmNDZiYzYzNjk5NWNh
NDZkN2YxOGU1YjI2ODYzZWYuLmQ2YWY2MGI4ZWUyNjE4YTE5NDFhNTYwNDFiOGExNzAwYzA2MjQw
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJG
dW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRl
ckZ1bmN0aW9uLmNwcApAQCAtOTQsNyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y2FsbFRocm93RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNs
dWRlIHRoaXMgZnJhbWUgaW4gRXJyb3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VD
dXJyZW50RnJhbWUgPSBmYWxzZTsKLSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0
LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlX
cml0ZUVycm9yLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVz
ZUN1cnJlbnRGcmFtZSkpOworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUs
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPmVy
cm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRl
RXJyb3IsIGpzVW5kZWZpbmVkKCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5
cGVFcnJvciwgdXNlQ3VycmVudEZyYW1lKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcAppbmRleCA5ZWJkM2Q0NDZhOWRhOWFkMTlkN2JhNDE5OTAwNjNmYzVhNjMy
OGZmLi4zMzA4MmI1MDU3NzUwYWNmOWZjMDM0NzdlMGRkYzlkZTEyYzY2ODgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
KiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsbwog
ewogICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvcj4odm0uaGVhcCkpIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Io
dm0sIHN0cnVjdHVyZSk7CiAgICAgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlOwotICAgIGlu
c3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBkZWZhdWx0
U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpOworICAgIGluc3Rh
bmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBqc1VuZGVmaW5l
ZCgpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUp
OwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAppbmRleCA5YjIwMDU4
ZWNmMzRhZjkxYjZiMThkMTVmNjUxNTc4NWMyMTcyZTJkLi42YzgyNjRiYzZkMzA0ZmI2YTJjYTRi
M2ZkNzg2M2YwNzYxZDFhMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iagogewogICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJseUxpbmtFcnJvcj4odm0uaGVhcCkpIEpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3Iodm0sIHN0cnVjdHVyZSk7CiAgICAgYm9vbCB1c2VDdXJyZW50RnJh
bWUgPSB0cnVlOwotICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0
LCBtZXNzYWdlLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50
RnJhbWUpOworICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBt
ZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5n
LCB1c2VDdXJyZW50RnJhbWUpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yLmNwcAppbmRleCAxOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0ZmE1MWYy
Li5jZGU5OWIxN2RkNDFhYjEzNTZlMGE0Yzg5N2MzN2QzNjgyYjE5NTZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKiBK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsbwogewog
ICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcj4odm0uaGVhcCkpIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3Iodm0s
IHN0cnVjdHVyZSk7CiAgICAgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlOwotICAgIGluc3Rh
bmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBkZWZhdWx0U291
cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpOworICAgIGluc3RhbmNl
LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgp
LCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpOwog
ICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcAppbmRleCA1NjE4MWU0MjI4MzE4N2E4M2U3NmY0ZDg5MDg2NDEzYjAwOWQzOGZjLi5l
YzZjNzM1YmUwYzNkNGVkY2Q4MWVlODU1MTNiMmUyNTY3YjhhY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjMsNyArNjMsNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsTwogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yUHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmNwcAppbmRleCAxYzYwYzhjNWMxOTQ3NTE4MWRkMzBjYTYwZWYzZGRjNjVkM2NkNTBjLi45OWUx
MDg0ZjcxMTA1NDk2NTMyOWI3ZDY0NzJkM2VmOTQ0ZDQ5OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNjMsNyArNjMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAg
U3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlMaW5r
RXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJy
b3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3RvciogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5TGlua0Vycm9yUHJvdG90eXBlKiB0aGlzUHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAwNjZm
MjZjOWM5YTc2NzljMzFhMzExZDRiOGRkYzU5MTJlZDQ1NzNmLi40MDkwM2I1N2U4N2VjMjAyZDEy
MjI0MDU3ZGQ5YWFhYzA4ZmRmZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVj
dG9yLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JT
dHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJl
LCBtZXNzYWdlLCBqc1VuZGVmaW5lZCgpLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
ciogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKiB0aGlz
UHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCA0OTlmOThiOTQ3MDBmNjhlYTcxMTg2ZGQ2ZGEzZWVkY2U4Yzg3ZDUyLi45ZmJi
MTUxYzQwZTBlY2QzNThhOWQ1NGQ3Yzk3NTc3YTQ5NDQ5NTk0IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIx
LTAzLTE2ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBbSlNDXSBJbXBsZW1lbnQgRXJyb3IjY2F1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzMwMgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3Vr
ZSBTdXp1a2kuCisKKyAgICAgICAgQWRkIHRlc3RzLiB0ZXN0MjYyIGRvZXNuJ3QgY3VycmVudGx5
IGhhdmUgYW55LCBidXQgdGhlIHNwZWMgaXMgZXhjZWVkaW5nbHkgc2ltcGxlIGFueXdheS4KKwor
ICAgICAgICAqIHN0cmVzcy9lcnJvci1jYXVzZS5qczogQWRkZWQuCisKIDIwMjEtMDMtMTQgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSdW4gb25l
IE1vemlsbGEgdGVzdCBleHBsaWNpdGx5IHVuZGVyIFBTVCBzaW5jZSB0aGlzIHRlc3QgZG9lcyBu
b3Qgd29yayB3aGVuIHdlIGFyZSBtb3ZpbmcgZnJvbSBQU1QgdG8gUERUCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9lcnJvci1jYXVzZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Vycm9yLWNhdXNl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcwZTQ4MGM3OGIzYzU2OTY4ZDUyMDkyOWZjZGNlMTFlZTI0MTJhMDQK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9lcnJvci1jYXVzZS5qcwpAQCAtMCww
ICsxLDI2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQg
JHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKK30KKworY29uc3QgZXJyb3JDb25zdHJ1
Y3RvcnMgPSBbRXJyb3IsIEV2YWxFcnJvciwgUmFuZ2VFcnJvciwgUmVmZXJlbmNlRXJyb3IsIFN5
bnRheEVycm9yLCBUeXBlRXJyb3IsIFVSSUVycm9yLCBBZ2dyZWdhdGVFcnJvcl07Citjb25zdCBj
b25zdHJ1Y3RFcnJvciA9IChFLCAuLi5hcmdzKSA9PiBFID09PSBBZ2dyZWdhdGVFcnJvciA/IG5l
dyBFKFtdLCAnJywgLi4uYXJncykgOiBuZXcgRSgnJywgLi4uYXJncyk7CisKK2ZvciAoY29uc3Qg
RSBvZiBlcnJvckNvbnN0cnVjdG9ycykgeworICAgIHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUp
LmNhdXNlLCB1bmRlZmluZWQpOworICAgIHNob3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIHVuZGVm
aW5lZCkuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwg
bnVsbCkuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwg
dHJ1ZSkuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwg
MykuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgJ2hp
JykuY2F1c2UsIHVuZGVmaW5lZCk7CisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwge30p
LmNhdXNlLCB1bmRlZmluZWQpOworCisgICAgc2hvdWxkQmUoY29uc3RydWN0RXJyb3IoRSwgeyBj
YXVzZTogdW5kZWZpbmVkIH0pLmNhdXNlLCB1bmRlZmluZWQpOworICAgIHNob3VsZEJlKGNvbnN0
cnVjdEVycm9yKEUsIHsgY2F1c2U6IG51bGwgfSkuY2F1c2UsIG51bGwpOworICAgIHNob3VsZEJl
KGNvbnN0cnVjdEVycm9yKEUsIHsgY2F1c2U6IHRydWUgfSkuY2F1c2UsIHRydWUpOworICAgIHNo
b3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIHsgY2F1c2U6IDMgfSkuY2F1c2UsIDMpOworICAgIHNo
b3VsZEJlKGNvbnN0cnVjdEVycm9yKEUsIHsgY2F1c2U6ICdoaScgfSkuY2F1c2UsICdoaScpOwor
CisgICAgY29uc3QgY2F1c2UgPSBuZXcgRXJyb3IoKTsKKyAgICBzaG91bGRCZShjb25zdHJ1Y3RF
cnJvcihFLCB7IGNhdXNlIH0pLmNhdXNlLCBjYXVzZSk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>