<?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>231486</bug_id>
          
          <creation_ts>2021-10-09 23:27:55 -0700</creation_ts>
          <short_desc>[JSC] Refine RegExp#compile based on regexp-legacy-features proposal</short_desc>
          <delta_ts>2021-10-10 01:50:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802437</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-09 23:27:55 -0700</bug_when>
    <thetext>[JSC] Refine RegExp#compile based on regexp-legacy-features proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802438</commentid>
    <comment_count>1</comment_count>
      <attachid>440725</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-09 23:30:35 -0700</bug_when>
    <thetext>Created attachment 440725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802439</commentid>
    <comment_count>2</comment_count>
      <attachid>440726</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-09 23:44:12 -0700</bug_when>
    <thetext>Created attachment 440726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802441</commentid>
    <comment_count>3</comment_count>
      <attachid>440726</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-10-09 23:53:33 -0700</bug_when>
    <thetext>Comment on attachment 440726
Patch

Nicely done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802447</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-10 01:49:55 -0700</bug_when>
    <thetext>Committed r283874 (242751@main): &lt;https://commits.webkit.org/242751@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802448</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-10 01:50:15 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #3)
&gt; Comment on attachment 440726 [details]
&gt; Patch
&gt; 
&gt; Nicely done!

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802449</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-10 01:50:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/84071123&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440725</attachid>
            <date>2021-10-09 23:30:35 -0700</date>
            <delta_ts>2021-10-09 23:51:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231486-20211009233034.patch</filename>
            <type>text/plain</type>
            <size>26887</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWI4Nzg0NDEwYzlkMTFlOTkwMGY4YmRjYmIzMGI1YjU4YzliZTgzLi43OTNmYzE3OWVmZWUwMzJm
NzUwNGU5NTMxYWY4ODlhMDY4ZjNkYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMS0xMC0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZmluZSBSZWdFeHAjY29tcGlsZSBiYXNlZCBvbiByZWdleHAt
bGVnYWN5LWZlYXR1cmVzIHByb3Bvc2FsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlZmluZXMgUmVnRXhwI2NvbXBpbGUgYmFzZWQg
cmVnZXhwLWxlZ2FjeS1mZWF0dXJlcyBwcm9wb3NhbFsxXS4KKyAgICAgICAgV2UgYWRkIGxlZ2Fj
eUZlYXR1cmVzRGlzYWJsZWRGbGFnIGZsYWcgdG8gUmVnRXhwT2JqZWN0IHNvIHRoYXQgd2UgY2Fu
CisgICAgICAgIGRldGVjdCBbW0xlZ2FjeUZlYXR1cmVzRW5hYmxlZF1dLgorCisgICAgICAgIFdl
IGFsc28gYWRkIHJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50IHRvIEpTR2xvYmFsT2JqZWN0LiBX
ZSBoYXZlIHN0cmVuZ3RoCisgICAgICAgIHJlZHVjdGlvbiBpbiBERkcgLyBGVEwsIGJ1dCB3ZSBz
aG91bGQgcmVjb21waWxlIERGRyAvIEZUTCBjb2RlIHdoZW4gUmVnRXhwCisgICAgICAgIGlzIHJl
Y29tcGlsZWQuIFNpbmNlIGl0IGlzIHJhcmUsIGluc3RlYWQgb2YgaGF2aW5nIHRoaXMgd2F0Y2hw
b2ludCBwZXIKKyAgICAgICAgUmVnRXhwT2JqZWN0LCB3ZSBob2xkIGl0IGluIEpTR2xvYmFsT2Jq
ZWN0LgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtcmVn
ZXhwLWxlZ2FjeS1mZWF0dXJlcworCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1JlZ2V4cCk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXgpOgorICAgICAgICAqIGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBoYXNlOjpoYW5kbGVOb2Rl
KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAq
IGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBmdGwvRlRMT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToK
KyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgor
ICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KToK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmlzUmVnRXhwUmVjb21waWxlZCBjb25zdCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OmFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENyZWF0ZSk6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFJlZ0V4cCk6CisgICAgICAgICogcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisKIDIwMjEtMTAtMDggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUnVuIGJhY2t3YXJkcyBwcm9wYWdhdGlvbiBiZWZvcmUgd2UgcHJ1bmUgdGhlIGdyYXBo
IGFmdGVyIEZvcmNlT1NSRXhpdCBub2RlcyBpbiBCeXRlY29kZVBhcnNlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBjOTBjNjA4OWU5
M2Q2YjE4YmUzMTliNDYxZGYwMGRjM2JiYTdjNDViLi5jYzRhNjM3ZGFmZDdjZjg0MDdjZjE1ZDZh
N2Q0YzliNjQ1YzdhNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtMTEyMjMsNyArMTEyMjMsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlTmV3UmVnZXhwKE5vZGUqIG5vZGUpCiAKICAgICBtX2ppdC5zdG9yZVB0cigK
ICAgICAgICAgVHJ1c3RlZEltbVB0cihub2RlLT5jZWxsT3BlcmFuZCgpKSwKLSAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4
cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKCkpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHJlc3VsdEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cEFuZEZsYWdz
KCkpKTsKICAgICBtX2ppdC5zdG9yZVZhbHVlKGxhc3RJbmRleFJlZ3MsIENDYWxsSGVscGVyczo6
QWRkcmVzcyhyZXN1bHRHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXgoKSkpOwog
ICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKIApAQCAtMTI3NzMsNyArMTI3NzMsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlUmVncygpLCBudWxs
cHRyLAogICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdFB0cigKICAgICAgICAgICAgICAgICBK
SVRDb21waWxlcjo6Tm9uWmVybywKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVz
cyhyZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHBBbmRMYXN0SW5kZXhJc05v
dFdyaXRhYmxlRmxhZygpKSwKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhy
ZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHBBbmRGbGFncygpKSwKICAgICAg
ICAgICAgICAgICBKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMyKFJlZ0V4cE9iamVjdDo6bGFzdElu
ZGV4SXNOb3RXcml0YWJsZUZsYWcpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRleCBmMWI1
ZWQ5YzdiZDFkNTc5MzZiNjhhMGYzMGY0NjAxNGMzYWMyNGI2Li45Zjc5ZDI4YmI5YmNhNmI5ZmY0
Mjg1OTBkNzVjYTkxZTdmZjM3MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTUwMiwxMSArNTAyLDI1
IEBAIGNsYXNzIFN0cmVuZ3RoUmVkdWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAg
ICAgICAgaWYgKG1fbm9kZS0+b3AoKSA9PSBSZWdFeHBFeGVjIHx8IG1fbm9kZS0+b3AoKSA9PSBS
ZWdFeHBUZXN0IHx8IG1fbm9kZS0+b3AoKSA9PSBSZWdFeHBNYXRjaEZhc3QpIHsKICAgICAgICAg
ICAgICAgICByZWdFeHBPYmplY3ROb2RlID0gbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0ID0gcmVnRXhwT2JqZWN0
Tm9kZS0+ZHluYW1pY0Nhc3RDb25zdGFudDxSZWdFeHBPYmplY3QqPih2bSgpKSkgeworICAgICAg
ICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gcmVnRXhwT2JqZWN0
LT5nbG9iYWxPYmplY3Qodm0oKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWxPYmpl
Y3QtPmlzUmVnRXhwUmVjb21waWxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJHaXZpbmcgdXAg
YmVjYXVzZSBSZWdFeHAgcmVjb21waWxlIGhhcHBlbnMuXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5yZWdFeHBSZWNv
bXBpbGVkV2F0Y2hwb2ludCgpKTsKICAgICAgICAgICAgICAgICAgICAgcmVnRXhwID0gcmVnRXhw
T2JqZWN0LT5yZWdFeHAoKTsKICAgICAgICAgICAgICAgICAgICAgcmVnRXhwT2JqZWN0Tm9kZUlz
Q29uc3RhbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVnRXhwT2JqZWN0
Tm9kZS0+b3AoKSA9PSBOZXdSZWdleHApCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWdF
eHBPYmplY3ROb2RlLT5vcCgpID09IE5ld1JlZ2V4cCkgeworICAgICAgICAgICAgICAgICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IocmVn
RXhwT2JqZWN0Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGdsb2JhbE9iamVjdC0+aXNSZWdFeHBSZWNvbXBpbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2co
IkdpdmluZyB1cCBiZWNhdXNlIFJlZ0V4cCByZWNvbXBpbGUgaGFwcGVucy5cbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3Qt
PnJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KCkpOwogICAgICAgICAgICAgICAgICAgICByZWdF
eHAgPSByZWdFeHBPYmplY3ROb2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpOwotICAgICAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiR2l2aW5n
IHVwIGJlY2F1c2UgdGhlIHJlZ2V4cCBpcyB1bmtub3duLlxuIik7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtODM1LDExICs4NDksMjUgQEAgY2xhc3MgU3RyZW5ndGhSZWR1Y3Rpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE5vZGUqIHJl
Z0V4cE9iamVjdE5vZGUgPSBtX25vZGUtPmNoaWxkMigpLm5vZGUoKTsKICAgICAgICAgICAgIFJl
Z0V4cCogcmVnRXhwOwotICAgICAgICAgICAgaWYgKFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0
ID0gcmVnRXhwT2JqZWN0Tm9kZS0+ZHluYW1pY0Nhc3RDb25zdGFudDxSZWdFeHBPYmplY3QqPih2
bSgpKSkKKyAgICAgICAgICAgIGlmIChSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCA9IHJlZ0V4
cE9iamVjdE5vZGUtPmR5bmFtaWNDYXN0Q29uc3RhbnQ8UmVnRXhwT2JqZWN0Kj4odm0oKSkpIHsK
KyAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gcmVnRXhwT2Jq
ZWN0LT5nbG9iYWxPYmplY3Qodm0oKSk7CisgICAgICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVj
dC0+aXNSZWdFeHBSZWNvbXBpbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJHaXZpbmcgdXAgYmVjYXVzZSBS
ZWdFeHAgcmVjb21waWxlIGhhcHBlbnMuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMo
KS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludCgpKTsK
ICAgICAgICAgICAgICAgICByZWdFeHAgPSByZWdFeHBPYmplY3QtPnJlZ0V4cCgpOwotICAgICAg
ICAgICAgZWxzZSBpZiAocmVnRXhwT2JqZWN0Tm9kZS0+b3AoKSA9PSBOZXdSZWdleHApCisgICAg
ICAgICAgICB9IGVsc2UgaWYgKHJlZ0V4cE9iamVjdE5vZGUtPm9wKCkgPT0gTmV3UmVnZXhwKSB7
CisgICAgICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKHJlZ0V4cE9iamVjdE5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisgICAg
ICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+aXNSZWdFeHBSZWNvbXBpbGVkKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJHaXZpbmcgdXAgYmVjYXVzZSBSZWdFeHAgcmVjb21waWxlIGhhcHBlbnMuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBSZWNvbXBpbGVkV2F0Y2hwb2ludCgpKTsKICAgICAgICAgICAgICAgICByZWdFeHAgPSByZWdF
eHBPYmplY3ROb2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpOwotICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCJHaXZpbmcgdXAgYmVjYXVzZSB0aGUgcmVnZXhwIGlz
IHVua25vd24uXG4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggODJj
YWIwMjE4YzE4YTBkZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZC4uMzE1ZjkwZDRjZWEyMzk5NmRk
MDcyOGI2YjZiZGNiNDg0YmJiMWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBK
U1Njb3BlOjpvZmZzZXRPZk5leHQoKSkgXAogICAgIG1hY3JvKEpTU3ltYm9sVGFibGVPYmplY3Rf
c3ltYm9sVGFibGUsIEpTU3ltYm9sVGFibGVPYmplY3Q6Om9mZnNldE9mU3ltYm9sVGFibGUoKSkg
XAogICAgIG1hY3JvKE5hdGl2ZUV4ZWN1dGFibGVfYXNTdHJpbmcsIE5hdGl2ZUV4ZWN1dGFibGU6
Om9mZnNldE9mQXNTdHJpbmcoKSkgXAotICAgIG1hY3JvKFJlZ0V4cE9iamVjdF9yZWdFeHBBbmRM
YXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZywgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cEFu
ZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3Rf
cmVnRXhwQW5kRmxhZ3MsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHBBbmRGbGFncygpKSBc
CiAgICAgbWFjcm8oUmVnRXhwT2JqZWN0X2xhc3RJbmRleCwgUmVnRXhwT2JqZWN0OjpvZmZzZXRP
Zkxhc3RJbmRleCgpKSBcCiAgICAgbWFjcm8oU2hhZG93Q2hpY2tlbl9QYWNrZXRfY2FsbGVlLCBP
QkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0LCBjYWxsZWUpKSBcCiAgICAgbWFj
cm8oU2hhZG93Q2hpY2tlbl9QYWNrZXRfZnJhbWUsIE9CSkVDVF9PRkZTRVRPRihTaGFkb3dDaGlj
a2VuOjpQYWNrZXQsIGZyYW1lKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCmluZGV4IDZmODI3YjI2ZDMwM2QwNTIzYThhODA3YzM4YzY0YThhNTVj
NWNiYTIuLjJhZGRmZjc3YjAzNTZjODRjYTZhZTgxYmVmYTc1MTdiYjk4ODA4YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTE0MjkwLDcg
KzE0MjkwLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgICAgICBhdXRvIHN0cnVjdHVy
ZSA9IG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1
cmUoKSk7CiAgICAgICAgIExWYWx1ZSBmYXN0UmVzdWx0VmFsdWUgPSBhbGxvY2F0ZU9iamVjdDxS
ZWdFeHBPYmplY3Q+KHN0cnVjdHVyZSwgbV9vdXQuaW50UHRyWmVybywgc2xvd0Nhc2UpOwotICAg
ICAgICBtX291dC5zdG9yZVB0cihmcm96ZW5Qb2ludGVyKHJlZ2V4cCksIGZhc3RSZXN1bHRWYWx1
ZSwgbV9oZWFwcy5SZWdFeHBPYmplY3RfcmVnRXhwQW5kTGFzdEluZGV4SXNOb3RXcml0YWJsZUZs
YWcpOworICAgICAgICBtX291dC5zdG9yZVB0cihmcm96ZW5Qb2ludGVyKHJlZ2V4cCksIGZhc3RS
ZXN1bHRWYWx1ZSwgbV9oZWFwcy5SZWdFeHBPYmplY3RfcmVnRXhwQW5kRmxhZ3MpOwogICAgICAg
ICBtX291dC5zdG9yZTY0KGxhc3RJbmRleCwgZmFzdFJlc3VsdFZhbHVlLCBtX2hlYXBzLlJlZ0V4
cE9iamVjdF9sYXN0SW5kZXgpOwogICAgICAgICBtdXRhdG9yRmVuY2UoKTsKICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihmYXN0UmVzdWx0VmFsdWUpOwpA
QCAtMTQzNzcsNyArMTQzNzcsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
c3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIG5vVmFsdWUoKSwg
bnVsbHB0ciwKICAgICAgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVyb1B0cigKLSAgICAgICAg
ICAgICAgICAgICAgbV9vdXQubG9hZFB0cihyZWdFeHAsIG1faGVhcHMuUmVnRXhwT2JqZWN0X3Jl
Z0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKSwKKyAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZFB0cihyZWdFeHAsIG1faGVhcHMuUmVnRXhwT2JqZWN0X3JlZ0V4cEFuZEZsYWdz
KSwKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoUmVnRXhwT2JqZWN0Ojps
YXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZykpKTsKIAogICAgICAgICAgICAgbV9vdXQuc3RvcmU2
NCh2YWx1ZSwgcmVnRXhwLCBtX2hlYXBzLlJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKaW5kZXggNmNmMzU5MjlkY2Jm
MzU5NWI5ODc4NTVjY2ZmMDhkM2Q5OWEyZmY4Yy4uNjMxMTg4MjMxNWYzMTQxZTc4NjBhYjUxNmIx
NzIyMGUyY2RlY2I4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlv
bnMuY3BwCkBAIC02ODksNyArNjg5LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk1hdGVyaWFsaXplT2JqZWN0SW5PU1IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQocmVnRXhwKTsKICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBiYXNlbGluZUNvZGVCbG9ja0Zvck9yaWdpbkFuZEJhc2VsaW5lQ29kZUJsb2NrKG1hdGVyaWFs
aXphdGlvbi0+b3JpZ2luKCksIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmJhc2VsaW5lQWx0ZXJu
YXRpdmUoKSk7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gY29kZUJsb2NrLT5nbG9i
YWxPYmplY3QoKS0+cmVnRXhwU3RydWN0dXJlKCk7Ci0gICAgICAgIHJldHVybiBSZWdFeHBPYmpl
Y3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCByZWdFeHApOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIHJlZ0V4cCwgYXJlTGVnYWN5RmVh
dHVyZXNFbmFibGVkKTsKICAgICB9CiAKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZDdkZjdjYjhlODc1ZTJjYTZhZTcwNGYx
MWVkZDlkOGNjZjEzMjk4Ni4uNGE1YzA4MGMwNjBjMDY4MWYyNzkzMzAzOGI0MzJmNjM0MGRlZWEx
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
ODkwLDcgKzE4OTAsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmVn
ZXhwLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogCiAgICAgUmVnRXhwKiBy
ZWdleHAgPSBzdGF0aWNfY2FzdDxSZWdFeHAqPihyZWdleHBQdHIpOwogICAgIEFTU0VSVChyZWdl
eHAtPmlzVmFsaWQoKSk7Ci0gICAgcmV0dXJuIFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdleHApOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQgPSB0cnVlOworICAgIHJldHVybiBSZWdF
eHBPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVn
ZXhwLCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQpOwogfQogCiAvLyBUaGUgb25seSByZWFzb24g
Zm9yIHJldHVybmluZyBhbiBVbnVzZWRQdHIgKGluc3RlYWQgb2Ygdm9pZCkgaXMgc28gdGhhdCB3
ZSBjYW4gcmV1c2UgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAppbmRleCAzYTQ2ZTRkMGMzZjYwYzUzY2RhMGFiZGVmNDBjMGU2MWIzMjBhYmVl
Li41NjgxMzc3YmI5ODQyYjJkMzU1ZDg5ZjNmOWU0NTk0MWMzNThmZTA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTYxMiw3ICs2MTIs
OCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbmV3X3JlZ2V4cCkKICAgICBhdXRv
IGJ5dGVjb2RlID0gcGMtPmFzPE9wTmV3UmVnZXhwPigpOwogICAgIFJlZ0V4cCogcmVnRXhwID0g
anNDYXN0PFJlZ0V4cCo+KGdldE9wZXJhbmQoY2FsbEZyYW1lLCBieXRlY29kZS5tX3JlZ2V4cCkp
OwogICAgIEFTU0VSVChyZWdFeHAtPmlzVmFsaWQoKSk7Ci0gICAgTExJTlRfUkVUVVJOKFJlZ0V4
cE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdF
eHApKTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFibGVk
ID0gdHJ1ZTsKKyAgICBMTElOVF9SRVRVUk4oUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cCwgYXJlTGVnYWN5RmVhdHVyZXNFbmFi
bGVkKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDMxOWU0YjNkOGFiMTgzMDA2MGYyMjU3NjFhMTkyYmNjYjgwNDM3ZDQuLmUwY2ViNGJlMDIz
MTUwY2U1YTk0ZGI4YTg4YmNkNmQxYzBmZWVlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTYwOCw2ICs2MDgsNyBAQCBKU0ds
b2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgR2xvYmFsT2JqZWN0TQogICAgICwgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoV2F0
Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAgICAgLCBtX3ZhckluamVjdGlvbldhdGNo
cG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAgICAgLCBtX3ZhclJlYWRP
bmx5V2F0Y2hwb2ludChXYXRjaHBvaW50U2V0OjpjcmVhdGUoSXNXYXRjaGVkKSkKKyAgICAsIG1f
cmVnRXhwUmVjb21waWxlZFdhdGNocG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hl
ZCkpCiAgICAgLCBtX3dlYWtSYW5kb20oT3B0aW9uczo6Zm9yY2VXZWFrUmFuZG9tU2VlZCgpID8g
T3B0aW9uczo6Zm9yY2VkV2Vha1JhbmRvbVNlZWQoKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihy
YW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAx
LjApKSkKICAgICAsIG1fYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldChJc1dhdGNo
ZWQpCiAgICAgLCBtX21hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KElzV2F0Y2hlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4
IDFiZGNjNGRlNzRkMDkyNGQzOWM4NGY5NTI1YzVlMGIzZTZhZjQxMGYuLjBkYWVlNTNlZTBkNzU4
OTM5YTFlZGFlYmI5NThkMDViMDAwYjlhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtNDg3LDYgKzQ4Nyw3IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIFJlZlB0
cjxXYXRjaHBvaW50U2V0PiBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludDsKICAgICBSZWZQdHI8
V2F0Y2hwb2ludFNldD4gbV92YXJJbmplY3Rpb25XYXRjaHBvaW50OwogICAgIFJlZlB0cjxXYXRj
aHBvaW50U2V0PiBtX3ZhclJlYWRPbmx5V2F0Y2hwb2ludDsKKyAgICBSZWZQdHI8V2F0Y2hwb2lu
dFNldD4gbV9yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxKU0dsb2JhbE9iamVjdFJhcmVEYXRhPiBtX3JhcmVEYXRhOwogCkBAIC0xMDI1LDYgKzEwMjYs
NyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0IHsKICAgICBXYXRjaHBvaW50U2V0KiBoYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoKSB7IHJl
dHVybiBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludC5nZXQoKTsgfQogICAgIFdhdGNocG9pbnRT
ZXQqIHZhckluamVjdGlvbldhdGNocG9pbnQoKSB7IHJldHVybiBtX3ZhckluamVjdGlvbldhdGNo
cG9pbnQuZ2V0KCk7IH0KICAgICBXYXRjaHBvaW50U2V0KiB2YXJSZWFkT25seVdhdGNocG9pbnQo
KSB7IHJldHVybiBtX3ZhclJlYWRPbmx5V2F0Y2hwb2ludC5nZXQoKTsgfQorICAgIFdhdGNocG9p
bnRTZXQqIHJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KCkgeyByZXR1cm4gbV9yZWdFeHBSZWNv
bXBpbGVkV2F0Y2hwb2ludC5nZXQoKTsgfQogICAgICAgICAKICAgICBib29sIGlzSGF2aW5nQUJh
ZFRpbWUoKSBjb25zdAogICAgIHsKQEAgLTEwMzcsNiArMTAzOSwxMSBAQCBjbGFzcyBKU0dsb2Jh
bE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBib29sIGFy
cmF5UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKTsKICAgICBib29sIHN0cmluZ1Byb3RvdHlwZUNoYWlu
SXNTYW5lKCk7CiAKKyAgICBib29sIGlzUmVnRXhwUmVjb21waWxlZCgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludC0+aGFzQmVlbkludmFs
aWRhdGVkKCk7CisgICAgfQorCiAgICAgdm9pZCBzZXRQcm9maWxlR3JvdXAodW5zaWduZWQgdmFs
dWUpIHsgY3JlYXRlUmFyZURhdGFJZk5lZWRlZCgpOyBtX3JhcmVEYXRhLT5wcm9maWxlR3JvdXAg
PSB2YWx1ZTsgfQogICAgIHVuc2lnbmVkIHByb2ZpbGVHcm91cCgpIGNvbnN0CiAgICAgeyAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAppbmRleCAyNzViNTg5ODRiYzU2M2Y4OGQ1NjUzYjY5MjYwZTAyMzMyZWRlMjYxLi5mZDRjOTJi
MzQxMWM1OWRlYmFhNmZiODBiZjkwMmMxOTNmOGM4OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xODcsNiArMTg3
LDEzIEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgYm9vbCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCit7CisgICAgaWYgKCFuZXdUYXJnZXQp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBuZXdUYXJnZXQgPT0gZ2xvYmFsT2Jq
ZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpOworfQorCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdF
eHBTdHJ1Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJn
ZXQpCiB7CiAgICAgaWYgKCFuZXdUYXJnZXQpCkBAIC0yMzIsNyArMjM5LDcgQEAgc3RhdGljIEpT
T2JqZWN0KiByZWdFeHBDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBuZXdUYXJnZXQsIEoKIAogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0UmVnRXhwU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBudWxscHRyKTsKLSAgICByZXR1cm4gUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIHN0
cnVjdHVyZSwgcmVnRXhwKTsKKyAgICByZXR1cm4gUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIHN0
cnVjdHVyZSwgcmVnRXhwLCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQoZ2xvYmFsT2JqZWN0LCBu
ZXdUYXJnZXQpKTsKIH0KIAogSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzLCAgSlNPYmplY3QqIGNhbGxlZSwg
SlNWYWx1ZSBuZXdUYXJnZXQpCkBAIC0yNzEsNyArMjc4LDcgQEAgSlNPYmplY3QqIGNvbnN0cnVj
dFJlZ0V4cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdz
LCAgSlMKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBSZWdFeHBP
YmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCByZWdFeHApOworICAgICAgICByZXR1cm4gUmVn
RXhwT2JqZWN0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgcmVnRXhwLCBhcmVMZWdhY3lGZWF0dXJl
c0VuYWJsZWQoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQpKTsKICAgICB9CiAKICAgICBpZiAoY29u
c3RydWN0QXNSZWdleHApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwCmluZGV4IGU4MjE1OTNhOTlmOTQ3N2NiYWFlZDA0MzgyZWVlOTg4MzA4OGE4
OTUuLjNmMzQyNmNlMWVmZDI0MDZlNjM1OTBlMzU5YzgyNjkyOWZkZjM3MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMzIsOSArMzIs
OSBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjpzX2luZm8gPSB7ICJSZWdFeHAiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscAogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIocmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4U3RyaWN0KTsKIHN0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHJlZ0V4cE9iamVjdFNldExhc3RJbmRleE5vblN0cmljdCk7CiAKLVJl
Z0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z0V4cCogcmVnRXhwKQorUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHAsIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFi
bGVkKQogICAgIDogSlNOb25GaW5hbE9iamVjdCh2bSwgc3RydWN0dXJlKQotICAgICwgbV9yZWdF
eHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyhiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihy
ZWdFeHApKSAvLyBsYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyBpcyBub3Qgc2V0LgorICAgICwg
bV9yZWdFeHBBbmRGbGFncyhiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihyZWdFeHApIHwgKGFyZUxl
Z2FjeUZlYXR1cmVzRW5hYmxlZCA/IDAgOiBsZWdhY3lGZWF0dXJlc0Rpc2FibGVkRmxhZykpIC8v
IGxhc3RJbmRleElzTm90V3JpdGFibGVGbGFnIGlzIG5vdCBzZXQuCiB7CiAgICAgbV9sYXN0SW5k
ZXguc2V0V2l0aG91dFdyaXRlQmFycmllcihqc051bWJlcigwKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGNiMzk0NWZmYmE0ZThjODA0
NjZjN2JkZjg1YzNkNzM3MTdkOTljZGUuLjk5OGVlODBhODM5NjQ3MmI1ZGUyMjhjMjdiZDM2NzA4
NjU3MGUzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCkBAIC0zOSwzMiArMzksMzYgQEAgY2xhc3MgUmVnRXhwT2JqZWN0IGZpbmFsIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gJnZtLnJlZ0V4cE9iamVjdFNwYWNl
OwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGxhc3RJbmRleElzTm90
V3JpdGFibGVGbGFnID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBsYXN0SW5k
ZXhJc05vdFdyaXRhYmxlRmxhZyA9IDBiMDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRy
X3QgbGVnYWN5RmVhdHVyZXNEaXNhYmxlZEZsYWcgPSAwYjEwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludHB0cl90IGZsYWdzTWFzayA9IGxhc3RJbmRleElzTm90V3JpdGFibGVGbGFnIHwgbGVn
YWN5RmVhdHVyZXNEaXNhYmxlZEZsYWc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3Qg
cmVnRXhwTWFzayA9IH5mbGFnc01hc2s7CiAKLSAgICBzdGF0aWMgUmVnRXhwT2JqZWN0KiBjcmVh
dGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHApCisgICAgc3Rh
dGljIFJlZ0V4cE9iamVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z0V4cCogcmVnRXhwLCBib29sIGFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCkKICAgICB7Ci0gICAg
ICAgIFJlZ0V4cE9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8UmVn
RXhwT2JqZWN0Pih2bS5oZWFwKSkgUmVnRXhwT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIHJlZ0V4cCk7
CisgICAgICAgIFJlZ0V4cE9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8UmVnRXhwT2JqZWN0Pih2bS5oZWFwKSkgUmVnRXhwT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIHJl
Z0V4cCwgYXJlTGVnYWN5RmVhdHVyZXNFbmFibGVkKTsKICAgICAgICAgb2JqZWN0LT5maW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogCiAgICAgc3RhdGlj
IFJlZ0V4cE9iamVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4
cCogcmVnRXhwLCBKU1ZhbHVlIGxhc3RJbmRleCkKICAgICB7Ci0gICAgICAgIGF1dG8qIG9iamVj
dCA9IGNyZWF0ZSh2bSwgc3RydWN0dXJlLCByZWdFeHApOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgYXV0byog
b2JqZWN0ID0gY3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIHJlZ0V4cCwgYXJlTGVnYWN5RmVhdHVyZXNF
bmFibGVkKTsKICAgICAgICAgb2JqZWN0LT5tX2xhc3RJbmRleC5zZXQodm0sIG9iamVjdCwgbGFz
dEluZGV4KTsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAgICB2b2lkIHNldFJl
Z0V4cChWTSYgdm0sIFJlZ0V4cCogcmVnRXhwKQogICAgIHsKLSAgICAgICAgdWludHB0cl90IHJl
c3VsdCA9IChtX3JlZ0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnICYgbGFzdEluZGV4
SXNOb3RXcml0YWJsZUZsYWcpIHwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocmVnRXhwKTsKLSAg
ICAgICAgbV9yZWdFeHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyA9IHJlc3VsdDsKKyAg
ICAgICAgdWludHB0cl90IHJlc3VsdCA9IChtX3JlZ0V4cEFuZEZsYWdzICYgZmxhZ3NNYXNrKSB8
IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHJlZ0V4cCk7CisgICAgICAgIG1fcmVnRXhwQW5kRmxh
Z3MgPSByZXN1bHQ7CiAgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKHRoaXMsIHJlZ0V4cCk7
CiAgICAgfQogCiAgICAgUmVnRXhwKiByZWdFeHAoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxSZWdFeHAqPihtX3JlZ0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFi
bGVGbGFnICYgKH5sYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZykpOworICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PFJlZ0V4cCo+KG1fcmVnRXhwQW5kRmxhZ3MgJiByZWdFeHBNYXNrKTsKICAg
ICB9CiAKICAgICBib29sIHNldExhc3RJbmRleChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBzaXplX3QgbGFzdEluZGV4KQpAQCAtMTEyLDkgKzExNiw5IEBAIGNsYXNzIFJlZ0V4cE9iamVj
dCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oUmVnRXhw
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZSZWdFeHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZygp
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlJlZ0V4cEFuZEZsYWdzKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUmVnRXhwT2JqZWN0LCBtX3JlZ0V4cEFuZExh
c3RJbmRleElzTm90V3JpdGFibGVGbGFnKTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihSZWdFeHBPYmplY3QsIG1fcmVnRXhwQW5kRmxhZ3MpOwogICAgIH0KIAogICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZMYXN0SW5kZXgoKQpAQCAtMTI4LDIwICsxMzIsMjIgQEAgY2xhc3Mg
UmVnRXhwT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICBy
ZXR1cm4gc2l6ZW9mKFJlZ0V4cE9iamVjdCk7CiAgICAgfQogCisgICAgYm9vbCBhcmVMZWdhY3lG
ZWF0dXJlc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiAhKG1fcmVnRXhwQW5kRmxhZ3MgJiBsZWdh
Y3lGZWF0dXJlc0Rpc2FibGVkRmxhZyk7IH0KKwogcHJpdmF0ZToKLSAgICBKU19FWFBPUlRfUFJJ
VkFURSBSZWdFeHBPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqLCBSZWdFeHAqKTsKKyAgICBKU19FWFBP
UlRfUFJJVkFURSBSZWdFeHBPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqLCBSZWdFeHAqLCBib29sIGFy
ZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYpOwogCiAgICAgREVDTEFSRV9WSVNJVF9DSElMRFJFTjsKIAogICAgIGJv
b2wgbGFzdEluZGV4SXNXcml0YWJsZSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gISht
X3JlZ0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnICYgbGFzdEluZGV4SXNOb3RXcml0
YWJsZUZsYWcpOworICAgICAgICByZXR1cm4gIShtX3JlZ0V4cEFuZEZsYWdzICYgbGFzdEluZGV4
SXNOb3RXcml0YWJsZUZsYWcpOwogICAgIH0KIAogICAgIHZvaWQgc2V0TGFzdEluZGV4SXNOb3RX
cml0YWJsZSgpCiAgICAgewotICAgICAgICBtX3JlZ0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFi
bGVGbGFnID0gKG1fcmVnRXhwQW5kTGFzdEluZGV4SXNOb3RXcml0YWJsZUZsYWcgfCBsYXN0SW5k
ZXhJc05vdFdyaXRhYmxlRmxhZyk7CisgICAgICAgIG1fcmVnRXhwQW5kRmxhZ3MgPSAobV9yZWdF
eHBBbmRGbGFncyB8IGxhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKTsKICAgICB9CiAKICAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBKU0ds
b2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgRGVsZXRlUHJvcGVydHlTbG90Jik7CkBAIC0xNTAs
NyArMTU2LDcgQEAgY2xhc3MgUmVnRXhwT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogCiAgICAgTWF0Y2hSZXN1bHQgbWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyopOwogCi0gICAgdWludHB0cl90IG1fcmVnRXhwQW5kTGFzdEluZGV4SXNOb3RXcml0
YWJsZUZsYWcgeyAwIH07CisgICAgdWludHB0cl90IG1fcmVnRXhwQW5kRmxhZ3MgeyAwIH07CiAg
ICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fbGFzdEluZGV4OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggNmM5OWQy
M2FjYjk1ZTFhMGZiMjljMWQ4NWNmOGViNjhmNjdjYjU2Zi4uZmM1ZDk1YjNhN2NhMmUxNzM1ZTE4
ZDMxMTg4ZTgwNTllNTRjNTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC0xMzIsNiArMTMyLDEyIEBAIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNDb21waWxlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNSZWdFeHApKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAorICAgIGlmICh0aGlz
UmVnRXhwLT5nbG9iYWxPYmplY3Qodm0pICE9IGdsb2JhbE9iamVjdCkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlZ0V4cC5wcm90b3R5cGUu
Y29tcGlsZSBmdW5jdGlvbidzIFJlYWxtIG11c3QgYmUgdGhlIHNhbWUgdG8gfHRoaXN8IFJlZ0V4
cCBvYmplY3QiX3MpOworCisgICAgaWYgKCF0aGlzUmVnRXhwLT5hcmVMZWdhY3lGZWF0dXJlc0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgInx0aGlzfCBSZWdFeHAgb2JqZWN0J3MgbGVnYWN5IGZlYXR1cmVzIGFyZSBub3QgZW5h
YmxlZCJfcyk7CisKICAgICBSZWdFeHAqIHJlZ0V4cDsKICAgICBKU1ZhbHVlIGFyZzAgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgYXJnMSA9IGNhbGxGcmFtZS0+YXJndW1l
bnQoMSk7CkBAIC0xNTUsNiArMTYxLDggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4
cFByb3RvRnVuY0NvbXBpbGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlm
ICghcmVnRXhwLT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgcmVnRXhwLT5lcnJvclRvVGhyb3coZ2xvYmFsT2JqZWN0KSk7CiAKKyAg
ICBnbG9iYWxPYmplY3QtPnJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KCktPmZpcmVBbGwodm0s
ICJSZWdFeHAgaXMgcmVjb21waWxlZCIpOworCiAgICAgdGhpc1JlZ0V4cC0+c2V0UmVnRXhwKHZt
LCByZWdFeHApOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICB0aGlzUmVnRXhwLT5zZXRMYXN0
SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWQ0MDNjYjI3MzI0Y2UyYWM1Zjk1YzBiNDM1YWU4Yjhj
ODI5NTBiZC4uN2RiMDc5MWZlMTk4NzdjYmM5Zjg5NjI5NWI4ZjI4OWJmZDk0YzcwNSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0xMC0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFtKU0NdIFJlZmluZSBSZWdFeHAjY29tcGlsZSBiYXNlZCBvbiByZWdleHAtbGVn
YWN5LWZlYXR1cmVzIHByb3Bvc2FsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0cmVzcy9yZWdleHAtcmVjb21waWxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNob3VsZEJlKToKKyAgICAgICAgKHJlY29tcGlsZSk6CisgICAgICAgICh0YXJnZXQpOgor
ICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjEtMTAtMDggIFRhZGV1
IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBX
ZWJBc3NlbWJseSBleGNlcHRpb24gaGFuZGxpbmcgcHJvcG9zYWwKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3JlZ2V4cC1yZWNvbXBpbGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtcmVj
b21waWxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlZDE4MDk1YzlmNmViZWY4Y2VlNjQ5ZDZjMGEwMGY0ZjVl
OGQyZDAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtcmVjb21waWxl
LmpzCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit2YXIgZmxhZyA9IGZhbHNlOworZnVuY3Rp
b24gcmVjb21waWxlKHJlZ0V4cCkgeworICAgIGlmIChmbGFnKQorICAgICAgICByZWdFeHAuY29t
cGlsZSgiZSIpOworfQorbm9JbmxpbmUocmVjb21waWxlKTsKKworZnVuY3Rpb24gdGFyZ2V0KCkg
eworICAgIHZhciByZWdFeHAgPSAvdGVzdC87CisgICAgcmVjb21waWxlKHJlZ0V4cCk7CisgICAg
cmVnRXhwLmxhc3RJbmRleCA9IDA7CisgICAgcmV0dXJuIHJlZ0V4cC5leGVjKCJIZXkiKTsKK30K
K25vSW5saW5lKHRhcmdldCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAg
c2hvdWxkQmUodGFyZ2V0KCksIG51bGwpOworZmxhZyA9IHRydWU7CitzaG91bGRCZShKU09OLnN0
cmluZ2lmeSh0YXJnZXQoKSksIGBbImUiXWApOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeSh0YXJnZXQoKSksIGBbImUiXWApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IGFkYTg0ZWM4NWJkNWM4ZTE0NWFiMWJkZDllNDI4
ZmYyZjIwZjNmZjEuLmNjMzk1YjU1ZmY4OTNkZWIzODQ2OWQwYWZmNTM3OWRmYjZkZDllMDAgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTUsMTIgKzUsNiBAQCB0ZXN0L2FubmV4Qi9i
dWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRtbC1jbG9zZS1jb21tZW50LXBhcmFtcy5q
czoKIHRlc3QvYW5uZXhCL2J1aWx0LWlucy9GdW5jdGlvbi9jcmVhdGVkeW5mbi1odG1sLW9wZW4t
Y29tbWVudC1wYXJhbXMuanM6CiAgIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1l
dGVyIGxpc3QuIgogICBzdHJpY3QgbW9kZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2Vu
ICd9Jy4gRXhwZWN0ZWQgYSBwYXJhbWV0ZXIgcGF0dGVybiBvciBhICcpJyBpbiBwYXJhbWV0ZXIg
bGlzdC4iCi10ZXN0L2FubmV4Qi9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9jb21waWxlL3Ro
aXMtY3Jvc3MtcmVhbG0taW5zdGFuY2UuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBS
ZWdFeHAucHJvdG90eXBlLmNvbXBpbGUuY2FsbChvdGhlclJlYWxtX3JlZ2V4cClgIHRocm93cyBU
eXBlRXJyb3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgUmVn
RXhwLnByb3RvdHlwZS5jb21waWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0aHJvd3MgVHlw
ZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9hbm5leEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvY29tcGlsZS90aGlzLXN1YmNsYXNzLWluc3RhbmNlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBgc3ViY2xhc3NfcmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBzdWJjbGFzc19yZWdleHAu
Y29tcGlsZSgpYCB0aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9hbm5leEIvbGFu
Z3VhZ2UvZXZhbC1jb2RlL2RpcmVjdC9mdW5jLWJsb2NrLWRlY2wtZXZhbC1mdW5jLXNraXAtZWFy
bHktZXJyLWJsb2NrLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBBbiBpbml0aWFsaXpl
ZCBiaW5kaW5nIGlzIG5vdCBjcmVhdGVkIHByaW9yIHRvIGV2YWx1YXRpb24gRXhwZWN0ZWQgYSBS
ZWZlcmVuY2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKIHRlc3QvYW5uZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvZnVuYy1ibG9jay1k
ZWNsLWV2YWwtZnVuYy1za2lwLWVhcmx5LWVyci1mb3ItaW4uanM6Cg==
</data>
<flag name="commit-queue"
          id="464761"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440726</attachid>
            <date>2021-10-09 23:44:12 -0700</date>
            <delta_ts>2021-10-09 23:53:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231486-20211009234411.patch</filename>
            <type>text/plain</type>
            <size>26894</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWI4Nzg0NDEwYzlkMTFlOTkwMGY4YmRjYmIzMGI1YjU4YzliZTgzLi43OTNmYzE3OWVmZWUwMzJm
NzUwNGU5NTMxYWY4ODlhMDY4ZjNkYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMS0xMC0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZmluZSBSZWdFeHAjY29tcGlsZSBiYXNlZCBvbiByZWdleHAt
bGVnYWN5LWZlYXR1cmVzIHByb3Bvc2FsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlZmluZXMgUmVnRXhwI2NvbXBpbGUgYmFzZWQg
cmVnZXhwLWxlZ2FjeS1mZWF0dXJlcyBwcm9wb3NhbFsxXS4KKyAgICAgICAgV2UgYWRkIGxlZ2Fj
eUZlYXR1cmVzRGlzYWJsZWRGbGFnIGZsYWcgdG8gUmVnRXhwT2JqZWN0IHNvIHRoYXQgd2UgY2Fu
CisgICAgICAgIGRldGVjdCBbW0xlZ2FjeUZlYXR1cmVzRW5hYmxlZF1dLgorCisgICAgICAgIFdl
IGFsc28gYWRkIHJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50IHRvIEpTR2xvYmFsT2JqZWN0LiBX
ZSBoYXZlIHN0cmVuZ3RoCisgICAgICAgIHJlZHVjdGlvbiBpbiBERkcgLyBGVEwsIGJ1dCB3ZSBz
aG91bGQgcmVjb21waWxlIERGRyAvIEZUTCBjb2RlIHdoZW4gUmVnRXhwCisgICAgICAgIGlzIHJl
Y29tcGlsZWQuIFNpbmNlIGl0IGlzIHJhcmUsIGluc3RlYWQgb2YgaGF2aW5nIHRoaXMgd2F0Y2hw
b2ludCBwZXIKKyAgICAgICAgUmVnRXhwT2JqZWN0LCB3ZSBob2xkIGl0IGluIEpTR2xvYmFsT2Jq
ZWN0LgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtcmVn
ZXhwLWxlZ2FjeS1mZWF0dXJlcworCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1JlZ2V4cCk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXgpOgorICAgICAgICAqIGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBoYXNlOjpoYW5kbGVOb2Rl
KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAq
IGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBmdGwvRlRMT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToK
KyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgor
ICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KToK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmlzUmVnRXhwUmVjb21waWxlZCBjb25zdCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OmFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENyZWF0ZSk6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFJlZ0V4cCk6CisgICAgICAgICogcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisKIDIwMjEtMTAtMDggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUnVuIGJhY2t3YXJkcyBwcm9wYWdhdGlvbiBiZWZvcmUgd2UgcHJ1bmUgdGhlIGdyYXBo
IGFmdGVyIEZvcmNlT1NSRXhpdCBub2RlcyBpbiBCeXRlY29kZVBhcnNlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBjOTBjNjA4OWU5
M2Q2YjE4YmUzMTliNDYxZGYwMGRjM2JiYTdjNDViLi5jYzRhNjM3ZGFmZDdjZjg0MDdjZjE1ZDZh
N2Q0YzliNjQ1YzdhNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtMTEyMjMsNyArMTEyMjMsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlTmV3UmVnZXhwKE5vZGUqIG5vZGUpCiAKICAgICBtX2ppdC5zdG9yZVB0cigK
ICAgICAgICAgVHJ1c3RlZEltbVB0cihub2RlLT5jZWxsT3BlcmFuZCgpKSwKLSAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4
cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKCkpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHJlc3VsdEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cEFuZEZsYWdz
KCkpKTsKICAgICBtX2ppdC5zdG9yZVZhbHVlKGxhc3RJbmRleFJlZ3MsIENDYWxsSGVscGVyczo6
QWRkcmVzcyhyZXN1bHRHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXgoKSkpOwog
ICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKIApAQCAtMTI3NzMsNyArMTI3NzMsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlUmVncygpLCBudWxs
cHRyLAogICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdFB0cigKICAgICAgICAgICAgICAgICBK
SVRDb21waWxlcjo6Tm9uWmVybywKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVz
cyhyZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHBBbmRMYXN0SW5kZXhJc05v
dFdyaXRhYmxlRmxhZygpKSwKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhy
ZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHBBbmRGbGFncygpKSwKICAgICAg
ICAgICAgICAgICBKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMyKFJlZ0V4cE9iamVjdDo6bGFzdElu
ZGV4SXNOb3RXcml0YWJsZUZsYWcpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRleCBmMWI1
ZWQ5YzdiZDFkNTc5MzZiNjhhMGYzMGY0NjAxNGMzYWMyNGI2Li45Zjc5ZDI4YmI5YmNhNmI5ZmY0
Mjg1OTBkNzVjYTkxZTdmZjM3MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTUwMiwxMSArNTAyLDI1
IEBAIGNsYXNzIFN0cmVuZ3RoUmVkdWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAg
ICAgICAgaWYgKG1fbm9kZS0+b3AoKSA9PSBSZWdFeHBFeGVjIHx8IG1fbm9kZS0+b3AoKSA9PSBS
ZWdFeHBUZXN0IHx8IG1fbm9kZS0+b3AoKSA9PSBSZWdFeHBNYXRjaEZhc3QpIHsKICAgICAgICAg
ICAgICAgICByZWdFeHBPYmplY3ROb2RlID0gbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0ID0gcmVnRXhwT2JqZWN0
Tm9kZS0+ZHluYW1pY0Nhc3RDb25zdGFudDxSZWdFeHBPYmplY3QqPih2bSgpKSkgeworICAgICAg
ICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gcmVnRXhwT2JqZWN0
LT5nbG9iYWxPYmplY3Qodm0oKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWxPYmpl
Y3QtPmlzUmVnRXhwUmVjb21waWxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJHaXZpbmcgdXAg
YmVjYXVzZSBSZWdFeHAgcmVjb21waWxlIGhhcHBlbnMuXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5yZWdFeHBSZWNv
bXBpbGVkV2F0Y2hwb2ludCgpKTsKICAgICAgICAgICAgICAgICAgICAgcmVnRXhwID0gcmVnRXhw
T2JqZWN0LT5yZWdFeHAoKTsKICAgICAgICAgICAgICAgICAgICAgcmVnRXhwT2JqZWN0Tm9kZUlz
Q29uc3RhbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVnRXhwT2JqZWN0
Tm9kZS0+b3AoKSA9PSBOZXdSZWdleHApCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWdF
eHBPYmplY3ROb2RlLT5vcCgpID09IE5ld1JlZ2V4cCkgeworICAgICAgICAgICAgICAgICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IocmVn
RXhwT2JqZWN0Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGdsb2JhbE9iamVjdC0+aXNSZWdFeHBSZWNvbXBpbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2co
IkdpdmluZyB1cCBiZWNhdXNlIFJlZ0V4cCByZWNvbXBpbGUgaGFwcGVucy5cbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3Qt
PnJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KCkpOwogICAgICAgICAgICAgICAgICAgICByZWdF
eHAgPSByZWdFeHBPYmplY3ROb2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpOwotICAgICAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiR2l2aW5n
IHVwIGJlY2F1c2UgdGhlIHJlZ2V4cCBpcyB1bmtub3duLlxuIik7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtODM1LDExICs4NDksMjUgQEAgY2xhc3MgU3RyZW5ndGhSZWR1Y3Rpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE5vZGUqIHJl
Z0V4cE9iamVjdE5vZGUgPSBtX25vZGUtPmNoaWxkMigpLm5vZGUoKTsKICAgICAgICAgICAgIFJl
Z0V4cCogcmVnRXhwOwotICAgICAgICAgICAgaWYgKFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0
ID0gcmVnRXhwT2JqZWN0Tm9kZS0+ZHluYW1pY0Nhc3RDb25zdGFudDxSZWdFeHBPYmplY3QqPih2
bSgpKSkKKyAgICAgICAgICAgIGlmIChSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCA9IHJlZ0V4
cE9iamVjdE5vZGUtPmR5bmFtaWNDYXN0Q29uc3RhbnQ8UmVnRXhwT2JqZWN0Kj4odm0oKSkpIHsK
KyAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gcmVnRXhwT2Jq
ZWN0LT5nbG9iYWxPYmplY3Qodm0oKSk7CisgICAgICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVj
dC0+aXNSZWdFeHBSZWNvbXBpbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJHaXZpbmcgdXAgYmVjYXVzZSBS
ZWdFeHAgcmVjb21waWxlIGhhcHBlbnMuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMo
KS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludCgpKTsK
ICAgICAgICAgICAgICAgICByZWdFeHAgPSByZWdFeHBPYmplY3QtPnJlZ0V4cCgpOwotICAgICAg
ICAgICAgZWxzZSBpZiAocmVnRXhwT2JqZWN0Tm9kZS0+b3AoKSA9PSBOZXdSZWdleHApCisgICAg
ICAgICAgICB9IGVsc2UgaWYgKHJlZ0V4cE9iamVjdE5vZGUtPm9wKCkgPT0gTmV3UmVnZXhwKSB7
CisgICAgICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKHJlZ0V4cE9iamVjdE5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisgICAg
ICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+aXNSZWdFeHBSZWNvbXBpbGVkKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJHaXZpbmcgdXAgYmVjYXVzZSBSZWdFeHAgcmVjb21waWxlIGhhcHBlbnMuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5yZWdF
eHBSZWNvbXBpbGVkV2F0Y2hwb2ludCgpKTsKICAgICAgICAgICAgICAgICByZWdFeHAgPSByZWdF
eHBPYmplY3ROb2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpOwotICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCJHaXZpbmcgdXAgYmVjYXVzZSB0aGUgcmVnZXhwIGlz
IHVua25vd24uXG4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggODJj
YWIwMjE4YzE4YTBkZGMzMDJiMGJiNTM2MTY0OTE3NjhhZmZiZC4uMzE1ZjkwZDRjZWEyMzk5NmRk
MDcyOGI2YjZiZGNiNDg0YmJiMWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBK
U1Njb3BlOjpvZmZzZXRPZk5leHQoKSkgXAogICAgIG1hY3JvKEpTU3ltYm9sVGFibGVPYmplY3Rf
c3ltYm9sVGFibGUsIEpTU3ltYm9sVGFibGVPYmplY3Q6Om9mZnNldE9mU3ltYm9sVGFibGUoKSkg
XAogICAgIG1hY3JvKE5hdGl2ZUV4ZWN1dGFibGVfYXNTdHJpbmcsIE5hdGl2ZUV4ZWN1dGFibGU6
Om9mZnNldE9mQXNTdHJpbmcoKSkgXAotICAgIG1hY3JvKFJlZ0V4cE9iamVjdF9yZWdFeHBBbmRM
YXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZywgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cEFu
ZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3Rf
cmVnRXhwQW5kRmxhZ3MsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHBBbmRGbGFncygpKSBc
CiAgICAgbWFjcm8oUmVnRXhwT2JqZWN0X2xhc3RJbmRleCwgUmVnRXhwT2JqZWN0OjpvZmZzZXRP
Zkxhc3RJbmRleCgpKSBcCiAgICAgbWFjcm8oU2hhZG93Q2hpY2tlbl9QYWNrZXRfY2FsbGVlLCBP
QkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0LCBjYWxsZWUpKSBcCiAgICAgbWFj
cm8oU2hhZG93Q2hpY2tlbl9QYWNrZXRfZnJhbWUsIE9CSkVDVF9PRkZTRVRPRihTaGFkb3dDaGlj
a2VuOjpQYWNrZXQsIGZyYW1lKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCmluZGV4IDZmODI3YjI2ZDMwM2QwNTIzYThhODA3YzM4YzY0YThhNTVj
NWNiYTIuLjJhZGRmZjc3YjAzNTZjODRjYTZhZTgxYmVmYTc1MTdiYjk4ODA4YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTE0MjkwLDcg
KzE0MjkwLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgICAgICBhdXRvIHN0cnVjdHVy
ZSA9IG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1
cmUoKSk7CiAgICAgICAgIExWYWx1ZSBmYXN0UmVzdWx0VmFsdWUgPSBhbGxvY2F0ZU9iamVjdDxS
ZWdFeHBPYmplY3Q+KHN0cnVjdHVyZSwgbV9vdXQuaW50UHRyWmVybywgc2xvd0Nhc2UpOwotICAg
ICAgICBtX291dC5zdG9yZVB0cihmcm96ZW5Qb2ludGVyKHJlZ2V4cCksIGZhc3RSZXN1bHRWYWx1
ZSwgbV9oZWFwcy5SZWdFeHBPYmplY3RfcmVnRXhwQW5kTGFzdEluZGV4SXNOb3RXcml0YWJsZUZs
YWcpOworICAgICAgICBtX291dC5zdG9yZVB0cihmcm96ZW5Qb2ludGVyKHJlZ2V4cCksIGZhc3RS
ZXN1bHRWYWx1ZSwgbV9oZWFwcy5SZWdFeHBPYmplY3RfcmVnRXhwQW5kRmxhZ3MpOwogICAgICAg
ICBtX291dC5zdG9yZTY0KGxhc3RJbmRleCwgZmFzdFJlc3VsdFZhbHVlLCBtX2hlYXBzLlJlZ0V4
cE9iamVjdF9sYXN0SW5kZXgpOwogICAgICAgICBtdXRhdG9yRmVuY2UoKTsKICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihmYXN0UmVzdWx0VmFsdWUpOwpA
QCAtMTQzNzcsNyArMTQzNzcsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
c3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIG5vVmFsdWUoKSwg
bnVsbHB0ciwKICAgICAgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVyb1B0cigKLSAgICAgICAg
ICAgICAgICAgICAgbV9vdXQubG9hZFB0cihyZWdFeHAsIG1faGVhcHMuUmVnRXhwT2JqZWN0X3Jl
Z0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnKSwKKyAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZFB0cihyZWdFeHAsIG1faGVhcHMuUmVnRXhwT2JqZWN0X3JlZ0V4cEFuZEZsYWdz
KSwKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoUmVnRXhwT2JqZWN0Ojps
YXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZykpKTsKIAogICAgICAgICAgICAgbV9vdXQuc3RvcmU2
NCh2YWx1ZSwgcmVnRXhwLCBtX2hlYXBzLlJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKaW5kZXggNmNmMzU5MjlkY2Jm
MzU5NWI5ODc4NTVjY2ZmMDhkM2Q5OWEyZmY4Yy4uNjMxMTg4MjMxNWYzMTQxZTc4NjBhYjUxNmIx
NzIyMGUyY2RlY2I4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlv
bnMuY3BwCkBAIC02ODksNyArNjg5LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk1hdGVyaWFsaXplT2JqZWN0SW5PU1IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQocmVnRXhwKTsKICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBiYXNlbGluZUNvZGVCbG9ja0Zvck9yaWdpbkFuZEJhc2VsaW5lQ29kZUJsb2NrKG1hdGVyaWFs
aXphdGlvbi0+b3JpZ2luKCksIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmJhc2VsaW5lQWx0ZXJu
YXRpdmUoKSk7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gY29kZUJsb2NrLT5nbG9i
YWxPYmplY3QoKS0+cmVnRXhwU3RydWN0dXJlKCk7Ci0gICAgICAgIHJldHVybiBSZWdFeHBPYmpl
Y3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCByZWdFeHApOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIHJlZ0V4cCwgYXJlTGVnYWN5RmVh
dHVyZXNFbmFibGVkKTsKICAgICB9CiAKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZDdkZjdjYjhlODc1ZTJjYTZhZTcwNGYx
MWVkZDlkOGNjZjEzMjk4Ni4uNGE1YzA4MGMwNjBjMDY4MWYyNzkzMzAzOGI0MzJmNjM0MGRlZWEx
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
ODkwLDcgKzE4OTAsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmVn
ZXhwLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogCiAgICAgUmVnRXhwKiBy
ZWdleHAgPSBzdGF0aWNfY2FzdDxSZWdFeHAqPihyZWdleHBQdHIpOwogICAgIEFTU0VSVChyZWdl
eHAtPmlzVmFsaWQoKSk7Ci0gICAgcmV0dXJuIFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdleHApOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQgPSB0cnVlOworICAgIHJldHVybiBSZWdF
eHBPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVn
ZXhwLCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQpOwogfQogCiAvLyBUaGUgb25seSByZWFzb24g
Zm9yIHJldHVybmluZyBhbiBVbnVzZWRQdHIgKGluc3RlYWQgb2Ygdm9pZCkgaXMgc28gdGhhdCB3
ZSBjYW4gcmV1c2UgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAppbmRleCAzYTQ2ZTRkMGMzZjYwYzUzY2RhMGFiZGVmNDBjMGU2MWIzMjBhYmVl
Li41NjgxMzc3YmI5ODQyYjJkMzU1ZDg5ZjNmOWU0NTk0MWMzNThmZTA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTYxMiw3ICs2MTIs
OCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbmV3X3JlZ2V4cCkKICAgICBhdXRv
IGJ5dGVjb2RlID0gcGMtPmFzPE9wTmV3UmVnZXhwPigpOwogICAgIFJlZ0V4cCogcmVnRXhwID0g
anNDYXN0PFJlZ0V4cCo+KGdldE9wZXJhbmQoY2FsbEZyYW1lLCBieXRlY29kZS5tX3JlZ2V4cCkp
OwogICAgIEFTU0VSVChyZWdFeHAtPmlzVmFsaWQoKSk7Ci0gICAgTExJTlRfUkVUVVJOKFJlZ0V4
cE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdF
eHApKTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFibGVk
ID0gdHJ1ZTsKKyAgICBMTElOVF9SRVRVUk4oUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cCwgYXJlTGVnYWN5RmVhdHVyZXNFbmFi
bGVkKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDMxOWU0YjNkOGFiMTgzMDA2MGYyMjU3NjFhMTkyYmNjYjgwNDM3ZDQuLmUwY2ViNGJlMDIz
MTUwY2U1YTk0ZGI4YTg4YmNkNmQxYzBmZWVlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTYwOCw2ICs2MDgsNyBAQCBKU0ds
b2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgR2xvYmFsT2JqZWN0TQogICAgICwgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoV2F0
Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAgICAgLCBtX3ZhckluamVjdGlvbldhdGNo
cG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAgICAgLCBtX3ZhclJlYWRP
bmx5V2F0Y2hwb2ludChXYXRjaHBvaW50U2V0OjpjcmVhdGUoSXNXYXRjaGVkKSkKKyAgICAsIG1f
cmVnRXhwUmVjb21waWxlZFdhdGNocG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hl
ZCkpCiAgICAgLCBtX3dlYWtSYW5kb20oT3B0aW9uczo6Zm9yY2VXZWFrUmFuZG9tU2VlZCgpID8g
T3B0aW9uczo6Zm9yY2VkV2Vha1JhbmRvbVNlZWQoKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihy
YW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAx
LjApKSkKICAgICAsIG1fYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldChJc1dhdGNo
ZWQpCiAgICAgLCBtX21hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KElzV2F0Y2hlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4
IDFiZGNjNGRlNzRkMDkyNGQzOWM4NGY5NTI1YzVlMGIzZTZhZjQxMGYuLjBkYWVlNTNlZTBkNzU4
OTM5YTFlZGFlYmI5NThkMDViMDAwYjlhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtNDg3LDYgKzQ4Nyw3IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIFJlZlB0
cjxXYXRjaHBvaW50U2V0PiBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludDsKICAgICBSZWZQdHI8
V2F0Y2hwb2ludFNldD4gbV92YXJJbmplY3Rpb25XYXRjaHBvaW50OwogICAgIFJlZlB0cjxXYXRj
aHBvaW50U2V0PiBtX3ZhclJlYWRPbmx5V2F0Y2hwb2ludDsKKyAgICBSZWZQdHI8V2F0Y2hwb2lu
dFNldD4gbV9yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxKU0dsb2JhbE9iamVjdFJhcmVEYXRhPiBtX3JhcmVEYXRhOwogCkBAIC0xMDI1LDYgKzEwMjYs
NyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0IHsKICAgICBXYXRjaHBvaW50U2V0KiBoYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoKSB7IHJl
dHVybiBtX2hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludC5nZXQoKTsgfQogICAgIFdhdGNocG9pbnRT
ZXQqIHZhckluamVjdGlvbldhdGNocG9pbnQoKSB7IHJldHVybiBtX3ZhckluamVjdGlvbldhdGNo
cG9pbnQuZ2V0KCk7IH0KICAgICBXYXRjaHBvaW50U2V0KiB2YXJSZWFkT25seVdhdGNocG9pbnQo
KSB7IHJldHVybiBtX3ZhclJlYWRPbmx5V2F0Y2hwb2ludC5nZXQoKTsgfQorICAgIFdhdGNocG9p
bnRTZXQqIHJlZ0V4cFJlY29tcGlsZWRXYXRjaHBvaW50KCkgeyByZXR1cm4gbV9yZWdFeHBSZWNv
bXBpbGVkV2F0Y2hwb2ludC5nZXQoKTsgfQogICAgICAgICAKICAgICBib29sIGlzSGF2aW5nQUJh
ZFRpbWUoKSBjb25zdAogICAgIHsKQEAgLTEwMzcsNiArMTAzOSwxMSBAQCBjbGFzcyBKU0dsb2Jh
bE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBib29sIGFy
cmF5UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKTsKICAgICBib29sIHN0cmluZ1Byb3RvdHlwZUNoYWlu
SXNTYW5lKCk7CiAKKyAgICBib29sIGlzUmVnRXhwUmVjb21waWxlZCgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludC0+aGFzQmVlbkludmFs
aWRhdGVkKCk7CisgICAgfQorCiAgICAgdm9pZCBzZXRQcm9maWxlR3JvdXAodW5zaWduZWQgdmFs
dWUpIHsgY3JlYXRlUmFyZURhdGFJZk5lZWRlZCgpOyBtX3JhcmVEYXRhLT5wcm9maWxlR3JvdXAg
PSB2YWx1ZTsgfQogICAgIHVuc2lnbmVkIHByb2ZpbGVHcm91cCgpIGNvbnN0CiAgICAgeyAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAppbmRleCAyNzViNTg5ODRiYzU2M2Y4OGQ1NjUzYjY5MjYwZTAyMzMyZWRlMjYxLi5mZDRjOTJi
MzQxMWM1OWRlYmFhNmZiODBiZjkwMmMxOTNmOGM4OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xODcsNiArMTg3
LDEzIEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRp
bGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgYm9vbCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCit7CisgICAgaWYgKCFuZXdUYXJnZXQp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBuZXdUYXJnZXQgPT0gZ2xvYmFsT2Jq
ZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpOworfQorCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdF
eHBTdHJ1Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJn
ZXQpCiB7CiAgICAgaWYgKCFuZXdUYXJnZXQpCkBAIC0yMzIsNyArMjM5LDcgQEAgc3RhdGljIEpT
T2JqZWN0KiByZWdFeHBDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBuZXdUYXJnZXQsIEoKIAogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0UmVnRXhwU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBudWxscHRyKTsKLSAgICByZXR1cm4gUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIHN0
cnVjdHVyZSwgcmVnRXhwKTsKKyAgICByZXR1cm4gUmVnRXhwT2JqZWN0OjpjcmVhdGUodm0sIHN0
cnVjdHVyZSwgcmVnRXhwLCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQoZ2xvYmFsT2JqZWN0LCBu
ZXdUYXJnZXQpKTsKIH0KIAogSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzLCAgSlNPYmplY3QqIGNhbGxlZSwg
SlNWYWx1ZSBuZXdUYXJnZXQpCkBAIC0yNzEsNyArMjc4LDcgQEAgSlNPYmplY3QqIGNvbnN0cnVj
dFJlZ0V4cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdz
LCAgSlMKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBSZWdFeHBP
YmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCByZWdFeHApOworICAgICAgICByZXR1cm4gUmVn
RXhwT2JqZWN0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgcmVnRXhwLCBhcmVMZWdhY3lGZWF0dXJl
c0VuYWJsZWQoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQpKTsKICAgICB9CiAKICAgICBpZiAoY29u
c3RydWN0QXNSZWdleHApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwCmluZGV4IGU4MjE1OTNhOTlmOTQ3N2NiYWFlZDA0MzgyZWVlOTg4MzA4OGE4
OTUuLjNmMzQyNmNlMWVmZDI0MDZlNjM1OTBlMzU5YzgyNjkyOWZkZjM3MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMzIsOSArMzIs
OSBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjpzX2luZm8gPSB7ICJSZWdFeHAiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscAogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIocmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4U3RyaWN0KTsKIHN0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHJlZ0V4cE9iamVjdFNldExhc3RJbmRleE5vblN0cmljdCk7CiAKLVJl
Z0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z0V4cCogcmVnRXhwKQorUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHAsIGJvb2wgYXJlTGVnYWN5RmVhdHVyZXNFbmFi
bGVkKQogICAgIDogSlNOb25GaW5hbE9iamVjdCh2bSwgc3RydWN0dXJlKQotICAgICwgbV9yZWdF
eHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyhiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihy
ZWdFeHApKSAvLyBsYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyBpcyBub3Qgc2V0LgorICAgICwg
bV9yZWdFeHBBbmRGbGFncyhiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihyZWdFeHApIHwgKGFyZUxl
Z2FjeUZlYXR1cmVzRW5hYmxlZCA/IDAgOiBsZWdhY3lGZWF0dXJlc0Rpc2FibGVkRmxhZykpIC8v
IGxhc3RJbmRleElzTm90V3JpdGFibGVGbGFnIGlzIG5vdCBzZXQuCiB7CiAgICAgbV9sYXN0SW5k
ZXguc2V0V2l0aG91dFdyaXRlQmFycmllcihqc051bWJlcigwKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGNiMzk0NWZmYmE0ZThjODA0
NjZjN2JkZjg1YzNkNzM3MTdkOTljZGUuLjRlOWUzNTI3NDRjZjlkZDExNzFiODM1OTBkYzM3OGQ3
NWY4NDIxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCkBAIC0zOSwzMiArMzksMzYgQEAgY2xhc3MgUmVnRXhwT2JqZWN0IGZpbmFsIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gJnZtLnJlZ0V4cE9iamVjdFNwYWNl
OwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGxhc3RJbmRleElzTm90
V3JpdGFibGVGbGFnID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBsYXN0SW5k
ZXhJc05vdFdyaXRhYmxlRmxhZyA9IDBiMDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRy
X3QgbGVnYWN5RmVhdHVyZXNEaXNhYmxlZEZsYWcgPSAwYjEwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludHB0cl90IGZsYWdzTWFzayA9IGxhc3RJbmRleElzTm90V3JpdGFibGVGbGFnIHwgbGVn
YWN5RmVhdHVyZXNEaXNhYmxlZEZsYWc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3Qg
cmVnRXhwTWFzayA9IH5mbGFnc01hc2s7CiAKLSAgICBzdGF0aWMgUmVnRXhwT2JqZWN0KiBjcmVh
dGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHApCisgICAgc3Rh
dGljIFJlZ0V4cE9iamVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z0V4cCogcmVnRXhwLCBib29sIGFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCA9IHRydWUpCiAgICAg
ewotICAgICAgICBSZWdFeHBPYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFJlZ0V4cE9iamVjdD4odm0uaGVhcCkpIFJlZ0V4cE9iamVjdCh2bSwgc3RydWN0dXJlLCBy
ZWdFeHApOworICAgICAgICBSZWdFeHBPYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxs
b2NhdGVDZWxsPFJlZ0V4cE9iamVjdD4odm0uaGVhcCkpIFJlZ0V4cE9iamVjdCh2bSwgc3RydWN0
dXJlLCByZWdFeHAsIGFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCk7CiAgICAgICAgIG9iamVjdC0+
ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAogICAg
IHN0YXRpYyBSZWdFeHBPYmplY3QqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBSZWdFeHAqIHJlZ0V4cCwgSlNWYWx1ZSBsYXN0SW5kZXgpCiAgICAgewotICAgICAgICBhdXRv
KiBvYmplY3QgPSBjcmVhdGUodm0sIHN0cnVjdHVyZSwgcmVnRXhwKTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGFyZUxlZ2FjeUZlYXR1cmVzRW5hYmxlZCA9IHRydWU7CisgICAgICAg
IGF1dG8qIG9iamVjdCA9IGNyZWF0ZSh2bSwgc3RydWN0dXJlLCByZWdFeHAsIGFyZUxlZ2FjeUZl
YXR1cmVzRW5hYmxlZCk7CiAgICAgICAgIG9iamVjdC0+bV9sYXN0SW5kZXguc2V0KHZtLCBvYmpl
Y3QsIGxhc3RJbmRleCk7CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogCiAgICAgdm9p
ZCBzZXRSZWdFeHAoVk0mIHZtLCBSZWdFeHAqIHJlZ0V4cCkKICAgICB7Ci0gICAgICAgIHVpbnRw
dHJfdCByZXN1bHQgPSAobV9yZWdFeHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyAmIGxh
c3RJbmRleElzTm90V3JpdGFibGVGbGFnKSB8IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHJlZ0V4
cCk7Ci0gICAgICAgIG1fcmVnRXhwQW5kTGFzdEluZGV4SXNOb3RXcml0YWJsZUZsYWcgPSByZXN1
bHQ7CisgICAgICAgIHVpbnRwdHJfdCByZXN1bHQgPSAobV9yZWdFeHBBbmRGbGFncyAmIGZsYWdz
TWFzaykgfCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihyZWdFeHApOworICAgICAgICBtX3JlZ0V4
cEFuZEZsYWdzID0gcmVzdWx0OwogICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcih0aGlzLCBy
ZWdFeHApOwogICAgIH0KIAogICAgIFJlZ0V4cCogcmVnRXhwKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8UmVnRXhwKj4obV9yZWdFeHBBbmRMYXN0SW5kZXhJc05v
dFdyaXRhYmxlRmxhZyAmICh+bGFzdEluZGV4SXNOb3RXcml0YWJsZUZsYWcpKTsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxSZWdFeHAqPihtX3JlZ0V4cEFuZEZsYWdzICYgcmVnRXhwTWFz
ayk7CiAgICAgfQogCiAgICAgYm9vbCBzZXRMYXN0SW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgc2l6ZV90IGxhc3RJbmRleCkKQEAgLTExMiw5ICsxMTYsOSBAQCBjbGFzcyBSZWdF
eHBPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KFJlZ0V4cE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mUmVnRXhwQW5kTGFzdEluZGV4SXNOb3RXcml0YWJs
ZUZsYWcoKQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZSZWdFeHBBbmRGbGFncygpCiAg
ICAgewotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFJlZ0V4cE9iamVjdCwgbV9yZWdF
eHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyk7CisgICAgICAgIHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoUmVnRXhwT2JqZWN0LCBtX3JlZ0V4cEFuZEZsYWdzKTsKICAgICB9CiAKICAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTGFzdEluZGV4KCkKQEAgLTEyOCwyMCArMTMyLDIyIEBA
IGNsYXNzIFJlZ0V4cE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAg
ICAgICAgcmV0dXJuIHNpemVvZihSZWdFeHBPYmplY3QpOwogICAgIH0KIAorICAgIGJvb2wgYXJl
TGVnYWN5RmVhdHVyZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIShtX3JlZ0V4cEFuZEZsYWdz
ICYgbGVnYWN5RmVhdHVyZXNEaXNhYmxlZEZsYWcpOyB9CisKIHByaXZhdGU6Ci0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgUmVnRXhwT2JqZWN0KFZNJiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgUmVnRXhwT2JqZWN0KFZNJiwgU3RydWN0dXJlKiwgUmVnRXhwKiwg
Ym9vbCBhcmVMZWdhY3lGZWF0dXJlc0VuYWJsZWQpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAogICAgIERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CiAK
ICAgICBib29sIGxhc3RJbmRleElzV3JpdGFibGUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuICEobV9yZWdFeHBBbmRMYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyAmIGxhc3RJbmRleElz
Tm90V3JpdGFibGVGbGFnKTsKKyAgICAgICAgcmV0dXJuICEobV9yZWdFeHBBbmRGbGFncyAmIGxh
c3RJbmRleElzTm90V3JpdGFibGVGbGFnKTsKICAgICB9CiAKICAgICB2b2lkIHNldExhc3RJbmRl
eElzTm90V3JpdGFibGUoKQogICAgIHsKLSAgICAgICAgbV9yZWdFeHBBbmRMYXN0SW5kZXhJc05v
dFdyaXRhYmxlRmxhZyA9IChtX3JlZ0V4cEFuZExhc3RJbmRleElzTm90V3JpdGFibGVGbGFnIHwg
bGFzdEluZGV4SXNOb3RXcml0YWJsZUZsYWcpOworICAgICAgICBtX3JlZ0V4cEFuZEZsYWdzID0g
KG1fcmVnRXhwQW5kRmxhZ3MgfCBsYXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyk7CiAgICAgfQog
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxs
KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIERlbGV0ZVByb3BlcnR5U2xvdCYpOwpA
QCAtMTUwLDcgKzE1Niw3IEBAIGNsYXNzIFJlZ0V4cE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKIAogICAgIE1hdGNoUmVzdWx0IG1hdGNoSW5saW5lKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqKTsKIAotICAgIHVpbnRwdHJfdCBtX3JlZ0V4cEFuZExhc3RJbmRleElz
Tm90V3JpdGFibGVGbGFnIHsgMCB9OworICAgIHVpbnRwdHJfdCBtX3JlZ0V4cEFuZEZsYWdzIHsg
MCB9OwogICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBtX2xhc3RJbmRleDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4
IDZjOTlkMjNhY2I5NWUxYTBmYjI5YzFkODVjZjhlYjY4ZjY3Y2I1NmYuLmZjNWQ5NWIzYTdjYTJl
MTczNWUxOGQzMTE4OGU4MDU5ZTU0YzUwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtMTMyLDYgKzEzMiwxMiBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jQ29tcGlsZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzUmVnRXhwKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKKyAgICBp
ZiAodGhpc1JlZ0V4cC0+Z2xvYmFsT2JqZWN0KHZtKSAhPSBnbG9iYWxPYmplY3QpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWdFeHAucHJv
dG90eXBlLmNvbXBpbGUgZnVuY3Rpb24ncyBSZWFsbSBtdXN0IGJlIHRoZSBzYW1lIHRvIHx0aGlz
fCBSZWdFeHAgb2JqZWN0Il9zKTsKKworICAgIGlmICghdGhpc1JlZ0V4cC0+YXJlTGVnYWN5RmVh
dHVyZXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJ8dGhpc3wgUmVnRXhwIG9iamVjdCdzIGxlZ2FjeSBmZWF0dXJlcyBhcmUg
bm90IGVuYWJsZWQiX3MpOworCiAgICAgUmVnRXhwKiByZWdFeHA7CiAgICAgSlNWYWx1ZSBhcmcw
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIGFyZzEgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDEpOwpAQCAtMTU1LDYgKzE2MSw4IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihyZWdFeHBQcm90b0Z1bmNDb21waWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICBpZiAoIXJlZ0V4cC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsIHJlZ0V4cC0+ZXJyb3JUb1Rocm93KGdsb2JhbE9iamVjdCkp
OwogCisgICAgZ2xvYmFsT2JqZWN0LT5yZWdFeHBSZWNvbXBpbGVkV2F0Y2hwb2ludCgpLT5maXJl
QWxsKHZtLCAiUmVnRXhwIGlzIHJlY29tcGlsZWQiKTsKKwogICAgIHRoaXNSZWdFeHAtPnNldFJl
Z0V4cCh2bSwgcmVnRXhwKTsKICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgdGhpc1JlZ0V4cC0+
c2V0TGFzdEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkNDAzY2IyNzMyNGNlMmFjNWY5NWMwYjQz
NWFlOGI4YzgyOTUwYmQuLjdkYjA3OTFmZTE5ODc3Y2JjOWY4OTYyOTViOGYyODliZmQ5NGM3MDUg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMDkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBSZWZpbmUgUmVnRXhwI2NvbXBpbGUgYmFzZWQgb24gcmVn
ZXhwLWxlZ2FjeS1mZWF0dXJlcyBwcm9wb3NhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvcmVnZXhwLXJlY29tcGlsZS5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChyZWNvbXBpbGUpOgorICAgICAgICAodGFy
Z2V0KToKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIxLTEwLTA4
ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dCB0aGUgV2ViQXNzZW1ibHkgZXhjZXB0aW9uIGhhbmRsaW5nIHByb3Bvc2FsCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtcmVjb21waWxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVn
ZXhwLXJlY29tcGlsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWQxODA5NWM5ZjZlYmVmOGNlZTY0OWQ2YzBh
MDBmNGY1ZThkMmQwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXJl
Y29tcGlsZS5qcwpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwordmFyIGZsYWcgPSBmYWxzZTsK
K2Z1bmN0aW9uIHJlY29tcGlsZShyZWdFeHApIHsKKyAgICBpZiAoZmxhZykKKyAgICAgICAgcmVn
RXhwLmNvbXBpbGUoImUiKTsKK30KK25vSW5saW5lKHJlY29tcGlsZSk7CisKK2Z1bmN0aW9uIHRh
cmdldCgpIHsKKyAgICB2YXIgcmVnRXhwID0gL3Rlc3QvOworICAgIHJlY29tcGlsZShyZWdFeHAp
OworICAgIHJlZ0V4cC5sYXN0SW5kZXggPSAwOworICAgIHJldHVybiByZWdFeHAuZXhlYygiSGV5
Iik7Cit9Citub0lubGluZSh0YXJnZXQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytp
KQorICAgIHNob3VsZEJlKHRhcmdldCgpLCBudWxsKTsKK2ZsYWcgPSB0cnVlOworc2hvdWxkQmUo
SlNPTi5zdHJpbmdpZnkodGFyZ2V0KCkpLCBgWyJlIl1gKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MWU0OyArK2kpCisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkodGFyZ2V0KCkpLCBgWyJlIl1g
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCBhZGE4NGVjODViZDVjOGUxNDVhYjFi
ZGQ5ZTQyOGZmMmYyMGYzZmYxLi5jYzM5NWI1NWZmODkzZGViMzg0NjlkMGFmZjUzNzlkZmI2ZGQ5
ZTAwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIv
SlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC01LDEyICs1LDYgQEAgdGVzdC9h
bm5leEIvYnVpbHQtaW5zL0Z1bmN0aW9uL2NyZWF0ZWR5bmZuLWh0bWwtY2xvc2UtY29tbWVudC1w
YXJhbXMuanM6CiB0ZXN0L2FubmV4Qi9idWlsdC1pbnMvRnVuY3Rpb24vY3JlYXRlZHluZm4taHRt
bC1vcGVuLWNvbW1lbnQtcGFyYW1zLmpzOgogICBkZWZhdWx0OiAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGlu
IHBhcmFtZXRlciBsaXN0LiIKICAgc3RyaWN0IG1vZGU6ICJTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCB0b2tlbiAnfScuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFy
YW1ldGVyIGxpc3QuIgotdGVzdC9hbm5leEIvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvY29t
cGlsZS90aGlzLWNyb3NzLXJlYWxtLWluc3RhbmNlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBgUmVnRXhwLnByb3RvdHlwZS5jb21waWxlLmNhbGwob3RoZXJSZWFsbV9yZWdleHApYCB0
aHJvd3MgVHlwZUVycm9yIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogYFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZS5jYWxsKG90aGVyUmVhbG1fcmVnZXhwKWAgdGhy
b3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYW5uZXhCL2J1aWx0LWlucy9SZWdFeHAv
cHJvdG90eXBlL2NvbXBpbGUvdGhpcy1zdWJjbGFzcy1pbnN0YW5jZS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogYHN1YmNsYXNzX3JlZ2V4cC5jb21waWxlKClgIHRocm93cyBUeXBlRXJy
b3IgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgc3ViY2xhc3Nf
cmVnZXhwLmNvbXBpbGUoKWAgdGhyb3dzIFR5cGVFcnJvciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYW5u
ZXhCL2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvZnVuYy1ibG9jay1kZWNsLWV2YWwtZnVuYy1z
a2lwLWVhcmx5LWVyci1ibG9jay5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQW4gaW5p
dGlhbGl6ZWQgYmluZGluZyBpcyBub3QgY3JlYXRlZCBwcmlvciB0byBldmFsdWF0aW9uIEV4cGVj
dGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L2Z1bmMt
YmxvY2stZGVjbC1ldmFsLWZ1bmMtc2tpcC1lYXJseS1lcnItZm9yLWluLmpzOgo=
</data>
<flag name="review"
          id="464760"
          type_id="1"
          status="+"
          setter="ashvayka"
    />
          </attachment>
      

    </bug>

</bugzilla>