<?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>233489</bug_id>
          
          <creation_ts>2021-11-25 00:30:37 -0800</creation_ts>
          <short_desc>[:has() pseudo-class] Invalidation support for adding and removing elements</short_desc>
          <delta_ts>2022-01-30 07:07:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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://github.com/web-platform-tests/wpt/pull/31743</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>227702</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>streltsyn111</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817747</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-25 00:30:37 -0800</bug_when>
    <thetext>Invalidate on tree mutations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817752</commentid>
    <comment_count>1</comment_count>
      <attachid>445124</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-25 01:18:05 -0800</bug_when>
    <thetext>Created attachment 445124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817753</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-11-25 01:19:06 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817758</commentid>
    <comment_count>3</comment_count>
      <attachid>445126</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-25 01:43:25 -0800</bug_when>
    <thetext>Created attachment 445126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817759</commentid>
    <comment_count>4</comment_count>
      <attachid>445127</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-25 02:06:15 -0800</bug_when>
    <thetext>Created attachment 445127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817760</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-25 02:06:42 -0800</bug_when>
    <thetext>Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/31743</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817779</commentid>
    <comment_count>6</comment_count>
      <attachid>445134</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-25 04:01:37 -0800</bug_when>
    <thetext>Created attachment 445134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817839</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-25 13:14:26 -0800</bug_when>
    <thetext>Committed r286169 (244552@main): &lt;https://commits.webkit.org/244552@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445134.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817841</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-25 13:15:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/85754298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818023</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-27 00:12:34 -0800</bug_when>
    <thetext>Reopen for a followup to fix perf regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818024</commentid>
    <comment_count>10</comment_count>
      <attachid>445214</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-27 00:13:39 -0800</bug_when>
    <thetext>Created attachment 445214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818025</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-27 01:45:07 -0800</bug_when>
    <thetext>Committed r286188 (244570@main): &lt;https://commits.webkit.org/244570@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445214.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835369</commentid>
    <comment_count>12</comment_count>
    <who name="Ilya Streltsyn">streltsyn111</who>
    <bug_when>2022-01-30 00:25:05 -0800</bug_when>
    <thetext>Unfortunately, Lea Verou&apos;s testcase with DOM modification in `setTimeout` (https://codepen.io/leaverou/pen/mdBMMrB) still does not work for me in TP 139 on MacBook Air M1/MacOS Monterey 12.2. Both `.has.empty` and `.has.nth` elements stay pink after `setTimeout` fires and modifies their subtree. Only after I either open the Inspector for the first time, modify the CSS in the CodePen panel, or modify `document.styleSheets` after modifying the subtree in the `setTimeout` callback (e.g. add a new valid `cssRule`), these elements become green.

Could you please look into this issue again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835375</commentid>
    <comment_count>13</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-30 07:05:52 -0800</bug_when>
    <thetext>The test case appears to work fine in trunk, I think STP 139 just doesn&apos;t have the fix yet. It might have been fixed in bug 234842.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835376</commentid>
    <comment_count>14</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-30 07:07:30 -0800</bug_when>
    <thetext>Generally it is a good idea to file a new bug for each issue as that ensures they don&apos;t get lost. No need to worry about duplicates, we can sort those out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445124</attachid>
            <date>2021-11-25 01:18:05 -0800</date>
            <delta_ts>2021-11-25 02:11:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233489-20211125111803.patch</filename>
            <type>text/plain</type>
            <size>27441</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzN2ZmNzgxZTJlODlj
M2UwYzI1ZDBmMTFlYWNlOGMzOGNiYmI5Ny4uZGI4ZjMzYjA4OWIxZWM2NTU0NGQyMDRiNGY1NmVk
Yjk4NmQ3ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTExLTI1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gSW52YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGFkZGluZyBhbmQgcmVtb3Zpbmcgbm9kZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5lZWQg
dG8gaW52YWxpZGF0ZSBzdHlsZSB3aGVuIGFkZGVkIG9yIHJlbW92ZWQgZWxlbWVudHMgbWF0Y2gg
OmhhcygpIGFyZ3VtZW50cy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGFnIG5hbWUgaW52
YWxpZGF0aW9uIHJ1bGVzZXRzIGZvciA6aGFzKCkgY2FzZSwgYWxvbmcgd2l0aCB0aGUgZXhpc3Rp
bmcgY2xhc3MKKyAgICAgICAgYW5kIGF0dHJpYnV0ZSBydWxlc2V0cy4gSXQgaXMgc3RpbGwgbWlz
c2luZyBzdXBwb3J0IGZvciAjaWQgaW52YWxpZGF0aW9uLgorCisgICAgICAgICogc3R5bGUvQ2hp
bGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbik6CisKKyAgICAgICAg
U2VlIGlmIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIHJlbW92
ZWQgYmVmb3JlIHRoZSBtdXRhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjp+Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24pOgorCisgICAgICAg
IFNlZSBpZiB3ZSBuZWVkIHRvIGludmFsaWRhdGUgZm9yIHRoZSBlbGVtZW50cyBiZWluZyBhZGRl
ZCBhZnRlciB0aGUgbXV0YXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDaGlsZENo
YW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KToKKworICAgICAg
ICBGaW5kIHRoZSByZWxldmFudCBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9yIGF0dHJpYnV0ZXMs
IGNsYXNzZXMgYW5kIHRhZ3MgYW5kIGludmFsaWRhdGUgdXNpbmcgdGhlbS4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6Om5lZWRzVHJhdmVyc2FsKToKKworICAgICAgICBXZSBvbmx5IG5lZWQg
dG8gZG8gYW55dGhpbmcgaW4gdGhlIHByZXNlbmNlIG9mIDpoYXMoKSBydWxlcy4KKworICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6Om5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbCk6CisKKyAgICAgICAg
RnVsbCB0cmF2ZXJzYWwgaXMgb25seSBuZWVkZWQgaW4gY2FzZSB0aGVyZSBhcmUgOmhhcygpIHJ1
bGVzIHVzaW5nIGRlc2NlbmRhbnQgY29tYmluYXRvci4KKworICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkNoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjp0cmF2ZXJzZVJlbW92ZWRFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRyYXZlcnNl
QWRkZWRFbGVtZW50cyk6CisgICAgICAgICogc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
aDoKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6aXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZlYXR1cmVzRnJvbVNlbGVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZl
YXR1cmVzKToKKworICAgICAgICBDb2xsZWN0IHRhZyBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9y
IDpoYXMgY2FzZSBvbmx5LgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVT
ZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQp
OgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6UnVsZUZlYXR1cmVTZXQ6OnVzZXNNYXRjaEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVGZWF0dXJlU2V0OjpzZXRVc2VzTWF0Y2hFbGVtZW50KToKKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHdoYXQgc29ydCBvZiBtYXRjaCBlbGVtZW50cyBhcmUgYmVpbmcg
dXNlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjp0YWdJbnZhbGlkYXRpb25S
dWxlU2V0cyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisK
IDIwMjEtMTEtMjMgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZXhwbGljaXQgaW5pdGlhbGl6ZXJfbGlzdCB1c2FnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCmlu
ZGV4IGQ2ZWY4NTMxMjYxNjQ4YTAwY2M5ZWM4MTg3YWY5MmI2NjFjZmUxMWYuLjczY2IwNDliNjk1
ZWI4MTExMmYyMmYzMDRmZDkyZDJmZWY0YzI0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDkgQEAKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiU2xvdEFzc2lnbm1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVk
ZSAiU3R5bGVTY29wZVJ1bGVTZXRzLmgiCisjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFu
dEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpTdHlsZSB7CiAKQEAgLTM4LDcgKzQx
LDEyIEBAIENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbihD
b250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0CiAgICAgLCBtX2lzRW5hYmxlZChtX3BhcmVu
dEVsZW1lbnQgPyBtX3BhcmVudEVsZW1lbnQtPm5lZWRzU3R5bGVJbnZhbGlkYXRpb24oKSA6IGZh
bHNlKQogICAgICwgbV9jaGlsZENoYW5nZShjaGlsZENoYW5nZSkKIHsKLSAgICAvLyBGSVhNRTog
RG8gc21hcnRlciBpbnZhbGlkYXRpb24gc2ltaWxhciB0byBDbGFzc0NoYW5nZUludmFsaWRhdGlv
bi4KKyAgICBpZiAoIW1faXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhbJl0oYXV0byYgY2hhbmdlZEVsZW1lbnQpIHsKKyAgICAgICAgaW52
YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KGNoYW5nZWRFbGVtZW50KTsKKyAgICB9KTsKIH0KIAog
Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFsaWRhdGlvbigpCkBAIC00
Niw5ICs1NCwxMTcgQEAgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFs
aWRhdGlvbigpCiAgICAgaWYgKCFtX2lzRW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
dHJhdmVyc2VBZGRlZEVsZW1lbnRzKFsmXShhdXRvJiBjaGFuZ2VkRWxlbWVudCkgeworICAgICAg
ICBpbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoY2hhbmdlZEVsZW1lbnQpOworICAgIH0pOwor
ICAgIAogICAgIGludmFsaWRhdGVBZnRlckNoYW5nZSgpOwogfQogCit2b2lkIENoaWxkQ2hhbmdl
SW52YWxpZGF0aW9uOjppbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoRWxlbWVudCYgY2hhbmdl
ZEVsZW1lbnQpCit7CisgICAgYXV0byYgcnVsZVNldHMgPSBwYXJlbnRFbGVtZW50KCkuc3R5bGVS
ZXNvbHZlcigpLnJ1bGVTZXRzKCk7CisKKyAgICBJbnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVs
ZVNldHMgbWF0Y2hFbGVtZW50UnVsZVNldHM7CisKKyAgICBhdXRvIGFkZEhhc0ludmFsaWRhdGlv
biA9IFsmXShjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGludmFsaWRhdGlvblJ1
bGVTZXRzKSAgeworICAgICAgICBpZiAoIWludmFsaWRhdGlvblJ1bGVTZXRzKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1bGVTZXQgOiAqaW52
YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgICAgIGlmIChpc0hhc1BzZXVkb0NsYXNzTWF0
Y2hFbGVtZW50KGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAg
ICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtYXRjaEVsZW1lbnRS
dWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNldCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
YXV0byB0YWdOYW1lID0gY2hhbmdlZEVsZW1lbnQubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKKyAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVsZVNldHMudGFnSW52YWxpZGF0
aW9uUnVsZVNldHModGFnTmFtZSkpOworCisgICAgaWYgKGNoYW5nZWRFbGVtZW50Lmhhc0F0dHJp
YnV0ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0ZSA6IGNoYW5nZWRFbGVtZW50
LmF0dHJpYnV0ZXNJdGVyYXRvcigpKSB7CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZU5hbWUg
PSBhdHRyaWJ1dGUubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICAg
ICAgICAgIGFkZEhhc0ludmFsaWRhdGlvbihydWxlU2V0cy5hdHRyaWJ1dGVJbnZhbGlkYXRpb25S
dWxlU2V0cyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoY2hh
bmdlZEVsZW1lbnQuaGFzQ2xhc3MoKSkgeworICAgICAgICBhdXRvIGNvdW50ID0gY2hhbmdlZEVs
ZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBjbGFzc05hbWUgPSBjaGFuZ2VkRWxl
bWVudC5jbGFzc05hbWVzKClbaV07CisgICAgICAgICAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVs
ZVNldHMuY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjbGFzc05hbWUpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIEludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVT
ZXRzKGNoYW5nZWRFbGVtZW50LCBtYXRjaEVsZW1lbnRSdWxlU2V0cyk7Cit9CisKK3N0YXRpYyBi
b29sIG5lZWRzVHJhdmVyc2FsKGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcywgY29uc3Qg
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIGNoaWxkQ2hhbmdlKQoreworICAgIGlmIChmZWF0
dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzQ2hpbGQpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoZmVhdHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1l
bnQ6Okhhc0Rlc2NlbmRhbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmVh
dHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmcpICYmIGNoaWxk
Q2hhbmdlLnByZXZpb3VzU2libGluZ0VsZW1lbnQ7Cit9OworCitzdGF0aWMgYm9vbCBuZWVkc0Rl
c2NlbmRhbnRUcmF2ZXJzYWwoY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKQoreworICAg
IHJldHVybiBmZWF0dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzRGVzY2Vu
ZGFudCk7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFu
Z2VJbnZhbGlkYXRpb246OnRyYXZlcnNlUmVtb3ZlZEVsZW1lbnRzKEZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit7CisgICAgaWYgKG1fY2hpbGRDaGFuZ2UuaXNJbnNlcnRpb24oKSAmJiBtX2NoaWxkQ2hh
bmdlLnR5cGUgIT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OkFsbENoaWxkcmVu
UmVwbGFjZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGZlYXR1cmVzID0gcGFyZW50
RWxlbWVudCgpLnN0eWxlUmVzb2x2ZXIoKS5ydWxlU2V0cygpLmZlYXR1cmVzKCk7CisgICAgaWYg
KCFuZWVkc1RyYXZlcnNhbChmZWF0dXJlcywgbV9jaGlsZENoYW5nZSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGJvb2wgbmVlZHNEZXNjZW5kYW50VHJhdmVyc2FsID0gU3R5bGU6Om5lZWRzRGVz
Y2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcyk7CisKKyAgICBhdXRvKiB0b1JlbW92ZSA9IG1fY2hp
bGRDaGFuZ2UucHJldmlvdXNTaWJsaW5nRWxlbWVudCA/IG1fY2hpbGRDaGFuZ2UucHJldmlvdXNT
aWJsaW5nRWxlbWVudC0+bmV4dEVsZW1lbnRTaWJsaW5nKCkgOiBwYXJlbnRFbGVtZW50KCkuZmly
c3RFbGVtZW50Q2hpbGQoKTsKKyAgICBmb3IgKDsgdG9SZW1vdmUgIT0gbV9jaGlsZENoYW5nZS5u
ZXh0U2libGluZ0VsZW1lbnQ7IHRvUmVtb3ZlID0gdG9SZW1vdmUtPm5leHRFbGVtZW50U2libGlu
ZygpKSB7CisgICAgICAgIGZ1bmN0aW9uKCp0b1JlbW92ZSk7CisKKyAgICAgICAgaWYgKCFuZWVk
c0Rlc2NlbmRhbnRUcmF2ZXJzYWwpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdG9SZW1v
dmUpKQorICAgICAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7CisgICAgfQorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRy
YXZlcnNlQWRkZWRFbGVtZW50cyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQoreworICAgIGlmICghbV9j
aGlsZENoYW5nZS5pc0luc2VydGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBu
ZXdFbGVtZW50ID0gWyZdIHsKKyAgICAgICAgYXV0byogcHJldmlvdXMgPSBtX2NoaWxkQ2hhbmdl
LnByZXZpb3VzU2libGluZ0VsZW1lbnQ7CisgICAgICAgIGF1dG8qIGNhbmRpZGF0ZSA9IHByZXZp
b3VzID8gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnByZXZpb3VzKSA6IEVsZW1lbnRU
cmF2ZXJzYWw6OmZpcnN0Q2hpbGQocGFyZW50RWxlbWVudCgpKTsKKyAgICAgICAgaWYgKGNhbmRp
ZGF0ZSA9PSBtX2NoaWxkQ2hhbmdlLm5leHRTaWJsaW5nRWxlbWVudCkKKyAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgfSgpOwor
CisgICAgaWYgKCFuZXdFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBmZWF0
dXJlcyA9IHBhcmVudEVsZW1lbnQoKS5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5mZWF0dXJl
cygpOworICAgIGlmICghbmVlZHNUcmF2ZXJzYWwoZmVhdHVyZXMsIG1fY2hpbGRDaGFuZ2UpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmdW5jdGlvbigqbmV3RWxlbWVudCk7CisKKyAgICBpZiAo
IW5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KCpu
ZXdFbGVtZW50KSkKKyAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7Cit9CisKIHN0YXRpYyB2
b2lkIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZShFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlm
ICghZWxlbWVudC5zdHlsZUFmZmVjdGVkQnlFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmgKaW5kZXggNjcxMjlkZDQwYTc5ZjY0Y2RiZjJj
NDIwZDhiNDQzMTA4ZmUyZTI3OC4uMTVkM2FkMGE3MWZjZTQyZTMxZjcwN2IxZDkxZDRmMGY4NWVk
MjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlk
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTdHlsZUludmFsaWRhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00MCw2ICs0MSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgaW52YWxpZGF0ZUFmdGVyQ2hhbmdlKCk7CiAgICAgdm9pZCBjaGVja0ZvclNpYmxp
bmdTdHlsZUNoYW5nZXMoKTsKKyAgICB2b2lkIGludmFsaWRhdGVGb3JDaGFuZ2VkRWxlbWVudChF
bGVtZW50Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4gdm9pZCB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhGdW5jdGlvbiYmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dGlvbj4gdm9pZCB0cmF2ZXJzZUFkZGVkRWxlbWVudHMoRnVuY3Rpb24mJik7CiAKICAgICBFbGVt
ZW50JiBwYXJlbnRFbGVtZW50KCkgeyByZXR1cm4gKm1fcGFyZW50RWxlbWVudDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKaW5kZXggZmIxOGRlMzVjNDQ0ZGQxMTI3NmZlODAx
MmMyNWNkODgxOGFmNDU0Yi4uYzU2N2FkMjAxNTkyNjY1NDdjM2I2ZTU3ZDhjOWFiNDFhZTI2ODNh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcApAQCAtNTgsNyArNTgsNyBAQCBz
dGF0aWMgYm9vbCBpc1NpYmxpbmdPclN1YmplY3QoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzSGFzUHNldWRvQ2xhc3NNYXRj
aEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFz
c01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KQogewogICAgIHN3aXRjaCAo
bWF0Y2hFbGVtZW50KSB7CiAgICAgY2FzZSBNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmc6CkBAIC0x
NzIsNyArMTcyLDEwIEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZl
YXR1cmVzRnJvbVNlbGVjdG9yKFNlbGVjdG9yRmVhdHVyZXMmIHNlCiAgICAgICAgICAgICAgICAg
aWRzTWF0Y2hpbmdBbmNlc3RvcnNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQog
ICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5jbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzZWxlY3Rvci0+dmFsdWUoKSwgbWF0Y2hFbGVtZW50KSk7Ci0gICAgICAgIGVsc2UgaWYgKHNl
bGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpIHsKKyAgICAgICAgZWxzZSBpZiAoc2VsZWN0
b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlRhZykgeworICAgICAgICAgICAgaWYgKGlzSGFz
UHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQobWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAgICAgICBz
ZWxlY3RvckZlYXR1cmVzLnRhZ3MuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHNlbGVjdG9yLT50YWdM
b3dlcmNhc2VMb2NhbE5hbWUoKSwgbWF0Y2hFbGVtZW50KSk7CisgICAgICAgIH0gZWxzZSBpZiAo
c2VsZWN0b3ItPmlzQXR0cmlidXRlU2VsZWN0b3IoKSkgewogICAgICAgICAgICAgYXV0byYgY2Fu
b25pY2FsTG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZSgp
OwogICAgICAgICAgICAgYXV0byYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxv
Y2FsTmFtZSgpOwogICAgICAgICAgICAgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lc0luUnVs
ZXMuYWRkKGNhbm9uaWNhbExvY2FsTmFtZSk7CkBAIC0yMTksMTIgKzIyMiwxOSBAQCB2b2lkIFJ1
bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQog
ICAgIGlmIChydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKICAg
ICAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmQoeyBydWxlRGF0YSB9KTsKIAorICAg
IGZvciAoYXV0byYgbmFtZUFuZE1hdGNoIDogc2VsZWN0b3JGZWF0dXJlcy50YWdzKSB7CisgICAg
ICAgIHRhZ1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKKyAgICAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOworICAgICAgICB9KS5pdGVy
YXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vjb25kIH0pOwor
ICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG5hbWVBbmRNYXRjaC5zZWNvbmQpOworICAgIH0K
ICAgICBmb3IgKGF1dG8mIG5hbWVBbmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMuY2xhc3Nlcykg
ewogICAgICAgICBjbGFzc1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwogICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vj
b25kIH0pOwogICAgICAgICBpZiAobmFtZUFuZE1hdGNoLnNlY29uZCA9PSBNYXRjaEVsZW1lbnQ6
Okhvc3QpCiAgICAgICAgICAgICBjbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQobmFtZUFuZE1hdGNo
LmZpcnN0KTsKKyAgICAgICAgc2V0VXNlc01hdGNoRWxlbWVudChuYW1lQW5kTWF0Y2guc2Vjb25k
KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBzZWxlY3RvckFuZE1hdGNoIDogc2VsZWN0b3JGZWF0
dXJlcy5hdHRyaWJ1dGVzKSB7CiAgICAgICAgIGF1dG8qIHNlbGVjdG9yID0gc2VsZWN0b3JBbmRN
YXRjaC5maXJzdDsKQEAgLTIzNCw2ICsyNDQsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpjb2xs
ZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogICAgICAgICB9KS5pdGVyYXRv
ci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBtYXRjaEVsZW1lbnQsIHNlbGVjdG9yIH0pOwog
ICAgICAgICBpZiAobWF0Y2hFbGVtZW50ID09IE1hdGNoRWxlbWVudDo6SG9zdCkKICAgICAgICAg
ICAgIGF0dHJpYnV0ZXNBZmZlY3RpbmdIb3N0LmFkZChzZWxlY3Rvci0+YXR0cmlidXRlKCkubG9j
YWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CisgICAgICAgIHNldFVzZXNNYXRj
aEVsZW1lbnQobWF0Y2hFbGVtZW50KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBrZXlBbmRNYXRj
aCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3NlcykgewogICAgICAgICBwc2V1ZG9DbGFz
c1J1bGVzLmVuc3VyZShrZXlBbmRNYXRjaC5maXJzdCwgW10gewpAQCAtMjQxLDYgKzI1Miw3IEBA
IHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYgcnVs
ZURhdGEpCiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kKHsgcnVsZURhdGEsIGtl
eUFuZE1hdGNoLnNlY29uZCB9KTsKICAgICAgICAgaWYgKGtleUFuZE1hdGNoLnNlY29uZCA9PSBN
YXRjaEVsZW1lbnQ6Okhvc3QpCiAgICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9z
dC5hZGQoa2V5QW5kTWF0Y2guZmlyc3QpOworICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KGtl
eUFuZE1hdGNoLnNlY29uZCk7CiAgICAgfQogfQogCkBAIC0yNTMsNiArMjY1LDEzIEBAIHZvaWQg
UnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNldCYgb3RoZXIpCiAgICAgY29u
dGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5hZGQob3RoZXIuY29udGVudEF0dHJpYnV0ZU5hbWVz
SW5SdWxlcy5iZWdpbigpLCBvdGhlci5jb250ZW50QXR0cmlidXRlTmFtZXNJblJ1bGVzLmVuZCgp
KTsKICAgICBzaWJsaW5nUnVsZXMuYXBwZW5kVmVjdG9yKG90aGVyLnNpYmxpbmdSdWxlcyk7CiAg
ICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmRWZWN0b3Iob3RoZXIudW5jb21tb25BdHRy
aWJ1dGVSdWxlcyk7CisKKyAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6IG90aGVyLnRhZ1J1
bGVzKSB7CisgICAgICAgIHRhZ1J1bGVzLmVuc3VyZShrZXlWYWx1ZVBhaXIua2V5LCBbXSB7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSdWxlRmVhdHVyZVZlY3Rvcj4oKTsKKyAgICAg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZhbHVlUGFpci52YWx1ZSk7
CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIgOiBvdGhlci5jbGFzc1J1bGVz
KSB7CiAgICAgICAgIGNsYXNzUnVsZXMuZW5zdXJlKGtleVZhbHVlUGFpci5rZXksIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwpAQCAtMjc0
LDYgKzI5Myw5IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNl
dCYgb3RoZXIpCiAgICAgfQogICAgIHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmFkZChvdGhl
ci5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5iZWdpbigpLCBvdGhlci5wc2V1ZG9DbGFzc2Vz
QWZmZWN0aW5nSG9zdC5lbmQoKSk7CiAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRN
YXRjaEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICB1c2VkTWF0Y2hFbGVtZW50c1tpXSB8
PSBvdGhlci51c2VkTWF0Y2hFbGVtZW50c1tpXTsKKwogICAgIHVzZXNGaXJzdExpbmVSdWxlcyA9
IHVzZXNGaXJzdExpbmVSdWxlcyB8fCBvdGhlci51c2VzRmlyc3RMaW5lUnVsZXM7CiAgICAgdXNl
c0ZpcnN0TGV0dGVyUnVsZXMgPSB1c2VzRmlyc3RMZXR0ZXJSdWxlcyB8fCBvdGhlci51c2VzRmly
c3RMZXR0ZXJSdWxlczsKIH0KQEAgLTI5NCw2ICszMTYsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0
OjpjbGVhcigpCiAgICAgY29udGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5jbGVhcigpOwogICAg
IHNpYmxpbmdSdWxlcy5jbGVhcigpOwogICAgIHVuY29tbW9uQXR0cmlidXRlUnVsZXMuY2xlYXIo
KTsKKyAgICB0YWdSdWxlcy5jbGVhcigpOwogICAgIGNsYXNzUnVsZXMuY2xlYXIoKTsKICAgICBj
bGFzc2VzQWZmZWN0aW5nSG9zdC5jbGVhcigpOwogICAgIGF0dHJpYnV0ZVJ1bGVzLmNsZWFyKCk7
CkBAIC0zMDgsNiArMzMxLDggQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQoKQog
ewogICAgIHNpYmxpbmdSdWxlcy5zaHJpbmtUb0ZpdCgpOwogICAgIHVuY29tbW9uQXR0cmlidXRl
UnVsZXMuc2hyaW5rVG9GaXQoKTsKKyAgICBmb3IgKGF1dG8mIHJ1bGVzIDogdGFnUnVsZXMudmFs
dWVzKCkpCisgICAgICAgIHJ1bGVzLT5zaHJpbmtUb0ZpdCgpOwogICAgIGZvciAoYXV0byYgcnVs
ZXMgOiBjbGFzc1J1bGVzLnZhbHVlcygpKQogICAgICAgICBydWxlcy0+c2hyaW5rVG9GaXQoKTsK
ICAgICBmb3IgKGF1dG8mIHJ1bGVzIDogYXR0cmlidXRlUnVsZXMudmFsdWVzKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZUZlYXR1cmUuaAppbmRleCAzM2JhZTc3OTI2ODcxY2JhYjNlZGY0ZjZiNjcwZDc3
MWU5N2VhNjJmLi5mNDY2YTQxODU2OTgyNjQyZjhmZGYxMmQ2ZGU3OTM3YjU1ZWFmYTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmgKQEAgLTY3LDYgKzY3LDkgQEAgc3RydWN0IFJ1bGVG
ZWF0dXJlU2V0IHsKICAgICB2b2lkIGNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYpOwog
ICAgIHZvaWQgcmVnaXN0ZXJDb250ZW50QXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmKTsKIAor
ICAgIGJvb2wgdXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KSBjb25z
dCAgeyByZXR1cm4gdXNlZE1hdGNoRWxlbWVudHNbc3RhdGljX2Nhc3Q8dWludDhfdD4obWF0Y2hF
bGVtZW50KV07IH0KKyAgICB2b2lkIHNldFVzZXNNYXRjaEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1h
dGNoRWxlbWVudCkgeyB1c2VkTWF0Y2hFbGVtZW50c1tzdGF0aWNfY2FzdDx1aW50OF90PihtYXRj
aEVsZW1lbnQpXSA9IHRydWU7IH0KKwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gaWRzSW5SdWxl
czsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGlkc01hdGNoaW5nQW5jZXN0b3JzSW5SdWxlczsK
ICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZXNJblJ1
bGVzOwpAQCAtNzQsNyArNzcsOCBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVTZXQgewogICAgIEhhc2hT
ZXQ8QXRvbVN0cmluZz4gY29udGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlczsKICAgICBSdWxlRmVh
dHVyZVZlY3RvciBzaWJsaW5nUnVsZXM7CiAgICAgUnVsZUZlYXR1cmVWZWN0b3IgdW5jb21tb25B
dHRyaWJ1dGVSdWxlczsKLSAgICAKKworICAgIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlx
dWVfcHRyPFJ1bGVGZWF0dXJlVmVjdG9yPj4gdGFnUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+PiBjbGFzc1J1bGVzOwogICAg
IEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSdWxlRmVhdHVyZVdp
dGhJbnZhbGlkYXRpb25TZWxlY3Rvcj4+PiBhdHRyaWJ1dGVSdWxlczsKICAgICBIYXNoTWFwPENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZl
Y3Rvcj4sIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25n
RW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNz
UnVsZXM7CkBAIC04Miw2ICs4Niw4IEBAIHN0cnVjdCBSdWxlRmVhdHVyZVNldCB7CiAgICAgSGFz
aFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzQWZmZWN0aW5nSG9zdDsKICAgICBIYXNoU2V0PENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZT4+IHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0OwogCisgICAgc3RkOjphcnJheTxi
b29sLCBtYXRjaEVsZW1lbnRDb3VudD4gdXNlZE1hdGNoRWxlbWVudHM7CisKICAgICBib29sIHVz
ZXNGaXJzdExpbmVSdWxlcyB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VzRmlyc3RMZXR0ZXJSdWxl
cyB7IGZhbHNlIH07CiAKQEAgLTkyLDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2Vs
ZWN0b3JGZWF0dXJlcyB7CiAgICAgICAgIGJvb2wgaGFzU2libGluZ1NlbGVjdG9yIHsgZmFsc2Ug
fTsKIAorICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxlbWVudD4s
IDMyPiB0YWdzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxl
bWVudD4sIDMyPiBjbGFzc2VzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPGNvbnN0IENTU1Nl
bGVjdG9yKiwgTWF0Y2hFbGVtZW50PiwgMzI+IGF0dHJpYnV0ZXM7CiAgICAgICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgTWF0Y2hFbGVtZW50PiwgMzI+
IHBzZXVkb0NsYXNzZXM7CkBAIC05OSw1ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVj
dXJzaXZlbHlDb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYsIGNv
bnN0IENTU1NlbGVjdG9yJiwgTWF0Y2hFbGVtZW50ID0gTWF0Y2hFbGVtZW50OjpTdWJqZWN0KTsK
IH07CiAKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQpOwor
CiB9IC8vIG5hbWVzcGFjZSBTdHlsZQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggM2JmNjQ3YTY3NWUwYzQ1
NzY1NzFhNGQ2NzVmNzBiYTc1NmVhZjliYi4uYzhiYjAyMmUxNjNlYTA0ZTQ0ZDk2Y2M1ODEwZjli
MzVlZTViZDE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1
bGVTZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
Y3BwCkBAIC0yMjAsNiArMjIwLDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xsZWN0RmVhdHVy
ZXMoKSBjb25zdAogICAgIG1fc2libGluZ1J1bGVTZXQgPSBtYWtlUnVsZVNldChtX2ZlYXR1cmVz
LnNpYmxpbmdSdWxlcyk7CiAgICAgbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQgPSBtYWtlUnVs
ZVNldChtX2ZlYXR1cmVzLnVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwogCisgICAgbV90YWdJbnZh
bGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOwogICAgIG1fY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0
cy5jbGVhcigpOwogICAgIG1fYXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsK
ICAgICBtX3BzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKQEAgLTI3Myw2
ICsyNzQsMTEgQEAgc3RhdGljIFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogZW5zdXJlSW52
YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgS2V5VHlwZSYga2UKICAgICB9KS5pdGVyYXRvci0+dmFs
dWUuZ2V0KCk7CiB9CiAKK2NvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVS
dWxlU2V0czo6dGFnSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgdGFnTmFt
ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHModGFnTmFt
ZSwgbV90YWdJbnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy50YWdSdWxlcyk7Cit9CisK
IGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVSdWxlU2V0czo6Y2xhc3NJ
bnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJiBjbGFzc05hbWUpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGVuc3VyZUludmFsaWRhdGlvblJ1bGVTZXRzKGNsYXNzTmFtZSwgbV9jbGFz
c0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLmNsYXNzUnVsZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA0NTRmNWMwNzk0ZDIzOWE3M2Zk
OGEwNTQ1ZjQ1NWU2NzQ5YTcyZDdiLi5lMjViYzExNDdkZjBmMmMxYzU2ZGU5YmVkYzE5YzE0YzJl
YjhmZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNl
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaApAQCAt
NjMsMTAgKzYzLDEzIEBAIHB1YmxpYzoKICAgICBSdWxlU2V0KiBzaWJsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaWJsaW5nUnVsZVNldC5nZXQoKTsgfQogICAgIFJ1bGVTZXQqIHVuY29tbW9uQXR0
cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQuZ2V0KCk7
IH0KIAorICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogdGFnSW52YWxpZGF0
aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgdGFnTmFtZSkgY29uc3Q7CiAgICAgY29uc3Qg
VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBjbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKGNv
bnN0IEF0b21TdHJpbmcmIGNsYXNzTmFtZSkgY29uc3Q7CiAgICAgY29uc3QgVmVjdG9yPEludmFs
aWRhdGlvblJ1bGVTZXQ+KiBhdHRyaWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9t
U3RyaW5nJiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0
aW9uUnVsZVNldD4qIHBzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzVHlwZSkgY29uc3Q7CiAKKyAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9u
UnVsZVNldD4qIGludmFsaWRhdGlvblJ1bGVTZXRzRm9yQ2hpbGRDaGFuZ2UoY29uc3QgRWxlbWVu
dCYpOworCiAgICAgYm9vbCBoYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVBdHRyaWJ1dGUoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0VXNlc1NoYXJlZFVzZXJTdHlsZShib29sIGIpIHsgbV91c2Vz
U2hhcmVkVXNlclN0eWxlID0gYjsgfQpAQCAtOTgsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBt
dXRhYmxlIFJ1bGVGZWF0dXJlU2V0IG1fZmVhdHVyZXM7CiAgICAgbXV0YWJsZSBSZWZQdHI8UnVs
ZVNldD4gbV9zaWJsaW5nUnVsZVNldDsKICAgICBtdXRhYmxlIFJlZlB0cjxSdWxlU2V0PiBtX3Vu
Y29tbW9uQXR0cmlidXRlUnVsZVNldDsKKyAgICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1fdGFnSW52YWxp
ZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2NsYXNzSW52YWxpZGF0aW9u
UnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1
bGVTZXRzOwogICAgIG11dGFibGUgSGFzaE1hcDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
LCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+PiwgSW50SGFzaDxD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gbV9wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1
bGVTZXRzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWEyMGE3MWYzZDY4MjRj
YTFlZTljNzJkZmZkYTFiMzI2ZGE3YTJkZi4uZDJlYzhlMmQ1YmVlMzdlODlmZTkxMDg1ZWYwNjlk
ZjU5MGYzMzYwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjEtMTEtMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAg
ICAgIFs6aGFzKCkgcHNldWRvLWNsYXNzXSBJbnZhbGlkYXRpb24gc3VwcG9ydCBmb3IgYWRkaW5n
IGFuZCByZW1vdmluZyBub2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNvbWUgYWRkaXRpb25hbCBjYXNlcyB0byBhbiBleGlzdGluZyB0ZXN0
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0
aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9u
L2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sOgorCiAyMDIxLTEx
LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBDU1A6IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRv
Y3VtZW50IGFzIHRhcmdldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3It
ZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9h
dHRyaWJ1dGUtb3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0CmluZGV4
IDk0ZjZhN2VjYmExZTExYWJlMzQwM2RkYTU5MDI4ZTlkMTI1ZWE3ZmQuLjc2MjViODJlZTQ0MWRj
ODQyN2I4YjhmZmQxMTUyZTAxOGZmOTQ3NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0
cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
aW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBl
Y3RlZC50eHQKQEAgLTE0LDggKzE0LDIwIEBAIFBBU1Mgc2V0IGRlc2NlbmRhbnQgdG8gI2Rpdl9n
cmFuZGNoaWxkW2F0dHJuYW1lXTogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQQVNTIGNsZWFyICNk
aXZfZ3JhbmRjaGlsZFthdHRybmFtZV06IGRpdiNkaXZfc3ViamVjdC5jb2xvcgogRkFJTCBjaGFu
Z2UgI2Rpdl9ncmFuZGNoaWxkIHRvICNkaXZfZGVzY2VuZGFudDogZGl2I2Rpdl9zdWJqZWN0LmNv
bG9yIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZ2IoMjU1LCAyNTUsIDApIiBidXQgZ290ICJy
Z2IoMTI4LCAxMjgsIDEyOCkiCiBQQVNTIGNoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9n
cmFuZGNoaWxkOiBkaXYjZGl2X3N1YmplY3QuY29sb3IKLUZBSUwgYWRkIGRlc2NlbmRhbnQgdG8g
I2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInJnYigxNTQsIDIwNSwgNTApIiBidXQgZ290ICJyZ2IoMTI4LCAxMjgsIDEyOCkiCitQQVNT
IGFkZCBkZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQ
QVNTIHJlbW92ZSBkZXNjZW5kYW50IGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3Qu
Y29sb3IKLUZBSUwgYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNk
aXZfc3ViamVjdC5jb2xvciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmdiKDE1NCwgMjA1LCA1
MCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgYWRkICJkaXYgPiBkZXNjZW5k
YW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgogUEFTUyByZW1vdmUg
ImRpdiA+IGRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29s
b3IKK1BBU1MgYWRkIGRpdi5jaGlsZCB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5j
b2xvcgorUEFTUyByZW1vdmUgZGl2LmNoaWxkIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1
YmplY3QuY29sb3IKK1BBU1MgYWRkICJkaXYgPiBkaXYuZGVzY2VuZGFudCIgdG8gI2Rpdl9zdWJq
ZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlICJkaXYgPiBkaXYuZGVzY2Vu
ZGFudCIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorRkFJTCBhZGQg
ZGl2I2Rpdl9kZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9y
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZ2IoMjU1LCAyNTUsIDApIiBidXQgZ290ICJyZ2Io
MTI4LCAxMjgsIDEyOCkiCitQQVNTIHJlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2
X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorRkFJTCBhZGQgImRpdiNkaXZfZGVzY2Vu
ZGFudCIgdG8gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInJnYigyNTUsIDI1NSwgMCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4
KSIKK1BBU1MgcmVtb3ZlICJkaXYjZGl2X2Rlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0OiBk
aXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgYWRkIGRpdlthdHRybmFtZV0gdG8gI2Rpdl9zdWJq
ZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlIGRpdlthdHRybmFtZV0gZnJv
bSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBhZGQgImRpdiA+IGRp
dlthdHRybmFtZV0iIHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCitQQVNT
IHJlbW92ZSAiZGl2ID4gZGl2W2F0dHJuYW1lXSIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZf
c3ViamVjdC5jb2xvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1l
bGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUt
b3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMuaHRtbAppbmRleCA0MjU1MjQ2NGM3Y2JmMWU4
ODcyNWY2YzJiMjRkN2ZmODQ3YjgzNjVhLi5kMGVkYjFlNWU0N2E4ZGQwODMxZTI2Y2NmMDNkNDBi
ZmQ4MTM3ZGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50
YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0cmlidXRlLW9y
LWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLmh0bWwKQEAgLTY4LDE3ICs2OCw4MiBAQCBkaXYs
IG1haW4geyBjb2xvcjogZ3JleSB9CiAgIGRpdl9kZXNjZW5kYW50LmlkID0gJ2Rpdl9ncmFuZGNo
aWxkJzsKICAgdGVzdF9kaXYoJ2NoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9ncmFuZGNo
aWxkJywgZGl2X3N1YmplY3QsIGdyZXkpOwogCi0gIGRlc2NlbmRhbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkZXNjZW5kYW50Jyk7Ci0gIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGRlc2Nl
bmRhbnQpOwotICB0ZXN0X2RpdignYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJqZWN0JywgZGl2
X3N1YmplY3QsIHllbGxvd2dyZWVuKTsKLSAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoZGVzY2Vu
ZGFudCk7Ci0gIHRlc3RfZGl2KCdyZW1vdmUgZGVzY2VuZGFudCBmcm9tICNkaXZfc3ViamVjdCcs
IGRpdl9zdWJqZWN0LCBncmV5KTsKLQotICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgZGl2LmFwcGVuZENoaWxkKGRlc2NlbmRhbnQpOwotICBkaXZfc3ViamVjdC5hcHBl
bmRDaGlsZChkaXYpOwotICB0ZXN0X2RpdignYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2
X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVsbG93Z3JlZW4pOwotICBkaXZfc3ViamVjdC5yZW1v
dmVDaGlsZChkaXYpOwotICB0ZXN0X2RpdigncmVtb3ZlICJkaXYgPiBkZXNjZW5kYW50IiBmcm9t
ICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKLQotPC9zY3JpcHQ+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGls
ZChkZXNjZW5kYW50KTsKKyAgICB0ZXN0X2RpdignYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJq
ZWN0JywgZGl2X3N1YmplY3QsIHllbGxvd2dyZWVuKTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVD
aGlsZChkZXNjZW5kYW50KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlIGRlc2NlbmRhbnQgZnJvbSAj
ZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3Qg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29uc3QgZGVzY2VuZGFu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKKyAgICBkaXYuYXBwZW5k
Q2hpbGQoZGVzY2VuZGFudCk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAg
ICB0ZXN0X2RpdignYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZf
c3ViamVjdCwgeWVsbG93Z3JlZW4pOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7
CisgICAgdGVzdF9kaXYoJ3JlbW92ZSAiZGl2ID4gZGVzY2VuZGFudCIgZnJvbSAjZGl2X3N1Ympl
Y3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3QgY2hpbGQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBjaGlsZC5jbGFzc0xpc3QuYWRkKCdj
aGlsZCcpOworICAgIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB0ZXN0X2Rp
dignYWRkIGRpdi5jaGlsZCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgcmVkKTsKKyAg
ICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYoJ3JlbW92ZSBk
aXYuY2hpbGQgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKwor
ICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRlc2NlbmRhbnQuY2xhc3NMaXN0LmFkZCgnZGVzY2VuZGFudCcpOworICAgIGNvbnN0
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5hcHBlbmRDaGls
ZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChkaXYpOworICAgIHRl
c3RfZGl2KCdhZGQgImRpdiA+IGRpdi5kZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZf
c3ViamVjdCwgZ3JlZW4pOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7CisgICAg
dGVzdF9kaXYoJ3JlbW92ZSAiZGl2ID4gZGl2LmRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0
JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAgeworICAgIGNvbnN0IGNoaWxkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY2hpbGQuaWQgPSAnZGl2X2Rlc2NlbmRh
bnQnOworICAgIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB0ZXN0X2Rpdign
YWRkIGRpdiNkaXZfZGVzY2VuZGFudCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVs
bG93KTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYo
J3JlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVj
dCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRlc2NlbmRhbnQuaWQgPSAnZGl2X2Rlc2NlbmRhbnQn
OworICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRp
di5hcHBlbmRDaGlsZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChk
aXYpOworICAgIHRlc3RfZGl2KCdhZGQgImRpdiNkaXZfZGVzY2VuZGFudCIgdG8gI2Rpdl9zdWJq
ZWN0JywgZGl2X3N1YmplY3QsIHllbGxvdyk7CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQo
ZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlICJkaXYjZGl2X2Rlc2NlbmRhbnQiIGZyb20gI2Rp
dl9zdWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAgeworICAgIGNvbnN0IGNo
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY2hpbGQuc2V0QXR0cmli
dXRlKCdhdHRybmFtZScsICdkZXNjZW5kYW50Jyk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hp
bGQoY2hpbGQpOworICAgIHRlc3RfZGl2KCdhZGQgZGl2W2F0dHJuYW1lXSB0byAjZGl2X3N1Ympl
Y3QnLCBkaXZfc3ViamVjdCwgYmx1ZSk7CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoY2hp
bGQpOworICAgIHRlc3RfZGl2KCdyZW1vdmUgZGl2W2F0dHJuYW1lXSBmcm9tICNkaXZfc3ViamVj
dCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKKyAgfQorCisgIHsKKyAgICBjb25zdCBkZXNjZW5kYW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGVzY2VuZGFudC5zZXRBdHRy
aWJ1dGUoJ2F0dHJuYW1lJywgJ2Rlc2NlbmRhbnQnKTsKKyAgICBjb25zdCBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZGVzY2VuZGFudCk7
CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdignYWRkICJk
aXYgPiBkaXZbYXR0cm5hbWVdIiB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgYmx1ZSk7
CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3Zl
ICJkaXYgPiBkaXZbYXR0cm5hbWVdIiBmcm9tICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBn
cmV5KTsKKyAgfQorCis8L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="470261"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445126</attachid>
            <date>2021-11-25 01:43:25 -0800</date>
            <delta_ts>2021-11-25 02:19:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233489-20211125114323.patch</filename>
            <type>text/plain</type>
            <size>27441</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzN2ZmNzgxZTJlODlj
M2UwYzI1ZDBmMTFlYWNlOGMzOGNiYmI5Ny4uZGI4ZjMzYjA4OWIxZWM2NTU0NGQyMDRiNGY1NmVk
Yjk4NmQ3ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTExLTI1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gSW52YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGFkZGluZyBhbmQgcmVtb3Zpbmcgbm9kZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5lZWQg
dG8gaW52YWxpZGF0ZSBzdHlsZSB3aGVuIGFkZGVkIG9yIHJlbW92ZWQgZWxlbWVudHMgbWF0Y2gg
OmhhcygpIGFyZ3VtZW50cy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGFnIG5hbWUgaW52
YWxpZGF0aW9uIHJ1bGVzZXRzIGZvciA6aGFzKCkgY2FzZSwgYWxvbmcgd2l0aCB0aGUgZXhpc3Rp
bmcgY2xhc3MKKyAgICAgICAgYW5kIGF0dHJpYnV0ZSBydWxlc2V0cy4gSXQgaXMgc3RpbGwgbWlz
c2luZyBzdXBwb3J0IGZvciAjaWQgaW52YWxpZGF0aW9uLgorCisgICAgICAgICogc3R5bGUvQ2hp
bGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbik6CisKKyAgICAgICAg
U2VlIGlmIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIHJlbW92
ZWQgYmVmb3JlIHRoZSBtdXRhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjp+Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24pOgorCisgICAgICAg
IFNlZSBpZiB3ZSBuZWVkIHRvIGludmFsaWRhdGUgZm9yIHRoZSBlbGVtZW50cyBiZWluZyBhZGRl
ZCBhZnRlciB0aGUgbXV0YXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDaGlsZENo
YW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KToKKworICAgICAg
ICBGaW5kIHRoZSByZWxldmFudCBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9yIGF0dHJpYnV0ZXMs
IGNsYXNzZXMgYW5kIHRhZ3MgYW5kIGludmFsaWRhdGUgdXNpbmcgdGhlbS4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6Om5lZWRzVHJhdmVyc2FsKToKKworICAgICAgICBXZSBvbmx5IG5lZWQg
dG8gZG8gYW55dGhpbmcgaW4gdGhlIHByZXNlbmNlIG9mIDpoYXMoKSBydWxlcy4KKworICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6Om5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbCk6CisKKyAgICAgICAg
RnVsbCB0cmF2ZXJzYWwgaXMgb25seSBuZWVkZWQgaW4gY2FzZSB0aGVyZSBhcmUgOmhhcygpIHJ1
bGVzIHVzaW5nIGRlc2NlbmRhbnQgY29tYmluYXRvci4KKworICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkNoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjp0cmF2ZXJzZVJlbW92ZWRFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRyYXZlcnNl
QWRkZWRFbGVtZW50cyk6CisgICAgICAgICogc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
aDoKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6aXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZlYXR1cmVzRnJvbVNlbGVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZl
YXR1cmVzKToKKworICAgICAgICBDb2xsZWN0IHRhZyBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9y
IDpoYXMgY2FzZSBvbmx5LgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVT
ZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQp
OgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6UnVsZUZlYXR1cmVTZXQ6OnVzZXNNYXRjaEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVGZWF0dXJlU2V0OjpzZXRVc2VzTWF0Y2hFbGVtZW50KToKKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHdoYXQgc29ydCBvZiBtYXRjaCBlbGVtZW50cyBhcmUgYmVpbmcg
dXNlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjp0YWdJbnZhbGlkYXRpb25S
dWxlU2V0cyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisK
IDIwMjEtMTEtMjMgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZXhwbGljaXQgaW5pdGlhbGl6ZXJfbGlzdCB1c2FnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCmlu
ZGV4IGQ2ZWY4NTMxMjYxNjQ4YTAwY2M5ZWM4MTg3YWY5MmI2NjFjZmUxMWYuLjczY2IwNDliNjk1
ZWI4MTExMmYyMmYzMDRmZDkyZDJmZWY0YzI0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDkgQEAKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiU2xvdEFzc2lnbm1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVk
ZSAiU3R5bGVTY29wZVJ1bGVTZXRzLmgiCisjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFu
dEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpTdHlsZSB7CiAKQEAgLTM4LDcgKzQx
LDEyIEBAIENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbihD
b250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0CiAgICAgLCBtX2lzRW5hYmxlZChtX3BhcmVu
dEVsZW1lbnQgPyBtX3BhcmVudEVsZW1lbnQtPm5lZWRzU3R5bGVJbnZhbGlkYXRpb24oKSA6IGZh
bHNlKQogICAgICwgbV9jaGlsZENoYW5nZShjaGlsZENoYW5nZSkKIHsKLSAgICAvLyBGSVhNRTog
RG8gc21hcnRlciBpbnZhbGlkYXRpb24gc2ltaWxhciB0byBDbGFzc0NoYW5nZUludmFsaWRhdGlv
bi4KKyAgICBpZiAoIW1faXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhbJl0oYXV0byYgY2hhbmdlZEVsZW1lbnQpIHsKKyAgICAgICAgaW52
YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KGNoYW5nZWRFbGVtZW50KTsKKyAgICB9KTsKIH0KIAog
Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFsaWRhdGlvbigpCkBAIC00
Niw5ICs1NCwxMTcgQEAgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFs
aWRhdGlvbigpCiAgICAgaWYgKCFtX2lzRW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
dHJhdmVyc2VBZGRlZEVsZW1lbnRzKFsmXShhdXRvJiBjaGFuZ2VkRWxlbWVudCkgeworICAgICAg
ICBpbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoY2hhbmdlZEVsZW1lbnQpOworICAgIH0pOwor
ICAgIAogICAgIGludmFsaWRhdGVBZnRlckNoYW5nZSgpOwogfQogCit2b2lkIENoaWxkQ2hhbmdl
SW52YWxpZGF0aW9uOjppbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoRWxlbWVudCYgY2hhbmdl
ZEVsZW1lbnQpCit7CisgICAgYXV0byYgcnVsZVNldHMgPSBwYXJlbnRFbGVtZW50KCkuc3R5bGVS
ZXNvbHZlcigpLnJ1bGVTZXRzKCk7CisKKyAgICBJbnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVs
ZVNldHMgbWF0Y2hFbGVtZW50UnVsZVNldHM7CisKKyAgICBhdXRvIGFkZEhhc0ludmFsaWRhdGlv
biA9IFsmXShjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGludmFsaWRhdGlvblJ1
bGVTZXRzKSAgeworICAgICAgICBpZiAoIWludmFsaWRhdGlvblJ1bGVTZXRzKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1bGVTZXQgOiAqaW52
YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgICAgIGlmIChpc0hhc1BzZXVkb0NsYXNzTWF0
Y2hFbGVtZW50KGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAg
ICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtYXRjaEVsZW1lbnRS
dWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNldCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
YXV0byB0YWdOYW1lID0gY2hhbmdlZEVsZW1lbnQubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKKyAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVsZVNldHMudGFnSW52YWxpZGF0
aW9uUnVsZVNldHModGFnTmFtZSkpOworCisgICAgaWYgKGNoYW5nZWRFbGVtZW50Lmhhc0F0dHJp
YnV0ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0ZSA6IGNoYW5nZWRFbGVtZW50
LmF0dHJpYnV0ZXNJdGVyYXRvcigpKSB7CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZU5hbWUg
PSBhdHRyaWJ1dGUubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICAg
ICAgICAgIGFkZEhhc0ludmFsaWRhdGlvbihydWxlU2V0cy5hdHRyaWJ1dGVJbnZhbGlkYXRpb25S
dWxlU2V0cyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoY2hh
bmdlZEVsZW1lbnQuaGFzQ2xhc3MoKSkgeworICAgICAgICBhdXRvIGNvdW50ID0gY2hhbmdlZEVs
ZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBjbGFzc05hbWUgPSBjaGFuZ2VkRWxl
bWVudC5jbGFzc05hbWVzKClbaV07CisgICAgICAgICAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVs
ZVNldHMuY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjbGFzc05hbWUpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIEludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVT
ZXRzKGNoYW5nZWRFbGVtZW50LCBtYXRjaEVsZW1lbnRSdWxlU2V0cyk7Cit9CisKK3N0YXRpYyBi
b29sIG5lZWRzVHJhdmVyc2FsKGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcywgY29uc3Qg
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIGNoaWxkQ2hhbmdlKQoreworICAgIGlmIChmZWF0
dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzQ2hpbGQpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoZmVhdHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1l
bnQ6Okhhc0Rlc2NlbmRhbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmVh
dHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmcpICYmIGNoaWxk
Q2hhbmdlLnByZXZpb3VzU2libGluZ0VsZW1lbnQ7Cit9OworCitzdGF0aWMgYm9vbCBuZWVkc0Rl
c2NlbmRhbnRUcmF2ZXJzYWwoY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKQoreworICAg
IHJldHVybiBmZWF0dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzRGVzY2Vu
ZGFudCk7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFu
Z2VJbnZhbGlkYXRpb246OnRyYXZlcnNlUmVtb3ZlZEVsZW1lbnRzKEZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit7CisgICAgaWYgKG1fY2hpbGRDaGFuZ2UuaXNJbnNlcnRpb24oKSAmJiBtX2NoaWxkQ2hh
bmdlLnR5cGUgIT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OkFsbENoaWxkcmVu
UmVwbGFjZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGZlYXR1cmVzID0gcGFyZW50
RWxlbWVudCgpLnN0eWxlUmVzb2x2ZXIoKS5ydWxlU2V0cygpLmZlYXR1cmVzKCk7CisgICAgaWYg
KCFuZWVkc1RyYXZlcnNhbChmZWF0dXJlcywgbV9jaGlsZENoYW5nZSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGJvb2wgbmVlZHNEZXNjZW5kYW50VHJhdmVyc2FsID0gU3R5bGU6Om5lZWRzRGVz
Y2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcyk7CisKKyAgICBhdXRvKiB0b1JlbW92ZSA9IG1fY2hp
bGRDaGFuZ2UucHJldmlvdXNTaWJsaW5nRWxlbWVudCA/IG1fY2hpbGRDaGFuZ2UucHJldmlvdXNT
aWJsaW5nRWxlbWVudC0+bmV4dEVsZW1lbnRTaWJsaW5nKCkgOiBwYXJlbnRFbGVtZW50KCkuZmly
c3RFbGVtZW50Q2hpbGQoKTsKKyAgICBmb3IgKDsgdG9SZW1vdmUgIT0gbV9jaGlsZENoYW5nZS5u
ZXh0U2libGluZ0VsZW1lbnQ7IHRvUmVtb3ZlID0gdG9SZW1vdmUtPm5leHRFbGVtZW50U2libGlu
ZygpKSB7CisgICAgICAgIGZ1bmN0aW9uKCp0b1JlbW92ZSk7CisKKyAgICAgICAgaWYgKCFuZWVk
c0Rlc2NlbmRhbnRUcmF2ZXJzYWwpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdG9SZW1v
dmUpKQorICAgICAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7CisgICAgfQorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRy
YXZlcnNlQWRkZWRFbGVtZW50cyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQoreworICAgIGlmICghbV9j
aGlsZENoYW5nZS5pc0luc2VydGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBu
ZXdFbGVtZW50ID0gWyZdIHsKKyAgICAgICAgYXV0byogcHJldmlvdXMgPSBtX2NoaWxkQ2hhbmdl
LnByZXZpb3VzU2libGluZ0VsZW1lbnQ7CisgICAgICAgIGF1dG8qIGNhbmRpZGF0ZSA9IHByZXZp
b3VzID8gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnByZXZpb3VzKSA6IEVsZW1lbnRU
cmF2ZXJzYWw6OmZpcnN0Q2hpbGQocGFyZW50RWxlbWVudCgpKTsKKyAgICAgICAgaWYgKGNhbmRp
ZGF0ZSA9PSBtX2NoaWxkQ2hhbmdlLm5leHRTaWJsaW5nRWxlbWVudCkKKyAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgfSgpOwor
CisgICAgaWYgKCFuZXdFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBmZWF0
dXJlcyA9IHBhcmVudEVsZW1lbnQoKS5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5mZWF0dXJl
cygpOworICAgIGlmICghbmVlZHNUcmF2ZXJzYWwoZmVhdHVyZXMsIG1fY2hpbGRDaGFuZ2UpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmdW5jdGlvbigqbmV3RWxlbWVudCk7CisKKyAgICBpZiAo
IW5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KCpu
ZXdFbGVtZW50KSkKKyAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7Cit9CisKIHN0YXRpYyB2
b2lkIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZShFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlm
ICghZWxlbWVudC5zdHlsZUFmZmVjdGVkQnlFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmgKaW5kZXggNjcxMjlkZDQwYTc5ZjY0Y2RiZjJj
NDIwZDhiNDQzMTA4ZmUyZTI3OC4uMTVkM2FkMGE3MWZjZTQyZTMxZjcwN2IxZDkxZDRmMGY4NWVk
MjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlk
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTdHlsZUludmFsaWRhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00MCw2ICs0MSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgaW52YWxpZGF0ZUFmdGVyQ2hhbmdlKCk7CiAgICAgdm9pZCBjaGVja0ZvclNpYmxp
bmdTdHlsZUNoYW5nZXMoKTsKKyAgICB2b2lkIGludmFsaWRhdGVGb3JDaGFuZ2VkRWxlbWVudChF
bGVtZW50Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4gdm9pZCB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhGdW5jdGlvbiYmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dGlvbj4gdm9pZCB0cmF2ZXJzZUFkZGVkRWxlbWVudHMoRnVuY3Rpb24mJik7CiAKICAgICBFbGVt
ZW50JiBwYXJlbnRFbGVtZW50KCkgeyByZXR1cm4gKm1fcGFyZW50RWxlbWVudDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKaW5kZXggZmIxOGRlMzVjNDQ0ZGQxMTI3NmZlODAx
MmMyNWNkODgxOGFmNDU0Yi4uYzU2N2FkMjAxNTkyNjY1NDdjM2I2ZTU3ZDhjOWFiNDFhZTI2ODNh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcApAQCAtNTgsNyArNTgsNyBAQCBz
dGF0aWMgYm9vbCBpc1NpYmxpbmdPclN1YmplY3QoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzSGFzUHNldWRvQ2xhc3NNYXRj
aEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFz
c01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KQogewogICAgIHN3aXRjaCAo
bWF0Y2hFbGVtZW50KSB7CiAgICAgY2FzZSBNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmc6CkBAIC0x
NzIsNyArMTcyLDEwIEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZl
YXR1cmVzRnJvbVNlbGVjdG9yKFNlbGVjdG9yRmVhdHVyZXMmIHNlCiAgICAgICAgICAgICAgICAg
aWRzTWF0Y2hpbmdBbmNlc3RvcnNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQog
ICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5jbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzZWxlY3Rvci0+dmFsdWUoKSwgbWF0Y2hFbGVtZW50KSk7Ci0gICAgICAgIGVsc2UgaWYgKHNl
bGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpIHsKKyAgICAgICAgZWxzZSBpZiAoc2VsZWN0
b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlRhZykgeworICAgICAgICAgICAgaWYgKGlzSGFz
UHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQobWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAgICAgICBz
ZWxlY3RvckZlYXR1cmVzLnRhZ3MuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHNlbGVjdG9yLT50YWdM
b3dlcmNhc2VMb2NhbE5hbWUoKSwgbWF0Y2hFbGVtZW50KSk7CisgICAgICAgIH0gZWxzZSBpZiAo
c2VsZWN0b3ItPmlzQXR0cmlidXRlU2VsZWN0b3IoKSkgewogICAgICAgICAgICAgYXV0byYgY2Fu
b25pY2FsTG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZSgp
OwogICAgICAgICAgICAgYXV0byYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxv
Y2FsTmFtZSgpOwogICAgICAgICAgICAgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lc0luUnVs
ZXMuYWRkKGNhbm9uaWNhbExvY2FsTmFtZSk7CkBAIC0yMTksMTIgKzIyMiwxOSBAQCB2b2lkIFJ1
bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQog
ICAgIGlmIChydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKICAg
ICAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmQoeyBydWxlRGF0YSB9KTsKIAorICAg
IGZvciAoYXV0byYgbmFtZUFuZE1hdGNoIDogc2VsZWN0b3JGZWF0dXJlcy50YWdzKSB7CisgICAg
ICAgIHRhZ1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKKyAgICAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOworICAgICAgICB9KS5pdGVy
YXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vjb25kIH0pOwor
ICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG5hbWVBbmRNYXRjaC5zZWNvbmQpOworICAgIH0K
ICAgICBmb3IgKGF1dG8mIG5hbWVBbmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMuY2xhc3Nlcykg
ewogICAgICAgICBjbGFzc1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwogICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vj
b25kIH0pOwogICAgICAgICBpZiAobmFtZUFuZE1hdGNoLnNlY29uZCA9PSBNYXRjaEVsZW1lbnQ6
Okhvc3QpCiAgICAgICAgICAgICBjbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQobmFtZUFuZE1hdGNo
LmZpcnN0KTsKKyAgICAgICAgc2V0VXNlc01hdGNoRWxlbWVudChuYW1lQW5kTWF0Y2guc2Vjb25k
KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBzZWxlY3RvckFuZE1hdGNoIDogc2VsZWN0b3JGZWF0
dXJlcy5hdHRyaWJ1dGVzKSB7CiAgICAgICAgIGF1dG8qIHNlbGVjdG9yID0gc2VsZWN0b3JBbmRN
YXRjaC5maXJzdDsKQEAgLTIzNCw2ICsyNDQsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpjb2xs
ZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogICAgICAgICB9KS5pdGVyYXRv
ci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBtYXRjaEVsZW1lbnQsIHNlbGVjdG9yIH0pOwog
ICAgICAgICBpZiAobWF0Y2hFbGVtZW50ID09IE1hdGNoRWxlbWVudDo6SG9zdCkKICAgICAgICAg
ICAgIGF0dHJpYnV0ZXNBZmZlY3RpbmdIb3N0LmFkZChzZWxlY3Rvci0+YXR0cmlidXRlKCkubG9j
YWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CisgICAgICAgIHNldFVzZXNNYXRj
aEVsZW1lbnQobWF0Y2hFbGVtZW50KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBrZXlBbmRNYXRj
aCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3NlcykgewogICAgICAgICBwc2V1ZG9DbGFz
c1J1bGVzLmVuc3VyZShrZXlBbmRNYXRjaC5maXJzdCwgW10gewpAQCAtMjQxLDYgKzI1Miw3IEBA
IHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYgcnVs
ZURhdGEpCiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kKHsgcnVsZURhdGEsIGtl
eUFuZE1hdGNoLnNlY29uZCB9KTsKICAgICAgICAgaWYgKGtleUFuZE1hdGNoLnNlY29uZCA9PSBN
YXRjaEVsZW1lbnQ6Okhvc3QpCiAgICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9z
dC5hZGQoa2V5QW5kTWF0Y2guZmlyc3QpOworICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KGtl
eUFuZE1hdGNoLnNlY29uZCk7CiAgICAgfQogfQogCkBAIC0yNTMsNiArMjY1LDEzIEBAIHZvaWQg
UnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNldCYgb3RoZXIpCiAgICAgY29u
dGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5hZGQob3RoZXIuY29udGVudEF0dHJpYnV0ZU5hbWVz
SW5SdWxlcy5iZWdpbigpLCBvdGhlci5jb250ZW50QXR0cmlidXRlTmFtZXNJblJ1bGVzLmVuZCgp
KTsKICAgICBzaWJsaW5nUnVsZXMuYXBwZW5kVmVjdG9yKG90aGVyLnNpYmxpbmdSdWxlcyk7CiAg
ICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmRWZWN0b3Iob3RoZXIudW5jb21tb25BdHRy
aWJ1dGVSdWxlcyk7CisKKyAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6IG90aGVyLnRhZ1J1
bGVzKSB7CisgICAgICAgIHRhZ1J1bGVzLmVuc3VyZShrZXlWYWx1ZVBhaXIua2V5LCBbXSB7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSdWxlRmVhdHVyZVZlY3Rvcj4oKTsKKyAgICAg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZhbHVlUGFpci52YWx1ZSk7
CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIgOiBvdGhlci5jbGFzc1J1bGVz
KSB7CiAgICAgICAgIGNsYXNzUnVsZXMuZW5zdXJlKGtleVZhbHVlUGFpci5rZXksIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwpAQCAtMjc0
LDYgKzI5Myw5IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNl
dCYgb3RoZXIpCiAgICAgfQogICAgIHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmFkZChvdGhl
ci5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5iZWdpbigpLCBvdGhlci5wc2V1ZG9DbGFzc2Vz
QWZmZWN0aW5nSG9zdC5lbmQoKSk7CiAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRN
YXRjaEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICB1c2VkTWF0Y2hFbGVtZW50c1tpXSB8
PSBvdGhlci51c2VkTWF0Y2hFbGVtZW50c1tpXTsKKwogICAgIHVzZXNGaXJzdExpbmVSdWxlcyA9
IHVzZXNGaXJzdExpbmVSdWxlcyB8fCBvdGhlci51c2VzRmlyc3RMaW5lUnVsZXM7CiAgICAgdXNl
c0ZpcnN0TGV0dGVyUnVsZXMgPSB1c2VzRmlyc3RMZXR0ZXJSdWxlcyB8fCBvdGhlci51c2VzRmly
c3RMZXR0ZXJSdWxlczsKIH0KQEAgLTI5NCw2ICszMTYsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0
OjpjbGVhcigpCiAgICAgY29udGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5jbGVhcigpOwogICAg
IHNpYmxpbmdSdWxlcy5jbGVhcigpOwogICAgIHVuY29tbW9uQXR0cmlidXRlUnVsZXMuY2xlYXIo
KTsKKyAgICB0YWdSdWxlcy5jbGVhcigpOwogICAgIGNsYXNzUnVsZXMuY2xlYXIoKTsKICAgICBj
bGFzc2VzQWZmZWN0aW5nSG9zdC5jbGVhcigpOwogICAgIGF0dHJpYnV0ZVJ1bGVzLmNsZWFyKCk7
CkBAIC0zMDgsNiArMzMxLDggQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQoKQog
ewogICAgIHNpYmxpbmdSdWxlcy5zaHJpbmtUb0ZpdCgpOwogICAgIHVuY29tbW9uQXR0cmlidXRl
UnVsZXMuc2hyaW5rVG9GaXQoKTsKKyAgICBmb3IgKGF1dG8mIHJ1bGVzIDogdGFnUnVsZXMudmFs
dWVzKCkpCisgICAgICAgIHJ1bGVzLT5zaHJpbmtUb0ZpdCgpOwogICAgIGZvciAoYXV0byYgcnVs
ZXMgOiBjbGFzc1J1bGVzLnZhbHVlcygpKQogICAgICAgICBydWxlcy0+c2hyaW5rVG9GaXQoKTsK
ICAgICBmb3IgKGF1dG8mIHJ1bGVzIDogYXR0cmlidXRlUnVsZXMudmFsdWVzKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZUZlYXR1cmUuaAppbmRleCAzM2JhZTc3OTI2ODcxY2JhYjNlZGY0ZjZiNjcwZDc3
MWU5N2VhNjJmLi5mNDY2YTQxODU2OTgyNjQyZjhmZGYxMmQ2ZGU3OTM3YjU1ZWFmYTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmgKQEAgLTY3LDYgKzY3LDkgQEAgc3RydWN0IFJ1bGVG
ZWF0dXJlU2V0IHsKICAgICB2b2lkIGNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYpOwog
ICAgIHZvaWQgcmVnaXN0ZXJDb250ZW50QXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmKTsKIAor
ICAgIGJvb2wgdXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KSBjb25z
dCAgeyByZXR1cm4gdXNlZE1hdGNoRWxlbWVudHNbc3RhdGljX2Nhc3Q8dWludDhfdD4obWF0Y2hF
bGVtZW50KV07IH0KKyAgICB2b2lkIHNldFVzZXNNYXRjaEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1h
dGNoRWxlbWVudCkgeyB1c2VkTWF0Y2hFbGVtZW50c1tzdGF0aWNfY2FzdDx1aW50OF90PihtYXRj
aEVsZW1lbnQpXSA9IHRydWU7IH0KKwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gaWRzSW5SdWxl
czsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGlkc01hdGNoaW5nQW5jZXN0b3JzSW5SdWxlczsK
ICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZXNJblJ1
bGVzOwpAQCAtNzQsNyArNzcsOCBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVTZXQgewogICAgIEhhc2hT
ZXQ8QXRvbVN0cmluZz4gY29udGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlczsKICAgICBSdWxlRmVh
dHVyZVZlY3RvciBzaWJsaW5nUnVsZXM7CiAgICAgUnVsZUZlYXR1cmVWZWN0b3IgdW5jb21tb25B
dHRyaWJ1dGVSdWxlczsKLSAgICAKKworICAgIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlx
dWVfcHRyPFJ1bGVGZWF0dXJlVmVjdG9yPj4gdGFnUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+PiBjbGFzc1J1bGVzOwogICAg
IEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSdWxlRmVhdHVyZVdp
dGhJbnZhbGlkYXRpb25TZWxlY3Rvcj4+PiBhdHRyaWJ1dGVSdWxlczsKICAgICBIYXNoTWFwPENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZl
Y3Rvcj4sIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25n
RW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNz
UnVsZXM7CkBAIC04Miw2ICs4Niw4IEBAIHN0cnVjdCBSdWxlRmVhdHVyZVNldCB7CiAgICAgSGFz
aFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzQWZmZWN0aW5nSG9zdDsKICAgICBIYXNoU2V0PENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZT4+IHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0OwogCisgICAgc3RkOjphcnJheTxi
b29sLCBtYXRjaEVsZW1lbnRDb3VudD4gdXNlZE1hdGNoRWxlbWVudHM7CisKICAgICBib29sIHVz
ZXNGaXJzdExpbmVSdWxlcyB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VzRmlyc3RMZXR0ZXJSdWxl
cyB7IGZhbHNlIH07CiAKQEAgLTkyLDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2Vs
ZWN0b3JGZWF0dXJlcyB7CiAgICAgICAgIGJvb2wgaGFzU2libGluZ1NlbGVjdG9yIHsgZmFsc2Ug
fTsKIAorICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxlbWVudD4s
IDMyPiB0YWdzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxl
bWVudD4sIDMyPiBjbGFzc2VzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPGNvbnN0IENTU1Nl
bGVjdG9yKiwgTWF0Y2hFbGVtZW50PiwgMzI+IGF0dHJpYnV0ZXM7CiAgICAgICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgTWF0Y2hFbGVtZW50PiwgMzI+
IHBzZXVkb0NsYXNzZXM7CkBAIC05OSw1ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVj
dXJzaXZlbHlDb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYsIGNv
bnN0IENTU1NlbGVjdG9yJiwgTWF0Y2hFbGVtZW50ID0gTWF0Y2hFbGVtZW50OjpTdWJqZWN0KTsK
IH07CiAKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQpOwor
CiB9IC8vIG5hbWVzcGFjZSBTdHlsZQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggM2JmNjQ3YTY3NWUwYzQ1
NzY1NzFhNGQ2NzVmNzBiYTc1NmVhZjliYi4uYzhiYjAyMmUxNjNlYTA0ZTQ0ZDk2Y2M1ODEwZjli
MzVlZTViZDE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1
bGVTZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
Y3BwCkBAIC0yMjAsNiArMjIwLDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xsZWN0RmVhdHVy
ZXMoKSBjb25zdAogICAgIG1fc2libGluZ1J1bGVTZXQgPSBtYWtlUnVsZVNldChtX2ZlYXR1cmVz
LnNpYmxpbmdSdWxlcyk7CiAgICAgbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQgPSBtYWtlUnVs
ZVNldChtX2ZlYXR1cmVzLnVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwogCisgICAgbV90YWdJbnZh
bGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOwogICAgIG1fY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0
cy5jbGVhcigpOwogICAgIG1fYXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsK
ICAgICBtX3BzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKQEAgLTI3Myw2
ICsyNzQsMTEgQEAgc3RhdGljIFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogZW5zdXJlSW52
YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgS2V5VHlwZSYga2UKICAgICB9KS5pdGVyYXRvci0+dmFs
dWUuZ2V0KCk7CiB9CiAKK2NvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVS
dWxlU2V0czo6dGFnSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgdGFnTmFt
ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHModGFnTmFt
ZSwgbV90YWdJbnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy50YWdSdWxlcyk7Cit9CisK
IGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVSdWxlU2V0czo6Y2xhc3NJ
bnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJiBjbGFzc05hbWUpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGVuc3VyZUludmFsaWRhdGlvblJ1bGVTZXRzKGNsYXNzTmFtZSwgbV9jbGFz
c0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLmNsYXNzUnVsZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA0NTRmNWMwNzk0ZDIzOWE3M2Zk
OGEwNTQ1ZjQ1NWU2NzQ5YTcyZDdiLi5lMjViYzExNDdkZjBmMmMxYzU2ZGU5YmVkYzE5YzE0YzJl
YjhmZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNl
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaApAQCAt
NjMsMTAgKzYzLDEzIEBAIHB1YmxpYzoKICAgICBSdWxlU2V0KiBzaWJsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaWJsaW5nUnVsZVNldC5nZXQoKTsgfQogICAgIFJ1bGVTZXQqIHVuY29tbW9uQXR0
cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQuZ2V0KCk7
IH0KIAorICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogdGFnSW52YWxpZGF0
aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgdGFnTmFtZSkgY29uc3Q7CiAgICAgY29uc3Qg
VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBjbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKGNv
bnN0IEF0b21TdHJpbmcmIGNsYXNzTmFtZSkgY29uc3Q7CiAgICAgY29uc3QgVmVjdG9yPEludmFs
aWRhdGlvblJ1bGVTZXQ+KiBhdHRyaWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9t
U3RyaW5nJiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0
aW9uUnVsZVNldD4qIHBzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzVHlwZSkgY29uc3Q7CiAKKyAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9u
UnVsZVNldD4qIGludmFsaWRhdGlvblJ1bGVTZXRzRm9yQ2hpbGRDaGFuZ2UoY29uc3QgRWxlbWVu
dCYpOworCiAgICAgYm9vbCBoYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVBdHRyaWJ1dGUoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0VXNlc1NoYXJlZFVzZXJTdHlsZShib29sIGIpIHsgbV91c2Vz
U2hhcmVkVXNlclN0eWxlID0gYjsgfQpAQCAtOTgsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBt
dXRhYmxlIFJ1bGVGZWF0dXJlU2V0IG1fZmVhdHVyZXM7CiAgICAgbXV0YWJsZSBSZWZQdHI8UnVs
ZVNldD4gbV9zaWJsaW5nUnVsZVNldDsKICAgICBtdXRhYmxlIFJlZlB0cjxSdWxlU2V0PiBtX3Vu
Y29tbW9uQXR0cmlidXRlUnVsZVNldDsKKyAgICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1fdGFnSW52YWxp
ZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2NsYXNzSW52YWxpZGF0aW9u
UnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1
bGVTZXRzOwogICAgIG11dGFibGUgSGFzaE1hcDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
LCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+PiwgSW50SGFzaDxD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gbV9wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1
bGVTZXRzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWEyMGE3MWYzZDY4MjRj
YTFlZTljNzJkZmZkYTFiMzI2ZGE3YTJkZi4uZDJlYzhlMmQ1YmVlMzdlODlmZTkxMDg1ZWYwNjlk
ZjU5MGYzMzYwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjEtMTEtMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAg
ICAgIFs6aGFzKCkgcHNldWRvLWNsYXNzXSBJbnZhbGlkYXRpb24gc3VwcG9ydCBmb3IgYWRkaW5n
IGFuZCByZW1vdmluZyBub2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNvbWUgYWRkaXRpb25hbCBjYXNlcyB0byBhbiBleGlzdGluZyB0ZXN0
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0
aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9u
L2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sOgorCiAyMDIxLTEx
LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBDU1A6IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRv
Y3VtZW50IGFzIHRhcmdldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3It
ZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9h
dHRyaWJ1dGUtb3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0CmluZGV4
IDk0ZjZhN2VjYmExZTExYWJlMzQwM2RkYTU5MDI4ZTlkMTI1ZWE3ZmQuLjc2MjViODJlZTQ0MWRj
ODQyN2I4YjhmZmQxMTUyZTAxOGZmOTQ3NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0
cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
aW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBl
Y3RlZC50eHQKQEAgLTE0LDggKzE0LDIwIEBAIFBBU1Mgc2V0IGRlc2NlbmRhbnQgdG8gI2Rpdl9n
cmFuZGNoaWxkW2F0dHJuYW1lXTogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQQVNTIGNsZWFyICNk
aXZfZ3JhbmRjaGlsZFthdHRybmFtZV06IGRpdiNkaXZfc3ViamVjdC5jb2xvcgogRkFJTCBjaGFu
Z2UgI2Rpdl9ncmFuZGNoaWxkIHRvICNkaXZfZGVzY2VuZGFudDogZGl2I2Rpdl9zdWJqZWN0LmNv
bG9yIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZ2IoMjU1LCAyNTUsIDApIiBidXQgZ290ICJy
Z2IoMTI4LCAxMjgsIDEyOCkiCiBQQVNTIGNoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9n
cmFuZGNoaWxkOiBkaXYjZGl2X3N1YmplY3QuY29sb3IKLUZBSUwgYWRkIGRlc2NlbmRhbnQgdG8g
I2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInJnYigxNTQsIDIwNSwgNTApIiBidXQgZ290ICJyZ2IoMTI4LCAxMjgsIDEyOCkiCitQQVNT
IGFkZCBkZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQ
QVNTIHJlbW92ZSBkZXNjZW5kYW50IGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3Qu
Y29sb3IKLUZBSUwgYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNk
aXZfc3ViamVjdC5jb2xvciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmdiKDE1NCwgMjA1LCA1
MCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgYWRkICJkaXYgPiBkZXNjZW5k
YW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgogUEFTUyByZW1vdmUg
ImRpdiA+IGRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29s
b3IKK1BBU1MgYWRkIGRpdi5jaGlsZCB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5j
b2xvcgorUEFTUyByZW1vdmUgZGl2LmNoaWxkIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1
YmplY3QuY29sb3IKK1BBU1MgYWRkICJkaXYgPiBkaXYuZGVzY2VuZGFudCIgdG8gI2Rpdl9zdWJq
ZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlICJkaXYgPiBkaXYuZGVzY2Vu
ZGFudCIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorRkFJTCBhZGQg
ZGl2I2Rpdl9kZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9y
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZ2IoMjU1LCAyNTUsIDApIiBidXQgZ290ICJyZ2Io
MTI4LCAxMjgsIDEyOCkiCitQQVNTIHJlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2
X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorRkFJTCBhZGQgImRpdiNkaXZfZGVzY2Vu
ZGFudCIgdG8gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInJnYigyNTUsIDI1NSwgMCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4
KSIKK1BBU1MgcmVtb3ZlICJkaXYjZGl2X2Rlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0OiBk
aXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgYWRkIGRpdlthdHRybmFtZV0gdG8gI2Rpdl9zdWJq
ZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlIGRpdlthdHRybmFtZV0gZnJv
bSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBhZGQgImRpdiA+IGRp
dlthdHRybmFtZV0iIHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCitQQVNT
IHJlbW92ZSAiZGl2ID4gZGl2W2F0dHJuYW1lXSIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZf
c3ViamVjdC5jb2xvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1l
bGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUt
b3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMuaHRtbAppbmRleCA0MjU1MjQ2NGM3Y2JmMWU4
ODcyNWY2YzJiMjRkN2ZmODQ3YjgzNjVhLi5kMGVkYjFlNWU0N2E4ZGQwODMxZTI2Y2NmMDNkNDBi
ZmQ4MTM3ZGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50
YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0cmlidXRlLW9y
LWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLmh0bWwKQEAgLTY4LDE3ICs2OCw4MiBAQCBkaXYs
IG1haW4geyBjb2xvcjogZ3JleSB9CiAgIGRpdl9kZXNjZW5kYW50LmlkID0gJ2Rpdl9ncmFuZGNo
aWxkJzsKICAgdGVzdF9kaXYoJ2NoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9ncmFuZGNo
aWxkJywgZGl2X3N1YmplY3QsIGdyZXkpOwogCi0gIGRlc2NlbmRhbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkZXNjZW5kYW50Jyk7Ci0gIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGRlc2Nl
bmRhbnQpOwotICB0ZXN0X2RpdignYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJqZWN0JywgZGl2
X3N1YmplY3QsIHllbGxvd2dyZWVuKTsKLSAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoZGVzY2Vu
ZGFudCk7Ci0gIHRlc3RfZGl2KCdyZW1vdmUgZGVzY2VuZGFudCBmcm9tICNkaXZfc3ViamVjdCcs
IGRpdl9zdWJqZWN0LCBncmV5KTsKLQotICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgZGl2LmFwcGVuZENoaWxkKGRlc2NlbmRhbnQpOwotICBkaXZfc3ViamVjdC5hcHBl
bmRDaGlsZChkaXYpOwotICB0ZXN0X2RpdignYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2
X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVsbG93Z3JlZW4pOwotICBkaXZfc3ViamVjdC5yZW1v
dmVDaGlsZChkaXYpOwotICB0ZXN0X2RpdigncmVtb3ZlICJkaXYgPiBkZXNjZW5kYW50IiBmcm9t
ICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKLQotPC9zY3JpcHQ+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGls
ZChkZXNjZW5kYW50KTsKKyAgICB0ZXN0X2RpdignYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJq
ZWN0JywgZGl2X3N1YmplY3QsIHllbGxvd2dyZWVuKTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVD
aGlsZChkZXNjZW5kYW50KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlIGRlc2NlbmRhbnQgZnJvbSAj
ZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3Qg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29uc3QgZGVzY2VuZGFu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKKyAgICBkaXYuYXBwZW5k
Q2hpbGQoZGVzY2VuZGFudCk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAg
ICB0ZXN0X2RpdignYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZf
c3ViamVjdCwgeWVsbG93Z3JlZW4pOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7
CisgICAgdGVzdF9kaXYoJ3JlbW92ZSAiZGl2ID4gZGVzY2VuZGFudCIgZnJvbSAjZGl2X3N1Ympl
Y3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3QgY2hpbGQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBjaGlsZC5jbGFzc0xpc3QuYWRkKCdj
aGlsZCcpOworICAgIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB0ZXN0X2Rp
dignYWRkIGRpdi5jaGlsZCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgcmVkKTsKKyAg
ICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYoJ3JlbW92ZSBk
aXYuY2hpbGQgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKwor
ICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRlc2NlbmRhbnQuY2xhc3NMaXN0LmFkZCgnZGVzY2VuZGFudCcpOworICAgIGNvbnN0
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5hcHBlbmRDaGls
ZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChkaXYpOworICAgIHRl
c3RfZGl2KCdhZGQgImRpdiA+IGRpdi5kZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZf
c3ViamVjdCwgZ3JlZW4pOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7CisgICAg
dGVzdF9kaXYoJ3JlbW92ZSAiZGl2ID4gZGl2LmRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0
JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAgeworICAgIGNvbnN0IGNoaWxkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY2hpbGQuaWQgPSAnZGl2X2Rlc2NlbmRh
bnQnOworICAgIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB0ZXN0X2Rpdign
YWRkIGRpdiNkaXZfZGVzY2VuZGFudCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVs
bG93KTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYo
J3JlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVj
dCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRlc2NlbmRhbnQuaWQgPSAnZGl2X2Rlc2NlbmRhbnQn
OworICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRp
di5hcHBlbmRDaGlsZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChk
aXYpOworICAgIHRlc3RfZGl2KCdhZGQgImRpdiNkaXZfZGVzY2VuZGFudCIgdG8gI2Rpdl9zdWJq
ZWN0JywgZGl2X3N1YmplY3QsIHllbGxvdyk7CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQo
ZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlICJkaXYjZGl2X2Rlc2NlbmRhbnQiIGZyb20gI2Rp
dl9zdWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAgeworICAgIGNvbnN0IGNo
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY2hpbGQuc2V0QXR0cmli
dXRlKCdhdHRybmFtZScsICdkZXNjZW5kYW50Jyk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hp
bGQoY2hpbGQpOworICAgIHRlc3RfZGl2KCdhZGQgZGl2W2F0dHJuYW1lXSB0byAjZGl2X3N1Ympl
Y3QnLCBkaXZfc3ViamVjdCwgYmx1ZSk7CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoY2hp
bGQpOworICAgIHRlc3RfZGl2KCdyZW1vdmUgZGl2W2F0dHJuYW1lXSBmcm9tICNkaXZfc3ViamVj
dCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKKyAgfQorCisgIHsKKyAgICBjb25zdCBkZXNjZW5kYW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGVzY2VuZGFudC5zZXRBdHRy
aWJ1dGUoJ2F0dHJuYW1lJywgJ2Rlc2NlbmRhbnQnKTsKKyAgICBjb25zdCBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZGVzY2VuZGFudCk7
CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdignYWRkICJk
aXYgPiBkaXZbYXR0cm5hbWVdIiB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgYmx1ZSk7
CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3Zl
ICJkaXYgPiBkaXZbYXR0cm5hbWVdIiBmcm9tICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBn
cmV5KTsKKyAgfQorCis8L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="470262"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445127</attachid>
            <date>2021-11-25 02:06:15 -0800</date>
            <delta_ts>2021-11-25 04:01:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233489-20211125120613.patch</filename>
            <type>text/plain</type>
            <size>27441</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzN2ZmNzgxZTJlODlj
M2UwYzI1ZDBmMTFlYWNlOGMzOGNiYmI5Ny4uZGI4ZjMzYjA4OWIxZWM2NTU0NGQyMDRiNGY1NmVk
Yjk4NmQ3ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTExLTI1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gSW52YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGFkZGluZyBhbmQgcmVtb3Zpbmcgbm9kZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5lZWQg
dG8gaW52YWxpZGF0ZSBzdHlsZSB3aGVuIGFkZGVkIG9yIHJlbW92ZWQgZWxlbWVudHMgbWF0Y2gg
OmhhcygpIGFyZ3VtZW50cy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGFnIG5hbWUgaW52
YWxpZGF0aW9uIHJ1bGVzZXRzIGZvciA6aGFzKCkgY2FzZSwgYWxvbmcgd2l0aCB0aGUgZXhpc3Rp
bmcgY2xhc3MKKyAgICAgICAgYW5kIGF0dHJpYnV0ZSBydWxlc2V0cy4gSXQgaXMgc3RpbGwgbWlz
c2luZyBzdXBwb3J0IGZvciAjaWQgaW52YWxpZGF0aW9uLgorCisgICAgICAgICogc3R5bGUvQ2hp
bGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbik6CisKKyAgICAgICAg
U2VlIGlmIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIHJlbW92
ZWQgYmVmb3JlIHRoZSBtdXRhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjp+Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24pOgorCisgICAgICAg
IFNlZSBpZiB3ZSBuZWVkIHRvIGludmFsaWRhdGUgZm9yIHRoZSBlbGVtZW50cyBiZWluZyBhZGRl
ZCBhZnRlciB0aGUgbXV0YXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDaGlsZENo
YW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KToKKworICAgICAg
ICBGaW5kIHRoZSByZWxldmFudCBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9yIGF0dHJpYnV0ZXMs
IGNsYXNzZXMgYW5kIHRhZ3MgYW5kIGludmFsaWRhdGUgdXNpbmcgdGhlbS4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6Om5lZWRzVHJhdmVyc2FsKToKKworICAgICAgICBXZSBvbmx5IG5lZWQg
dG8gZG8gYW55dGhpbmcgaW4gdGhlIHByZXNlbmNlIG9mIDpoYXMoKSBydWxlcy4KKworICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6Om5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbCk6CisKKyAgICAgICAg
RnVsbCB0cmF2ZXJzYWwgaXMgb25seSBuZWVkZWQgaW4gY2FzZSB0aGVyZSBhcmUgOmhhcygpIHJ1
bGVzIHVzaW5nIGRlc2NlbmRhbnQgY29tYmluYXRvci4KKworICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkNoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjp0cmF2ZXJzZVJlbW92ZWRFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRyYXZlcnNl
QWRkZWRFbGVtZW50cyk6CisgICAgICAgICogc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
aDoKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6aXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZlYXR1cmVzRnJvbVNlbGVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZl
YXR1cmVzKToKKworICAgICAgICBDb2xsZWN0IHRhZyBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9y
IDpoYXMgY2FzZSBvbmx5LgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVT
ZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQp
OgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6UnVsZUZlYXR1cmVTZXQ6OnVzZXNNYXRjaEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVGZWF0dXJlU2V0OjpzZXRVc2VzTWF0Y2hFbGVtZW50KToKKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHdoYXQgc29ydCBvZiBtYXRjaCBlbGVtZW50cyBhcmUgYmVpbmcg
dXNlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjp0YWdJbnZhbGlkYXRpb25S
dWxlU2V0cyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisK
IDIwMjEtMTEtMjMgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZXhwbGljaXQgaW5pdGlhbGl6ZXJfbGlzdCB1c2FnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCmlu
ZGV4IGQ2ZWY4NTMxMjYxNjQ4YTAwY2M5ZWM4MTg3YWY5MmI2NjFjZmUxMWYuLjczY2IwNDliNjk1
ZWI4MTExMmYyMmYzMDRmZDkyZDJmZWY0YzI0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDkgQEAKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiU2xvdEFzc2lnbm1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVk
ZSAiU3R5bGVTY29wZVJ1bGVTZXRzLmgiCisjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFu
dEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpTdHlsZSB7CiAKQEAgLTM4LDcgKzQx
LDEyIEBAIENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbihD
b250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0CiAgICAgLCBtX2lzRW5hYmxlZChtX3BhcmVu
dEVsZW1lbnQgPyBtX3BhcmVudEVsZW1lbnQtPm5lZWRzU3R5bGVJbnZhbGlkYXRpb24oKSA6IGZh
bHNlKQogICAgICwgbV9jaGlsZENoYW5nZShjaGlsZENoYW5nZSkKIHsKLSAgICAvLyBGSVhNRTog
RG8gc21hcnRlciBpbnZhbGlkYXRpb24gc2ltaWxhciB0byBDbGFzc0NoYW5nZUludmFsaWRhdGlv
bi4KKyAgICBpZiAoIW1faXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhbJl0oYXV0byYgY2hhbmdlZEVsZW1lbnQpIHsKKyAgICAgICAgaW52
YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KGNoYW5nZWRFbGVtZW50KTsKKyAgICB9KTsKIH0KIAog
Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFsaWRhdGlvbigpCkBAIC00
Niw5ICs1NCwxMTcgQEAgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFs
aWRhdGlvbigpCiAgICAgaWYgKCFtX2lzRW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
dHJhdmVyc2VBZGRlZEVsZW1lbnRzKFsmXShhdXRvJiBjaGFuZ2VkRWxlbWVudCkgeworICAgICAg
ICBpbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoY2hhbmdlZEVsZW1lbnQpOworICAgIH0pOwor
ICAgIAogICAgIGludmFsaWRhdGVBZnRlckNoYW5nZSgpOwogfQogCit2b2lkIENoaWxkQ2hhbmdl
SW52YWxpZGF0aW9uOjppbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoRWxlbWVudCYgY2hhbmdl
ZEVsZW1lbnQpCit7CisgICAgYXV0byYgcnVsZVNldHMgPSBwYXJlbnRFbGVtZW50KCkuc3R5bGVS
ZXNvbHZlcigpLnJ1bGVTZXRzKCk7CisKKyAgICBJbnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVs
ZVNldHMgbWF0Y2hFbGVtZW50UnVsZVNldHM7CisKKyAgICBhdXRvIGFkZEhhc0ludmFsaWRhdGlv
biA9IFsmXShjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGludmFsaWRhdGlvblJ1
bGVTZXRzKSAgeworICAgICAgICBpZiAoIWludmFsaWRhdGlvblJ1bGVTZXRzKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1bGVTZXQgOiAqaW52
YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgICAgIGlmIChpc0hhc1BzZXVkb0NsYXNzTWF0
Y2hFbGVtZW50KGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAg
ICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtYXRjaEVsZW1lbnRS
dWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNldCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
YXV0byB0YWdOYW1lID0gY2hhbmdlZEVsZW1lbnQubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKKyAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVsZVNldHMudGFnSW52YWxpZGF0
aW9uUnVsZVNldHModGFnTmFtZSkpOworCisgICAgaWYgKGNoYW5nZWRFbGVtZW50Lmhhc0F0dHJp
YnV0ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0ZSA6IGNoYW5nZWRFbGVtZW50
LmF0dHJpYnV0ZXNJdGVyYXRvcigpKSB7CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZU5hbWUg
PSBhdHRyaWJ1dGUubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICAg
ICAgICAgIGFkZEhhc0ludmFsaWRhdGlvbihydWxlU2V0cy5hdHRyaWJ1dGVJbnZhbGlkYXRpb25S
dWxlU2V0cyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoY2hh
bmdlZEVsZW1lbnQuaGFzQ2xhc3MoKSkgeworICAgICAgICBhdXRvIGNvdW50ID0gY2hhbmdlZEVs
ZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBjbGFzc05hbWUgPSBjaGFuZ2VkRWxl
bWVudC5jbGFzc05hbWVzKClbaV07CisgICAgICAgICAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVs
ZVNldHMuY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjbGFzc05hbWUpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIEludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVT
ZXRzKGNoYW5nZWRFbGVtZW50LCBtYXRjaEVsZW1lbnRSdWxlU2V0cyk7Cit9CisKK3N0YXRpYyBi
b29sIG5lZWRzVHJhdmVyc2FsKGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcywgY29uc3Qg
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIGNoaWxkQ2hhbmdlKQoreworICAgIGlmIChmZWF0
dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzQ2hpbGQpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoZmVhdHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1l
bnQ6Okhhc0Rlc2NlbmRhbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmVh
dHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmcpICYmIGNoaWxk
Q2hhbmdlLnByZXZpb3VzU2libGluZ0VsZW1lbnQ7Cit9OworCitzdGF0aWMgYm9vbCBuZWVkc0Rl
c2NlbmRhbnRUcmF2ZXJzYWwoY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKQoreworICAg
IHJldHVybiBmZWF0dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzRGVzY2Vu
ZGFudCk7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFu
Z2VJbnZhbGlkYXRpb246OnRyYXZlcnNlUmVtb3ZlZEVsZW1lbnRzKEZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit7CisgICAgaWYgKG1fY2hpbGRDaGFuZ2UuaXNJbnNlcnRpb24oKSAmJiBtX2NoaWxkQ2hh
bmdlLnR5cGUgIT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OkFsbENoaWxkcmVu
UmVwbGFjZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGZlYXR1cmVzID0gcGFyZW50
RWxlbWVudCgpLnN0eWxlUmVzb2x2ZXIoKS5ydWxlU2V0cygpLmZlYXR1cmVzKCk7CisgICAgaWYg
KCFuZWVkc1RyYXZlcnNhbChmZWF0dXJlcywgbV9jaGlsZENoYW5nZSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGJvb2wgbmVlZHNEZXNjZW5kYW50VHJhdmVyc2FsID0gU3R5bGU6Om5lZWRzRGVz
Y2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcyk7CisKKyAgICBhdXRvKiB0b1JlbW92ZSA9IG1fY2hp
bGRDaGFuZ2UucHJldmlvdXNTaWJsaW5nRWxlbWVudCA/IG1fY2hpbGRDaGFuZ2UucHJldmlvdXNT
aWJsaW5nRWxlbWVudC0+bmV4dEVsZW1lbnRTaWJsaW5nKCkgOiBwYXJlbnRFbGVtZW50KCkuZmly
c3RFbGVtZW50Q2hpbGQoKTsKKyAgICBmb3IgKDsgdG9SZW1vdmUgIT0gbV9jaGlsZENoYW5nZS5u
ZXh0U2libGluZ0VsZW1lbnQ7IHRvUmVtb3ZlID0gdG9SZW1vdmUtPm5leHRFbGVtZW50U2libGlu
ZygpKSB7CisgICAgICAgIGZ1bmN0aW9uKCp0b1JlbW92ZSk7CisKKyAgICAgICAgaWYgKCFuZWVk
c0Rlc2NlbmRhbnRUcmF2ZXJzYWwpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdG9SZW1v
dmUpKQorICAgICAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7CisgICAgfQorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRy
YXZlcnNlQWRkZWRFbGVtZW50cyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQoreworICAgIGlmICghbV9j
aGlsZENoYW5nZS5pc0luc2VydGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBu
ZXdFbGVtZW50ID0gWyZdIHsKKyAgICAgICAgYXV0byogcHJldmlvdXMgPSBtX2NoaWxkQ2hhbmdl
LnByZXZpb3VzU2libGluZ0VsZW1lbnQ7CisgICAgICAgIGF1dG8qIGNhbmRpZGF0ZSA9IHByZXZp
b3VzID8gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnByZXZpb3VzKSA6IEVsZW1lbnRU
cmF2ZXJzYWw6OmZpcnN0Q2hpbGQocGFyZW50RWxlbWVudCgpKTsKKyAgICAgICAgaWYgKGNhbmRp
ZGF0ZSA9PSBtX2NoaWxkQ2hhbmdlLm5leHRTaWJsaW5nRWxlbWVudCkKKyAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgfSgpOwor
CisgICAgaWYgKCFuZXdFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBmZWF0
dXJlcyA9IHBhcmVudEVsZW1lbnQoKS5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5mZWF0dXJl
cygpOworICAgIGlmICghbmVlZHNUcmF2ZXJzYWwoZmVhdHVyZXMsIG1fY2hpbGRDaGFuZ2UpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmdW5jdGlvbigqbmV3RWxlbWVudCk7CisKKyAgICBpZiAo
IW5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KCpu
ZXdFbGVtZW50KSkKKyAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7Cit9CisKIHN0YXRpYyB2
b2lkIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZShFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlm
ICghZWxlbWVudC5zdHlsZUFmZmVjdGVkQnlFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmgKaW5kZXggNjcxMjlkZDQwYTc5ZjY0Y2RiZjJj
NDIwZDhiNDQzMTA4ZmUyZTI3OC4uMTVkM2FkMGE3MWZjZTQyZTMxZjcwN2IxZDkxZDRmMGY4NWVk
MjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlk
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTdHlsZUludmFsaWRhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00MCw2ICs0MSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgaW52YWxpZGF0ZUFmdGVyQ2hhbmdlKCk7CiAgICAgdm9pZCBjaGVja0ZvclNpYmxp
bmdTdHlsZUNoYW5nZXMoKTsKKyAgICB2b2lkIGludmFsaWRhdGVGb3JDaGFuZ2VkRWxlbWVudChF
bGVtZW50Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4gdm9pZCB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhGdW5jdGlvbiYmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dGlvbj4gdm9pZCB0cmF2ZXJzZUFkZGVkRWxlbWVudHMoRnVuY3Rpb24mJik7CiAKICAgICBFbGVt
ZW50JiBwYXJlbnRFbGVtZW50KCkgeyByZXR1cm4gKm1fcGFyZW50RWxlbWVudDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKaW5kZXggZmIxOGRlMzVjNDQ0ZGQxMTI3NmZlODAx
MmMyNWNkODgxOGFmNDU0Yi4uYzU2N2FkMjAxNTkyNjY1NDdjM2I2ZTU3ZDhjOWFiNDFhZTI2ODNh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcApAQCAtNTgsNyArNTgsNyBAQCBz
dGF0aWMgYm9vbCBpc1NpYmxpbmdPclN1YmplY3QoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzSGFzUHNldWRvQ2xhc3NNYXRj
aEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFz
c01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KQogewogICAgIHN3aXRjaCAo
bWF0Y2hFbGVtZW50KSB7CiAgICAgY2FzZSBNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmc6CkBAIC0x
NzIsNyArMTcyLDEwIEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZl
YXR1cmVzRnJvbVNlbGVjdG9yKFNlbGVjdG9yRmVhdHVyZXMmIHNlCiAgICAgICAgICAgICAgICAg
aWRzTWF0Y2hpbmdBbmNlc3RvcnNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQog
ICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5jbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzZWxlY3Rvci0+dmFsdWUoKSwgbWF0Y2hFbGVtZW50KSk7Ci0gICAgICAgIGVsc2UgaWYgKHNl
bGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpIHsKKyAgICAgICAgZWxzZSBpZiAoc2VsZWN0
b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlRhZykgeworICAgICAgICAgICAgaWYgKGlzSGFz
UHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQobWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAgICAgICBz
ZWxlY3RvckZlYXR1cmVzLnRhZ3MuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHNlbGVjdG9yLT50YWdM
b3dlcmNhc2VMb2NhbE5hbWUoKSwgbWF0Y2hFbGVtZW50KSk7CisgICAgICAgIH0gZWxzZSBpZiAo
c2VsZWN0b3ItPmlzQXR0cmlidXRlU2VsZWN0b3IoKSkgewogICAgICAgICAgICAgYXV0byYgY2Fu
b25pY2FsTG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZSgp
OwogICAgICAgICAgICAgYXV0byYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxv
Y2FsTmFtZSgpOwogICAgICAgICAgICAgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lc0luUnVs
ZXMuYWRkKGNhbm9uaWNhbExvY2FsTmFtZSk7CkBAIC0yMTksMTIgKzIyMiwxOSBAQCB2b2lkIFJ1
bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQog
ICAgIGlmIChydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKICAg
ICAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmQoeyBydWxlRGF0YSB9KTsKIAorICAg
IGZvciAoYXV0byYgbmFtZUFuZE1hdGNoIDogc2VsZWN0b3JGZWF0dXJlcy50YWdzKSB7CisgICAg
ICAgIHRhZ1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKKyAgICAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOworICAgICAgICB9KS5pdGVy
YXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vjb25kIH0pOwor
ICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG5hbWVBbmRNYXRjaC5zZWNvbmQpOworICAgIH0K
ICAgICBmb3IgKGF1dG8mIG5hbWVBbmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMuY2xhc3Nlcykg
ewogICAgICAgICBjbGFzc1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwogICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vj
b25kIH0pOwogICAgICAgICBpZiAobmFtZUFuZE1hdGNoLnNlY29uZCA9PSBNYXRjaEVsZW1lbnQ6
Okhvc3QpCiAgICAgICAgICAgICBjbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQobmFtZUFuZE1hdGNo
LmZpcnN0KTsKKyAgICAgICAgc2V0VXNlc01hdGNoRWxlbWVudChuYW1lQW5kTWF0Y2guc2Vjb25k
KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBzZWxlY3RvckFuZE1hdGNoIDogc2VsZWN0b3JGZWF0
dXJlcy5hdHRyaWJ1dGVzKSB7CiAgICAgICAgIGF1dG8qIHNlbGVjdG9yID0gc2VsZWN0b3JBbmRN
YXRjaC5maXJzdDsKQEAgLTIzNCw2ICsyNDQsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpjb2xs
ZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogICAgICAgICB9KS5pdGVyYXRv
ci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBtYXRjaEVsZW1lbnQsIHNlbGVjdG9yIH0pOwog
ICAgICAgICBpZiAobWF0Y2hFbGVtZW50ID09IE1hdGNoRWxlbWVudDo6SG9zdCkKICAgICAgICAg
ICAgIGF0dHJpYnV0ZXNBZmZlY3RpbmdIb3N0LmFkZChzZWxlY3Rvci0+YXR0cmlidXRlKCkubG9j
YWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CisgICAgICAgIHNldFVzZXNNYXRj
aEVsZW1lbnQobWF0Y2hFbGVtZW50KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBrZXlBbmRNYXRj
aCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3NlcykgewogICAgICAgICBwc2V1ZG9DbGFz
c1J1bGVzLmVuc3VyZShrZXlBbmRNYXRjaC5maXJzdCwgW10gewpAQCAtMjQxLDYgKzI1Miw3IEBA
IHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYgcnVs
ZURhdGEpCiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kKHsgcnVsZURhdGEsIGtl
eUFuZE1hdGNoLnNlY29uZCB9KTsKICAgICAgICAgaWYgKGtleUFuZE1hdGNoLnNlY29uZCA9PSBN
YXRjaEVsZW1lbnQ6Okhvc3QpCiAgICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9z
dC5hZGQoa2V5QW5kTWF0Y2guZmlyc3QpOworICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KGtl
eUFuZE1hdGNoLnNlY29uZCk7CiAgICAgfQogfQogCkBAIC0yNTMsNiArMjY1LDEzIEBAIHZvaWQg
UnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNldCYgb3RoZXIpCiAgICAgY29u
dGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5hZGQob3RoZXIuY29udGVudEF0dHJpYnV0ZU5hbWVz
SW5SdWxlcy5iZWdpbigpLCBvdGhlci5jb250ZW50QXR0cmlidXRlTmFtZXNJblJ1bGVzLmVuZCgp
KTsKICAgICBzaWJsaW5nUnVsZXMuYXBwZW5kVmVjdG9yKG90aGVyLnNpYmxpbmdSdWxlcyk7CiAg
ICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmRWZWN0b3Iob3RoZXIudW5jb21tb25BdHRy
aWJ1dGVSdWxlcyk7CisKKyAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6IG90aGVyLnRhZ1J1
bGVzKSB7CisgICAgICAgIHRhZ1J1bGVzLmVuc3VyZShrZXlWYWx1ZVBhaXIua2V5LCBbXSB7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSdWxlRmVhdHVyZVZlY3Rvcj4oKTsKKyAgICAg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZhbHVlUGFpci52YWx1ZSk7
CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIgOiBvdGhlci5jbGFzc1J1bGVz
KSB7CiAgICAgICAgIGNsYXNzUnVsZXMuZW5zdXJlKGtleVZhbHVlUGFpci5rZXksIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwpAQCAtMjc0
LDYgKzI5Myw5IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNl
dCYgb3RoZXIpCiAgICAgfQogICAgIHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmFkZChvdGhl
ci5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5iZWdpbigpLCBvdGhlci5wc2V1ZG9DbGFzc2Vz
QWZmZWN0aW5nSG9zdC5lbmQoKSk7CiAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRN
YXRjaEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICB1c2VkTWF0Y2hFbGVtZW50c1tpXSB8
PSBvdGhlci51c2VkTWF0Y2hFbGVtZW50c1tpXTsKKwogICAgIHVzZXNGaXJzdExpbmVSdWxlcyA9
IHVzZXNGaXJzdExpbmVSdWxlcyB8fCBvdGhlci51c2VzRmlyc3RMaW5lUnVsZXM7CiAgICAgdXNl
c0ZpcnN0TGV0dGVyUnVsZXMgPSB1c2VzRmlyc3RMZXR0ZXJSdWxlcyB8fCBvdGhlci51c2VzRmly
c3RMZXR0ZXJSdWxlczsKIH0KQEAgLTI5NCw2ICszMTYsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0
OjpjbGVhcigpCiAgICAgY29udGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5jbGVhcigpOwogICAg
IHNpYmxpbmdSdWxlcy5jbGVhcigpOwogICAgIHVuY29tbW9uQXR0cmlidXRlUnVsZXMuY2xlYXIo
KTsKKyAgICB0YWdSdWxlcy5jbGVhcigpOwogICAgIGNsYXNzUnVsZXMuY2xlYXIoKTsKICAgICBj
bGFzc2VzQWZmZWN0aW5nSG9zdC5jbGVhcigpOwogICAgIGF0dHJpYnV0ZVJ1bGVzLmNsZWFyKCk7
CkBAIC0zMDgsNiArMzMxLDggQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQoKQog
ewogICAgIHNpYmxpbmdSdWxlcy5zaHJpbmtUb0ZpdCgpOwogICAgIHVuY29tbW9uQXR0cmlidXRl
UnVsZXMuc2hyaW5rVG9GaXQoKTsKKyAgICBmb3IgKGF1dG8mIHJ1bGVzIDogdGFnUnVsZXMudmFs
dWVzKCkpCisgICAgICAgIHJ1bGVzLT5zaHJpbmtUb0ZpdCgpOwogICAgIGZvciAoYXV0byYgcnVs
ZXMgOiBjbGFzc1J1bGVzLnZhbHVlcygpKQogICAgICAgICBydWxlcy0+c2hyaW5rVG9GaXQoKTsK
ICAgICBmb3IgKGF1dG8mIHJ1bGVzIDogYXR0cmlidXRlUnVsZXMudmFsdWVzKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZUZlYXR1cmUuaAppbmRleCAzM2JhZTc3OTI2ODcxY2JhYjNlZGY0ZjZiNjcwZDc3
MWU5N2VhNjJmLi5mNDY2YTQxODU2OTgyNjQyZjhmZGYxMmQ2ZGU3OTM3YjU1ZWFmYTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmgKQEAgLTY3LDYgKzY3LDkgQEAgc3RydWN0IFJ1bGVG
ZWF0dXJlU2V0IHsKICAgICB2b2lkIGNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYpOwog
ICAgIHZvaWQgcmVnaXN0ZXJDb250ZW50QXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmKTsKIAor
ICAgIGJvb2wgdXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KSBjb25z
dCAgeyByZXR1cm4gdXNlZE1hdGNoRWxlbWVudHNbc3RhdGljX2Nhc3Q8dWludDhfdD4obWF0Y2hF
bGVtZW50KV07IH0KKyAgICB2b2lkIHNldFVzZXNNYXRjaEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1h
dGNoRWxlbWVudCkgeyB1c2VkTWF0Y2hFbGVtZW50c1tzdGF0aWNfY2FzdDx1aW50OF90PihtYXRj
aEVsZW1lbnQpXSA9IHRydWU7IH0KKwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gaWRzSW5SdWxl
czsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGlkc01hdGNoaW5nQW5jZXN0b3JzSW5SdWxlczsK
ICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZXNJblJ1
bGVzOwpAQCAtNzQsNyArNzcsOCBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVTZXQgewogICAgIEhhc2hT
ZXQ8QXRvbVN0cmluZz4gY29udGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlczsKICAgICBSdWxlRmVh
dHVyZVZlY3RvciBzaWJsaW5nUnVsZXM7CiAgICAgUnVsZUZlYXR1cmVWZWN0b3IgdW5jb21tb25B
dHRyaWJ1dGVSdWxlczsKLSAgICAKKworICAgIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlx
dWVfcHRyPFJ1bGVGZWF0dXJlVmVjdG9yPj4gdGFnUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+PiBjbGFzc1J1bGVzOwogICAg
IEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSdWxlRmVhdHVyZVdp
dGhJbnZhbGlkYXRpb25TZWxlY3Rvcj4+PiBhdHRyaWJ1dGVSdWxlczsKICAgICBIYXNoTWFwPENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZl
Y3Rvcj4sIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25n
RW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNz
UnVsZXM7CkBAIC04Miw2ICs4Niw4IEBAIHN0cnVjdCBSdWxlRmVhdHVyZVNldCB7CiAgICAgSGFz
aFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzQWZmZWN0aW5nSG9zdDsKICAgICBIYXNoU2V0PENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZT4+IHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0OwogCisgICAgc3RkOjphcnJheTxi
b29sLCBtYXRjaEVsZW1lbnRDb3VudD4gdXNlZE1hdGNoRWxlbWVudHM7CisKICAgICBib29sIHVz
ZXNGaXJzdExpbmVSdWxlcyB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VzRmlyc3RMZXR0ZXJSdWxl
cyB7IGZhbHNlIH07CiAKQEAgLTkyLDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2Vs
ZWN0b3JGZWF0dXJlcyB7CiAgICAgICAgIGJvb2wgaGFzU2libGluZ1NlbGVjdG9yIHsgZmFsc2Ug
fTsKIAorICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxlbWVudD4s
IDMyPiB0YWdzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxl
bWVudD4sIDMyPiBjbGFzc2VzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPGNvbnN0IENTU1Nl
bGVjdG9yKiwgTWF0Y2hFbGVtZW50PiwgMzI+IGF0dHJpYnV0ZXM7CiAgICAgICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgTWF0Y2hFbGVtZW50PiwgMzI+
IHBzZXVkb0NsYXNzZXM7CkBAIC05OSw1ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVj
dXJzaXZlbHlDb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYsIGNv
bnN0IENTU1NlbGVjdG9yJiwgTWF0Y2hFbGVtZW50ID0gTWF0Y2hFbGVtZW50OjpTdWJqZWN0KTsK
IH07CiAKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQpOwor
CiB9IC8vIG5hbWVzcGFjZSBTdHlsZQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggM2JmNjQ3YTY3NWUwYzQ1
NzY1NzFhNGQ2NzVmNzBiYTc1NmVhZjliYi4uYzhiYjAyMmUxNjNlYTA0ZTQ0ZDk2Y2M1ODEwZjli
MzVlZTViZDE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1
bGVTZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
Y3BwCkBAIC0yMjAsNiArMjIwLDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xsZWN0RmVhdHVy
ZXMoKSBjb25zdAogICAgIG1fc2libGluZ1J1bGVTZXQgPSBtYWtlUnVsZVNldChtX2ZlYXR1cmVz
LnNpYmxpbmdSdWxlcyk7CiAgICAgbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQgPSBtYWtlUnVs
ZVNldChtX2ZlYXR1cmVzLnVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwogCisgICAgbV90YWdJbnZh
bGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOwogICAgIG1fY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0
cy5jbGVhcigpOwogICAgIG1fYXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsK
ICAgICBtX3BzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKQEAgLTI3Myw2
ICsyNzQsMTEgQEAgc3RhdGljIFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogZW5zdXJlSW52
YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgS2V5VHlwZSYga2UKICAgICB9KS5pdGVyYXRvci0+dmFs
dWUuZ2V0KCk7CiB9CiAKK2NvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVS
dWxlU2V0czo6dGFnSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgdGFnTmFt
ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHModGFnTmFt
ZSwgbV90YWdJbnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy50YWdSdWxlcyk7Cit9CisK
IGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVSdWxlU2V0czo6Y2xhc3NJ
bnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJiBjbGFzc05hbWUpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGVuc3VyZUludmFsaWRhdGlvblJ1bGVTZXRzKGNsYXNzTmFtZSwgbV9jbGFz
c0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLmNsYXNzUnVsZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA0NTRmNWMwNzk0ZDIzOWE3M2Zk
OGEwNTQ1ZjQ1NWU2NzQ5YTcyZDdiLi5lMjViYzExNDdkZjBmMmMxYzU2ZGU5YmVkYzE5YzE0YzJl
YjhmZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNl
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaApAQCAt
NjMsMTAgKzYzLDEzIEBAIHB1YmxpYzoKICAgICBSdWxlU2V0KiBzaWJsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaWJsaW5nUnVsZVNldC5nZXQoKTsgfQogICAgIFJ1bGVTZXQqIHVuY29tbW9uQXR0
cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV91bmNvbW1vbkF0dHJpYnV0ZVJ1bGVTZXQuZ2V0KCk7
IH0KIAorICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogdGFnSW52YWxpZGF0
aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgdGFnTmFtZSkgY29uc3Q7CiAgICAgY29uc3Qg
VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBjbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKGNv
bnN0IEF0b21TdHJpbmcmIGNsYXNzTmFtZSkgY29uc3Q7CiAgICAgY29uc3QgVmVjdG9yPEludmFs
aWRhdGlvblJ1bGVTZXQ+KiBhdHRyaWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9t
U3RyaW5nJiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0
aW9uUnVsZVNldD4qIHBzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzVHlwZSkgY29uc3Q7CiAKKyAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9u
UnVsZVNldD4qIGludmFsaWRhdGlvblJ1bGVTZXRzRm9yQ2hpbGRDaGFuZ2UoY29uc3QgRWxlbWVu
dCYpOworCiAgICAgYm9vbCBoYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVBdHRyaWJ1dGUoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0VXNlc1NoYXJlZFVzZXJTdHlsZShib29sIGIpIHsgbV91c2Vz
U2hhcmVkVXNlclN0eWxlID0gYjsgfQpAQCAtOTgsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBt
dXRhYmxlIFJ1bGVGZWF0dXJlU2V0IG1fZmVhdHVyZXM7CiAgICAgbXV0YWJsZSBSZWZQdHI8UnVs
ZVNldD4gbV9zaWJsaW5nUnVsZVNldDsKICAgICBtdXRhYmxlIFJlZlB0cjxSdWxlU2V0PiBtX3Vu
Y29tbW9uQXR0cmlidXRlUnVsZVNldDsKKyAgICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1fdGFnSW52YWxp
ZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2NsYXNzSW52YWxpZGF0aW9u
UnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1
bGVTZXRzOwogICAgIG11dGFibGUgSGFzaE1hcDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
LCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+PiwgSW50SGFzaDxD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gbV9wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1
bGVTZXRzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWEyMGE3MWYzZDY4MjRj
YTFlZTljNzJkZmZkYTFiMzI2ZGE3YTJkZi4uZDJlYzhlMmQ1YmVlMzdlODlmZTkxMDg1ZWYwNjlk
ZjU5MGYzMzYwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjEtMTEtMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAg
ICAgIFs6aGFzKCkgcHNldWRvLWNsYXNzXSBJbnZhbGlkYXRpb24gc3VwcG9ydCBmb3IgYWRkaW5n
IGFuZCByZW1vdmluZyBub2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNvbWUgYWRkaXRpb25hbCBjYXNlcyB0byBhbiBleGlzdGluZyB0ZXN0
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0
aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9u
L2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sOgorCiAyMDIxLTEx
LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBDU1A6IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRv
Y3VtZW50IGFzIHRhcmdldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3It
ZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9h
dHRyaWJ1dGUtb3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0CmluZGV4
IDk0ZjZhN2VjYmExZTExYWJlMzQwM2RkYTU5MDI4ZTlkMTI1ZWE3ZmQuLjc2MjViODJlZTQ0MWRj
ODQyN2I4YjhmZmQxMTUyZTAxOGZmOTQ3NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0
cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
aW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBl
Y3RlZC50eHQKQEAgLTE0LDggKzE0LDIwIEBAIFBBU1Mgc2V0IGRlc2NlbmRhbnQgdG8gI2Rpdl9n
cmFuZGNoaWxkW2F0dHJuYW1lXTogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQQVNTIGNsZWFyICNk
aXZfZ3JhbmRjaGlsZFthdHRybmFtZV06IGRpdiNkaXZfc3ViamVjdC5jb2xvcgogRkFJTCBjaGFu
Z2UgI2Rpdl9ncmFuZGNoaWxkIHRvICNkaXZfZGVzY2VuZGFudDogZGl2I2Rpdl9zdWJqZWN0LmNv
bG9yIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZ2IoMjU1LCAyNTUsIDApIiBidXQgZ290ICJy
Z2IoMTI4LCAxMjgsIDEyOCkiCiBQQVNTIGNoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9n
cmFuZGNoaWxkOiBkaXYjZGl2X3N1YmplY3QuY29sb3IKLUZBSUwgYWRkIGRlc2NlbmRhbnQgdG8g
I2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInJnYigxNTQsIDIwNSwgNTApIiBidXQgZ290ICJyZ2IoMTI4LCAxMjgsIDEyOCkiCitQQVNT
IGFkZCBkZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQ
QVNTIHJlbW92ZSBkZXNjZW5kYW50IGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3Qu
Y29sb3IKLUZBSUwgYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNk
aXZfc3ViamVjdC5jb2xvciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmdiKDE1NCwgMjA1LCA1
MCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgYWRkICJkaXYgPiBkZXNjZW5k
YW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgogUEFTUyByZW1vdmUg
ImRpdiA+IGRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29s
b3IKK1BBU1MgYWRkIGRpdi5jaGlsZCB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5j
b2xvcgorUEFTUyByZW1vdmUgZGl2LmNoaWxkIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1
YmplY3QuY29sb3IKK1BBU1MgYWRkICJkaXYgPiBkaXYuZGVzY2VuZGFudCIgdG8gI2Rpdl9zdWJq
ZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlICJkaXYgPiBkaXYuZGVzY2Vu
ZGFudCIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorRkFJTCBhZGQg
ZGl2I2Rpdl9kZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9y
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZ2IoMjU1LCAyNTUsIDApIiBidXQgZ290ICJyZ2Io
MTI4LCAxMjgsIDEyOCkiCitQQVNTIHJlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2
X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorRkFJTCBhZGQgImRpdiNkaXZfZGVzY2Vu
ZGFudCIgdG8gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInJnYigyNTUsIDI1NSwgMCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4
KSIKK1BBU1MgcmVtb3ZlICJkaXYjZGl2X2Rlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0OiBk
aXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgYWRkIGRpdlthdHRybmFtZV0gdG8gI2Rpdl9zdWJq
ZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlIGRpdlthdHRybmFtZV0gZnJv
bSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBhZGQgImRpdiA+IGRp
dlthdHRybmFtZV0iIHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCitQQVNT
IHJlbW92ZSAiZGl2ID4gZGl2W2F0dHJuYW1lXSIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZf
c3ViamVjdC5jb2xvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1l
bGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUt
b3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMuaHRtbAppbmRleCA0MjU1MjQ2NGM3Y2JmMWU4
ODcyNWY2YzJiMjRkN2ZmODQ3YjgzNjVhLi5kMGVkYjFlNWU0N2E4ZGQwODMxZTI2Y2NmMDNkNDBi
ZmQ4MTM3ZGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50
YWwtc2VsZWN0b3JzLWluLWhhcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0cmlidXRlLW9y
LWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLmh0bWwKQEAgLTY4LDE3ICs2OCw4MiBAQCBkaXYs
IG1haW4geyBjb2xvcjogZ3JleSB9CiAgIGRpdl9kZXNjZW5kYW50LmlkID0gJ2Rpdl9ncmFuZGNo
aWxkJzsKICAgdGVzdF9kaXYoJ2NoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9ncmFuZGNo
aWxkJywgZGl2X3N1YmplY3QsIGdyZXkpOwogCi0gIGRlc2NlbmRhbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkZXNjZW5kYW50Jyk7Ci0gIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGRlc2Nl
bmRhbnQpOwotICB0ZXN0X2RpdignYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJqZWN0JywgZGl2
X3N1YmplY3QsIHllbGxvd2dyZWVuKTsKLSAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoZGVzY2Vu
ZGFudCk7Ci0gIHRlc3RfZGl2KCdyZW1vdmUgZGVzY2VuZGFudCBmcm9tICNkaXZfc3ViamVjdCcs
IGRpdl9zdWJqZWN0LCBncmV5KTsKLQotICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgZGl2LmFwcGVuZENoaWxkKGRlc2NlbmRhbnQpOwotICBkaXZfc3ViamVjdC5hcHBl
bmRDaGlsZChkaXYpOwotICB0ZXN0X2RpdignYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2
X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVsbG93Z3JlZW4pOwotICBkaXZfc3ViamVjdC5yZW1v
dmVDaGlsZChkaXYpOwotICB0ZXN0X2RpdigncmVtb3ZlICJkaXYgPiBkZXNjZW5kYW50IiBmcm9t
ICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKLQotPC9zY3JpcHQ+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGls
ZChkZXNjZW5kYW50KTsKKyAgICB0ZXN0X2RpdignYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJq
ZWN0JywgZGl2X3N1YmplY3QsIHllbGxvd2dyZWVuKTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVD
aGlsZChkZXNjZW5kYW50KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlIGRlc2NlbmRhbnQgZnJvbSAj
ZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3Qg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29uc3QgZGVzY2VuZGFu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKKyAgICBkaXYuYXBwZW5k
Q2hpbGQoZGVzY2VuZGFudCk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAg
ICB0ZXN0X2RpdignYWRkICJkaXYgPiBkZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZf
c3ViamVjdCwgeWVsbG93Z3JlZW4pOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7
CisgICAgdGVzdF9kaXYoJ3JlbW92ZSAiZGl2ID4gZGVzY2VuZGFudCIgZnJvbSAjZGl2X3N1Ympl
Y3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3QgY2hpbGQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBjaGlsZC5jbGFzc0xpc3QuYWRkKCdj
aGlsZCcpOworICAgIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB0ZXN0X2Rp
dignYWRkIGRpdi5jaGlsZCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgcmVkKTsKKyAg
ICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYoJ3JlbW92ZSBk
aXYuY2hpbGQgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKwor
ICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRlc2NlbmRhbnQuY2xhc3NMaXN0LmFkZCgnZGVzY2VuZGFudCcpOworICAgIGNvbnN0
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5hcHBlbmRDaGls
ZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChkaXYpOworICAgIHRl
c3RfZGl2KCdhZGQgImRpdiA+IGRpdi5kZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZf
c3ViamVjdCwgZ3JlZW4pOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7CisgICAg
dGVzdF9kaXYoJ3JlbW92ZSAiZGl2ID4gZGl2LmRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0
JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAgeworICAgIGNvbnN0IGNoaWxkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY2hpbGQuaWQgPSAnZGl2X2Rlc2NlbmRh
bnQnOworICAgIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB0ZXN0X2Rpdign
YWRkIGRpdiNkaXZfZGVzY2VuZGFudCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVs
bG93KTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYo
J3JlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVj
dCwgZ3JleSk7CisgIH0KKworICB7CisgICAgY29uc3QgZGVzY2VuZGFudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRlc2NlbmRhbnQuaWQgPSAnZGl2X2Rlc2NlbmRhbnQn
OworICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRp
di5hcHBlbmRDaGlsZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChk
aXYpOworICAgIHRlc3RfZGl2KCdhZGQgImRpdiNkaXZfZGVzY2VuZGFudCIgdG8gI2Rpdl9zdWJq
ZWN0JywgZGl2X3N1YmplY3QsIHllbGxvdyk7CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQo
ZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlICJkaXYjZGl2X2Rlc2NlbmRhbnQiIGZyb20gI2Rp
dl9zdWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAgeworICAgIGNvbnN0IGNo
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY2hpbGQuc2V0QXR0cmli
dXRlKCdhdHRybmFtZScsICdkZXNjZW5kYW50Jyk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hp
bGQoY2hpbGQpOworICAgIHRlc3RfZGl2KCdhZGQgZGl2W2F0dHJuYW1lXSB0byAjZGl2X3N1Ympl
Y3QnLCBkaXZfc3ViamVjdCwgYmx1ZSk7CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoY2hp
bGQpOworICAgIHRlc3RfZGl2KCdyZW1vdmUgZGl2W2F0dHJuYW1lXSBmcm9tICNkaXZfc3ViamVj
dCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKKyAgfQorCisgIHsKKyAgICBjb25zdCBkZXNjZW5kYW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGVzY2VuZGFudC5zZXRBdHRy
aWJ1dGUoJ2F0dHJuYW1lJywgJ2Rlc2NlbmRhbnQnKTsKKyAgICBjb25zdCBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZGVzY2VuZGFudCk7
CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdignYWRkICJk
aXYgPiBkaXZbYXR0cm5hbWVdIiB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgYmx1ZSk7
CisgICAgZGl2X3N1YmplY3QucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3Zl
ICJkaXYgPiBkaXZbYXR0cm5hbWVdIiBmcm9tICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBn
cmV5KTsKKyAgfQorCis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445134</attachid>
            <date>2021-11-25 04:01:37 -0800</date>
            <delta_ts>2021-11-27 00:13:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233489-20211125140135.patch</filename>
            <type>text/plain</type>
            <size>27464</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzN2ZmNzgxZTJlODlj
M2UwYzI1ZDBmMTFlYWNlOGMzOGNiYmI5Ny4uZGI4ZjMzYjA4OWIxZWM2NTU0NGQyMDRiNGY1NmVk
Yjk4NmQ3ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTExLTI1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gSW52YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGFkZGluZyBhbmQgcmVtb3Zpbmcgbm9kZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5lZWQg
dG8gaW52YWxpZGF0ZSBzdHlsZSB3aGVuIGFkZGVkIG9yIHJlbW92ZWQgZWxlbWVudHMgbWF0Y2gg
OmhhcygpIGFyZ3VtZW50cy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGFnIG5hbWUgaW52
YWxpZGF0aW9uIHJ1bGVzZXRzIGZvciA6aGFzKCkgY2FzZSwgYWxvbmcgd2l0aCB0aGUgZXhpc3Rp
bmcgY2xhc3MKKyAgICAgICAgYW5kIGF0dHJpYnV0ZSBydWxlc2V0cy4gSXQgaXMgc3RpbGwgbWlz
c2luZyBzdXBwb3J0IGZvciAjaWQgaW52YWxpZGF0aW9uLgorCisgICAgICAgICogc3R5bGUvQ2hp
bGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbik6CisKKyAgICAgICAg
U2VlIGlmIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIHJlbW92
ZWQgYmVmb3JlIHRoZSBtdXRhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNoaWxk
Q2hhbmdlSW52YWxpZGF0aW9uOjp+Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24pOgorCisgICAgICAg
IFNlZSBpZiB3ZSBuZWVkIHRvIGludmFsaWRhdGUgZm9yIHRoZSBlbGVtZW50cyBiZWluZyBhZGRl
ZCBhZnRlciB0aGUgbXV0YXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDaGlsZENo
YW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KToKKworICAgICAg
ICBGaW5kIHRoZSByZWxldmFudCBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9yIGF0dHJpYnV0ZXMs
IGNsYXNzZXMgYW5kIHRhZ3MgYW5kIGludmFsaWRhdGUgdXNpbmcgdGhlbS4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6Om5lZWRzVHJhdmVyc2FsKToKKworICAgICAgICBXZSBvbmx5IG5lZWQg
dG8gZG8gYW55dGhpbmcgaW4gdGhlIHByZXNlbmNlIG9mIDpoYXMoKSBydWxlcy4KKworICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6Om5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbCk6CisKKyAgICAgICAg
RnVsbCB0cmF2ZXJzYWwgaXMgb25seSBuZWVkZWQgaW4gY2FzZSB0aGVyZSBhcmUgOmhhcygpIHJ1
bGVzIHVzaW5nIGRlc2NlbmRhbnQgY29tYmluYXRvci4KKworICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkNoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjp0cmF2ZXJzZVJlbW92ZWRFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRyYXZlcnNl
QWRkZWRFbGVtZW50cyk6CisgICAgICAgICogc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
aDoKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6aXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZlYXR1cmVzRnJvbVNlbGVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZl
YXR1cmVzKToKKworICAgICAgICBDb2xsZWN0IHRhZyBpbnZhbGlkYXRpb24gcnVsZXNldHMgZm9y
IDpoYXMgY2FzZSBvbmx5LgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVT
ZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6c2hyaW5rVG9GaXQp
OgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6UnVsZUZlYXR1cmVTZXQ6OnVzZXNNYXRjaEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVGZWF0dXJlU2V0OjpzZXRVc2VzTWF0Y2hFbGVtZW50KToKKworICAg
ICAgICBLZWVwIHRyYWNrIG9mIHdoYXQgc29ydCBvZiBtYXRjaCBlbGVtZW50cyBhcmUgYmVpbmcg
dXNlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjp0YWdJbnZhbGlkYXRpb25S
dWxlU2V0cyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisK
IDIwMjEtMTEtMjMgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZXhwbGljaXQgaW5pdGlhbGl6ZXJfbGlzdCB1c2FnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCmlu
ZGV4IGQ2ZWY4NTMxMjYxNjQ4YTAwY2M5ZWM4MTg3YWY5MmI2NjFjZmUxMWYuLjczY2IwNDliNjk1
ZWI4MTExMmYyMmYzMDRmZDkyZDJmZWY0YzI0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDkgQEAKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiU2xvdEFzc2lnbm1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVk
ZSAiU3R5bGVTY29wZVJ1bGVTZXRzLmgiCisjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFu
dEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpTdHlsZSB7CiAKQEAgLTM4LDcgKzQx
LDEyIEBAIENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbihD
b250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0CiAgICAgLCBtX2lzRW5hYmxlZChtX3BhcmVu
dEVsZW1lbnQgPyBtX3BhcmVudEVsZW1lbnQtPm5lZWRzU3R5bGVJbnZhbGlkYXRpb24oKSA6IGZh
bHNlKQogICAgICwgbV9jaGlsZENoYW5nZShjaGlsZENoYW5nZSkKIHsKLSAgICAvLyBGSVhNRTog
RG8gc21hcnRlciBpbnZhbGlkYXRpb24gc2ltaWxhciB0byBDbGFzc0NoYW5nZUludmFsaWRhdGlv
bi4KKyAgICBpZiAoIW1faXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhbJl0oYXV0byYgY2hhbmdlZEVsZW1lbnQpIHsKKyAgICAgICAgaW52
YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KGNoYW5nZWRFbGVtZW50KTsKKyAgICB9KTsKIH0KIAog
Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFsaWRhdGlvbigpCkBAIC00
Niw5ICs1NCwxMTcgQEAgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246On5DaGlsZENoYW5nZUludmFs
aWRhdGlvbigpCiAgICAgaWYgKCFtX2lzRW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
dHJhdmVyc2VBZGRlZEVsZW1lbnRzKFsmXShhdXRvJiBjaGFuZ2VkRWxlbWVudCkgeworICAgICAg
ICBpbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoY2hhbmdlZEVsZW1lbnQpOworICAgIH0pOwor
ICAgIAogICAgIGludmFsaWRhdGVBZnRlckNoYW5nZSgpOwogfQogCit2b2lkIENoaWxkQ2hhbmdl
SW52YWxpZGF0aW9uOjppbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQoRWxlbWVudCYgY2hhbmdl
ZEVsZW1lbnQpCit7CisgICAgYXV0byYgcnVsZVNldHMgPSBwYXJlbnRFbGVtZW50KCkuc3R5bGVS
ZXNvbHZlcigpLnJ1bGVTZXRzKCk7CisKKyAgICBJbnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVs
ZVNldHMgbWF0Y2hFbGVtZW50UnVsZVNldHM7CisKKyAgICBhdXRvIGFkZEhhc0ludmFsaWRhdGlv
biA9IFsmXShjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGludmFsaWRhdGlvblJ1
bGVTZXRzKSAgeworICAgICAgICBpZiAoIWludmFsaWRhdGlvblJ1bGVTZXRzKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1bGVTZXQgOiAqaW52
YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgICAgIGlmIChpc0hhc1BzZXVkb0NsYXNzTWF0
Y2hFbGVtZW50KGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAg
ICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtYXRjaEVsZW1lbnRS
dWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNldCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
YXV0byB0YWdOYW1lID0gY2hhbmdlZEVsZW1lbnQubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKKyAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVsZVNldHMudGFnSW52YWxpZGF0
aW9uUnVsZVNldHModGFnTmFtZSkpOworCisgICAgaWYgKGNoYW5nZWRFbGVtZW50Lmhhc0F0dHJp
YnV0ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0ZSA6IGNoYW5nZWRFbGVtZW50
LmF0dHJpYnV0ZXNJdGVyYXRvcigpKSB7CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZU5hbWUg
PSBhdHRyaWJ1dGUubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICAg
ICAgICAgIGFkZEhhc0ludmFsaWRhdGlvbihydWxlU2V0cy5hdHRyaWJ1dGVJbnZhbGlkYXRpb25S
dWxlU2V0cyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoY2hh
bmdlZEVsZW1lbnQuaGFzQ2xhc3MoKSkgeworICAgICAgICBhdXRvIGNvdW50ID0gY2hhbmdlZEVs
ZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBjbGFzc05hbWUgPSBjaGFuZ2VkRWxl
bWVudC5jbGFzc05hbWVzKClbaV07CisgICAgICAgICAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVs
ZVNldHMuY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjbGFzc05hbWUpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIEludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVT
ZXRzKGNoYW5nZWRFbGVtZW50LCBtYXRjaEVsZW1lbnRSdWxlU2V0cyk7Cit9CisKK3N0YXRpYyBi
b29sIG5lZWRzVHJhdmVyc2FsKGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcywgY29uc3Qg
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIGNoaWxkQ2hhbmdlKQoreworICAgIGlmIChmZWF0
dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzQ2hpbGQpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoZmVhdHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1l
bnQ6Okhhc0Rlc2NlbmRhbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmVh
dHVyZXMudXNlc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmcpICYmIGNoaWxk
Q2hhbmdlLnByZXZpb3VzU2libGluZ0VsZW1lbnQ7Cit9OworCitzdGF0aWMgYm9vbCBuZWVkc0Rl
c2NlbmRhbnRUcmF2ZXJzYWwoY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKQoreworICAg
IHJldHVybiBmZWF0dXJlcy51c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudDo6SGFzRGVzY2Vu
ZGFudCk7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFu
Z2VJbnZhbGlkYXRpb246OnRyYXZlcnNlUmVtb3ZlZEVsZW1lbnRzKEZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit7CisgICAgaWYgKG1fY2hpbGRDaGFuZ2UuaXNJbnNlcnRpb24oKSAmJiBtX2NoaWxkQ2hh
bmdlLnR5cGUgIT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OkFsbENoaWxkcmVu
UmVwbGFjZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGZlYXR1cmVzID0gcGFyZW50
RWxlbWVudCgpLnN0eWxlUmVzb2x2ZXIoKS5ydWxlU2V0cygpLmZlYXR1cmVzKCk7CisgICAgaWYg
KCFuZWVkc1RyYXZlcnNhbChmZWF0dXJlcywgbV9jaGlsZENoYW5nZSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGJvb2wgbmVlZHNEZXNjZW5kYW50VHJhdmVyc2FsID0gU3R5bGU6Om5lZWRzRGVz
Y2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcyk7CisKKyAgICBhdXRvKiB0b1JlbW92ZSA9IG1fY2hp
bGRDaGFuZ2UucHJldmlvdXNTaWJsaW5nRWxlbWVudCA/IG1fY2hpbGRDaGFuZ2UucHJldmlvdXNT
aWJsaW5nRWxlbWVudC0+bmV4dEVsZW1lbnRTaWJsaW5nKCkgOiBwYXJlbnRFbGVtZW50KCkuZmly
c3RFbGVtZW50Q2hpbGQoKTsKKyAgICBmb3IgKDsgdG9SZW1vdmUgIT0gbV9jaGlsZENoYW5nZS5u
ZXh0U2libGluZ0VsZW1lbnQ7IHRvUmVtb3ZlID0gdG9SZW1vdmUtPm5leHRFbGVtZW50U2libGlu
ZygpKSB7CisgICAgICAgIGZ1bmN0aW9uKCp0b1JlbW92ZSk7CisKKyAgICAgICAgaWYgKCFuZWVk
c0Rlc2NlbmRhbnRUcmF2ZXJzYWwpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBm
b3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdG9SZW1v
dmUpKQorICAgICAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7CisgICAgfQorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3ZvaWQgQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb246OnRy
YXZlcnNlQWRkZWRFbGVtZW50cyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQoreworICAgIGlmICghbV9j
aGlsZENoYW5nZS5pc0luc2VydGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBu
ZXdFbGVtZW50ID0gWyZdIHsKKyAgICAgICAgYXV0byogcHJldmlvdXMgPSBtX2NoaWxkQ2hhbmdl
LnByZXZpb3VzU2libGluZ0VsZW1lbnQ7CisgICAgICAgIGF1dG8qIGNhbmRpZGF0ZSA9IHByZXZp
b3VzID8gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnByZXZpb3VzKSA6IEVsZW1lbnRU
cmF2ZXJzYWw6OmZpcnN0Q2hpbGQocGFyZW50RWxlbWVudCgpKTsKKyAgICAgICAgaWYgKGNhbmRp
ZGF0ZSA9PSBtX2NoaWxkQ2hhbmdlLm5leHRTaWJsaW5nRWxlbWVudCkKKyAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgfSgpOwor
CisgICAgaWYgKCFuZXdFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBmZWF0
dXJlcyA9IHBhcmVudEVsZW1lbnQoKS5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5mZWF0dXJl
cygpOworICAgIGlmICghbmVlZHNUcmF2ZXJzYWwoZmVhdHVyZXMsIG1fY2hpbGRDaGFuZ2UpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmdW5jdGlvbigqbmV3RWxlbWVudCk7CisKKyAgICBpZiAo
IW5lZWRzRGVzY2VuZGFudFRyYXZlcnNhbChmZWF0dXJlcykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KCpu
ZXdFbGVtZW50KSkKKyAgICAgICAgZnVuY3Rpb24oZGVzY2VuZGFudCk7Cit9CisKIHN0YXRpYyB2
b2lkIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZShFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlm
ICghZWxlbWVudC5zdHlsZUFmZmVjdGVkQnlFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmgKaW5kZXggNjcxMjlkZDQwYTc5ZjY0Y2RiZjJj
NDIwZDhiNDQzMTA4ZmUyZTI3OC4uMTVkM2FkMGE3MWZjZTQyZTMxZjcwN2IxZDkxZDRmMGY4NWVk
MjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlk
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlv
bi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTdHlsZUludmFsaWRhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00MCw2ICs0MSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgaW52YWxpZGF0ZUFmdGVyQ2hhbmdlKCk7CiAgICAgdm9pZCBjaGVja0ZvclNpYmxp
bmdTdHlsZUNoYW5nZXMoKTsKKyAgICB2b2lkIGludmFsaWRhdGVGb3JDaGFuZ2VkRWxlbWVudChF
bGVtZW50Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4gdm9pZCB0cmF2ZXJz
ZVJlbW92ZWRFbGVtZW50cyhGdW5jdGlvbiYmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dGlvbj4gdm9pZCB0cmF2ZXJzZUFkZGVkRWxlbWVudHMoRnVuY3Rpb24mJik7CiAKICAgICBFbGVt
ZW50JiBwYXJlbnRFbGVtZW50KCkgeyByZXR1cm4gKm1fcGFyZW50RWxlbWVudDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKaW5kZXggZmIxOGRlMzVjNDQ0ZGQxMTI3NmZlODAx
MmMyNWNkODgxOGFmNDU0Yi4uZTQyOGVhOGViMmVmYmMxMmMxMjY5YmIzOGJmZjI3ODlmMTRhYjAy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcApAQCAtNTgsNyArNTgsNyBAQCBz
dGF0aWMgYm9vbCBpc1NpYmxpbmdPclN1YmplY3QoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzSGFzUHNldWRvQ2xhc3NNYXRj
aEVsZW1lbnQoTWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCkKK2Jvb2wgaXNIYXNQc2V1ZG9DbGFz
c01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KQogewogICAgIHN3aXRjaCAo
bWF0Y2hFbGVtZW50KSB7CiAgICAgY2FzZSBNYXRjaEVsZW1lbnQ6Okhhc1NpYmxpbmc6CkBAIC0x
NzIsNyArMTcyLDEwIEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZl
YXR1cmVzRnJvbVNlbGVjdG9yKFNlbGVjdG9yRmVhdHVyZXMmIHNlCiAgICAgICAgICAgICAgICAg
aWRzTWF0Y2hpbmdBbmNlc3RvcnNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQog
ICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5jbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzZWxlY3Rvci0+dmFsdWUoKSwgbWF0Y2hFbGVtZW50KSk7Ci0gICAgICAgIGVsc2UgaWYgKHNl
bGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpIHsKKyAgICAgICAgZWxzZSBpZiAoc2VsZWN0
b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlRhZykgeworICAgICAgICAgICAgaWYgKGlzSGFz
UHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQobWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAgICAgICBz
ZWxlY3RvckZlYXR1cmVzLnRhZ3MuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHNlbGVjdG9yLT50YWdM
b3dlcmNhc2VMb2NhbE5hbWUoKSwgbWF0Y2hFbGVtZW50KSk7CisgICAgICAgIH0gZWxzZSBpZiAo
c2VsZWN0b3ItPmlzQXR0cmlidXRlU2VsZWN0b3IoKSkgewogICAgICAgICAgICAgYXV0byYgY2Fu
b25pY2FsTG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZSgp
OwogICAgICAgICAgICAgYXV0byYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxv
Y2FsTmFtZSgpOwogICAgICAgICAgICAgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lc0luUnVs
ZXMuYWRkKGNhbm9uaWNhbExvY2FsTmFtZSk7CkBAIC0yMTksMTIgKzIyMiwxOSBAQCB2b2lkIFJ1
bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQog
ICAgIGlmIChydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKICAg
ICAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmQoeyBydWxlRGF0YSB9KTsKIAorICAg
IGZvciAoYXV0byYgbmFtZUFuZE1hdGNoIDogc2VsZWN0b3JGZWF0dXJlcy50YWdzKSB7CisgICAg
ICAgIHRhZ1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKKyAgICAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOworICAgICAgICB9KS5pdGVy
YXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vjb25kIH0pOwor
ICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG5hbWVBbmRNYXRjaC5zZWNvbmQpOworICAgIH0K
ICAgICBmb3IgKGF1dG8mIG5hbWVBbmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMuY2xhc3Nlcykg
ewogICAgICAgICBjbGFzc1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwogICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vj
b25kIH0pOwogICAgICAgICBpZiAobmFtZUFuZE1hdGNoLnNlY29uZCA9PSBNYXRjaEVsZW1lbnQ6
Okhvc3QpCiAgICAgICAgICAgICBjbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQobmFtZUFuZE1hdGNo
LmZpcnN0KTsKKyAgICAgICAgc2V0VXNlc01hdGNoRWxlbWVudChuYW1lQW5kTWF0Y2guc2Vjb25k
KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBzZWxlY3RvckFuZE1hdGNoIDogc2VsZWN0b3JGZWF0
dXJlcy5hdHRyaWJ1dGVzKSB7CiAgICAgICAgIGF1dG8qIHNlbGVjdG9yID0gc2VsZWN0b3JBbmRN
YXRjaC5maXJzdDsKQEAgLTIzNCw2ICsyNDQsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpjb2xs
ZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogICAgICAgICB9KS5pdGVyYXRv
ci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBtYXRjaEVsZW1lbnQsIHNlbGVjdG9yIH0pOwog
ICAgICAgICBpZiAobWF0Y2hFbGVtZW50ID09IE1hdGNoRWxlbWVudDo6SG9zdCkKICAgICAgICAg
ICAgIGF0dHJpYnV0ZXNBZmZlY3RpbmdIb3N0LmFkZChzZWxlY3Rvci0+YXR0cmlidXRlKCkubG9j
YWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CisgICAgICAgIHNldFVzZXNNYXRj
aEVsZW1lbnQobWF0Y2hFbGVtZW50KTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBrZXlBbmRNYXRj
aCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3NlcykgewogICAgICAgICBwc2V1ZG9DbGFz
c1J1bGVzLmVuc3VyZShrZXlBbmRNYXRjaC5maXJzdCwgW10gewpAQCAtMjQxLDYgKzI1Miw3IEBA
IHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYgcnVs
ZURhdGEpCiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kKHsgcnVsZURhdGEsIGtl
eUFuZE1hdGNoLnNlY29uZCB9KTsKICAgICAgICAgaWYgKGtleUFuZE1hdGNoLnNlY29uZCA9PSBN
YXRjaEVsZW1lbnQ6Okhvc3QpCiAgICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9z
dC5hZGQoa2V5QW5kTWF0Y2guZmlyc3QpOworICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KGtl
eUFuZE1hdGNoLnNlY29uZCk7CiAgICAgfQogfQogCkBAIC0yNTMsNiArMjY1LDEzIEBAIHZvaWQg
UnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNldCYgb3RoZXIpCiAgICAgY29u
dGVudEF0dHJpYnV0ZU5hbWVzSW5SdWxlcy5hZGQob3RoZXIuY29udGVudEF0dHJpYnV0ZU5hbWVz
SW5SdWxlcy5iZWdpbigpLCBvdGhlci5jb250ZW50QXR0cmlidXRlTmFtZXNJblJ1bGVzLmVuZCgp
KTsKICAgICBzaWJsaW5nUnVsZXMuYXBwZW5kVmVjdG9yKG90aGVyLnNpYmxpbmdSdWxlcyk7CiAg
ICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmRWZWN0b3Iob3RoZXIudW5jb21tb25BdHRy
aWJ1dGVSdWxlcyk7CisKKyAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6IG90aGVyLnRhZ1J1
bGVzKSB7CisgICAgICAgIHRhZ1J1bGVzLmVuc3VyZShrZXlWYWx1ZVBhaXIua2V5LCBbXSB7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSdWxlRmVhdHVyZVZlY3Rvcj4oKTsKKyAgICAg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZhbHVlUGFpci52YWx1ZSk7
CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIgOiBvdGhlci5jbGFzc1J1bGVz
KSB7CiAgICAgICAgIGNsYXNzUnVsZXMuZW5zdXJlKGtleVZhbHVlUGFpci5rZXksIFtdIHsKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJlVmVjdG9yPigpOwpAQCAtMjc0
LDYgKzI5Myw5IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNl
dCYgb3RoZXIpCiAgICAgfQogICAgIHBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmFkZChvdGhl
ci5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5iZWdpbigpLCBvdGhlci5wc2V1ZG9DbGFzc2Vz
QWZmZWN0aW5nSG9zdC5lbmQoKSk7CiAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRN
YXRjaEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICB1c2VkTWF0Y2hFbGVtZW50c1tpXSA9
IHVzZWRNYXRjaEVsZW1lbnRzW2ldIHx8IG90aGVyLnVzZWRNYXRjaEVsZW1lbnRzW2ldOworCiAg
ICAgdXNlc0ZpcnN0TGluZVJ1bGVzID0gdXNlc0ZpcnN0TGluZVJ1bGVzIHx8IG90aGVyLnVzZXNG
aXJzdExpbmVSdWxlczsKICAgICB1c2VzRmlyc3RMZXR0ZXJSdWxlcyA9IHVzZXNGaXJzdExldHRl
clJ1bGVzIHx8IG90aGVyLnVzZXNGaXJzdExldHRlclJ1bGVzOwogfQpAQCAtMjk0LDYgKzMxNiw3
IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNsZWFyKCkKICAgICBjb250ZW50QXR0cmlidXRlTmFt
ZXNJblJ1bGVzLmNsZWFyKCk7CiAgICAgc2libGluZ1J1bGVzLmNsZWFyKCk7CiAgICAgdW5jb21t
b25BdHRyaWJ1dGVSdWxlcy5jbGVhcigpOworICAgIHRhZ1J1bGVzLmNsZWFyKCk7CiAgICAgY2xh
c3NSdWxlcy5jbGVhcigpOwogICAgIGNsYXNzZXNBZmZlY3RpbmdIb3N0LmNsZWFyKCk7CiAgICAg
YXR0cmlidXRlUnVsZXMuY2xlYXIoKTsKQEAgLTMwOCw2ICszMzEsOCBAQCB2b2lkIFJ1bGVGZWF0
dXJlU2V0OjpzaHJpbmtUb0ZpdCgpCiB7CiAgICAgc2libGluZ1J1bGVzLnNocmlua1RvRml0KCk7
CiAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5zaHJpbmtUb0ZpdCgpOworICAgIGZvciAoYXV0
byYgcnVsZXMgOiB0YWdSdWxlcy52YWx1ZXMoKSkKKyAgICAgICAgcnVsZXMtPnNocmlua1RvRml0
KCk7CiAgICAgZm9yIChhdXRvJiBydWxlcyA6IGNsYXNzUnVsZXMudmFsdWVzKCkpCiAgICAgICAg
IHJ1bGVzLT5zaHJpbmtUb0ZpdCgpOwogICAgIGZvciAoYXV0byYgcnVsZXMgOiBhdHRyaWJ1dGVS
dWxlcy52YWx1ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0
dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCmluZGV4IDMzYmFlNzc5
MjY4NzFjYmFiM2VkZjRmNmI2NzBkNzcxZTk3ZWE2MmYuLmY0NjZhNDE4NTY5ODI2NDJmOGZkZjEy
ZDZkZTc5MzdiNTVlYWZhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVG
ZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuaApAQCAtNjcs
NiArNjcsOSBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVTZXQgewogICAgIHZvaWQgY29sbGVjdEZlYXR1
cmVzKGNvbnN0IFJ1bGVEYXRhJik7CiAgICAgdm9pZCByZWdpc3RlckNvbnRlbnRBdHRyaWJ1dGUo
Y29uc3QgQXRvbVN0cmluZyYpOwogCisgICAgYm9vbCB1c2VzTWF0Y2hFbGVtZW50KE1hdGNoRWxl
bWVudCBtYXRjaEVsZW1lbnQpIGNvbnN0ICB7IHJldHVybiB1c2VkTWF0Y2hFbGVtZW50c1tzdGF0
aWNfY2FzdDx1aW50OF90PihtYXRjaEVsZW1lbnQpXTsgfQorICAgIHZvaWQgc2V0VXNlc01hdGNo
RWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50KSB7IHVzZWRNYXRjaEVsZW1lbnRzW3N0
YXRpY19jYXN0PHVpbnQ4X3Q+KG1hdGNoRWxlbWVudCldID0gdHJ1ZTsgfQorCiAgICAgSGFzaFNl
dDxBdG9tU3RyaW5nPiBpZHNJblJ1bGVzOwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gaWRzTWF0
Y2hpbmdBbmNlc3RvcnNJblJ1bGVzOwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRl
Q2Fub25pY2FsTG9jYWxOYW1lc0luUnVsZXM7CkBAIC03NCw3ICs3Nyw4IEBAIHN0cnVjdCBSdWxl
RmVhdHVyZVNldCB7CiAgICAgSGFzaFNldDxBdG9tU3RyaW5nPiBjb250ZW50QXR0cmlidXRlTmFt
ZXNJblJ1bGVzOwogICAgIFJ1bGVGZWF0dXJlVmVjdG9yIHNpYmxpbmdSdWxlczsKICAgICBSdWxl
RmVhdHVyZVZlY3RvciB1bmNvbW1vbkF0dHJpYnV0ZVJ1bGVzOwotICAgIAorCisgICAgSGFzaE1h
cDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+PiB0YWdSdWxl
czsKICAgICBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZl
Y3Rvcj4+IGNsYXNzUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPFJ1bGVGZWF0dXJlV2l0aEludmFsaWRhdGlvblNlbGVjdG9yPj4+IGF0dHJpYnV0
ZVJ1bGVzOwogICAgIEhhc2hNYXA8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgc3RkOjp1
bmlxdWVfcHRyPFJ1bGVGZWF0dXJlVmVjdG9yPiwgSW50SGFzaDxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlPj4gcHNldWRvQ2xhc3NSdWxlczsKQEAgLTgyLDYgKzg2LDggQEAgc3RydWN0IFJ1
bGVGZWF0dXJlU2V0IHsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZXNBZmZlY3Rp
bmdIb3N0OwogICAgIEhhc2hTZXQ8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgSW50SGFz
aDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0
czxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hv
c3Q7CiAKKyAgICBzdGQ6OmFycmF5PGJvb2wsIG1hdGNoRWxlbWVudENvdW50PiB1c2VkTWF0Y2hF
bGVtZW50czsKKwogICAgIGJvb2wgdXNlc0ZpcnN0TGluZVJ1bGVzIHsgZmFsc2UgfTsKICAgICBi
b29sIHVzZXNGaXJzdExldHRlclJ1bGVzIHsgZmFsc2UgfTsKIApAQCAtOTIsNiArOTgsNyBAQCBw
cml2YXRlOgogICAgIHN0cnVjdCBTZWxlY3RvckZlYXR1cmVzIHsKICAgICAgICAgYm9vbCBoYXNT
aWJsaW5nU2VsZWN0b3IgeyBmYWxzZSB9OwogCisgICAgICAgIFZlY3RvcjxzdGQ6OnBhaXI8QXRv
bVN0cmluZywgTWF0Y2hFbGVtZW50PiwgMzI+IHRhZ3M7CiAgICAgICAgIFZlY3RvcjxzdGQ6OnBh
aXI8QXRvbVN0cmluZywgTWF0Y2hFbGVtZW50PiwgMzI+IGNsYXNzZXM7CiAgICAgICAgIFZlY3Rv
cjxzdGQ6OnBhaXI8Y29uc3QgQ1NTU2VsZWN0b3IqLCBNYXRjaEVsZW1lbnQ+LCAzMj4gYXR0cmli
dXRlczsKICAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NU
eXBlLCBNYXRjaEVsZW1lbnQ+LCAzMj4gcHNldWRvQ2xhc3NlczsKQEAgLTk5LDUgKzEwNiw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZWN1cnNpdmVseUNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rv
cihTZWxlY3RvckZlYXR1cmVzJiwgY29uc3QgQ1NTU2VsZWN0b3ImLCBNYXRjaEVsZW1lbnQgPSBN
YXRjaEVsZW1lbnQ6OlN1YmplY3QpOwogfTsKIAorYm9vbCBpc0hhc1BzZXVkb0NsYXNzTWF0Y2hF
bGVtZW50KE1hdGNoRWxlbWVudCk7CisKIH0gLy8gbmFtZXNwYWNlIFN0eWxlCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNw
cAppbmRleCAzYmY2NDdhNjc1ZTBjNDU3NjU3MWE0ZDY3NWY3MGJhNzU2ZWFmOWJiLi5jOGJiMDIy
ZTE2M2VhMDRlNDRkOTZjYzU4MTBmOWIzNWVlNWJkMThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTIyMCw2ICsyMjAsNyBAQCB2b2lkIFNjb3Bl
UnVsZVNldHM6OmNvbGxlY3RGZWF0dXJlcygpIGNvbnN0CiAgICAgbV9zaWJsaW5nUnVsZVNldCA9
IG1ha2VSdWxlU2V0KG1fZmVhdHVyZXMuc2libGluZ1J1bGVzKTsKICAgICBtX3VuY29tbW9uQXR0
cmlidXRlUnVsZVNldCA9IG1ha2VSdWxlU2V0KG1fZmVhdHVyZXMudW5jb21tb25BdHRyaWJ1dGVS
dWxlcyk7CiAKKyAgICBtX3RhZ0ludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CiAgICAgbV9j
bGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CiAgICAgbV9hdHRyaWJ1dGVJbnZhbGlk
YXRpb25SdWxlU2V0cy5jbGVhcigpOwogICAgIG1fcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxl
U2V0cy5jbGVhcigpOwpAQCAtMjczLDYgKzI3NCwxMSBAQCBzdGF0aWMgVmVjdG9yPEludmFsaWRh
dGlvblJ1bGVTZXQ+KiBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBLZXlUeXBlJiBr
ZQogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIAorY29uc3QgVmVjdG9yPEludmFs
aWRhdGlvblJ1bGVTZXQ+KiBTY29wZVJ1bGVTZXRzOjp0YWdJbnZhbGlkYXRpb25SdWxlU2V0cyhj
b25zdCBBdG9tU3RyaW5nJiB0YWdOYW1lKSBjb25zdAoreworICAgIHJldHVybiBlbnN1cmVJbnZh
bGlkYXRpb25SdWxlU2V0cyh0YWdOYW1lLCBtX3RhZ0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2Zl
YXR1cmVzLnRhZ1J1bGVzKTsKK30KKwogY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+
KiBTY29wZVJ1bGVTZXRzOjpjbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKGNvbnN0IEF0b21TdHJp
bmcmIGNsYXNzTmFtZSkgY29uc3QKIHsKICAgICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVs
ZVNldHMoY2xhc3NOYW1lLCBtX2NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMsIG1fZmVhdHVyZXMu
Y2xhc3NSdWxlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmlu
ZGV4IDQ1NGY1YzA3OTRkMjM5YTczZmQ4YTA1NDVmNDU1ZTY3NDlhNzJkN2IuLmUyNWJjMTE0N2Rm
MGYyYzFjNTZkZTliZWRjMTljMTRjMmViOGZlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC02MywxMCArNjMsMTMgQEAgcHVibGljOgogICAgIFJ1bGVT
ZXQqIHNpYmxpbmcoKSBjb25zdCB7IHJldHVybiBtX3NpYmxpbmdSdWxlU2V0LmdldCgpOyB9CiAg
ICAgUnVsZVNldCogdW5jb21tb25BdHRyaWJ1dGUoKSBjb25zdCB7IHJldHVybiBtX3VuY29tbW9u
QXR0cmlidXRlUnVsZVNldC5nZXQoKTsgfQogCisgICAgY29uc3QgVmVjdG9yPEludmFsaWRhdGlv
blJ1bGVTZXQ+KiB0YWdJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJiB0YWdO
YW1lKSBjb25zdDsKICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGNsYXNz
SW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgY2xhc3NOYW1lKSBjb25zdDsK
ICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGF0dHJpYnV0ZUludmFsaWRh
dGlvblJ1bGVTZXRzKGNvbnN0IEF0b21TdHJpbmcmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0OwogICAg
IGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogcHNldWRvQ2xhc3NJbnZhbGlkYXRp
b25SdWxlU2V0cyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlKSBjb25zdDsKIAorICAgIGNv
bnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogaW52YWxpZGF0aW9uUnVsZVNldHNGb3JD
aGlsZENoYW5nZShjb25zdCBFbGVtZW50Jik7CisKICAgICBib29sIGhhc0NvbXBsZXhTZWxlY3Rv
cnNGb3JTdHlsZUF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRVc2VzU2hhcmVkVXNl
clN0eWxlKGJvb2wgYikgeyBtX3VzZXNTaGFyZWRVc2VyU3R5bGUgPSBiOyB9CkBAIC05OCw2ICsx
MDEsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUnVsZUZlYXR1cmVTZXQgbV9mZWF0dXJlczsK
ICAgICBtdXRhYmxlIFJlZlB0cjxSdWxlU2V0PiBtX3NpYmxpbmdSdWxlU2V0OwogICAgIG11dGFi
bGUgUmVmUHRyPFJ1bGVTZXQ+IG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0OworICAgIG11dGFi
bGUgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlv
blJ1bGVTZXQ+Pj4gbV90YWdJbnZhbGlkYXRpb25SdWxlU2V0czsKICAgICBtdXRhYmxlIEhhc2hN
YXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0
Pj4+IG1fY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0czsKICAgICBtdXRhYmxlIEhhc2hNYXA8QXRv
bVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1f
YXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0
aW9uUnVsZVNldD4+LCBJbnRIYXNoPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+LCBXVEY6
OlN0cm9uZ0VudW1IYXNoVHJhaXRzPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+PiBtX3Bz
ZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCA1YTIwYTcxZjNkNjgyNGNhMWVlOWM3MmRmZmRhMWIzMjZkYTdhMmRmLi5kMmVjOGUy
ZDViZWUzN2U4OWZlOTEwODVlZjA2OWRmNTkwZjMzNjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMS0yNSAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgWzpoYXMoKSBwc2V1ZG8tY2xhc3NdIEludmFsaWRh
dGlvbiBzdXBwb3J0IGZvciBhZGRpbmcgYW5kIHJlbW92aW5nIG5vZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM0ODkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc29tZSBhZGRpdGlvbmFsIGNh
c2VzIHRvIGFuIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3Rv
cnMtaW4taGFzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMt
aW4taGFzLmh0bWw6CisKIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIENTUDogc2VjdXJpdHkgcG9saWN5IHZpb2xhdGlvbiBl
dmVudCBpcyBhbHdheXMgdXNpbmcgZG9jdW1lbnQgYXMgdGFyZ2V0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52
YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9z
ZWxlY3RvcnMvaW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWlu
LWhhcy1leHBlY3RlZC50eHQKaW5kZXggOTRmNmE3ZWNiYTFlMTFhYmUzNDAzZGRhNTkwMjhlOWQx
MjVlYTdmZC4uNzYyNWI4MmVlNDQxZGM4NDI3YjhiOGZmZDExNTJlMDE4ZmY5NDc0MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2Vs
ZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1o
YXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vYXR0cmlidXRlLW9yLWVsZW1lbnRh
bC1zZWxlY3RvcnMtaW4taGFzLWV4cGVjdGVkLnR4dApAQCAtMTQsOCArMTQsMjAgQEAgUEFTUyBz
ZXQgZGVzY2VuZGFudCB0byAjZGl2X2dyYW5kY2hpbGRbYXR0cm5hbWVdOiBkaXYjZGl2X3N1Ympl
Y3QuY29sb3IKIFBBU1MgY2xlYXIgI2Rpdl9ncmFuZGNoaWxkW2F0dHJuYW1lXTogZGl2I2Rpdl9z
dWJqZWN0LmNvbG9yCiBGQUlMIGNoYW5nZSAjZGl2X2dyYW5kY2hpbGQgdG8gI2Rpdl9kZXNjZW5k
YW50OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInJnYigy
NTUsIDI1NSwgMCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4KSIKIFBBU1MgY2hhbmdlICNk
aXZfZGVzY2VuZGFudCB0byAjZGl2X2dyYW5kY2hpbGQ6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgot
RkFJTCBhZGQgZGVzY2VuZGFudCB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xv
ciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmdiKDE1NCwgMjA1LCA1MCkiIGJ1dCBnb3QgInJn
YigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJqZWN0OiBk
aXYjZGl2X3N1YmplY3QuY29sb3IKIFBBU1MgcmVtb3ZlIGRlc2NlbmRhbnQgZnJvbSAjZGl2X3N1
YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgotRkFJTCBhZGQgImRpdiA+IGRlc2NlbmRhbnQi
IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJyZ2IoMTU0LCAyMDUsIDUwKSIgYnV0IGdvdCAicmdiKDEyOCwgMTI4LCAxMjgpIgor
UEFTUyBhZGQgImRpdiA+IGRlc2NlbmRhbnQiIHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJq
ZWN0LmNvbG9yCiBQQVNTIHJlbW92ZSAiZGl2ID4gZGVzY2VuZGFudCIgZnJvbSAjZGl2X3N1Ympl
Y3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBhZGQgZGl2LmNoaWxkIHRvICNkaXZfc3Vi
amVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCitQQVNTIHJlbW92ZSBkaXYuY2hpbGQgZnJvbSAj
ZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBhZGQgImRpdiA+IGRpdi5k
ZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBy
ZW1vdmUgImRpdiA+IGRpdi5kZXNjZW5kYW50IiBmcm9tICNkaXZfc3ViamVjdDogZGl2I2Rpdl9z
dWJqZWN0LmNvbG9yCitGQUlMIGFkZCBkaXYjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9zdWJqZWN0
OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInJnYigyNTUs
IDI1NSwgMCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4KSIKK1BBU1MgcmVtb3ZlIGRpdiNk
aXZfZGVzY2VuZGFudCBmcm9tICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCitG
QUlMIGFkZCAiZGl2I2Rpdl9kZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3Vi
amVjdC5jb2xvciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmdiKDI1NSwgMjU1LCAwKSIgYnV0
IGdvdCAicmdiKDEyOCwgMTI4LCAxMjgpIgorUEFTUyByZW1vdmUgImRpdiNkaXZfZGVzY2VuZGFu
dCIgZnJvbSAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBhZGQgZGl2
W2F0dHJuYW1lXSB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgorUEFTUyBy
ZW1vdmUgZGl2W2F0dHJuYW1lXSBmcm9tICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNv
bG9yCitQQVNTIGFkZCAiZGl2ID4gZGl2W2F0dHJuYW1lXSIgdG8gI2Rpdl9zdWJqZWN0OiBkaXYj
ZGl2X3N1YmplY3QuY29sb3IKK1BBU1MgcmVtb3ZlICJkaXYgPiBkaXZbYXR0cm5hbWVdIiBmcm9t
ICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZh
bGlkYXRpb24vYXR0cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
aW52YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy5odG1s
CmluZGV4IDQyNTUyNDY0YzdjYmYxZTg4NzI1ZjZjMmIyNGQ3ZmY4NDdiODM2NWEuLmQwZWRiMWU1
ZTQ3YThkZDA4MzFlMjZjY2YwM2Q0MGJmZDgxMzdkZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRp
b24vYXR0cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2lu
dmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3ItZWxlbWVudGFsLXNlbGVjdG9ycy1pbi1oYXMuaHRtbApA
QCAtNjgsMTcgKzY4LDgyIEBAIGRpdiwgbWFpbiB7IGNvbG9yOiBncmV5IH0KICAgZGl2X2Rlc2Nl
bmRhbnQuaWQgPSAnZGl2X2dyYW5kY2hpbGQnOwogICB0ZXN0X2RpdignY2hhbmdlICNkaXZfZGVz
Y2VuZGFudCB0byAjZGl2X2dyYW5kY2hpbGQnLCBkaXZfc3ViamVjdCwgZ3JleSk7CiAKLSAgZGVz
Y2VuZGFudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rlc2NlbmRhbnQnKTsKLSAgZGl2X3N1
YmplY3QuYXBwZW5kQ2hpbGQoZGVzY2VuZGFudCk7Ci0gIHRlc3RfZGl2KCdhZGQgZGVzY2VuZGFu
dCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVsbG93Z3JlZW4pOwotICBkaXZfc3Vi
amVjdC5yZW1vdmVDaGlsZChkZXNjZW5kYW50KTsKLSAgdGVzdF9kaXYoJ3JlbW92ZSBkZXNjZW5k
YW50IGZyb20gI2Rpdl9zdWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkpOwotCi0gIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICBkaXYuYXBwZW5kQ2hpbGQoZGVzY2VuZGFu
dCk7Ci0gIGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGRpdik7Ci0gIHRlc3RfZGl2KCdhZGQgImRp
diA+IGRlc2NlbmRhbnQiIHRvICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCB5ZWxsb3dncmVl
bik7Ci0gIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRpdik7Ci0gIHRlc3RfZGl2KCdyZW1vdmUg
ImRpdiA+IGRlc2NlbmRhbnQiIGZyb20gI2Rpdl9zdWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkp
OwotCi08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisgIHsKKyAgICBjb25z
dCBkZXNjZW5kYW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGVzY2VuZGFudCcpOworICAg
IGRpdl9zdWJqZWN0LmFwcGVuZENoaWxkKGRlc2NlbmRhbnQpOworICAgIHRlc3RfZGl2KCdhZGQg
ZGVzY2VuZGFudCB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVsbG93Z3JlZW4pOwor
ICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGRlc2NlbmRhbnQpOworICAgIHRlc3RfZGl2KCdy
ZW1vdmUgZGVzY2VuZGFudCBmcm9tICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmV5KTsK
KyAgfQorCisgIHsKKyAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBjb25zdCBkZXNjZW5kYW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGVzY2Vu
ZGFudCcpOworICAgIGRpdi5hcHBlbmRDaGlsZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVj
dC5hcHBlbmRDaGlsZChkaXYpOworICAgIHRlc3RfZGl2KCdhZGQgImRpdiA+IGRlc2NlbmRhbnQi
IHRvICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCB5ZWxsb3dncmVlbik7CisgICAgZGl2X3N1
YmplY3QucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlICJkaXYgPiBkZXNj
ZW5kYW50IiBmcm9tICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKKyAgfQorCisg
IHsKKyAgICBjb25zdCBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IGNoaWxkLmNsYXNzTGlzdC5hZGQoJ2NoaWxkJyk7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hp
bGQoY2hpbGQpOworICAgIHRlc3RfZGl2KCdhZGQgZGl2LmNoaWxkIHRvICNkaXZfc3ViamVjdCcs
IGRpdl9zdWJqZWN0LCByZWQpOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxkKGNoaWxkKTsK
KyAgICB0ZXN0X2RpdigncmVtb3ZlIGRpdi5jaGlsZCBmcm9tICNkaXZfc3ViamVjdCcsIGRpdl9z
dWJqZWN0LCBncmV5KTsKKyAgfQorCisgIHsKKyAgICBjb25zdCBkZXNjZW5kYW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGVzY2VuZGFudC5jbGFzc0xpc3QuYWRkKCdk
ZXNjZW5kYW50Jyk7CisgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRlc2NlbmRhbnQpOworICAgIGRpdl9zdWJqZWN0LmFw
cGVuZENoaWxkKGRpdik7CisgICAgdGVzdF9kaXYoJ2FkZCAiZGl2ID4gZGl2LmRlc2NlbmRhbnQi
IHRvICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmVlbik7CisgICAgZGl2X3N1YmplY3Qu
cmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlICJkaXYgPiBkaXYuZGVzY2Vu
ZGFudCIgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7CisgIH0KKworICB7
CisgICAgY29uc3QgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBj
aGlsZC5pZCA9ICdkaXZfZGVzY2VuZGFudCc7CisgICAgZGl2X3N1YmplY3QuYXBwZW5kQ2hpbGQo
Y2hpbGQpOworICAgIHRlc3RfZGl2KCdhZGQgZGl2I2Rpdl9kZXNjZW5kYW50IHRvICNkaXZfc3Vi
amVjdCcsIGRpdl9zdWJqZWN0LCB5ZWxsb3cpOworICAgIGRpdl9zdWJqZWN0LnJlbW92ZUNoaWxk
KGNoaWxkKTsKKyAgICB0ZXN0X2RpdigncmVtb3ZlIGRpdiNkaXZfZGVzY2VuZGFudCBmcm9tICNk
aXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBncmV5KTsKKyAgfQorCisgIHsKKyAgICBjb25zdCBk
ZXNjZW5kYW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGVzY2VuZGFu
dC5pZCA9ICdkaXZfZGVzY2VuZGFudCc7CisgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRlc2NlbmRhbnQpOworICAgIGRp
dl9zdWJqZWN0LmFwcGVuZENoaWxkKGRpdik7CisgICAgdGVzdF9kaXYoJ2FkZCAiZGl2I2Rpdl9k
ZXNjZW5kYW50IiB0byAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgeWVsbG93KTsKKyAgICBk
aXZfc3ViamVjdC5yZW1vdmVDaGlsZChkaXYpOworICAgIHRlc3RfZGl2KCdyZW1vdmUgImRpdiNk
aXZfZGVzY2VuZGFudCIgZnJvbSAjZGl2X3N1YmplY3QnLCBkaXZfc3ViamVjdCwgZ3JleSk7Cisg
IH0KKworICB7CisgICAgY29uc3QgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ2F0dHJuYW1lJywgJ2Rlc2NlbmRhbnQnKTsKKyAg
ICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYoJ2FkZCBkaXZb
YXR0cm5hbWVdIHRvICNkaXZfc3ViamVjdCcsIGRpdl9zdWJqZWN0LCBibHVlKTsKKyAgICBkaXZf
c3ViamVjdC5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgdGVzdF9kaXYoJ3JlbW92ZSBkaXZbYXR0
cm5hbWVdIGZyb20gI2Rpdl9zdWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKyAg
eworICAgIGNvbnN0IGRlc2NlbmRhbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICBkZXNjZW5kYW50LnNldEF0dHJpYnV0ZSgnYXR0cm5hbWUnLCAnZGVzY2VuZGFudCcpOwor
ICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5h
cHBlbmRDaGlsZChkZXNjZW5kYW50KTsKKyAgICBkaXZfc3ViamVjdC5hcHBlbmRDaGlsZChkaXYp
OworICAgIHRlc3RfZGl2KCdhZGQgImRpdiA+IGRpdlthdHRybmFtZV0iIHRvICNkaXZfc3ViamVj
dCcsIGRpdl9zdWJqZWN0LCBibHVlKTsKKyAgICBkaXZfc3ViamVjdC5yZW1vdmVDaGlsZChkaXYp
OworICAgIHRlc3RfZGl2KCdyZW1vdmUgImRpdiA+IGRpdlthdHRybmFtZV0iIGZyb20gI2Rpdl9z
dWJqZWN0JywgZGl2X3N1YmplY3QsIGdyZXkpOworICB9CisKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445214</attachid>
            <date>2021-11-27 00:13:39 -0800</date>
            <delta_ts>2021-11-27 04:37:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233489-20211127101338.patch</filename>
            <type>text/plain</type>
            <size>1585</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFhYmU5MzYxYmU4ZDc3
OWE4MmViNzYxNDUyOTE1MjIwZTE0OWQwNC4uZjkyMDZkZjFkZTY4ZjliM2E1OTAyYzk0MjA0MjNm
OWUzMGJlZTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTI3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gSW52YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcgZWxlbWVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU3NTQyOTg+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCBmb2xsb3d1cC4KKworICAgICAgICBTb21lIHVuaXRpYWxpemVkIGJpdHMgY2F1c2VkIHVzIHRv
IGRvIHVubmVjZXNzYXJ5IHdvcmsgYW5kIHJlZ3Jlc3NlZCBTcGVlZG9tZXRlci4KKworICAgICAg
ICAqIHN0eWxlL1J1bGVGZWF0dXJlLmg6CisKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUgdXNlZE1h
dGNoRWxlbWVudHMgYXJyYXkuCisKIDIwMjEtMTEtMjUgIEplYW4tWXZlcyBBdmVuYXJkICA8anlh
QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBmbGF0dGVuaW5nIGEgU2hhcmVkQnVmZmVyIHdo
ZW4gcmVhZGluZyByZWFkaW5nIGl0IHRocm91Z2ggU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuaAppbmRleCBmNDY2YTQxODU2OTgyNjQyZjhmZGYxMmQ2
ZGU3OTM3YjU1ZWFmYTFmLi4wM2NkMDJkMjlkNzE4MTRmMDI5MjEwZjdkNDJiOTUwM2UwNDlhNmIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmgKQEAgLTg2LDcgKzg2LDcgQEAgc3RydWN0
IFJ1bGVGZWF0dXJlU2V0IHsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZXNBZmZl
Y3RpbmdIb3N0OwogICAgIEhhc2hTZXQ8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgSW50
SGFzaDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRy
YWl0czxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gcHNldWRvQ2xhc3Nlc0FmZmVjdGlu
Z0hvc3Q7CiAKLSAgICBzdGQ6OmFycmF5PGJvb2wsIG1hdGNoRWxlbWVudENvdW50PiB1c2VkTWF0
Y2hFbGVtZW50czsKKyAgICBzdGQ6OmFycmF5PGJvb2wsIG1hdGNoRWxlbWVudENvdW50PiB1c2Vk
TWF0Y2hFbGVtZW50cyB7IH07CiAKICAgICBib29sIHVzZXNGaXJzdExpbmVSdWxlcyB7IGZhbHNl
IH07CiAgICAgYm9vbCB1c2VzRmlyc3RMZXR0ZXJSdWxlcyB7IGZhbHNlIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>