<?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>121530</bug_id>
          
          <creation_ts>2013-09-17 18:46:05 -0700</creation_ts>
          <short_desc>REGRESSION(r156019): broke the Mac and Windows builds (Requested by thorton on #webkit).</short_desc>
          <delta_ts>2013-09-17 19:04:51 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>121064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>oliver</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930477</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-17 18:46:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156019 broke the build:
broke the Mac and Windows builds (Requested by thorton on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930480</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-17 18:46:34 -0700</bug_when>
    <thetext>I have a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930481</commentid>
    <comment_count>2</comment_count>
      <attachid>211963</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-17 18:46:38 -0700</bug_when>
    <thetext>Created attachment 211963
ROLLOUT of r156019

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930482</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-17 18:48:11 -0700</bug_when>
    <thetext>Fix landed in http://trac.webkit.org/changeset/156020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930483</commentid>
    <comment_count>4</comment_count>
      <attachid>211963</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-17 18:48:50 -0700</bug_when>
    <thetext>Comment on attachment 211963
ROLLOUT of r156019

I believe that my fix should work, but even if it doesn&apos;t it means that this patch won&apos;t apply anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930485</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-09-17 19:04:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 211963 [details])
&gt; I believe that my fix should work, but even if it doesn&apos;t it means that this patch won&apos;t apply anymore.

I think it did, for Windows at least. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211963</attachid>
            <date>2013-09-17 18:46:38 -0700</date>
            <delta_ts>2013-09-17 18:48:49 -0700</delta_ts>
            <desc>ROLLOUT of r156019</desc>
            <filename>bug-121530-20130917184637.patch</filename>
            <type>text/plain</type>
            <size>226508</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NTY3MmQxZmRmYjBhN2NmYjExZGMzMTg0ZDkxNGM3ZDE1NWY3YjIxLi45YzhkODM0YjU2ODAyODIx
ZTQ1YWM4MWQxZjVkM2ZlZjI2YjI1OGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjQgQEAKKzIwMTMtMDktMTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTYwMTkuCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1NjAxOQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxNTMwCisKKyAgICAgICAgYnJv
a2UgdGhlIE1hYyBhbmQgV2luZG93cyBidWlsZHMgKFJlcXVlc3RlZCBieSB0aG9ydG9uIG9uCisg
ICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0Lmg6CisgICAgICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAqIGJ5
dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKEpTQzo6ZGF0YUZvcm1hdFRvU3RyaW5nKToK
KyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5jcHA6CisgICAgICAgIChKU0M6OmV4aXRLaW5k
VG9TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmg6CisgICAgICAgICogYnl0
ZWNvZGUvT3BlcmFuZHNJbmxpbmVzLmg6CisgICAgICAgIChKU0M6Ojo6ZHVtcEluQ29udGV4dCk6
CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpk
dW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvblRvQWJicmV2aWF0ZWRT
dHJpbmcpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21WYWx1ZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6aXNJbnQzMlNwZWN1bGF0
aW9uRm9yQXJpdGhtZXRpYyk6CisgICAgICAgIChKU0M6OmlzSW50NDhTcGVjdWxhdGlvbik6Cisg
ICAgICAgIChKU0M6OmlzTWFjaGluZUludFNwZWN1bGF0aW9uRm9yQXJpdGhtZXRpYyk6CisgICAg
ICAgIChKU0M6OmlzSW50NDhBc0RvdWJsZVNwZWN1bGF0aW9uKToKKyAgICAgICAgKEpTQzo6aXNS
ZWFsTnVtYmVyU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc051bWJlclNwZWN1bGF0aW9u
KToKKyAgICAgICAgKEpTQzo6aXNOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQpOgor
ICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6aW5HUFIpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjpkaXNwbGFjZWRJ
bkpTU3RhY2spOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojppc0FscmVhZHlJbkpTU3Rh
Y2spOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjpncHIpOgorICAgICAgICAoSlNDOjpW
YWx1ZVJlY292ZXJ5Ojp2aXJ0dWFsUmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292
ZXJ5OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
ci5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI6Om5lZWRzVHlwZUNo
ZWNrKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyOjpmaWx0ZXJCeVR5
cGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpERkc6Ojo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpzZXQpOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0VmFsdWU6OmNoZWNrQ29uc2lzdGVuY3kpOgorICAg
ICAgICAqIGRmZy9ERkdBYnN0cmFjdFZhbHVlLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJh
Y3RWYWx1ZTo6dmFsaWRhdGVUeXBlKToKKyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6OnJlZmluZSk6CisgICAgICAgICogZGZnL0RG
R0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpERkc6OkFzc2VtYmx5SGVscGVyczo6
dW5ib3hEb3VibGUpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAgKiBkZmcv
REZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpjYW5vbmljYWxp
emUpOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpwdXJlQ1NFKToKKyAgICAgICAgKEpT
Qzo6REZHOjpDU0VQaGFzZTo6Z2V0QnlWYWxMb2FkRWxpbWluYXRpb24pOgorICAgICAgICAoSlND
OjpERkc6OkNTRVBoYXNlOjpwZXJmb3JtTm9kZUNTRSk6CisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcv
REZHQ29tbW9uLmg6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OnJ1bik6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cFNldExv
Y2Fsc0luQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VL
aW5kT25Ob2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXhFZGdlKToKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjppbmplY3RJbnQzMlRvRG91YmxlTm9kZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUludGVnZXJBZGQpOgor
ICAgICAgICAqIGRmZy9ERkdGbHVzaEZvcm1hdC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdGbHVzaEZvcm1hdC5oOgorICAgICAgICAoSlNDOjpE
Rkc6OnJlc3VsdEZvcik6CisgICAgICAgIChKU0M6OkRGRzo6dXNlS2luZEZvcik6CisgICAgICAg
ICogZGZnL0RGR0dlbmVyYXRpb25JbmZvLmg6CisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlv
bkluZm86OmluaXRJbnQzMik6CisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlvbkluZm86OmZp
bGxJbnQzMik6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpHcmFwaDo6ZHVtcCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6
OkRGRzo6R3JhcGg6OmFkZFNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQpOgorICAgICAgICAoSlND
OjpERkc6OkdyYXBoOjptdWxTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KToKKyAgICAgICAgKEpT
Qzo6REZHOjpHcmFwaDo6bmVnYXRlU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCk6CisgICAgICAg
ICogZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpJ
blBsYWNlQWJzdHJhY3RTdGF0ZTo6bWVyZ2VTdGF0ZUF0VGFpbCk6CisgICAgICAgICogZGZnL0RG
R0pJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGU6OnJlY29uc3RydWN0KToK
KyAgICAgICAgKiBkZmcvREZHTWluaWZpZWROb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6YmVs
b25nc0luTWluaWZpZWRHcmFwaCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWROb2RlOjpo
YXNDaGlsZCk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpzaG91bGRTcGVjdWxhdGVOdW1iZXIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNo
b3VsZFNwZWN1bGF0ZU51bWJlckV4cGVjdGluZ0RlZmluZWQpOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6OmNhblNwZWN1bGF0ZUludDQ4KToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6
CisgICAgICAgIChKU0M6OkRGRzo6bm9kZUNhblNwZWN1bGF0ZUludDQ4KToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpmb3J3YXJkUmV3aXJpbmdTZWxl
Y3Rpb25TY29yZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6c2hvcnRPcGVyYW5kc0R1bXApOgorICAgICAgICAqIGRmZy9ERkdPU1JF
eGl0Q29tcGlsZXI2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6c3Bl
Y3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6ZG9Eb3VibGVWb3RpbmcpOgorICAgICAgICAqIGRm
Zy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZVRvRXhlY3V0ZUVk
Z2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAg
ICAgICAqIGRmZy9ERkdTaWxlbnRSZWdpc3RlclNhdmVQbGFuLmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
c2lsZW50U2F2ZVBsYW5Gb3JHUFIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzaWxlbnRGaWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVBlZXBIb2xlQnJhbmNoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUlubGluZVN0YXJ0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZURvdWJsZVB1dEJ5VmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlVG9JbnQzMik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVJbnQzMlRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheSk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBZGQpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhTdWIpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhOZWdhdGUpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVN0cmljdEVxKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlUmVhbE51bWJlcik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhblJldXNlKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6aXNGaWxsZWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjppc0ZpbGxlZERvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OnVzZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmJveERvdWJsZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmlzS25vd25JbnRlZ2VyKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6aXNLbm93bkNlbGwpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjppc0tub3duTm90TnVtYmVyKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6aW50MzJSZXN1bHQpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjppbml0Q29uc3RhbnRJbmZvKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6aXNJbnRlZ2VyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Z2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVEb3VibGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlRG91YmxlKToK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQm9vbGVhbik6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdVc2VLaW5kLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAg
ICAgICogZGZnL0RGR1VzZUtpbmQuaDoKKyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9y
KToKKyAgICAgICAgKEpTQzo6REZHOjppc051bWVyaWNhbCk6CisgICAgICAgICogZGZnL0RGR1Zh
bHVlU291cmNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYWx1ZVNvdXJjZTo6ZHVtcCk6Cisg
ICAgICAgICogZGZnL0RGR1ZhbHVlU291cmNlLmg6CisgICAgICAgIChKU0M6OkRGRzo6ZGF0YUZv
cm1hdFRvVmFsdWVTb3VyY2VLaW5kKToKKyAgICAgICAgKEpTQzo6REZHOjp2YWx1ZVNvdXJjZUtp
bmRUb0RhdGFGb3JtYXQpOgorICAgICAgICAoSlNDOjpERkc6OlZhbHVlU291cmNlOjpmb3JGbHVz
aEZvcm1hdCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFsdWVTb3VyY2U6OnZhbHVlUmVjb3Zlcnkp
OgorICAgICAgICAqIGRmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpWYXJpYWJsZUFjY2Vzc0RhdGE6OnNob3VsZFVzZURvdWJsZUZvcm1hdEFjY29yZGluZ1Rv
Vm90ZSk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVBY2Nlc3NEYXRhOjpmbHVzaEZvcm1h
dCk6CisgICAgICAgICogZnRsL0ZUTENBcmd1bWVudEdldHRlci5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6Q0FyZ3VtZW50R2V0dGVyOjpsb2FkTmV4dEFuZEJveCk6CisgICAgICAgICogZnRsL0ZU
TENBcmd1bWVudEdldHRlci5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFs
dWUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dCk6Cisg
ICAgICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5oOgorICAgICAgICAqIGZ0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y3JlYXRlUGhpVmFyaWFibGVzKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVXBzaWxvbik6CisgICAgICAgIChKU0M6OkZU
TDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQaGkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlU2V0TG9jYWwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpjb21waWxlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUFyaXRoU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29t
cGlsZUFyaXRoTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUFyaXRoTmVnYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVB1dEJ5VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNv
bXBhcmVFcSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDb21w
YXJlU3RyaWN0RXEpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
Q29tcGFyZUxlc3MpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
Q29tcGFyZUxlc3NFcSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVDb21wYXJlR3JlYXRlcik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVDb21wYXJlR3JlYXRlckVxKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExW
TTo6bG93SW50MzIpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpsb3dDZWxs
KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6bG93Qm9vbGVhbik6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Omxvd0RvdWJsZSk6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06Omxvd0pTVmFsdWUpOgorICAgICAgICAoSlNDOjpGVEw6Okxv
d2VyREZHVG9MTFZNOjpzcGVjdWxhdGVSZWFsTnVtYmVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpM
b3dlckRGR1RvTExWTTo6aW5pdGlhbGl6ZU9TUkV4aXRTdGF0ZUZvckJsb2NrKToKKyAgICAgICAg
KEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZW1pdE9TUkV4aXRDYWxsKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpMb3dlckRGR1RvTExWTTo6YWRkRXhpdEFyZ3VtZW50Rm9yTm9kZSk6CisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNldEludDMyKToKKyAgICAgICAgKiBmdGwvRlRM
T1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlU3R1Yik6Cisg
ICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6bXVs
V2l0aE92ZXJmbG93MzIpOgorICAgICAgICAqIGZ0bC9GVExWYWx1ZUZvcm1hdC5jcHA6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGZ0bC9GVExWYWx1ZUZvcm1hdC5o
OgorICAgICAgICAqIGZ0bC9GVExWYWx1ZVNvdXJjZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
VmFsdWVTb3VyY2U6OmR1bXApOgorICAgICAgICAqIGZ0bC9GVExWYWx1ZVNvdXJjZS5oOgorICAg
ICAgICAqIGludGVycHJldGVyL1JlZ2lzdGVyLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVu
dHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OnRlYXJPZmZGb3JJbmxpbmVDYWxsRnJh
bWUpOgorICAgICAgICAqIHJ1bnRpbWUvSW5kZXhpbmdUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
bGVhc3RVcHBlckJvdW5kT2ZJbmRleGluZ1R5cGVBbmRUeXBlKToKKyAgICAgICAgKiBydW50aW1l
L0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg6CisK
IDIwMTMtMDktMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBE
Rkcgc2hvdWxkIHN1cHBvcnQgSW50NTIgZm9yIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxOTE2MzM3
MTY5Njc4NDQ0YjJiNWU3MTJkNTdkNDhmMjY3ZmY3NmE5Li5jYjQ0YWEwZDEzMDgyZmIyMTkwMjE5
NDhkZjRkYWM5YjVjZjc5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA5LTE3ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU2MDE5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTYwMTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTUzMAorCisgICAgICAgIGJyb2tlIHRoZSBNYWMgYW5kIFdpbmRvd3MgYnVpbGRz
IChSZXF1ZXN0ZWQgYnkgdGhvcnRvbiBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICAq
IHd0Zi9QcmludFN0cmVhbS5oOgorCiAyMDEzLTA5LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBzdXBwb3J0IEludDUyIGZvciBsb2NhbCB2
YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAyOWQzNGYyNzJiODBmOGIzZDg0NjE2MWZkYzUwOGI1
MzEzNmNjZmYyLi5iZWE4YTUxMmI3Y2I0MjhiOTIxYzg3ZjMzZGRiYjUxYzY3NThiOTM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oCkBAIC0yMzAsMTYgKzIzMCw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJs
ZXIuc2hscV9pOHIoaW1tLm1fdmFsdWUsIGRlc3QpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHJz
aGlmdDY0KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKLSAgICB7Ci0gICAgICAg
IG1fYXNzZW1ibGVyLnNhcnFfaThyKGltbS5tX3ZhbHVlLCBkZXN0KTsKLSAgICB9Ci0gICAgCi0g
ICAgdm9pZCBtdWw2NChSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQotICAgIHsKLSAg
ICAgICAgbV9hc3NlbWJsZXIuaW11bHFfcnIoc3JjLCBkZXN0KTsKLSAgICB9Ci0gICAgCiAgICAg
dm9pZCBuZWc2NChSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5u
ZWdxX3IoZGVzdCk7CkBAIC01NDAsMTQgKzUzMCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IEp1bXAobV9hc3NlbWJsZXIuakNDKHg4NkNvbmRpdGlvbihjb25kKSkpOwogICAgIH0KIAotICAg
IEp1bXAgYnJhbmNoTXVsNjQoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgc3JjLCBS
ZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBtdWw2NChzcmMsIGRlc3QpOwotICAgICAg
ICBpZiAoY29uZCAhPSBPdmVyZmxvdykKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRlc3RxX3Jy
KGRlc3QsIGRlc3QpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qQ0MoeDg2Q29u
ZGl0aW9uKGNvbmQpKSk7Ci0gICAgfQotCiAgICAgSnVtcCBicmFuY2hTdWI2NChSZXN1bHRDb25k
aXRpb24gY29uZCwgVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgc3ViNjQoaW1tLCBkZXN0KTsKQEAgLTU2NiwxMiArNTQ4LDYgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYnJhbmNoU3ViNjQoY29uZCwgc3JjMiwgZGVzdCk7CiAgICAgfQogCi0gICAg
SnVtcCBicmFuY2hOZWc2NChSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmNEZXN0
KQotICAgIHsKLSAgICAgICAgbmVnNjQoc3JjRGVzdCk7Ci0gICAgICAgIHJldHVybiBKdW1wKG1f
YXNzZW1ibGVyLmpDQyh4ODZDb25kaXRpb24oY29uZCkpKTsKLSAgICB9Ci0KICAgICBDb252ZXJ0
aWJsZUxvYWRMYWJlbCBjb252ZXJ0aWJsZUxvYWRQdHIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBDb252ZXJ0aWJsZUxvYWRMYWJlbCByZXN1bHQgPSBD
b252ZXJ0aWJsZUxvYWRMYWJlbCh0aGlzKTsKQEAgLTYxOSwxMSArNTk1LDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmJyYW5jaFRlc3Q4KGNvbmQs
IEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKSwgbWFzayk7CiAgICAgfQogCi0gICAgdm9pZCBjb252
ZXJ0SW50NjRUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCi0gICAg
ewotICAgICAgICBtX2Fzc2VtYmxlci5jdnRzaTJzZHFfcnIoc3JjLCBkZXN0KTsKLSAgICB9Ci0K
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSB7IHJldHVybiB0cnVlOyB9
CiAgICAgLy8gU2VlIGNvbW1lbnQgb24gTWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNGbG9h
dGluZ1BvaW50VHJ1bmNhdGUoKQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2lu
dFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggM2E4NTllYTY2YmI2ZTAxOGE5YWM2NDllNDI5
OGMzNzcwNDE4NjZlNS4uNzcwZjkwY2I2Yjg0NDM5OGIxYmUzM2QzZTYxZmRiMTljNGYwMmI1YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBA
IC04MjksMjAgKzgyOSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Zvcm1hdHRlci5pbW1l
ZGlhdGU4KGltbSk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYgLy8gQ1BVKFg4Nl82NCkKKyNl
bmRpZgogCiAgICAgdm9pZCBpbXVsbF9ycihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3Qp
CiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0lNVUxfR3ZFdiwgZHN0
LCBzcmMpOwogICAgIH0KIAotI2lmIENQVShYODZfNjQpCi0gICAgdm9pZCBpbXVscV9ycihSZWdp
c3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCi0gICAgewotICAgICAgICBtX2Zvcm1hdHRlci50
d29CeXRlT3A2NChPUDJfSU1VTF9HdkV2LCBkc3QsIHNyYyk7Ci0gICAgfQotI2VuZGlmIC8vIENQ
VShYODZfNjQpCi0KICAgICB2b2lkIGltdWxsX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFz
ZSwgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3Ao
T1AyX0lNVUxfR3ZFdiwgZHN0LCBiYXNlLCBvZmZzZXQpOwpAQCAtMTYxOCwxNCArMTYxMSw2IEBA
IHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9DVlRTSTJTRF9Wc2RF
ZCwgKFJlZ2lzdGVySUQpZHN0LCBzcmMpOwogICAgIH0KIAotI2lmIENQVShYODZfNjQpCi0gICAg
dm9pZCBjdnRzaTJzZHFfcnIoUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0KQotICAg
IHsKLSAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjIpOwotICAgICAgICBtX2Zv
cm1hdHRlci50d29CeXRlT3A2NChPUDJfQ1ZUU0kyU0RfVnNkRWQsIChSZWdpc3RlcklEKWRzdCwg
c3JjKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIHZvaWQgY3Z0c2kyc2RfbXIoaW50IG9mZnNldCwg
UmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9y
bWF0dGVyLnByZWZpeChQUkVfU1NFX0YyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvRGF0YUZvcm1hdC5oCmluZGV4IGJiOWRhNGM1NzZhMDE0YjY3MDA4OThlMTI3MjE5ZDllYTI3
MzRhNWEuLmQ2MDQ4MDgzYTM2ZDJkMmMwZWY5NjRmMTA4NmUzZWQ4MDFjNWYzN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaApAQCAtMzksMTIgKzM5LDEw
IEBAIG5hbWVzcGFjZSBKU0MgewogZW51bSBEYXRhRm9ybWF0IHsKICAgICBEYXRhRm9ybWF0Tm9u
ZSA9IDAsCiAgICAgRGF0YUZvcm1hdEludDMyID0gMSwKLSAgICBEYXRhRm9ybWF0SW50NTIgPSAy
LCAvLyBJbnQ1MidzIGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgMTYgYnkgZGVmYXVsdC4KLSAgICBEYXRh
Rm9ybWF0U3RyaWN0SW50NTIgPSAzLCAvLyAiU3RyaWN0IiBJbnQ1MiBtZWFucyBpdCdzIG5vdCBz
aGlmdGVkLgotICAgIERhdGFGb3JtYXREb3VibGUgPSA0LAotICAgIERhdGFGb3JtYXRCb29sZWFu
ID0gNSwKLSAgICBEYXRhRm9ybWF0Q2VsbCA9IDYsCi0gICAgRGF0YUZvcm1hdFN0b3JhZ2UgPSA3
LAorICAgIERhdGFGb3JtYXREb3VibGUgPSAyLAorICAgIERhdGFGb3JtYXRCb29sZWFuID0gMywK
KyAgICBEYXRhRm9ybWF0Q2VsbCA9IDQsCisgICAgRGF0YUZvcm1hdFN0b3JhZ2UgPSA1LAogICAg
IERhdGFGb3JtYXRKUyA9IDgsCiAgICAgRGF0YUZvcm1hdEpTSW50MzIgPSBEYXRhRm9ybWF0SlMg
fCBEYXRhRm9ybWF0SW50MzIsCiAgICAgRGF0YUZvcm1hdEpTRG91YmxlID0gRGF0YUZvcm1hdEpT
IHwgRGF0YUZvcm1hdERvdWJsZSwKQEAgLTY2LDEwICs2NCw2IEBAIGlubGluZSBjb25zdCBjaGFy
KiBkYXRhRm9ybWF0VG9TdHJpbmcoRGF0YUZvcm1hdCBkYXRhRm9ybWF0KQogICAgICAgICByZXR1
cm4gIk5vbmUiOwogICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOgogICAgICAgICByZXR1cm4gIklu
dDMyIjsKLSAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKLSAgICAgICAgcmV0dXJuICJJbnQ1MiI7
Ci0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6Ci0gICAgICAgIHJldHVybiAiU3RyaWN0
SW50NTIiOwogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICAgICAgcmV0dXJuICJEb3Vi
bGUiOwogICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0V4aXRLaW5kLmNwcAppbmRleCBkY2I4MWJmNTg1ZjI4N2I4NTQwNjYyNjU4MDIzZjc0
MTFmNDFkOWJiLi44YTQ1MWQ2ZjdlYTQwZThkZWFmODE3MGNkOTQ5NGE2MzU2MjE2NDI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKQEAgLTUyLDggKzUy
LDggQEAgY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBraW5kKQogICAgICAg
ICByZXR1cm4gIk92ZXJmbG93IjsKICAgICBjYXNlIE5lZ2F0aXZlWmVybzoKICAgICAgICAgcmV0
dXJuICJOZWdhdGl2ZVplcm8iOwotICAgIGNhc2UgSW50NTJPdmVyZmxvdzoKLSAgICAgICAgcmV0
dXJuICJJbnQ1Mk92ZXJmbG93IjsKKyAgICBjYXNlIEludDQ4T3ZlcmZsb3c6CisgICAgICAgIHJl
dHVybiAiSW50NDhPdmVyZmxvdyI7CiAgICAgY2FzZSBTdG9yZVRvSG9sZToKICAgICAgICAgcmV0
dXJuICJTdG9yZVRvSG9sZSI7CiAgICAgY2FzZSBMb2FkRnJvbUhvbGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCmluZGV4IGVjNWEwMGM1NWQ3YjVlNDMxZWY0ZjMz
ODAyODMzODMzNzcwNjQyMmIuLjBjMDNiNjRiNjA5MzNhZTQ3NGFjYzBhYTcxNTM5ODMwYjY2YzM3
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zOCw3
ICszOCw3IEBAIGVudW0gRXhpdEtpbmQgewogICAgIEJhZEluZGV4aW5nVHlwZSwgLy8gV2UgZXhp
dGVkIGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlwZSB3YXMgd3JvbmcuCiAgICAgT3ZlcmZsb3csIC8v
IFdlIGV4aXRlZCBiZWNhdXNlIG9mIG92ZXJmbG93LgogICAgIE5lZ2F0aXZlWmVybywgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2Ugd2UgZW5jb3VudGVyZWQgbmVnYXRpdmUgemVyby4KLSAgICBJbnQ1Mk92
ZXJmbG93LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBvZiBhbiBJbnQ1MiBvdmVyZmxvdy4KKyAgICBJ
bnQ0OE92ZXJmbG93LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBvZiBhbiBJbnQ0OCBvdmVyZmxvdy4K
ICAgICBTdG9yZVRvSG9sZSwgLy8gV2UgaGFkIGEgc3RvcmUgdG8gYSBob2xlLgogICAgIExvYWRG
cm9tSG9sZSwgLy8gV2UgaGFkIGEgbG9hZCBmcm9tIGEgaG9sZS4KICAgICBPdXRPZkJvdW5kcywg
Ly8gV2UgaGFkIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIHRvIGFuIGFycmF5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzSW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzSW5saW5lcy5oCmluZGV4IDc0YWQ2
MGJjMThhODBjNGIyOTJmMGIwOGFiMWYxZTk4NzU1YmNjOTAuLjE2MDc2M2JiNmQyNjEwOTM0MjY3
ODQwY2MzYTMwMmJkNmZhNmU4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9PcGVyYW5kc0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvT3BlcmFuZHNJbmxpbmVzLmgKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBPcGVyYW5kczxU
LCBUcmFpdHM+OjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBj
b250ZXh0KQogICAgIGZvciAoc2l6ZV90IGxvY2FsSW5kZXggPSAwOyBsb2NhbEluZGV4IDwgbnVt
YmVyT2ZMb2NhbHMoKTsgKytsb2NhbEluZGV4KSB7CiAgICAgICAgIGlmIChUcmFpdHM6OmlzRW1w
dHlGb3JEdW1wKGxvY2FsKGxvY2FsSW5kZXgpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBvdXQucHJpbnQoY29tbWEsICJsb2MiLCBsb2NhbEluZGV4LCAiOiIsIGluQ29udGV4dChs
b2NhbChsb2NhbEluZGV4KSwgY29udGV4dCkpOworICAgICAgICBvdXQucHJpbnQoY29tbWEsICJy
IiwgbG9jYWxJbmRleCwgIjoiLCBpbkNvbnRleHQobG9jYWwobG9jYWxJbmRleCksIGNvbnRleHQp
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TcGVjdWxhdGVkVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Bl
Y3VsYXRlZFR5cGUuY3BwCmluZGV4IDM5MTdjY2EwZmQ3MDFmMmQ1MzY4YTkzMWMwZTA4ZWQzYTYx
ODkwMTIuLjM1ZDY3ZjQ4MjIxOWI2MjA0MDVkODBjYWRlOTUxNzI5MmFkOWNiNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAt
MTU0LDE4ICsxNTQsMjAgQEAgdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mIG91dCwg
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgfQogICAgIAogICAgIGlmICh2YWx1ZSAmIFNwZWNJ
bnQzMikKLSAgICAgICAgbXlPdXQucHJpbnQoIkludDMyIik7CisgICAgICAgIG15T3V0LnByaW50
KCJJbnQiKTsKICAgICBlbHNlCiAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAgICAgCi0gICAgaWYg
KHZhbHVlICYgU3BlY0ludDUyKQotICAgICAgICBteU91dC5wcmludCgiSW50NTIiKTsKLSAgICAg
ICAgCiAgICAgaWYgKCh2YWx1ZSAmIFNwZWNEb3VibGUpID09IFNwZWNEb3VibGUpCiAgICAgICAg
IG15T3V0LnByaW50KCJEb3VibGUiKTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKHZhbHVlICYg
U3BlY0ludDUyQXNEb3VibGUpCi0gICAgICAgICAgICBteU91dC5wcmludCgiSW50NTJhc2RvdWJs
ZSIpOworICAgICAgICBpZiAodmFsdWUgJiBTcGVjSW50NDhBc0RvdWJsZSkKKyAgICAgICAgICAg
IG15T3V0LnByaW50KCJJbnQ0OGFzZG91YmxlIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGlzVG9wID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAodmFsdWUgJiBTcGVjSW50NDgp
CisgICAgICAgICAgICBteU91dC5wcmludCgiSW50NDgiKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgaXNUb3AgPSBmYWxzZTsKICAgICAgICAgCkBAIC0yNDEsMTUgKzI0MywxMyBAQCBzdGF0
aWMgY29uc3QgY2hhciogc3BlY3VsYXRpb25Ub0FiYnJldmlhdGVkU3RyaW5nKFNwZWN1bGF0ZWRU
eXBlIHByZWRpY3Rpb24pCiAgICAgICAgIHJldHVybiAiPENlbGw+IjsKICAgICBpZiAoaXNJbnQz
MlNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQogICAgICAgICByZXR1cm4gIjxJbnQzMj4iOwotICAg
IGlmIChpc0ludDUyQXNEb3VibGVTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKLSAgICAgICAgcmV0
dXJuICI8SW50NTJBc0RvdWJsZT4iOwotICAgIGlmIChpc0ludDUyU3BlY3VsYXRpb24ocHJlZGlj
dGlvbikpCi0gICAgICAgIHJldHVybiAiPEludDUyPiI7Ci0gICAgaWYgKGlzTWFjaGluZUludFNw
ZWN1bGF0aW9uKHByZWRpY3Rpb24pKQotICAgICAgICByZXR1cm4gIjxNYWNoaW5lSW50PiI7Cisg
ICAgaWYgKGlzSW50NDhBc0RvdWJsZVNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQorICAgICAgICBy
ZXR1cm4gIjxJbnQ0OEFzRG91YmxlPiI7CisgICAgaWYgKGlzSW50NDhTcGVjdWxhdGlvbihwcmVk
aWN0aW9uKSkKKyAgICAgICAgcmV0dXJuICI8SW50NDg+IjsKICAgICBpZiAoaXNEb3VibGVTcGVj
dWxhdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAgcmV0dXJuICI8RG91YmxlPiI7Ci0gICAgaWYg
KGlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQorICAgIGlmIChpc051bWJlclNw
ZWN1bGF0aW9uKHByZWRpY3Rpb24pKQogICAgICAgICByZXR1cm4gIjxOdW1iZXI+IjsKICAgICBp
ZiAoaXNCb29sZWFuU3BlY3VsYXRpb24ocHJlZGljdGlvbikpCiAgICAgICAgIHJldHVybiAiPEJv
b2xlYW4+IjsKQEAgLTM0NSwxMSArMzQ1LDE2IEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9u
RnJvbVZhbHVlKEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBTcGVjSW50MzI7CiAgICAg
aWYgKHZhbHVlLmlzRG91YmxlKCkpIHsKICAgICAgICAgZG91YmxlIG51bWJlciA9IHZhbHVlLmFz
TnVtYmVyKCk7Ci0gICAgICAgIGlmIChudW1iZXIgIT0gbnVtYmVyKQotICAgICAgICAgICAgcmV0
dXJuIFNwZWNEb3VibGVOYU47Ci0gICAgICAgIGlmICh2YWx1ZS5pc01hY2hpbmVJbnQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBTcGVjSW50NTJBc0RvdWJsZTsKLSAgICAgICAgcmV0dXJuIFNwZWNO
b25JbnRBc0RvdWJsZTsKKyAgICAgICAgaWYgKG51bWJlciA9PSBudW1iZXIpIHsKKyAgICAgICAg
ICAgIGludDY0X3QgYXNJbnQ2NCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG51bWJlcik7CisgICAg
ICAgICAgICBpZiAoYXNJbnQ2NCA9PSBudW1iZXIgJiYgKGFzSW50NjQgfHwgIXN0ZDo6c2lnbmJp
dChudW1iZXIpKQorICAgICAgICAgICAgICAgICYmIGFzSW50NjQgPCAoc3RhdGljX2Nhc3Q8aW50
NjRfdD4oMSkgPDwgNDcpCisgICAgICAgICAgICAgICAgJiYgYXNJbnQ2NCA+PSAtKHN0YXRpY19j
YXN0PGludDY0X3Q+KDEpIDw8IDQ3KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBTcGVjSW50
NDhBc0RvdWJsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTcGVjTm9uSW50
QXNEb3VibGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNwZWNEb3VibGVOYU47CiAgICAg
fQogICAgIGlmICh2YWx1ZS5pc0NlbGwoKSkKICAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uRnJv
bUNlbGwodmFsdWUuYXNDZWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBlYWYwYWYzN2EzODQ2NTJiNTNmMGE4M2IxYmYyNjA0
M2ZjYWQ2N2U3Li42YzdiNGQxYmY4ZTMzYTBlNGIxMjA4MDBhMDAxOTYzZThhMzkwYzc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAt
MzgsNDggKzM4LDQ2IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgU3RydWN0dXJlOwogCiB0eXBl
ZGVmIHVpbnQzMl90IFNwZWN1bGF0ZWRUeXBlOwotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNOb25lICAgICAgICAgICAgICAgPSAweDAwMDAwMDAwOyAvLyBXZSBkb24ndCBrbm93IGFu
eXRoaW5nIHlldC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRmluYWxPYmplY3Qg
ICAgICAgID0gMHgwMDAwMDAwMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNGaW5hbE9iamVjdC4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQXJyYXkgICAgICAgICAgICAgID0gMHgw
MDAwMDAwMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNBcnJheS4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRnVuY3Rpb24gICAgICAgICAgID0gMHgwMDAwMDAwODsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgSlNGdW5jdGlvbiBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDhBcnJheSAgICAgICAgICA9IDB4MDAwMDAwMTA7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2Vz
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQxNkFycmF5ICAgICAgICAgPSAw
eDAwMDAwMDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MTZBcnJheSBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXJyYXkg
ICAgICAgICA9IDB4MDAwMDAwNDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMkFycmF5IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
VWludDhBcnJheSAgICAgICAgID0gMHgwMDAwMDA4MDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVp
bnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNVaW50OENsYW1wZWRBcnJheSAgPSAweDAwMDAwMTAwOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gVWludDhDbGFtcGVkQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50MTZBcnJheSAgICAgICAgPSAweDAwMDAw
MjAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJj
bGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50MzJBcnJheSAgICAg
ICAgPSAweDAwMDAwNDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDMyQXJyYXkgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9h
dDMyQXJyYXkgICAgICAgPSAweDAwMDAwODAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2
QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNGbG9hdDY0QXJyYXkgICAgICAgPSAweDAwMDAxMDAwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNUeXBlZEFycmF5VmlldyAgICAgPSBTcGVjSW50OEFycmF5IHwg
U3BlY0ludDE2QXJyYXkgfCBTcGVjSW50MzJBcnJheSB8IFNwZWNVaW50OEFycmF5IHwgU3BlY1Vp
bnQ4Q2xhbXBlZEFycmF5IHwgU3BlY1VpbnQxNkFycmF5IHwgU3BlY1VpbnQzMkFycmF5IHwgU3Bl
Y0Zsb2F0MzJBcnJheSB8IFNwZWNGbG9hdDY0QXJyYXk7Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0FyZ3VtZW50cyAgICAgICAgICA9IDB4MDAwMDIwMDA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhbiBBcmd1bWVudHMgb2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNTdHJpbmdPYmplY3QgICAgICAgPSAweDAwMDA0MDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBT
dHJpbmdPYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVy
ICAgICAgICA9IDB4MDAwMDgwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5v
dCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSAweDAwMDBmZmZmOyAvLyBCaXRt
YXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0aW9uLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAgPSAweDAw
MDEwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRp
Zmllci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAg
ID0gMHgwMDAyMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5v
dCBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmcg
ICAgICAgICAgICAgPSAweDAwMDMwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZy4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgID0gMHgw
MDA0MDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBv
ZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjQ2VsbCAgICAgICAgICAgICAgID0gMHgwMDA3ZmZmZjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJ
bnQzMiAgICAgICAgICAgICAgPSAweDAwODAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50
MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyICAgICAgICAgICAgICA9
IDB4MDEwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0
IHRvIHVuYm94IGl0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYWNoaW5lSW50
ICAgICAgICAgPSAweDAxODAwMDAwOyAvLyBJdCdzIHNvbWV0aGluZyB0aGF0IHdlIGNhbiBkbyBt
YWNoaW5lIGludCBhcml0aG1ldGljIG9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNJbnQ1MkFzRG91YmxlICAgICAgPSAweDAyMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4g
SW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNJbnRlZ2VyICAgICAgICAgICAgPSAweDAzODAwMDAwOyAvLyBJdCdzIGRlZmluaXRl
bHkgc29tZSBraW5kIG9mIGludGVnZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y05vbkludEFzRG91YmxlICAgICA9IDB4MDQwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBub3Qg
YW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgID0gMHgwNjAwMDAw
MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RvdWJsZU5hTiAgICAgICAgICA9IDB4MDgwMDAwMDA7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
ICAgICAgICAgICAgID0gMHgwZTAwMDAwMDsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEg
TmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVSZWFs
TnVtYmVyID0gMHgwNjgwMDAwMDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVS
ZWFsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAg
PSAweDA3ODAwMDAwOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9y
IGEgSW50NTIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVy
ICAgICA9IDB4MGU4MDAwMDA7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgPSAweDBm
ODAwMDAwOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgPSAweDEwMDAw
MDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgPSAweDIwMDAwMDAwOyAvLyBJdCdzIGRlZmlu
aXRlbHkgbm9uZSBvZiB0aGUgYWJvdmUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0hlYXBUb3AgICAgICAgICAgICA9IDB4M2VmZmZmZmY7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhl
IGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMHg0MDAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Qnl0ZWNvZGVUb3AgICAgICAgID0gMHg3ZWZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUg
YWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNGdWxsVG9wICAgICAgICAgICAgPSAweDdmZmZmZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9m
IHRoZSBhYm92ZSBwbHVzIGFueXRoaW5nIHRoZSBERkcgY2hvb3Nlcy4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjTm9uZSAgICAgICAgICAgICAgPSAweDAwMDAwMDAwOyAvLyBXZSBk
b24ndCBrbm93IGFueXRoaW5nIHlldC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RmluYWxPYmplY3QgICAgICAgPSAweDAwMDAwMDAxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Zp
bmFsT2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBcnJheSAgICAgICAg
ICAgICA9IDB4MDAwMDAwMDI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQXJyYXkuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bmN0aW9uICAgICAgICAgID0gMHgwMDAwMDAwODsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNGdW5jdGlvbiBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMu
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDhBcnJheSAgICAgICAgID0gMHgw
MDAwMDAxMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDE2QXJyYXkgICAg
ICAgID0gMHgwMDAwMDAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDE2QXJyYXkgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQz
MkFycmF5ICAgICAgICA9IDB4MDAwMDAwNDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMkFy
cmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjVWludDhBcnJheSAgICAgICAgPSAweDAwMDAwMDgwOyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gVWludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5ID0gMHgwMDAwMDEwMDsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIFVpbnQ4Q2xhbXBlZEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDE2QXJyYXkgICAgICAgPSAweDAw
MDAwMjAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50MzJBcnJheSAg
ICAgICA9IDB4MDAwMDA0MDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MzJBcnJheSBvciBv
bmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Zs
b2F0MzJBcnJheSAgICAgID0gMHgwMDAwMDgwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQx
NkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRmxvYXQ2NEFycmF5ICAgICAgPSAweDAwMDAxMDAwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNUeXBlZEFycmF5VmlldyAgICA9IFNwZWNJbnQ4QXJyYXkgfCBT
cGVjSW50MTZBcnJheSB8IFNwZWNJbnQzMkFycmF5IHwgU3BlY1VpbnQ4QXJyYXkgfCBTcGVjVWlu
dDhDbGFtcGVkQXJyYXkgfCBTcGVjVWludDE2QXJyYXkgfCBTcGVjVWludDMyQXJyYXkgfCBTcGVj
RmxvYXQzMkFycmF5IHwgU3BlY0Zsb2F0NjRBcnJheTsKK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQXJndW1lbnRzICAgICAgICAgPSAweDAwMDAyMDAwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gQXJndW1lbnRzIG9iamVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U3RyaW5nT2JqZWN0ICAgICAgPSAweDAwMDA0MDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTdHJp
bmdPYmplY3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAg
ICAgID0gMHgwMDAwODAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpT
RmluYWxPYmplY3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgID0gMHgwMDAwZmZmZjsgLy8gQml0bWFzayB1
c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgPSAweDAwMDEwMDAw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgPSAweDAw
MDIwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlk
ZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAg
ICAgID0gMHgwMDAzMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgID0gMHgwMDA0MDAwMDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVj
dCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQ2VsbCAgICAgICAgICAgICAgPSAweDAwMDdmZmZmOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBKU0NlbGwuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyICAgICAg
ICAgICAgID0gMHgwMDgwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ0OCAgICAgICAgICAgICA9IDB4MDEwMDAwMDA7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ0OCwgaXQncyBpbnNpZGUgYSBkb3VibGUsIGJ1dCBp
dCBkb2Vzbid0IG5lZWQgdG8gYmUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01h
Y2hpbmVJbnQgICAgICAgID0gMHgwMTgwMDAwMDsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBj
YW4gZG8gbWFjaGluZSBpbnQgYXJpdGhtZXRpYyBvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjSW50NDhBc0RvdWJsZSAgICAgPSAweDAyMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50NDggYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNJbnRlZ2VyICAgICAgICAgICA9IDB4MDM4MDAwMDA7IC8vIEl0J3MgZGVm
aW5pdGVseSBzb21lIGtpbmQgb2YgaW50ZWdlci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjTm9uSW50QXNEb3VibGUgICAgPSAweDA0MDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkg
bm90IGFuIEludDQ4IGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVJlYWwgICAgICAgID0gMHgwNzAw
MDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZU5hTiAgICAgICAgID0gMHgwODAwMDAwMDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgTmFOLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3Vi
bGUgICAgICAgICAgICA9IDB4MGYwMDAwMDA7IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBh
IE5hTiBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1JlYWxOdW1iZXIg
ICAgICAgID0gMHgwNzgwMDAwMDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVS
ZWFsLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOdW1iZXIgICAgICAgICAgICA9
IDB4MGY4MDAwMDA7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICA9IDB4MTAwMDAwMDA7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY090aGVyICAgICAgICAgICAgID0gMHgyMDAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5
IG5vbmUgb2YgdGhlIGFib3ZlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFw
VG9wICAgICAgICAgICA9IDB4M2ZmZmZmZmY7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3Zl
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAgICAgICAgICA9IDB4
NDAwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgID0gMHg3ZmZmZmZm
ZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Z1bGxUb3AgICAgICAgICAgID0gMHg3ZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFu
eSBvZiB0aGUgYWJvdmUgcGx1cyBhbnl0aGluZyB0aGUgREZHIGNob29zZXMuCiAKIHR5cGVkZWYg
Ym9vbCAoKlNwZWN1bGF0ZWRUeXBlQ2hlY2tlcikoU3BlY3VsYXRlZFR5cGUpOwogCkBAIC0yNDIs
NyArMjQwLDcgQEAgaW5saW5lIGJvb2wgaXNJbnQzMlNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBl
IHZhbHVlKQogCiBpbmxpbmUgYm9vbCBpc0ludDMyU3BlY3VsYXRpb25Gb3JBcml0aG1ldGljKFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiAhKHZhbHVlICYgKFNwZWNEb3VibGUg
fCBTcGVjSW50NTIpKTsKKyAgICByZXR1cm4gISh2YWx1ZSAmIFNwZWNEb3VibGUpOwogfQogCiBp
bmxpbmUgYm9vbCBpc0ludDMyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKFNwZWN1bGF0ZWRU
eXBlIHZhbHVlKQpAQCAtMjUwLDkgKzI0OCw5IEBAIGlubGluZSBib29sIGlzSW50MzJTcGVjdWxh
dGlvbkV4cGVjdGluZ0RlZmluZWQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgcmV0dXJuIGlz
SW50MzJTcGVjdWxhdGlvbih2YWx1ZSAmIH5TcGVjT3RoZXIpOwogfQogCi1pbmxpbmUgYm9vbCBp
c0ludDUyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCitpbmxpbmUgYm9vbCBpc0lu
dDQ4U3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHZhbHVl
ID09IFNwZWNJbnQ1MjsKKyAgICByZXR1cm4gdmFsdWUgPT0gU3BlY0ludDQ4OwogfQogCiBpbmxp
bmUgYm9vbCBpc01hY2hpbmVJbnRTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKQEAg
LTI2NywxMiArMjY1LDEyIEBAIGlubGluZSBib29sIGlzTWFjaGluZUludFNwZWN1bGF0aW9uRXhw
ZWN0aW5nRGVmaW5lZChTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIAogaW5saW5lIGJvb2wgaXNNYWNo
aW5lSW50U3BlY3VsYXRpb25Gb3JBcml0aG1ldGljKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewot
ICAgIHJldHVybiAhKHZhbHVlICYgU3BlY0RvdWJsZSk7CisgICAgcmV0dXJuICEodmFsdWUgJiAo
U3BlY0RvdWJsZSAmIH5TcGVjTWFjaGluZUludCkpOwogfQogCi1pbmxpbmUgYm9vbCBpc0ludDUy
QXNEb3VibGVTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK2lubGluZSBib29sIGlz
SW50NDhBc0RvdWJsZVNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJl
dHVybiB2YWx1ZSA9PSBTcGVjSW50NTJBc0RvdWJsZTsKKyAgICByZXR1cm4gdmFsdWUgPT0gU3Bl
Y0ludDQ4QXNEb3VibGU7CiB9CiAKIGlubGluZSBib29sIGlzSW50ZWdlclNwZWN1bGF0aW9uKFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlKQpAQCAtMjk1LDM0ICsyOTMsMTkgQEAgaW5saW5lIGJvb2wgaXNE
b3VibGVTcGVjdWxhdGlvbkZvckFyaXRobWV0aWMoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAg
cmV0dXJuICEhKHZhbHVlICYgU3BlY0RvdWJsZSk7CiB9CiAKLWlubGluZSBib29sIGlzQnl0ZWNv
ZGVSZWFsTnVtYmVyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCi17Ci0gICAgcmV0
dXJuICEhKHZhbHVlICYgU3BlY0J5dGVjb2RlUmVhbE51bWJlcikgJiYgISh2YWx1ZSAmIH5TcGVj
Qnl0ZWNvZGVSZWFsTnVtYmVyKTsKLX0KLQotaW5saW5lIGJvb2wgaXNGdWxsUmVhbE51bWJlclNw
ZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQotewotICAgIHJldHVybiAhISh2YWx1ZSAm
IFNwZWNGdWxsUmVhbE51bWJlcikgJiYgISh2YWx1ZSAmIH5TcGVjRnVsbFJlYWxOdW1iZXIpOwot
fQotCi1pbmxpbmUgYm9vbCBpc0J5dGVjb2RlTnVtYmVyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5
cGUgdmFsdWUpCi17Ci0gICAgcmV0dXJuICEhKHZhbHVlICYgU3BlY0J5dGVjb2RlTnVtYmVyKSAm
JiAhKHZhbHVlICYgflNwZWNCeXRlY29kZU51bWJlcik7Ci19Ci0KLWlubGluZSBib29sIGlzRnVs
bE51bWJlclNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQoraW5saW5lIGJvb2wgaXNS
ZWFsTnVtYmVyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJu
ICEhKHZhbHVlICYgU3BlY0Z1bGxOdW1iZXIpICYmICEodmFsdWUgJiB+U3BlY0Z1bGxOdW1iZXIp
OworICAgIHJldHVybiAhISh2YWx1ZSAmIFNwZWNSZWFsTnVtYmVyKSAmJiAhKHZhbHVlICYgflNw
ZWNSZWFsTnVtYmVyKTsKIH0KIAotaW5saW5lIGJvb2wgaXNCeXRlY29kZU51bWJlclNwZWN1bGF0
aW9uRXhwZWN0aW5nRGVmaW5lZChTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK2lubGluZSBib29sIGlz
TnVtYmVyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGlz
Qnl0ZWNvZGVOdW1iZXJTcGVjdWxhdGlvbih2YWx1ZSAmIH5TcGVjT3RoZXIpOworICAgIHJldHVy
biAhISh2YWx1ZSAmIFNwZWNOdW1iZXIpICYmICEodmFsdWUgJiB+U3BlY051bWJlcik7CiB9CiAK
LWlubGluZSBib29sIGlzRnVsbE51bWJlclNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChTcGVj
dWxhdGVkVHlwZSB2YWx1ZSkKK2lubGluZSBib29sIGlzTnVtYmVyU3BlY3VsYXRpb25FeHBlY3Rp
bmdEZWZpbmVkKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiBpc0Z1bGxOdW1i
ZXJTcGVjdWxhdGlvbih2YWx1ZSAmIH5TcGVjT3RoZXIpOworICAgIHJldHVybiBpc051bWJlclNw
ZWN1bGF0aW9uKHZhbHVlICYgflNwZWNPdGhlcik7CiB9CiAKIGlubGluZSBib29sIGlzQm9vbGVh
blNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKaW5kZXggNDM5NzcwZTgwZjA2YWUwNjczYjYz
ZjFmMTQ3MmU0N2FhYjRkMWE4YS4uNjMyZTIwNjE5YzA0MmFiMjVhNmRhOGJlZDY4NTY3NDFlMjdj
MDgwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVj
b3ZlcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVy
eS5oCkBAIC00NCwxNSArNDQsMTIgQEAgZW51bSBWYWx1ZVJlY292ZXJ5VGVjaG5pcXVlIHsKICAg
ICBBbHJlYWR5SW5KU1N0YWNrLAogICAgIC8vIEl0J3MgYWxyZWFkeSBpbiB0aGUgc3RhY2sgYnV0
IHVuYm94ZWQuCiAgICAgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEludDMyLAotICAgIEFscmVh
ZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQ1MiwKICAgICBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVk
Q2VsbCwKICAgICBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkQm9vbGVhbiwKICAgICBBbHJlYWR5
SW5KU1N0YWNrQXNVbmJveGVkRG91YmxlLAogICAgIC8vIEl0J3MgaW4gYSByZWdpc3Rlci4KICAg
ICBJbkdQUiwKICAgICBVbmJveGVkSW50MzJJbkdQUiwKLSAgICBVbmJveGVkSW50NTJJbkdQUiwK
LSAgICBVbmJveGVkU3RyaWN0SW50NTJJbkdQUiwKICAgICBVbmJveGVkQm9vbGVhbkluR1BSLAog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgSW5QYWlyLApAQCAtNjMsOCArNjAsNiBAQCBlbnVt
IFZhbHVlUmVjb3ZlcnlUZWNobmlxdWUgewogICAgIERpc3BsYWNlZEluSlNTdGFjaywKICAgICAv
LyBJdCdzIGluIHRoZSBzdGFjaywgYXQgYSBkaWZmZXJlbnQgbG9jYXRpb24sIGFuZCBpdCdzIHVu
Ym94ZWQuCiAgICAgSW50MzJEaXNwbGFjZWRJbkpTU3RhY2ssCi0gICAgSW50NTJEaXNwbGFjZWRJ
bkpTU3RhY2ssCi0gICAgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpTU3RhY2ssCiAgICAgRG91Ymxl
RGlzcGxhY2VkSW5KU1N0YWNrLAogICAgIENlbGxEaXNwbGFjZWRJbkpTU3RhY2ssCiAgICAgQm9v
bGVhbkRpc3BsYWNlZEluSlNTdGFjaywKQEAgLTEwMCwxMyArOTUsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5
IGFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQ1MigpCi0gICAgewotICAgICAgICBWYWx1ZVJl
Y292ZXJ5IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluSlNT
dGFja0FzVW5ib3hlZEludDUyOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAK
ICAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBhbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkQ2VsbCgp
CiAgICAgewogICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKQEAgLTEzNywxMCArMTI1LDYg
QEAgcHVibGljOgogICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKICAgICAgICAgaWYgKGRh
dGFGb3JtYXQgPT0gRGF0YUZvcm1hdEludDMyKQogICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5p
cXVlID0gVW5ib3hlZEludDMySW5HUFI7Ci0gICAgICAgIGVsc2UgaWYgKGRhdGFGb3JtYXQgPT0g
RGF0YUZvcm1hdEludDUyKQotICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gVW5ib3hl
ZEludDUySW5HUFI7Ci0gICAgICAgIGVsc2UgaWYgKGRhdGFGb3JtYXQgPT0gRGF0YUZvcm1hdFN0
cmljdEludDUyKQotICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gVW5ib3hlZFN0cmlj
dEludDUySW5HUFI7CiAgICAgICAgIGVsc2UgaWYgKGRhdGFGb3JtYXQgPT0gRGF0YUZvcm1hdEJv
b2xlYW4pCiAgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBVbmJveGVkQm9vbGVhbklu
R1BSOwogICAgICAgICBlbHNlCkBAIC0xODQsMTQgKzE2OCw2IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IEludDMyRGlzcGxhY2VkSW5KU1N0YWNrOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6
Ci0gICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBJbnQ1MkRpc3BsYWNlZEluSlNTdGFj
azsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgRGF0YUZv
cm1hdFN0cmljdEludDUyOgotICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gU3RyaWN0
SW50NTJEaXNwbGFjZWRJbkpTU3RhY2s7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IAogICAgICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgICAgICAgICByZXN1bHQubV90
ZWNobmlxdWUgPSBEb3VibGVEaXNwbGFjZWRJbkpTU3RhY2s7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTI1Myw3ICsyMjksNiBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAodGVjaG5pcXVlKCkp
IHsKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrOgogICAgICAgICBjYXNlIEFscmVhZHlJ
bkpTU3RhY2tBc1VuYm94ZWRJbnQzMjoKLSAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNV
bmJveGVkSW50NTI6CiAgICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZENlbGw6
CiAgICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEJvb2xlYW46CiAgICAgICAg
IGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZERvdWJsZToKQEAgLTI2NSw3ICsyNDAsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgZ3ByKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBJbkdQUiB8fCBtX3RlY2hu
aXF1ZSA9PSBVbmJveGVkSW50MzJJbkdQUiB8fCBtX3RlY2huaXF1ZSA9PSBVbmJveGVkQm9vbGVh
bkluR1BSIHx8IG1fdGVjaG5pcXVlID09IFVJbnQzMkluR1BSIHx8IG1fdGVjaG5pcXVlID09IFVu
Ym94ZWRJbnQ1MkluR1BSIHx8IG1fdGVjaG5pcXVlID09IFVuYm94ZWRTdHJpY3RJbnQ1MkluR1BS
KTsKKyAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IEluR1BSIHx8IG1fdGVjaG5pcXVlID09
IFVuYm94ZWRJbnQzMkluR1BSIHx8IG1fdGVjaG5pcXVlID09IFVuYm94ZWRCb29sZWFuSW5HUFIg
fHwgbV90ZWNobmlxdWUgPT0gVUludDMySW5HUFIpOwogICAgICAgICByZXR1cm4gbV9zb3VyY2Uu
Z3ByOwogICAgIH0KICAgICAKQEAgLTI5MSw3ICsyNjYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAg
VmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcigpIGNvbnN0CiAgICAgewotICAgICAgICBB
U1NFUlQobV90ZWNobmlxdWUgPT0gRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVlID09
IEludDMyRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVlID09IERvdWJsZURpc3BsYWNl
ZEluSlNTdGFjayB8fCBtX3RlY2huaXF1ZSA9PSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1f
dGVjaG5pcXVlID09IEJvb2xlYW5EaXNwbGFjZWRJbkpTU3RhY2sgfHwgbV90ZWNobmlxdWUgPT0g
SW50NTJEaXNwbGFjZWRJbkpTU3RhY2sgfHwgbV90ZWNobmlxdWUgPT0gU3RyaWN0SW50NTJEaXNw
bGFjZWRJbkpTU3RhY2spOworICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUgPT0gRGlzcGxhY2Vk
SW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVlID09IEludDMyRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1f
dGVjaG5pcXVlID09IERvdWJsZURpc3BsYWNlZEluSlNTdGFjayB8fCBtX3RlY2huaXF1ZSA9PSBD
ZWxsRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVlID09IEJvb2xlYW5EaXNwbGFjZWRJ
bkpTU3RhY2spOwogICAgICAgICByZXR1cm4gbV9zb3VyY2UudmlydHVhbFJlZzsKICAgICB9CiAg
ICAgCkBAIC0zMTAsOSArMjg1LDYgQEAgcHVibGljOgogICAgICAgICBjYXNlIEFscmVhZHlJbkpT
U3RhY2tBc1VuYm94ZWRJbnQzMjoKICAgICAgICAgICAgIG91dC5wcmludGYoIihpbnQzMikiKTsK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJv
eGVkSW50NTI6Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIoaW50NTIpIik7Ci0gICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZENlbGw6CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCIoY2VsbCkiKTsKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTMyOCwxMiArMzAwLDYgQEAgcHVibGljOgogICAgICAgICBjYXNlIFVuYm94ZWRJbnQzMkluR1BS
OgogICAgICAgICAgICAgb3V0LnByaW50ZigiaW50MzIoJSVyJWQpIiwgZ3ByKCkpOwogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFVuYm94ZWRJbnQ1MkluR1BSOgotICAgICAgICAg
ICAgb3V0LnByaW50ZigiaW50NTIoJSVyJWQpIiwgZ3ByKCkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBjYXNlIFVuYm94ZWRTdHJpY3RJbnQ1MkluR1BSOgotICAgICAgICAgICAgb3V0
LnByaW50Zigic3RyaWN0SW50NTIoJSVyJWQpIiwgZ3ByKCkpOwotICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBjYXNlIFVuYm94ZWRCb29sZWFuSW5HUFI6CiAgICAgICAgICAgICBvdXQucHJp
bnRmKCJib29sKCUlciVkKSIsIGdwcigpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTM1NCwx
MiArMzIwLDYgQEAgcHVibGljOgogICAgICAgICBjYXNlIEludDMyRGlzcGxhY2VkSW5KU1N0YWNr
OgogICAgICAgICAgICAgb3V0LnByaW50ZigiKmludDMyKCVkKSIsIHZpcnR1YWxSZWdpc3Rlcigp
KTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBJbnQ1MkRpc3BsYWNlZEluSlNT
dGFjazoKLSAgICAgICAgICAgIG91dC5wcmludGYoIippbnQ1MiglZCkiLCB2aXJ0dWFsUmVnaXN0
ZXIoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgU3RyaWN0SW50NTJEaXNw
bGFjZWRJbkpTU3RhY2s6Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIqc3RyaWN0SW50NTIoJWQp
IiwgdmlydHVhbFJlZ2lzdGVyKCkpOwotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNl
IERvdWJsZURpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgICAgIG91dC5wcmludGYoIipkb3Vi
bGUoJWQpIiwgdmlydHVhbFJlZ2lzdGVyKCkpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaAppbmRl
eCBlYjRlNTIxOWZjZWNkZDcwYzQ2NGQ5MGU4ZGZhZDRiNzY3ZGM3YjczLi5mMGU1ZTQyZmU4MDU2
ZWUyMzkxMmI2YzQ0Yzg0NjY4YjYyMGU0ODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgYm9vbCBuZWVkc1R5cGVDaGVjayhOb2RlKiBub2RlLCBTcGVjdWxhdGVk
VHlwZSB0eXBlc1Bhc3NlZFRocm91Z2gpCiAgICAgewotICAgICAgICByZXR1cm4gIWZvck5vZGUo
bm9kZSkuaXNUeXBlKHR5cGVzUGFzc2VkVGhyb3VnaCk7CisgICAgICAgIHJldHVybiBmb3JOb2Rl
KG5vZGUpLm1fdHlwZSAmIH50eXBlc1Bhc3NlZFRocm91Z2g7CiAgICAgfQogICAgIAogICAgIGJv
b2wgbmVlZHNUeXBlQ2hlY2soRWRnZSBlZGdlLCBTcGVjdWxhdGVkVHlwZSB0eXBlc1Bhc3NlZFRo
cm91Z2gpCkBAIC0xNjgsNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgZmlsdGVyQnlUeXBlKE5vZGUqIG5vZGUsIEVkZ2UmIGVkZ2UsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUpCiAgICAgewogICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUoZWRnZSk7
Ci0gICAgICAgIGlmICghdmFsdWUuaXNUeXBlKHR5cGUpKSB7CisgICAgICAgIGlmICh2YWx1ZS5t
X3R5cGUgJiB+dHlwZSkgewogICAgICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdCh0cnVlKTsKICAg
ICAgICAgICAgIGVkZ2Uuc2V0UHJvb2ZTdGF0dXMoTmVlZHNDaGVjayk7CiAgICAgICAgIH0gZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IDZiZTMxN2IwMTI3YmZmZmM0OGEzZTEzNWRmMTRlNmM3
ODYzNjZjYjUuLjdjZDA4NGNhODQ0MDY1NGY0YjBhNmNkMDI4NmUwNTY2N2E1NGU5YjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTMxMCwyOSArMzEwLDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxp
bWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKLSAgICBjYXNlIEludDUyVG9Eb3Vi
bGU6IHsKLSAgICAgICAgSlNWYWx1ZSBjaGlsZCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZh
bHVlKCk7Ci0gICAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5pc051bWJlcigpKSB7Ci0gICAgICAg
ICAgICBzZXRDb25zdGFudChub2RlLCBjaGlsZCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0RvdWJsZSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICAgICAgCi0gICAgY2FzZSBJbnQ1MlRvVmFsdWU6IHsKLSAgICAg
ICAgSlNWYWx1ZSBjaGlsZCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7Ci0gICAg
ICAgIGlmIChjaGlsZCAmJiBjaGlsZC5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICBzZXRDb25z
dGFudChub2RlLCBjaGlsZCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBTcGVjdWxhdGVkVHlwZSB0eXBlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlOwot
ICAgICAgICBpZiAodHlwZSAmIFNwZWNJbnQ1MikKLSAgICAgICAgICAgIHR5cGUgPSAodHlwZSB8
IFNwZWNJbnQzMiB8IFNwZWNJbnQ1MkFzRG91YmxlKSAmIH5TcGVjSW50NTI7Ci0gICAgICAgIGZv
ck5vZGUobm9kZSkuc2V0VHlwZSh0eXBlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAg
ICAKICAgICBjYXNlIFZhbHVlQWRkOgogICAgIGNhc2UgQXJpdGhBZGQ6IHsKICAgICAgICAgSlNW
YWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKQEAgLTM0NywxNSAr
MzI0LDkgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhl
Y3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGlmICghYnl0ZWNv
ZGVDYW5UcnVuY2F0ZUludGVnZXIobm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpCiAgICAgICAgICAg
ICAgICAgbm9kZS0+c2V0Q2FuRXhpdCh0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIE1hY2hpbmVJbnRVc2U6Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUo
U3BlY0ludDUyKTsKLSAgICAgICAgICAgIGlmICghZm9yTm9kZShub2RlLT5jaGlsZDEoKSkuaXNU
eXBlKFNwZWNJbnQzMikKLSAgICAgICAgICAgICAgICB8fCAhZm9yTm9kZShub2RlLT5jaGlsZDIo
KSkuaXNUeXBlKFNwZWNJbnQzMikpCi0gICAgICAgICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdCh0
cnVlKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE51bWJlclVzZToKLSAgICAg
ICAgICAgIGlmIChpc0Z1bGxSZWFsTnVtYmVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLT5jaGls
ZDEoKSkubV90eXBlKQotICAgICAgICAgICAgICAgICYmIGlzRnVsbFJlYWxOdW1iZXJTcGVjdWxh
dGlvbihmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS5tX3R5cGUpKQorICAgICAgICAgICAgaWYgKGlz
UmVhbE51bWJlclNwZWN1bGF0aW9uKGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSkKKyAg
ICAgICAgICAgICAgICAmJiBpc1JlYWxOdW1iZXJTcGVjdWxhdGlvbihmb3JOb2RlKG5vZGUtPmNo
aWxkMigpKS5tX3R5cGUpKQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShT
cGVjRG91YmxlUmVhbCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yTm9k
ZShub2RlKS5zZXRUeXBlKFNwZWNEb3VibGUpOwpAQCAtMzYzLDcgKzMzNCw3IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2ln
bmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChub2RlLT5vcCgpID09IFZhbHVlQWRkKTsKICAgICAgICAgICAgIGNsb2JiZXJXb3JsZChu
b2RlLT5jb2RlT3JpZ2luLCBjbG9iYmVyTGltaXQpOwotICAgICAgICAgICAgZm9yTm9kZShub2Rl
KS5zZXRUeXBlKFNwZWNTdHJpbmcgfCBTcGVjQnl0ZWNvZGVOdW1iZXIpOworICAgICAgICAgICAg
Zm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNTdHJpbmcgfCBTcGVjSW50MzIgfCBTcGVjTnVtYmVy
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMzg3
LDEyICszNTgsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgaWYgKCFi
eXRlY29kZUNhblRydW5jYXRlSW50ZWdlcihub2RlLT5hcml0aE5vZGVGbGFncygpKSkKICAgICAg
ICAgICAgICAgICBub2RlLT5zZXRDYW5FeGl0KHRydWUpOwogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTWFjaGluZUludFVzZToKLSAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShTcGVjSW50NTIpOwotICAgICAgICAgICAgaWYgKCFmb3JOb2RlKG5vZGUtPmNoaWxkMSgp
KS5pc1R5cGUoU3BlY0ludDMyKQotICAgICAgICAgICAgICAgIHx8ICFmb3JOb2RlKG5vZGUtPmNo
aWxkMigpKS5pc1R5cGUoU3BlY0ludDMyKSkKLSAgICAgICAgICAgICAgICBub2RlLT5zZXRDYW5F
eGl0KHRydWUpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTnVtYmVyVXNlOgog
ICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNEb3VibGUpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC00MTUsMTMgKzM4MCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAg
ICAgICAgICAgICBpZiAoIWJ5dGVjb2RlQ2FuVHJ1bmNhdGVJbnRlZ2VyKG5vZGUtPmFyaXRoTm9k
ZUZsYWdzKCkpKQogICAgICAgICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOgotICAgICAgICAgICAg
Zm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQ1Mik7Ci0gICAgICAgICAgICBpZiAobV9zdGF0
ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5jb3VsZEJlVHlwZShTcGVjSW50NTIpKQotICAgICAg
ICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7Ci0gICAgICAgICAgICBpZiAoIWJ5dGVj
b2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKQotICAgICAg
ICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7Ci0gICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBOdW1iZXJVc2U6CiAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUo
U3BlY0RvdWJsZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ0NiwxMyArNDA0LDkgQEAgYm9v
bCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMo
dW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgICAgICB8fCAhYnl0ZWNvZGVDYW5JZ25v
cmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpCiAgICAgICAgICAgICAgICAg
bm9kZS0+c2V0Q2FuRXhpdCh0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE1hY2hpbmVJbnRVc2U6Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0lu
dDUyKTsKLSAgICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOdW1iZXJVc2U6Ci0gICAgICAgICAgICBpZiAoaXNGdWxsUmVh
bE51bWJlclNwZWN1bGF0aW9uKGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSkKLSAgICAg
ICAgICAgICAgICB8fCBpc0Z1bGxSZWFsTnVtYmVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLT5j
aGlsZDIoKSkubV90eXBlKSkKKyAgICAgICAgICAgIGlmIChpc1JlYWxOdW1iZXJTcGVjdWxhdGlv
bihmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUpCisgICAgICAgICAgICAgICAgfHwgaXNS
ZWFsTnVtYmVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLT5jaGlsZDIoKSkubV90eXBlKSkKICAg
ICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0RvdWJsZVJlYWwpOwogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVj
RG91YmxlKTsKQEAgLTYzMiw3ICs1ODYsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmIChpc0Z1bGxO
dW1iZXJTcGVjdWxhdGlvbihhYnN0cmFjdENoaWxkLm1fdHlwZSkpIHsKKyAgICAgICAgaWYgKGlz
TnVtYmVyU3BlY3VsYXRpb24oYWJzdHJhY3RDaGlsZC5tX3R5cGUpKSB7CiAgICAgICAgICAgICBz
ZXRDb25zdGFudChub2RlLCB2bS0+c21hbGxTdHJpbmdzLm51bWJlclN0cmluZygpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04NTcsOCArODExLDYgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgY2FzZSBBcnJheTo6VWludDMyQXJyYXk6CiAgICAgICAgICAg
ICBpZiAobm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkKICAgICAgICAgICAgICAgICBmb3JO
b2RlKG5vZGUpLnNldFR5cGUoU3BlY0ludDMyKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGVuYWJs
ZUludDUyKCkgJiYgbm9kZS0+c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCgpKQotICAgICAgICAg
ICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjSW50NTIpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjRG91YmxlKTsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtOTExLDcgKzg2Myw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJM
aW1pCiAgICAgY2FzZSBBcnJheVB1c2g6CiAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7
CiAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5jb2RlT3JpZ2luLCBjbG9iYmVyTGltaXQpOwot
ICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0J5dGVjb2RlTnVtYmVyKTsKKyAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNOdW1iZXIpOwogICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAogICAgIGNhc2UgQXJyYXlQb3A6CkBAIC05ODIsOCArOTM0LDggQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5z
aWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgLy8gTkIuIFRoZSBtb3JlIGNhbm9uaWNhbCB3YXkg
b2Ygd3JpdGluZyB0aGlzIHdvdWxkIGhhdmUgYmVlbjoKICAgICAgICAgLy8KICAgICAgICAgLy8g
ZGVzdGluYXRpb24gPSBzb3VyY2U7Ci0gICAgICAgIC8vIGlmIChkZXN0aW5hdGlvbi5tX3R5cGUg
JiAhKFNwZWNGdWxsTnVtYmVyIHwgU3BlY1N0cmluZyB8IFNwZWNCb29sZWFuKSkgewotICAgICAg
ICAvLyAgICAgZGVzdGluYXRpb24uZmlsdGVyKFNwZWNGdWxsTnVtYmVyIHwgU3BlY1N0cmluZyB8
IFNwZWNCb29sZWFuKTsKKyAgICAgICAgLy8gaWYgKGRlc3RpbmF0aW9uLm1fdHlwZSAmICEoU3Bl
Y051bWJlciB8IFNwZWNTdHJpbmcgfCBTcGVjQm9vbGVhbikpIHsKKyAgICAgICAgLy8gICAgIGRl
c3RpbmF0aW9uLmZpbHRlcihTcGVjTnVtYmVyIHwgU3BlY1N0cmluZyB8IFNwZWNCb29sZWFuKTsK
ICAgICAgICAgLy8gICAgIEFic3RyYWN0VmFsdWUgc3RyaW5nOwogICAgICAgICAvLyAgICAgc3Ry
aW5nLnNldCh2bS0+c3RyaW5nU3RydWN0dXJlKTsKICAgICAgICAgLy8gICAgIGRlc3RpbmF0aW9u
Lm1lcmdlKHN0cmluZyk7CkBAIC0xMDAzLDcgKzk1NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJM
aW1pCiAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5jb2RlT3JpZ2luLCBjbG9iYmVyTGltaXQp
OwogICAgICAgICAKICAgICAgICAgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IHNvdXJjZS5tX3R5cGU7
Ci0gICAgICAgIGlmICh0eXBlICYgfihTcGVjRnVsbE51bWJlciB8IFNwZWNTdHJpbmcgfCBTcGVj
Qm9vbGVhbikpCisgICAgICAgIGlmICh0eXBlICYgfihTcGVjTnVtYmVyIHwgU3BlY1N0cmluZyB8
IFNwZWNCb29sZWFuKSkKICAgICAgICAgICAgIHR5cGUgPSAoU3BlY0hlYXBUb3AgJiB+U3BlY0Nl
bGwpIHwgU3BlY1N0cmluZzsKIAogICAgICAgICBkZXN0aW5hdGlvbi5zZXRUeXBlKHR5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKaW5kZXgg
MzcyMTViMmE5MjhkZWE2YzU2NWRjZDY1NjgyODY5ZGI5NTdhNzFjZC4uOWY2MzRhNTIwZjFjZmE5
N2EzM2E0MjVlMTI1YmViODdiZjc5MDc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCkBAIC02Nyw4ICs2Nyw2IEBAIHZvaWQgQWJzdHJhY3RW
YWx1ZTo6c2V0KEdyYXBoJiBncmFwaCwgSlNWYWx1ZSB2YWx1ZSkKICAgICB9CiAgICAgICAgIAog
ICAgIG1fdHlwZSA9IHNwZWN1bGF0aW9uRnJvbVZhbHVlKHZhbHVlKTsKLSAgICBpZiAobV90eXBl
ID09IFNwZWNJbnQ1MkFzRG91YmxlKQotICAgICAgICBtX3R5cGUgPSBTcGVjSW50NTI7CiAgICAg
bV92YWx1ZSA9IHZhbHVlOwogICAgICAgICAKICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CkBAIC0y
MjksNyArMjI3LDYgQEAgRmlsdHJhdGlvblJlc3VsdCBBYnN0cmFjdFZhbHVlOjpub3JtYWxpemVD
bGFyaXR5KCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAog
dm9pZCBBYnN0cmFjdFZhbHVlOjpjaGVja0NvbnNpc3RlbmN5KCkgY29uc3QKIHsKICAgICBpZiAo
IShtX3R5cGUgJiBTcGVjQ2VsbCkpIHsKQEAgLTI0MSwxOSArMjM4LDE0IEBAIHZvaWQgQWJzdHJh
Y3RWYWx1ZTo6Y2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0CiAgICAgaWYgKGlzQ2xlYXIoKSkKICAg
ICAgICAgQVNTRVJUKCFtX3ZhbHVlKTsKICAgICAKLSAgICBpZiAoISFtX3ZhbHVlKSB7Ci0gICAg
ICAgIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBtX3R5cGU7Ci0gICAgICAgIGlmICh0eXBlICYgU3Bl
Y0ludDUyKQotICAgICAgICAgICAgdHlwZSB8PSBTcGVjSW50NTJBc0RvdWJsZTsKLSAgICAgICAg
QVNTRVJUKG1lcmdlU3BlY3VsYXRpb25zKHR5cGUsIHNwZWN1bGF0aW9uRnJvbVZhbHVlKG1fdmFs
dWUpKSA9PSB0eXBlKTsKLSAgICB9CisgICAgaWYgKCEhbV92YWx1ZSkKKyAgICAgICAgQVNTRVJU
KG1lcmdlU3BlY3VsYXRpb25zKG1fdHlwZSwgc3BlY3VsYXRpb25Gcm9tVmFsdWUobV92YWx1ZSkp
ID09IG1fdHlwZSk7CiAgICAgCiAgICAgLy8gTm90ZSB0aGF0IGl0J3MgcG9zc2libGUgZm9yIGEg
cHJlZGljdGlvbiBsaWtlIChGaW5hbCwgW10pLiBUaGlzIHJlYWxseSBtZWFucyB0aGF0CiAgICAg
Ly8gdGhlIHZhbHVlIGlzIGJvdHRvbSBhbmQgdGhhdCBhbnkgY29kZSB0aGF0IHVzZXMgdGhlIHZh
bHVlIGlzIHVucmVhY2hhYmxlLiBCdXQKICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGdldCBwZWRh
bnRpYyBhYm91dCB0aGlzIGFzIGl0IHdvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIGNvbXB1dGF0aW9u
YWwKICAgICAvLyBjb21wbGV4aXR5IG9mIHRoZSBjb2RlLgogfQotI2VuZGlmCiAKIHZvaWQgQWJz
dHJhY3RWYWx1ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaAppbmRleCBkYjMxM2QyNDI4YTM0OGI2
NmZiZTM4YzA1NGQ4OTkzNzg0NTJmZjExLi5lYzJkMmZhNTQ4OTY4NzIwNjkzYmI2N2M2NWNmYjVi
NTk0NTEwMTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0VmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFs
dWUuaApAQCAtMTg1LDE2ICsxODUsNiBAQCBzdHJ1Y3QgQWJzdHJhY3RWYWx1ZSB7CiAgICAgICAg
IGNoZWNrQ29uc2lzdGVuY3koKTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBjb3VsZEJlVHlwZShT
cGVjdWxhdGVkVHlwZSBkZXNpcmVkVHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiAhIShtX3R5
cGUgJiBkZXNpcmVkVHlwZSk7Ci0gICAgfQotICAgIAotICAgIGJvb2wgaXNUeXBlKFNwZWN1bGF0
ZWRUeXBlIGRlc2lyZWRUeXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuICEobV90eXBlICYgfmRl
c2lyZWRUeXBlKTsKLSAgICB9Ci0gICAgCiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXIoR3Jh
cGgmLCBjb25zdCBTdHJ1Y3R1cmVTZXQmKTsKICAgICAKICAgICBGaWx0cmF0aW9uUmVzdWx0IGZp
bHRlckFycmF5TW9kZXMoQXJyYXlNb2RlcyBhcnJheU1vZGVzKTsKQEAgLTIwMyw2ICsxOTMsMjIg
QEAgc3RydWN0IEFic3RyYWN0VmFsdWUgewogICAgIAogICAgIEZpbHRyYXRpb25SZXN1bHQgZmls
dGVyQnlWYWx1ZShKU1ZhbHVlIHZhbHVlKTsKICAgICAKKyAgICBib29sIHZhbGlkYXRlVHlwZShK
U1ZhbHVlIHZhbHVlKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGlzSGVhcFRvcCgpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAobWVyZ2VTcGVjdWxh
dGlvbnMobV90eXBlLCBzcGVjdWxhdGlvbkZyb21WYWx1ZSh2YWx1ZSkpICE9IG1fdHlwZSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICh2YWx1ZS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgJiBTcGVjRW1wdHkpOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICAKICAgICBib29sIHZhbGlkYXRlKEpTVmFsdWUgdmFsdWUpIGNvbnN0
CiAgICAgewogICAgICAgICBpZiAoaXNIZWFwVG9wKCkpCkBAIC0yNDUsMTEgKzI1MSw3IEBAIHN0
cnVjdCBBYnN0cmFjdFZhbHVlIHsKICAgICAgICAgICAgIHx8ICFhcnJheU1vZGVzQXJlQ2xlYXJP
clRvcChtX2FycmF5TW9kZXMpOwogICAgIH0KICAgICAKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAg
ICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKSBjb25zdCB7IH0KLSNlbHNlCiAgICAgdm9pZCBjaGVj
a0NvbnNpc3RlbmN5KCkgY29uc3Q7Ci0jZW5kaWYKICAgICAKICAgICB2b2lkIGR1bXBJbkNvbnRl
eHQoUHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNvbnN0OwogICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0OwpAQCAtMzYxLDI5ICszNjMsNiBAQCBwcml2YXRlOgogICAgICAgICBt
X2FycmF5TW9kZXMgPSBBTExfQVJSQVlfTU9ERVM7CiAgICAgfQogICAgIAotICAgIGJvb2wgdmFs
aWRhdGVUeXBlKEpTVmFsdWUgdmFsdWUpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNIZWFw
VG9wKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIC8vIENv
bnN0YW50IGZvbGRpbmcgYWx3YXlzIHJlcHJlc2VudHMgSW50NTIncyBpbiBhIGRvdWJsZSAoaS5l
LiBJbnQ1MkFzRG91YmxlKS4KLSAgICAgICAgLy8gU28gc3BlY3VsYXRpb25Gcm9tVmFsdWUodmFs
dWUpIGZvciBhbiBJbnQ1MiB2YWx1ZSB3aWxsIHJldHVybiBJbnQ1MkFzRG91YmxlLAotICAgICAg
ICAvLyBhbmQgdGhhdCdzIGZpbmUgLSB0aGUgdHlwZSB2YWxpZGF0ZXMganVzdCBmaW5lLgotICAg
ICAgICBTcGVjdWxhdGVkVHlwZSB0eXBlID0gbV90eXBlOwotICAgICAgICBpZiAodHlwZSAmIFNw
ZWNJbnQ1MikKLSAgICAgICAgICAgIHR5cGUgfD0gU3BlY0ludDUyQXNEb3VibGU7Ci0gICAgICAg
IAotICAgICAgICBpZiAobWVyZ2VTcGVjdWxhdGlvbnModHlwZSwgc3BlY3VsYXRpb25Gcm9tVmFs
dWUodmFsdWUpKSAhPSB0eXBlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAK
LSAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgQVNTRVJUKG1fdHlw
ZSAmIFNwZWNFbXB0eSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAogICAgIHZvaWQgbWFrZVRv
cChTcGVjdWxhdGVkVHlwZSB0b3ApCiAgICAgewogICAgICAgICBtX3R5cGUgfD0gdG9wOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IDI3ODVjZjQ3ZWE3
NWFiNjBkMTNmZTIwYjk3YWQwNjcyMjU1Y2NmMDIuLjY1MjE4NGRiNzA1OTVhNjQ4MDA1MWM0ZDM2
MWMwNzM4OWJmNzZiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXJyYXlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5jcHAKQEAgLTE2MywyMSArMTYzLDIxIEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShT
cGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlCiAgICAg
ICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZvcmNlRXhpdCk7CiAgICAgICAgIGlmIChp
c0ludDMyU3BlY3VsYXRpb24odmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5k
Q29udmVyc2lvbihBcnJheTo6SW50MzIsIEFycmF5OjpDb252ZXJ0KTsKLSAgICAgICAgaWYgKGlz
RnVsbE51bWJlclNwZWN1bGF0aW9uKHZhbHVlKSkKKyAgICAgICAgaWYgKGlzTnVtYmVyU3BlY3Vs
YXRpb24odmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5kQ29udmVyc2lvbihB
cnJheTo6RG91YmxlLCBBcnJheTo6Q29udmVydCk7CiAgICAgICAgIHJldHVybiB3aXRoVHlwZUFu
ZENvbnZlcnNpb24oQXJyYXk6OkNvbnRpZ3VvdXMsIEFycmF5OjpDb252ZXJ0KTsKICAgICAgICAg
CiAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgIGlmICghdmFsdWUgfHwgaXNJbnQzMlNw
ZWN1bGF0aW9uKHZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgaWYg
KGlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHZhbHVlKSkKKyAgICAgICAgaWYgKGlzTnVtYmVyU3Bl
Y3VsYXRpb24odmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5kQ29udmVyc2lv
bihBcnJheTo6RG91YmxlLCBBcnJheTo6Q29udmVydCk7CiAgICAgICAgIHJldHVybiB3aXRoVHlw
ZUFuZENvbnZlcnNpb24oQXJyYXk6OkNvbnRpZ3VvdXMsIEFycmF5OjpDb252ZXJ0KTsKICAgICAg
ICAgCiAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBpZiAoZmxhZ3MgJiBOb2RlQnl0
ZWNvZGVVc2VzQXNJbnQpCiAgICAgICAgICAgICByZXR1cm4gd2l0aFR5cGVBbmRDb252ZXJzaW9u
KEFycmF5OjpDb250aWd1b3VzLCBBcnJheTo6UmFnZUNvbnZlcnQpOwotICAgICAgICBpZiAoIXZh
bHVlIHx8IGlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHZhbHVlKSkKKyAgICAgICAgaWYgKCF2YWx1
ZSB8fCBpc051bWJlclNwZWN1bGF0aW9uKHZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiAqdGhp
czsKICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5kQ29udmVyc2lvbihBcnJheTo6Q29udGlndW91
cywgQXJyYXk6OkNvbnZlcnQpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGJlNjE1YWRlMDAzYzYyNjVmY2MwOGJhNDNj
YWY0YTM4ZGE4MTU1ZjQuLjdiMTEwMDJhMDU1MzQ4YmFlYzlkMWQxNDRmN2Q1OWM2ZDM1Yjg3NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3NlbWJseUhlbHBlcnMuaApA
QCAtMjkzLDI0ICsyOTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1vdmU2NFRvRG91YmxlKGdwciwg
ZnByKTsKICAgICAgICAgcmV0dXJuIGZwcjsKICAgICB9Ci0gICAgCi0gICAgdm9pZCBib3hJbnQ1
MihHUFJSZWcgc291cmNlLCBHUFJSZWcgdGFyZ2V0LCBHUFJSZWcgc2NyYXRjaCwgRlBSUmVnIGZw
U2NyYXRjaCkKLSAgICB7Ci0gICAgICAgIC8vIElzIGl0IGFuIGludDMyPwotICAgICAgICBzaWdu
RXh0ZW5kMzJUb1B0cihzb3VyY2UsIHNjcmF0Y2gpOwotICAgICAgICBKdW1wIGlzSW50MzIgPSBi
cmFuY2g2NChFcXVhbCwgc291cmNlLCBzY3JhdGNoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE5v
cGUsIGl0J3Mgbm90LCBidXQgcmVnVDAgY29udGFpbnMgdGhlIGludDY0IHZhbHVlLgotICAgICAg
ICBjb252ZXJ0SW50NjRUb0RvdWJsZShzb3VyY2UsIGZwU2NyYXRjaCk7Ci0gICAgICAgIGJveERv
dWJsZShmcFNjcmF0Y2gsIHRhcmdldCk7Ci0gICAgICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKLSAg
ICAgICAgCi0gICAgICAgIGlzSW50MzIubGluayh0aGlzKTsKLSAgICAgICAgemVyb0V4dGVuZDMy
VG9QdHIoc291cmNlLCB0YXJnZXQpOwotICAgICAgICBvcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlciwgdGFyZ2V0KTsKLSAgICAgICAgCi0gICAgICAgIGRvbmUubGluayh0aGlzKTsK
LSAgICB9CiAjZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDE4NTIxYmRhZmE4Yjgw
ZGNhNmM1MzhlNDk0ZGU2ZjdiMGI5MmFhZjQuLjcwOWI3ZTdkZjc5ZmI2MmY2OWYwOTg0MGZhMjYx
OTQ3OGUyOWRhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCkBAIC04NzQsMTkgKzg3NCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IFVJbnQzMlRvTnVtYmVyOgogICAgICAgICBjYXNlIEFyaXRoQWRkOgogICAgICAgICBjYXNlIEFy
aXRoU3ViOgorICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgICAgICBjYXNlIFZhbHVlQWRk
OgogICAgICAgICBjYXNlIEFyaXRoTW9kOiAvLyBmb3IgQXJpdGhNb2QgIk1heU92ZXJmbG93IiBt
ZWFucyB3ZSB0cmllZCB0byBkaXZpZGUgYnkgemVybywgb3Igd2Ugc2F3IGRvdWJsZS4KICAgICAg
ICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6Ci0gICAgICAgICAg
ICAvLyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVn
YXRpb24gb3ZlcmZsb3dpbmcKLSAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdl
bmVyYXRpbmcgbmVnYXRpdmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdwotICAgICAg
ICAgICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRo
aW5ncy4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93KTsKLSAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm8pOwotICAgICAgICAgICAg
YnJlYWs7Ci0KICAgICAgICAgY2FzZSBBcml0aE11bDoKICAgICAgICAgICAgIGlmIChtX2lubGlu
ZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZURlZXBlc3RTbG93Q2FzZSht
X2N1cnJlbnRJbmRleCkKICAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5kZXggY2E5YTEyMWI4YzlhZDM2
MTVhYzljODU4YWNmNzE5MDEwNzJjNGZjZi4uM2NlZDUyODJmMzY0YzMzOTZkZWFkNWFmODFhZTcz
NWFjMGY2YTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAK
QEAgLTYzLDYgKzYzLDIxIEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgCisgICAgTm9k
ZSogY2Fub25pY2FsaXplKE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICBpZiAoIW5vZGUpCisg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChub2RlLT5vcCgpID09
IFZhbHVlVG9JbnQzMikKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7
CisgICAgICAgIAorICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CisgICAgTm9kZSogY2Fub25p
Y2FsaXplKEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYW5vbmljYWxpemUoZWRn
ZS5ub2RlKCkpOworICAgIH0KKyAgICAKICAgICB1bnNpZ25lZCBlbmRJbmRleEZvclB1cmVDU0Uo
KQogICAgIHsKICAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gbV9sYXN0U2VlblttX2N1cnJlbnRO
b2RlLT5vcCgpXTsKQEAgLTc5LDkgKzk0LDkgQEAgcHJpdmF0ZToKIAogICAgIE5vZGUqIHB1cmVD
U0UoTm9kZSogbm9kZSkKICAgICB7Ci0gICAgICAgIEVkZ2UgY2hpbGQxID0gbm9kZS0+Y2hpbGQx
KCk7Ci0gICAgICAgIEVkZ2UgY2hpbGQyID0gbm9kZS0+Y2hpbGQyKCk7Ci0gICAgICAgIEVkZ2Ug
Y2hpbGQzID0gbm9kZS0+Y2hpbGQzKCk7CisgICAgICAgIE5vZGUqIGNoaWxkMSA9IGNhbm9uaWNh
bGl6ZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIE5vZGUqIGNoaWxkMiA9IGNhbm9uaWNhbGl6
ZShub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIE5vZGUqIGNoaWxkMyA9IGNhbm9uaWNhbGl6ZShu
b2RlLT5jaGlsZDMoKSk7CiAgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBlbmRJ
bmRleEZvclB1cmVDU0UoKTsgaS0tOykgewogICAgICAgICAgICAgTm9kZSogb3RoZXJOb2RlID0g
bV9jdXJyZW50QmxvY2stPmF0KGkpOwpAQCAtOTQsMTkgKzEwOSwxOSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgaWYgKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkgIT0gb3RoZXJOb2RlLT5hcml0aE5v
ZGVGbGFncygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBFZGdlIG90aGVyQ2hpbGQgPSBvdGhlck5vZGUtPmNoaWxkMSgpOworICAgICAgICAg
ICAgTm9kZSogb3RoZXJDaGlsZCA9IGNhbm9uaWNhbGl6ZShvdGhlck5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgICAgIGlmICghb3RoZXJDaGlsZCkKICAgICAgICAgICAgICAgICByZXR1cm4gb3Ro
ZXJOb2RlOwogICAgICAgICAgICAgaWYgKG90aGVyQ2hpbGQgIT0gY2hpbGQxKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBvdGhlckNoaWxkID0g
b3RoZXJOb2RlLT5jaGlsZDIoKTsKKyAgICAgICAgICAgIG90aGVyQ2hpbGQgPSBjYW5vbmljYWxp
emUob3RoZXJOb2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBpZiAoIW90aGVyQ2hpbGQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyTm9kZTsKICAgICAgICAgICAgIGlmIChvdGhlckNo
aWxkICE9IGNoaWxkMikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgb3RoZXJDaGlsZCA9IG90aGVyTm9kZS0+Y2hpbGQzKCk7CisgICAgICAgICAg
ICBvdGhlckNoaWxkID0gY2Fub25pY2FsaXplKG90aGVyTm9kZS0+Y2hpbGQzKCkpOwogICAgICAg
ICAgICAgaWYgKCFvdGhlckNoaWxkKQogICAgICAgICAgICAgICAgIHJldHVybiBvdGhlck5vZGU7
CiAgICAgICAgICAgICBpZiAob3RoZXJDaGlsZCAhPSBjaGlsZDMpCkBAIC0zNjIsMjEgKzM3Nywy
MSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleElu
QmxvY2s7IGktLTspIHsKICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBtX2N1cnJlbnRCbG9jay0+
YXQoaSk7Ci0gICAgICAgICAgICBpZiAobm9kZSA9PSBjaGlsZDEgfHwgbm9kZSA9PSBjaGlsZDIp
IAorICAgICAgICAgICAgaWYgKG5vZGUgPT0gY2hpbGQxIHx8IG5vZGUgPT0gY2Fub25pY2FsaXpl
KGNoaWxkMikpIAogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBzd2l0Y2gg
KG5vZGUtPm9wKCkpIHsKICAgICAgICAgICAgIGNhc2UgR2V0QnlWYWw6CiAgICAgICAgICAgICAg
ICAgaWYgKCFtX2dyYXBoLmJ5VmFsSXNQdXJlKG5vZGUpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkgPT0gY2hpbGQxICYm
IG5vZGUtPmNoaWxkMigpID09IGNoaWxkMikKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hp
bGQxKCkgPT0gY2hpbGQxICYmIGNhbm9uaWNhbGl6ZShub2RlLT5jaGlsZDIoKSkgPT0gY2Fub25p
Y2FsaXplKGNoaWxkMikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBQdXRCeVZhbDoKICAgICAgICAgICAg
IGNhc2UgUHV0QnlWYWxBbGlhczogewogICAgICAgICAgICAgICAgIGlmICghbV9ncmFwaC5ieVZh
bElzUHVyZShub2RlKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAg
ICAgICAgaWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkgPT0gY2hpbGQxICYmIG1fZ3Jh
cGgudmFyQXJnQ2hpbGQobm9kZSwgMSkgPT0gY2hpbGQyKQorICAgICAgICAgICAgICAgIGlmICht
X2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApID09IGNoaWxkMSAmJiBjYW5vbmljYWxpemUobV9n
cmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSkgPT0gY2Fub25pY2FsaXplKGNoaWxkMikpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpLm5vZGUo
KTsKICAgICAgICAgICAgICAgICAvLyBXZSBtdXN0IGFzc3VtZSB0aGF0IHRoZSBQdXRCeVZhbCB3
aWxsIGNsb2JiZXIgdGhlIGxvY2F0aW9uIHdlJ3JlIGdldHRpbmcgZnJvbS4KICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogV2UgY2FuIGRvIGJldHRlcjsgaWYgd2Uga25vdyB0aGF0IHRoZSBQdXRC
eVZhbCBpcyBhY2Nlc3NpbmcgYW4gYXJyYXkgb2YgYQpAQCAtMTA3NSw4ICsxMDkwLDYgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDoKICAgICAgICAgY2FzZSBWYWx1
ZVRvSW50MzI6CiAgICAgICAgIGNhc2UgTWFrZVJvcGU6Ci0gICAgICAgIGNhc2UgSW50NTJUb0Rv
dWJsZToKLSAgICAgICAgY2FzZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICBpZiAoY3NlTW9k
ZSA9PSBTdG9yZUVsaW1pbmF0aW9uKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgc2V0UmVwbGFjZW1lbnQocHVyZUNTRShub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDVmMTRlMjQ3YjU3YmI3MGQ4YTcxMzg1NmYyZWRhZGFl
NzE0OGIwZWUuLmU4MmZkNzE4NTczNDU4Zjg4YTMxNmUxYTJmYzdhYjZjMDJlYTdjOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMTIsOCArMTEyLDYg
QEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgUmVhZEZ1bmN0b3Im
IHJlYWQsIFdyaXRlRnVuY3RvciYgd3JpdGUKICAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgY2Fz
ZSBJbnQzMlRvRG91YmxlOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6Ci0gICAgY2Fz
ZSBJbnQ1MlRvRG91YmxlOgotICAgIGNhc2UgSW50NTJUb1ZhbHVlOgogICAgICAgICByZXR1cm47
CiAgICAgICAgIAogICAgIGNhc2UgTW92SGludEFuZENoZWNrOgpAQCAtMTgyLDcgKzE4MCw2IEBA
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIFJlYWRGdW5jdG9yJiBy
ZWFkLCBXcml0ZUZ1bmN0b3ImIHdyaXRlCiAgICAgICAgIHN3aXRjaCAobm9kZS0+YmluYXJ5VXNl
S2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6CiAgICAgICAgIGNhc2UgTnVtYmVyVXNl
OgotICAgICAgICBjYXNlIE1hY2hpbmVJbnRVc2U6CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGNhc2UgVW50eXBlZFVzZToKICAgICAgICAgICAgIHJlYWQoV29ybGQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKaW5kZXggYTAxMGQxZDM3OTQzZmZkNjk2NjJlZWRmYTQz
MzkyYTVkNWY0YzNlNi4uNjgxOTlhODg1MjYzNjA0MGUzZGUxMmVkMmEyZTVlYzhmMDQ2ODZmMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCkBAIC0xNDMsMTUgKzE0Myw2IEBA
IGlubGluZSBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQoKQogI2VuZGlmCiB9CiAKLWlubGluZSBi
b29sIGVuYWJsZUludDUyKCkKLXsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIHJldHVybiB0cnVl
OwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogZW51bSBTcGlsbFJlZ2lz
dGVyc01vZGUgeyBOZWVkVG9TcGlsbCwgRG9udFNwaWxsIH07CiAKIGVudW0gTm9SZXN1bHRUYWcg
eyBOb1Jlc3VsdCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZTg2MmQ2MzQzYzA2MGNkNjFkYzE1MDAxMmUzODQzZjhiZDg3NGVjMy4uZDAzZjYz
ZTQyMjg2N2ViMDM3MTI3Y2MxZjQzMThmY2E0MTEwMmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC02NCw5ICs2NCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICBmaXh1cFNldExvY2Fsc0luQmxvY2sobV9ncmFwaC5ibG9jayhibG9ja0lu
ZGV4KSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9j
a0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRl
eCkKLSAgICAgICAgICAgIGZpeHVwVW50eXBlZFNldExvY2Fsc0luQmxvY2sobV9ncmFwaC5ibG9j
ayhibG9ja0luZGV4KSk7Ci0gICAgICAgIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTk1LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3dpdGNoIChvcCkgewogICAgICAg
ICBjYXNlIFNldExvY2FsOiB7CiAgICAgICAgICAgICAvLyBUaGlzIGdldHMgaGFuZGxlZCBieSBm
aXh1cFNldExvY2Fsc0luQmxvY2soKS4KLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBCaXRBbmQ6CkBA
IC0xMjcsMTEgKzEyNCw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+
c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCgpKSB7Ci0gICAgICAgICAgICAgICAgZml4RWRnZTxN
YWNoaW5lSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlTnVtYmVyKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPE51
bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjA1
LDEwICsxOTcsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChtX2dyYXBoLm5lZ2F0ZVNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQo
bm9kZSkpIHsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hpbmVJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGZpeEVkZ2U8TnVtYmVyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMjE5LDExICsyMDcsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChtX2dyYXBoLm11bFNob3VsZFNw
ZWN1bGF0ZU1hY2hpbmVJbnQobm9kZSkpIHsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hp
bmVJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hp
bmVJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGZpeEVkZ2U8TnVtYmVyVXNlPihub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICBmaXhFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0zMTcsMTIgKzMwMCw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGVuYWJsZUludDUyKCkKLSAgICAg
ICAgICAgICAgICAmJiBOb2RlOjpzaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUtPmNoaWxk
MSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewotICAgICAgICAgICAgICAgIGZp
eEVkZ2U8TWFjaGluZUludFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgICAgIGZp
eEVkZ2U8TWFjaGluZUludFVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0
ZU51bWJlcihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsK
ICAgICAgICAgICAgICAgICBmaXhFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAg
ICAgICAgICAgICAgIGZpeEVkZ2U8TnVtYmVyVXNlPihub2RlLT5jaGlsZDIoKSk7CkBAIC0zNzgs
MTIgKzM1NSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4o
bm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKGVuYWJsZUludDUyKCkKLSAgICAgICAgICAgICAgICAmJiBOb2RlOjpz
aG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hp
bGQyKCkubm9kZSgpKSkgewotICAgICAgICAgICAgICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4o
bm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZU51bWJlcihub2RlLT5jaGlsZDEo
KS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhF
ZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8
TnVtYmVyVXNlPihub2RlLT5jaGlsZDIoKSk7CkBAIC01MDUsMTAgKzQ3Niw2IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KGNoaWxkMSk7CiAgICAgICAg
ICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4oY2hpbGQyKTsKICAgICAgICAgICAgICAgICBmaXhF
ZGdlPEludDMyVXNlPihjaGlsZDMpOwotICAgICAgICAgICAgICAgIGlmIChjaGlsZDMtPnByZWRp
Y3Rpb24oKSAmIFNwZWNJbnQ1MikKLSAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxNYWNoaW5l
SW50VXNlPihjaGlsZDMpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgZml4RWRnZTxJbnQzMlVzZT4oY2hpbGQzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgICAgICAgICBmaXhFZGdlPEtu
b3duQ2VsbFVzZT4oY2hpbGQxKTsKQEAgLTUyNiw4ICs0OTMsNiBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICAgICAgaWYg
KGNoaWxkMy0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkKICAgICAgICAgICAgICAgICAgICAgZml4
RWRnZTxJbnQzMlVzZT4oY2hpbGQzKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGlsZDMt
PnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgZml4RWRn
ZTxNYWNoaW5lSW50VXNlPihjaGlsZDMpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgZml4RWRnZTxOdW1iZXJVc2U+KGNoaWxkMyk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC04ODIsOCArODQ3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBDaGVja1Rp
ZXJVcEluTG9vcDoKICAgICAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAgICAgICBj
YXNlIENoZWNrVGllclVwQW5kT1NSRW50ZXI6Ci0gICAgICAgIGNhc2UgSW50NTJUb0RvdWJsZToK
LSAgICAgICAgY2FzZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIApAQCAtMTIyNiw5ICsx
MTg5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNhc2UgRmx1c2hlZEludDMyOgogICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgRmx1c2hlZEludDUyOgotICAgICAgICAgICAg
ICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBGbHVzaGVkQ2VsbDoKICAgICAgICAgICAgICAg
ICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTEyNDMsMjMgKzEyMDMsNiBAQCBwcml2YXRlOgogICAgICAgICBtX2luc2VydGlvblNl
dC5leGVjdXRlKGJsb2NrKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBmaXh1cFVudHlwZWRTZXRM
b2NhbHNJbkJsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQotICAgIHsKLSAgICAgICAgaWYgKCFibG9j
aykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgQVNTRVJUKGJsb2NrLT5pc1JlYWNoYWJs
ZSk7Ci0gICAgICAgIG1fYmxvY2sgPSBibG9jazsKLSAgICAgICAgZm9yIChtX2luZGV4SW5CbG9j
ayA9IDA7IG1faW5kZXhJbkJsb2NrIDwgYmxvY2stPnNpemUoKTsgKyttX2luZGV4SW5CbG9jaykg
ewotICAgICAgICAgICAgTm9kZSogbm9kZSA9IG1fY3VycmVudE5vZGUgPSBibG9jay0+YXQobV9p
bmRleEluQmxvY2spOwotICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gU2V0TG9jYWwpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKLSAgICAgICAgICAgICAgICBm
aXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgfQotICAgICAgICBt
X2luc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKLSAgICB9Ci0gICAgCiAgICAgTm9kZSogY2hl
Y2tBcnJheShBcnJheU1vZGUgYXJyYXlNb2RlLCBjb25zdCBDb2RlT3JpZ2luJiBjb2RlT3JpZ2lu
LCBOb2RlKiBhcnJheSwgTm9kZSogaW5kZXgsIGJvb2wgKCpzdG9yYWdlQ2hlY2spKGNvbnN0IEFy
cmF5TW9kZSYpID0gY2FuQ1NFU3RvcmFnZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChhcnJheU1v
ZGUuaXNTcGVjaWZpYygpKTsKQEAgLTEzNjEsOSArMTMwNCw2IEBAIHByaXZhdGU6CiAgICAgICAg
IGlmIChub2RlLT5vcCgpICE9IEdldExvY2FsKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICAgICAgLy8gRklYTUU6IFRoZSB3YXkgdGhpcyB1c2VzIGFsd2F5c1VuYm94U2ltcGxl
UHJpbWl0aXZlcygpIGlzIHN1c3BpY2lvdXMuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1MTgKLSAgICAgICAgCiAgICAgICAgIFZhcmlhYmxl
QWNjZXNzRGF0YSogdmFyaWFibGUgPSBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAg
ICAgc3dpdGNoICh1c2VLaW5kKSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6CkBAIC0xMzgxLDEw
ICsxMzIxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB8fCBpc0Jvb2xlYW5TcGVjdWxh
dGlvbih2YXJpYWJsZS0+cHJlZGljdGlvbigpKSkKICAgICAgICAgICAgICAgICBtX3Byb2ZpdGFi
aWxpdHlDaGFuZ2VkIHw9IHZhcmlhYmxlLT5tZXJnZUlzUHJvZml0YWJsZVRvVW5ib3godHJ1ZSk7
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOgotICAgICAg
ICAgICAgaWYgKGlzTWFjaGluZUludFNwZWN1bGF0aW9uKHZhcmlhYmxlLT5wcmVkaWN0aW9uKCkp
KQotICAgICAgICAgICAgICAgIG1fcHJvZml0YWJpbGl0eUNoYW5nZWQgfD0gdmFyaWFibGUtPm1l
cmdlSXNQcm9maXRhYmxlVG9VbmJveCh0cnVlKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIENlbGxVc2U6CiAgICAgICAgIGNhc2UgS25vd25DZWxsVXNlOgogICAgICAgICBjYXNl
IE9iamVjdFVzZToKQEAgLTE0MTEsODAgKzEzNDcsMTIgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0
ZTxVc2VLaW5kIHVzZUtpbmQ+CiAgICAgdm9pZCBmaXhFZGdlKEVkZ2UmIGVkZ2UsIFNwZWN1bGF0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEJhY2t3YXJkU3BlY3VsYXRpb24pCiAgICAgewotICAg
ICAgICBpZiAoaXNEb3VibGUodXNlS2luZCkpIHsKLSAgICAgICAgICAgIGlmIChlZGdlLT5zaG91
bGRTcGVjdWxhdGVJbnQzMkZvckFyaXRobWV0aWMoKSkgewotICAgICAgICAgICAgICAgIGluamVj
dEludDMyVG9Eb3VibGVOb2RlKGVkZ2UsIHVzZUtpbmQsIGRpcmVjdGlvbik7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBp
ZiAoZW5hYmxlSW50NTIoKSAmJiBlZGdlLT5zaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KCkpIHsK
LSAgICAgICAgICAgICAgICAvLyBNYWtlIGFsbCBkb3VibGUgdXNlcyBvZiBpbnQ1MiB2YWx1ZXMg
aGF2ZSBhbiBpbnRlcm1lZGlhdGUgSW50NTJUb0RvdWJsZS4KLSAgICAgICAgICAgICAgICAvLyBU
aGlzIGlzIGZvciB0aGUgc2FtZSByZWFzb24gYXMgSW50NTJUb1ZhbHVlIChzZWUgYmVsb3cpIGV4
Y2VwdCB0aGF0Ci0gICAgICAgICAgICAgICAgLy8gSW50OFRvRG91YmxlIHdpbGwgY29udmVydCBp
bnQ1MidzIHRoYXQgZml0IGluIGFuIGludDMyIGludG8gYSBkb3VibGUKLSAgICAgICAgICAgICAg
ICAvLyByYXRoZXIgdGhhbiB0cnlpbmcgdG8gY3JlYXRlIGEgYm94ZWQgaW50MzIgbGlrZSBJbnQ1
MlRvVmFsdWUgZG9lcy4KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBOb2RlKiBy
ZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAgICAgICBt
X2luZGV4SW5CbG9jaywgU3BlY0ludDUyQXNEb3VibGUsIEludDUyVG9Eb3VibGUsCi0gICAgICAg
ICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCks
IE51bWJlclVzZSkpOwotICAgICAgICAgICAgICAgIGVkZ2UgPSBFZGdlKHJlc3VsdCwgdXNlS2lu
ZCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICBpZiAoZW5hYmxlSW50NTIoKSAmJiB1c2VLaW5kICE9IE1hY2hpbmVJ
bnRVc2UKLSAgICAgICAgICAgICYmIGVkZ2UtPnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQoKSAm
JiAhZWRnZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewotICAgICAgICAgICAgLy8gV2UgbWFr
ZSBhbGwgbm9uLWludDUyIHVzZXMgb2YgaW50NTIgdmFsdWVzIGhhdmUgYW4gaW50ZXJtZWRpYXRl
IEludDUyVG9WYWx1ZQotICAgICAgICAgICAgLy8gbm9kZSB0byBlbnN1cmUgdGhhdCB3ZSBoYW5k
bGUgdGhpcyBwcm9wZXJseToKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyBhOiBTb21l
SW50NTIKLSAgICAgICAgICAgIC8vIGI6IEFyaXRoQWRkKEBhLCAuLi4pCi0gICAgICAgICAgICAv
LyBjOiBDYWxsKC4uLiwgQGEpCi0gICAgICAgICAgICAvLyBkOiBBcml0aEFkZChAYSwgLi4uKQot
ICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIFdpdGhvdXQgYW4gaW50ZXJtZWRpYXRlIG5v
ZGUgYW5kIGp1c3QgbGFiZWxpbmcgdGhlIHVzZXMsIHdlIHdpbGwgZ2V0OgotICAgICAgICAgICAg
Ly8KLSAgICAgICAgICAgIC8vIGE6IFNvbWVJbnQ1MgotICAgICAgICAgICAgLy8gYjogQXJpdGhB
ZGQoSW50NTI6QGEsIC4uLikKLSAgICAgICAgICAgIC8vIGM6IENhbGwoLi4uLCBVbnR5cGVkOkBh
KQotICAgICAgICAgICAgLy8gZDogQXJpdGhBZGQoSW50NTI6QGEsIC4uLikKLSAgICAgICAgICAg
IC8vCi0gICAgICAgICAgICAvLyBBbmQgbm93IHRoZSBjLT5VbnR5cGVkOkBhIGVkZ2Ugd2lsbCBi
b3ggdGhlIHZhbHVlIG9mIEBhIGludG8gYSBkb3VibGUuIFRoaXMKLSAgICAgICAgICAgIC8vIGlz
IGJhZCwgYmVjYXVzZSBub3cgdGhlIGQtPkludDUyOkBhIGVkZ2Ugd2lsbCBlaXRoZXIgaGF2ZSB0
byBkbyBkb3VibGUtdG8taW50Ci0gICAgICAgICAgICAvLyBjb252ZXJzaW9ucywgb3Igd2lsbCBo
YXZlIHRvIE9TUiBleGl0IHVuY29uZGl0aW9uYWxseS4gQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZAot
ICAgICAgICAgICAgLy8gaGF2ZSB0aGUgYy0+VW50eXBlZDpAYSBlZGdlIGJveCB0aGUgdmFsdWUg
YnkgY29weWluZyByYXRoZXIgdGhhbiBpbi1wbGFjZS4KLSAgICAgICAgICAgIC8vIEJ1dCB0aGVz
ZSBib3hpbmdzIGFyZSBhbHNvIGNvc3RseSBzbyB0aGlzIHdvdWxkbid0IGJlIGdyZWF0LgotICAg
ICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIFRoZSBzb2x1dGlvbiB3ZSB1c2UgaXMgdG8gYWx3
YXlzIGhhdmUgbm9uLUludDUyIHVzZXMgb2YgcHJlZGljdGVkIEludDUyJ3MgdXNlCi0gICAgICAg
ICAgICAvLyBhbiBpbnRlcnZlbmluZyBJbnQ1MlRvVmFsdWUgbm9kZToKLSAgICAgICAgICAgIC8v
Ci0gICAgICAgICAgICAvLyBhOiBTb21lSW50NTIKLSAgICAgICAgICAgIC8vIGI6IEFyaXRoQWRk
KEludDUyOkBhLCAuLi4pCi0gICAgICAgICAgICAvLyB4OiBJbnQ1MlRvVmFsdWUoSW50NTI6QGEp
Ci0gICAgICAgICAgICAvLyBjOiBDYWxsKC4uLiwgVW50eXBlZDpAeCkKLSAgICAgICAgICAgIC8v
IGQ6IEFyaXRoQWRkKEludDUyOkBhLCAuLi4pCi0gICAgICAgICAgICAvLwotICAgICAgICAgICAg
Ly8gTm90ZSB0aGF0IGV2ZW4gaWYgd2UgaGFkIG11bHRpcGxlIG5vbi1pbnQ1MiB1c2VzIG9mIEBh
LCB0aGUgbXVsdGlwbGUKLSAgICAgICAgICAgIC8vIEludDUyVG9WYWx1ZSdzIHdvdWxkIGdldCBD
U0UnZCB0b2dldGhlci4gU28gdGhlIGJveGluZyB3b3VsZCBvbmx5IGhhcHBlbiBvbmNlLgotICAg
ICAgICAgICAgLy8gQXQgdGhlIHNhbWUgdGltZSwgQGEgd291bGQgY29udGludWUgdG8gYmUgcmVw
cmVzZW50ZWQgYXMgYSBuYXRpdmUgaW50NTIuCi0gICAgICAgICAgICAvLwotICAgICAgICAgICAg
Ly8gQW4gYWx0ZXJuYXRpdmUgd291bGQgaGF2ZSBiZWVuIHRvIGluc2VydCBUb05hdGl2ZUludDUy
IG5vZGVzIG9uIGludDUyIHVzZXMgb2YKLSAgICAgICAgICAgIC8vIGludDUyJ3MuIFRoaXMgd291
bGQgaGF2ZSBoYW5kbGVkIHRoZSBhYm92ZSBleGFtcGxlIGJ1dCB3b3VsZCBmYWxsIG92ZXIgZm9y
OgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIGE6IFNvbWVJbnQ1MgotICAgICAgICAg
ICAgLy8gYjogQ2FsbCguLi4sIEBhKQotICAgICAgICAgICAgLy8gYzogQXJpdGhBZGQoQGEsIC4u
LikKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyBCdXQgdGhlIHNvbHV0aW9uIHdlIHVz
ZSBoYW5kbGVzIHRoZSBhYm92ZSBncmFjZWZ1bGx5LgotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAg
ICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTIsIEludDUyVG9WYWx1ZSwKLSAgICAgICAgICAg
ICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBVbnR5cGVk
VXNlKSk7Ci0gICAgICAgICAgICBlZGdlID0gRWRnZShyZXN1bHQsIHVzZUtpbmQpOworICAgICAg
ICBpZiAoaXNEb3VibGUodXNlS2luZCkgJiYgZWRnZS0+c2hvdWxkU3BlY3VsYXRlSW50MzJGb3JB
cml0aG1ldGljKCkpIHsKKyAgICAgICAgICAgIGluamVjdEludDMyVG9Eb3VibGVOb2RlKGVkZ2Us
IHVzZUtpbmQsIGRpcmVjdGlvbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIG9ic2VydmVVc2VLaW5kT25Ob2RlPHVzZUtpbmQ+KGVkZ2Uubm9kZSgp
KTsKLSAgICAgICAgCiAgICAgICAgIGVkZ2Uuc2V0VXNlS2luZCh1c2VLaW5kKTsKICAgICB9CiAg
ICAgCkBAIC0xNTEwLDcgKzEzNzgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5qZWN0SW50MzJU
b0RvdWJsZU5vZGUoRWRnZSYgZWRnZSwgVXNlS2luZCB1c2VLaW5kID0gTnVtYmVyVXNlLCBTcGVj
dWxhdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBCYWNrd2FyZFNwZWN1bGF0aW9uKQogICAgIHsK
ICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAg
ICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTJBc0RvdWJsZSwgSW50MzJUb0RvdWJsZSwK
KyAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NDgsIEludDMyVG9Eb3VibGUsCiAg
ICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBO
dW1iZXJVc2UpKTsKICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb3J3YXJkU3BlY3VsYXRpb24p
CiAgICAgICAgICAgICByZXN1bHQtPm1lcmdlRmxhZ3MoTm9kZUV4aXRzRm9yd2FyZCk7CkBAIC0x
NTY2LDIwICsxNDM0LDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBhdHRlbXB0VG9NYWtlSW50ZWdl
ckFkZChOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgQWRkU3BlY3VsYXRpb25Nb2RlIG1vZGUg
PSBtX2dyYXBoLmFkZFNwZWN1bGF0aW9uTW9kZShub2RlKTsKLSAgICAgICAgaWYgKG1vZGUgIT0g
RG9udFNwZWN1bGF0ZUludDMyKSB7Ci0gICAgICAgICAgICB0cnVuY2F0ZUNvbnN0YW50c0lmTmVj
ZXNzYXJ5KG5vZGUsIG1vZGUpOwotICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkp
OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobm9kZSkpIHsKLSAgICAg
ICAgICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAg
ICAgZml4RWRnZTxNYWNoaW5lSW50VXNlPihub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAobW9kZSA9PSBEb250U3BlY3VsYXRl
SW50MzIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHRydW5jYXRlQ29uc3RhbnRzSWZOZWNlc3Nhcnkobm9kZSwgbW9k
ZSk7CisgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
Zml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgCiAgICAgYm9vbCBhdHRlbXB0VG9NYWtlR2V0QXJyYXlMZW5ndGgoTm9kZSog
bm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmx1c2hGb3Jt
YXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGbHVzaEZvcm1hdC5jcHAKaW5k
ZXggOGUzZjI2YmViMWNmM2Y1OGExZWM3NDBkYWUzZTQwNDg0ZmE2MDNlNS4uNTRkOGU2Yjg5YmMw
OTRlNTI5MWE0NGQ1MWFjZTkxMWYwY2E3YTc0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGbHVzaEZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGbHVzaEZvcm1hdC5jcHAKQEAgLTQxLDkgKzQxLDYgQEAgdm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIEZsdXNoRm9ybWF0IGZvcm1hdCkKICAgICBjYXNlIEZsdXNo
ZWRJbnQzMjoKICAgICAgICAgb3V0LnByaW50KCJGbHVzaGVkSW50MzIiKTsKICAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgRmx1c2hlZEludDUyOgotICAgICAgICBvdXQucHJpbnQoIkZsdXNoZWRJ
bnQ1MiIpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGbHVzaGVkRG91YmxlOgogICAgICAg
ICBvdXQucHJpbnQoIkZsdXNoZWREb3VibGUiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGbHVzaEZvcm1hdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGbHVzaEZvcm1hdC5oCmluZGV4IGNiY2VhOGRkMGM0MTQwZDBm
NTg5NTJmMTlkMDJiMjZlM2Q0NGExMDAuLjdjNzU0MDYzYmM2MmQ1OTFhMzhhZmM5MWRmYjU5ZDUw
ZjYxZWVlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmx1c2hG
b3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZsdXNoRm9ybWF0LmgK
QEAgLTQwLDcgKzQwLDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogZW51bSBG
bHVzaEZvcm1hdCB7CiAgICAgRGVhZEZsdXNoLAogICAgIEZsdXNoZWRJbnQzMiwKLSAgICBGbHVz
aGVkSW50NTIsCiAgICAgRmx1c2hlZERvdWJsZSwKICAgICBGbHVzaGVkQ2VsbCwKICAgICBGbHVz
aGVkQm9vbGVhbiwKQEAgLTU2LDggKzU1LDYgQEAgaW5saW5lIE5vZGVGbGFncyByZXN1bHRGb3Io
Rmx1c2hGb3JtYXQgZm9ybWF0KQogICAgICAgICByZXR1cm4gTm9kZVJlc3VsdEpTOwogICAgIGNh
c2UgRmx1c2hlZEludDMyOgogICAgICAgICByZXR1cm4gTm9kZVJlc3VsdEludDMyOwotICAgIGNh
c2UgRmx1c2hlZEludDUyOgotICAgICAgICByZXR1cm4gTm9kZVJlc3VsdEludDUyOwogICAgIGNh
c2UgRmx1c2hlZERvdWJsZToKICAgICAgICAgcmV0dXJuIE5vZGVSZXN1bHROdW1iZXI7CiAgICAg
Y2FzZSBGbHVzaGVkQm9vbGVhbjoKQEAgLTc3LDggKzc0LDYgQEAgaW5saW5lIFVzZUtpbmQgdXNl
S2luZEZvcihGbHVzaEZvcm1hdCBmb3JtYXQpCiAgICAgICAgIHJldHVybiBDZWxsVXNlOwogICAg
IGNhc2UgRmx1c2hlZEludDMyOgogICAgICAgICByZXR1cm4gSW50MzJVc2U7Ci0gICAgY2FzZSBG
bHVzaGVkSW50NTI6Ci0gICAgICAgIHJldHVybiBNYWNoaW5lSW50VXNlOwogICAgIGNhc2UgRmx1
c2hlZERvdWJsZToKICAgICAgICAgcmV0dXJuIE51bWJlclVzZTsKICAgICBjYXNlIEZsdXNoZWRC
b29sZWFuOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0
aW9uSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5o
CmluZGV4IGUzMzMwZmEzYjQ1Njc2NzVmNDhjNDAwN2Y1ODUyMTU3YTM4ZTI0ZWYuLjY4YjI5OWIy
NTYxODc1NWQzMDA4ZjEwOTU0MGQ0NDFjZDgyMWI1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgKQEAgLTg2LDE5ICs4Niw2IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQsIGdwciwgRGF0YUZvcm1hdElu
dDMyKTsKICAgICB9Ci0gICAgdm9pZCBpbml0SW50NTIoTm9kZSogbm9kZSwgdWludDMyX3QgdXNl
Q291bnQsIEdQUlJlZyByZWcsIERhdGFGb3JtYXQgZm9ybWF0KQotICAgIHsKLSAgICAgICAgQVNT
RVJUKGZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIgfHwgZm9ybWF0ID09IERhdGFGb3JtYXRTdHJp
Y3RJbnQ1Mik7Ci0gICAgICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQsIHJlZywgZm9ybWF0KTsK
LSAgICB9Ci0gICAgdm9pZCBpbml0SW50NTIoTm9kZSogbm9kZSwgdWludDMyX3QgdXNlQ291bnQs
IEdQUlJlZyByZWcpCi0gICAgewotICAgICAgICBpbml0R1BSKG5vZGUsIHVzZUNvdW50LCByZWcs
IERhdGFGb3JtYXRJbnQ1Mik7Ci0gICAgfQotICAgIHZvaWQgaW5pdFN0cmljdEludDUyKE5vZGUq
IG5vZGUsIHVpbnQzMl90IHVzZUNvdW50LCBHUFJSZWcgcmVnKQotICAgIHsKLSAgICAgICAgaW5p
dEdQUihub2RlLCB1c2VDb3VudCwgcmVnLCBEYXRhRm9ybWF0U3RyaWN0SW50NTIpOwotICAgIH0K
ICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHZvaWQgaW5pdEpTVmFsdWUoTm9kZSogbm9kZSwgdWlu
dDMyX3QgdXNlQ291bnQsIEdQUlJlZyBncHIsIERhdGFGb3JtYXQgZm9ybWF0ID0gRGF0YUZvcm1h
dEpTKQogICAgIHsKQEAgLTIwMCwxMSArMTg3LDYgQEAgcHVibGljOgogICAgIC8vIEdldCB0aGUg
Zm9ybWF0IG9mIHRoZSB2YWx1ZSBhcyBpdCBpcyBzcGlsbGVkIGluIHRoZSBKU1N0YWNrIChvciAn
bm9uZScpLgogICAgIERhdGFGb3JtYXQgc3BpbGxGb3JtYXQoKSB7IHJldHVybiBtX3NwaWxsRm9y
bWF0OyB9CiAgICAgCi0gICAgYm9vbCBpc0Zvcm1hdChEYXRhRm9ybWF0IGV4cGVjdGVkRm9ybWF0
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRm9ybWF0KCkgPT0gZXhwZWN0ZWRGb3Jt
YXQgfHwgc3BpbGxGb3JtYXQoKSA9PSBleHBlY3RlZEZvcm1hdDsKLSAgICB9Ci0gICAgCiAgICAg
Ym9vbCBpc0pTRm9ybWF0KERhdGFGb3JtYXQgZXhwZWN0ZWRGb3JtYXQpCiAgICAgewogICAgICAg
ICByZXR1cm4gSlNDOjppc0pTRm9ybWF0KHJlZ2lzdGVyRm9ybWF0KCksIGV4cGVjdGVkRm9ybWF0
KSB8fCBKU0M6OmlzSlNGb3JtYXQoc3BpbGxGb3JtYXQoKSwgZXhwZWN0ZWRGb3JtYXQpOwpAQCAt
MjE1LDE2ICsxOTcsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBpc0pTRm9ybWF0KERhdGFG
b3JtYXRKU0ludDMyKTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBpc0ludDUyKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBpc0Zvcm1hdChEYXRhRm9ybWF0SW50NTIpOwotICAgIH0KLSAgICAKLSAg
ICBib29sIGlzU3RyaWN0SW50NTIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzRm9ybWF0KERh
dGFGb3JtYXRTdHJpY3RJbnQ1Mik7Ci0gICAgfQotICAgIAogICAgIGJvb2wgaXNKU0RvdWJsZSgp
CiAgICAgewogICAgICAgICByZXR1cm4gaXNKU0Zvcm1hdChEYXRhRm9ybWF0SlNEb3VibGUpOwpA
QCAtMzQyLDE5ICszMTQsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBmaWxsR1BSKHN0cmVh
bSwgZ3ByLCBEYXRhRm9ybWF0SW50MzIpOwogICAgIH0KLSAgICB2b2lkIGZpbGxJbnQ1MihWYXJp
YWJsZUV2ZW50U3RyZWFtJiBzdHJlYW0sIEdQUlJlZyBncHIsIERhdGFGb3JtYXQgZm9ybWF0KQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKGZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIgfHwgZm9ybWF0
ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1Mik7Ci0gICAgICAgIGZpbGxHUFIoc3RyZWFtLCBncHIs
IGZvcm1hdCk7Ci0gICAgfQotICAgIHZvaWQgZmlsbEludDUyKFZhcmlhYmxlRXZlbnRTdHJlYW0m
IHN0cmVhbSwgR1BSUmVnIGdwcikKLSAgICB7Ci0gICAgICAgIGZpbGxHUFIoc3RyZWFtLCBncHIs
IERhdGFGb3JtYXRJbnQ1Mik7Ci0gICAgfQotICAgIHZvaWQgZmlsbFN0cmljdEludDUyKFZhcmlh
YmxlRXZlbnRTdHJlYW0mIHN0cmVhbSwgR1BSUmVnIGdwcikKLSAgICB7Ci0gICAgICAgIGZpbGxH
UFIoc3RyZWFtLCBncHIsIERhdGFGb3JtYXRTdHJpY3RJbnQ1Mik7Ci0gICAgfQogICAgIHZvaWQg
ZmlsbEJvb2xlYW4oVmFyaWFibGVFdmVudFN0cmVhbSYgc3RyZWFtLCBHUFJSZWcgZ3ByKQogICAg
IHsKICAgICAgICAgZmlsbEdQUihzdHJlYW0sIGdwciwgRGF0YUZvcm1hdEJvb2xlYW4pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCBmZDM5MDhjMzU4N2Y0OGRkN2Zk
ZDI2NGMyOTIyNjI2NTYwZTc0ZjBjLi5mMDhiYmExOWEzNDIxNDUzNGI3NGMyY2ZiN2MyYjc3MDEx
NTBlNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApAQCAtMjM2LDE0
ICsyMzYsMTQgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBjaGFy
KiBwcmVmaXgsIE5vZGUqIG5vZGUsIER1bXBDb250ZXh0KgogICAgICAgICBpZiAob3BlcmFuZElz
QXJndW1lbnQob3BlcmFuZCkpCiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJhcmciLCBv
cGVyYW5kVG9Bcmd1bWVudChvcGVyYW5kKSwgIigiLCBWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wKCp0
aGlzLCB2YXJpYWJsZUFjY2Vzc0RhdGEpLCAiKSIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBvdXQucHJpbnQoY29tbWEsICJsb2MiLCBvcGVyYW5kVG9Mb2NhbChvcGVyYW5kKSwgIigiLCBW
YXJpYWJsZUFjY2Vzc0RhdGFEdW1wKCp0aGlzLCB2YXJpYWJsZUFjY2Vzc0RhdGEpLCAiKSIpOwor
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiciIsIG9wZXJhbmQsICIoIiwgVmFyaWFibGVB
Y2Nlc3NEYXRhRHVtcCgqdGhpcywgdmFyaWFibGVBY2Nlc3NEYXRhKSwgIikiKTsKICAgICB9CiAg
ICAgaWYgKG5vZGUtPmhhc1VubGlua2VkTG9jYWwoKSkgewogICAgICAgICBpbnQgb3BlcmFuZCA9
IG5vZGUtPnVubGlua2VkTG9jYWwoKTsKICAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KG9w
ZXJhbmQpKQogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiYXJnIiwgb3BlcmFuZFRvQXJn
dW1lbnQob3BlcmFuZCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBvdXQucHJpbnQoY29t
bWEsICJsb2MiLCBvcGVyYW5kVG9Mb2NhbChvcGVyYW5kKSk7CisgICAgICAgICAgICBvdXQucHJp
bnQoY29tbWEsICJyIiwgb3BlcmFuZCk7CiAgICAgfQogICAgIGlmIChub2RlLT5oYXNDb25zdGFu
dEJ1ZmZlcigpKSB7CiAgICAgICAgIG91dC5wcmludChjb21tYSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmgKaW5kZXggZGJjMTcyMTE0YTNiNmMwNjlhZjdjYWI4M2VhMjJmZGI4NDEx
NTBmMS4uMjQ4NTNmMTg5NDFlZTZhMTUxYjgwMGUwM2U5YjE5MjQ5ODljYjQ5NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaApAQCAtMjMwLDE5ICsyMzAsMTYgQEAgcHVibGljOgog
ICAgIAogICAgIGJvb2wgYWRkU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChOb2RlKiBhZGQpCiAg
ICAgewotICAgICAgICBpZiAoIWVuYWJsZUludDUyKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIAogICAgICAgICBOb2RlKiBsZWZ0ID0gYWRkLT5jaGlsZDEoKS5ub2RlKCk7
CiAgICAgICAgIE5vZGUqIHJpZ2h0ID0gYWRkLT5jaGlsZDIoKS5ub2RlKCk7CiAKICAgICAgICAg
Ym9vbCBzcGVjdWxhdGlvbjsKICAgICAgICAgaWYgKGFkZC0+b3AoKSA9PSBWYWx1ZUFkZCkKLSAg
ICAgICAgICAgIHNwZWN1bGF0aW9uID0gTm9kZTo6c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChs
ZWZ0LCByaWdodCk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbiA9IE5vZGU6OnNob3VsZFNwZWN1
bGF0ZU1hY2hpbmVJbnRFeHBlY3RpbmdEZWZpbmVkKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgc3BlY3VsYXRpb24gPSBOb2RlOjpzaG91bGRTcGVjdWxhdGVNYWNoaW5l
SW50KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uID0gTm9kZTo6c2hvdWxk
U3BlY3VsYXRlTWFjaGluZUludEZvckFyaXRobWV0aWMobGVmdCwgcmlnaHQpOwogCi0gICAgICAg
IHJldHVybiBzcGVjdWxhdGlvbiAmJiAhaGFzRXhpdFNpdGUoYWRkLCBJbnQ1Mk92ZXJmbG93KTsK
KyAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uICYmICFoYXNFeGl0U2l0ZShhZGQsIEludDQ4T3Zl
cmZsb3cpOwogICAgIH0KICAgICAKICAgICBib29sIG11bFNob3VsZFNwZWN1bGF0ZUludDMyKE5v
ZGUqIG11bCkKQEAgLTI2MCwxNSArMjU3LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFT
U0VSVChtdWwtPm9wKCkgPT0gQXJpdGhNdWwpOwogICAgICAgICAKLSAgICAgICAgaWYgKCFlbmFi
bGVJbnQ1MigpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKICAgICAgICAg
Tm9kZSogbGVmdCA9IG11bC0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICBOb2RlKiByaWdodCA9
IG11bC0+Y2hpbGQyKCkubm9kZSgpOwogCi0gICAgICAgIHJldHVybiBOb2RlOjpzaG91bGRTcGVj
dWxhdGVNYWNoaW5lSW50KGxlZnQsIHJpZ2h0KQotICAgICAgICAgICAgJiYgbXVsLT5jYW5TcGVj
dWxhdGVJbnQ1MigpCi0gICAgICAgICAgICAmJiAhaGFzRXhpdFNpdGUobXVsLCBJbnQ1Mk92ZXJm
bG93KTsKKyAgICAgICAgcmV0dXJuIE5vZGU6OnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnRGb3JB
cml0aG1ldGljKGxlZnQsIHJpZ2h0KQorICAgICAgICAgICAgJiYgbXVsLT5jYW5TcGVjdWxhdGVJ
bnQ0OCgpCisgICAgICAgICAgICAmJiAhaGFzRXhpdFNpdGUobXVsLCBJbnQ0OE92ZXJmbG93KTsK
ICAgICB9CiAgICAgCiAgICAgYm9vbCBuZWdhdGVTaG91bGRTcGVjdWxhdGVJbnQzMihOb2RlKiBu
ZWdhdGUpCkBAIC0yODAsMTEgKzI3NCw5IEBAIHB1YmxpYzoKICAgICBib29sIG5lZ2F0ZVNob3Vs
ZFNwZWN1bGF0ZU1hY2hpbmVJbnQoTm9kZSogbmVnYXRlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KG5lZ2F0ZS0+b3AoKSA9PSBBcml0aE5lZ2F0ZSk7Ci0gICAgICAgIGlmICghZW5hYmxlSW50NTIo
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIG5lZ2F0ZS0+Y2hp
bGQxKCktPnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQoKQotICAgICAgICAgICAgJiYgIWhhc0V4
aXRTaXRlKG5lZ2F0ZSwgSW50NTJPdmVyZmxvdykKLSAgICAgICAgICAgICYmIG5lZ2F0ZS0+Y2Fu
U3BlY3VsYXRlSW50NTIoKTsKKyAgICAgICAgcmV0dXJuIG5lZ2F0ZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZU1hY2hpbmVJbnRGb3JBcml0aG1ldGljKCkKKyAgICAgICAgICAgICYmICFoYXNF
eGl0U2l0ZShuZWdhdGUsIEludDQ4T3ZlcmZsb3cpCisgICAgICAgICAgICAmJiBuZWdhdGUtPmNh
blNwZWN1bGF0ZUludDQ4KCk7CiAgICAgfQogICAgIAogICAgIC8vIEhlbHBlciBtZXRob2RzIHRv
IGNoZWNrIG5vZGVzIGZvciBjb25zdGFudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCmluZGV4IGY5ZjZjYmU5NjNhOWQ3
NzQ5MTU4ZjkwYzE1YzNlZDc1MjU3ZTY1MjEuLmE1ZTNhZjIzNDA3NTVjNzBhZTU2MmY5MGI0ZDAy
MzExYjkzZGYzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5Q
bGFjZUFic3RyYWN0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCkBAIC0zMTMsMTAgKzMxMywxMCBAQCBib29sIEluUGxh
Y2VBYnN0cmFjdFN0YXRlOjptZXJnZVN0YXRlQXRUYWlsKEFic3RyYWN0VmFsdWUmIGRlc3RpbmF0
aW9uLCBBYnN0cmFjdAogICAgICAgICAgICAgLy8gYmVmb3JlIGFuZCBhZnRlciBzZXR0aW5nIGl0
LgogICAgICAgICAgICAgc291cmNlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPmZsdXNoRm9ybWF0KCkgPT0gRmx1
c2hlZERvdWJsZSkgewotICAgICAgICAgICAgICAgIEFTU0VSVCghKHNvdXJjZS5tX3R5cGUgJiB+
U3BlY0Z1bGxOdW1iZXIpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoISEoc291cmNlLm1fdHlw
ZSAmIH5TcGVjRG91YmxlKSA9PSAhIShzb3VyY2UubV90eXBlICYgU3BlY01hY2hpbmVJbnQpKTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoIShzb3VyY2UubV90eXBlICYgflNwZWNOdW1iZXIpKTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoISEoc291cmNlLm1fdHlwZSAmIH5TcGVjRG91YmxlKSA9
PSAhIShzb3VyY2UubV90eXBlICYgU3BlY0ludDMyKSk7CiAgICAgICAgICAgICAgICAgaWYgKCEo
c291cmNlLm1fdHlwZSAmIH5TcGVjRG91YmxlKSkgewotICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2UubWVyZ2UoU3BlY0ludDUyQXNEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2Uu
bWVyZ2UoU3BlY0ludDQ4QXNEb3VibGUpOwogICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZmls
dGVyKFNwZWNEb3VibGUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCmluZGV4IGEwZGI1YTQxMmU5MWEwNGEy
NDA1ZGNhMGI2YjhiYWYzZDVmYjIyNjAuLmEzZjFmMzc3YzNlZTYzOWQ5NjkyZmE1MmEwMjgxZTZm
OWFiYzQxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29k
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcApAQCAt
MTAzLDkgKzEwMyw2IEBAIHZvaWQgSklUQ29kZTo6cmVjb25zdHJ1Y3QoCiAgICAgICAgIGNhc2Ug
QWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEludDMyOgogICAgICAgICAgICAgdmFsdWUgPSBqc051
bWJlcihleGVjLT5yKG9wZXJhbmQpLnVuYm94ZWRJbnQzMigpKTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIEFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQ1MjoKLSAgICAgICAg
ICAgIHZhbHVlID0ganNOdW1iZXIoZXhlYy0+cihvcGVyYW5kKS51bmJveGVkSW50NTIoKSk7Ci0g
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVk
RG91YmxlOgogICAgICAgICAgICAgdmFsdWUgPSBqc0RvdWJsZU51bWJlcihleGVjLT5yKG9wZXJh
bmQpLnVuYm94ZWREb3VibGUoKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWROb2RlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5oCmluZGV4IDE1NzEzNzExMWZhNDEwMDUwZGMx
Y2U1OGMzOTdjNzk1NGEyNjU5YWEuLjFhMjRlMzkxOTFlMzdjYWRmMzg2YzY5ZjM0MDBkMjgyMmZh
ZTk1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZE5vZGUuaApA
QCAtNDgsOCArNDgsNiBAQCBpbmxpbmUgYm9vbCBiZWxvbmdzSW5NaW5pZmllZEdyYXBoKE5vZGVU
eXBlIHR5cGUpCiAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICBjYXNlIERvdWJsZUFzSW50
MzI6CiAgICAgY2FzZSBQaGFudG9tQXJndW1lbnRzOgotICAgIGNhc2UgSW50NTJUb1ZhbHVlOgot
ICAgIGNhc2UgSW50NTJUb0RvdWJsZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgQVNTRVJUKCFwZXJtaXRzT1NSQmFja3dhcmRSZXdpcmluZyh0eXBlKSAmJiAh
cGVybWl0c09TUkZvcndhcmRSZXdpcmluZyh0eXBlKSk7CkBAIC0xMDYsOCArMTA0LDYgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlRvRG91YmxlOgogICAgICAgICBjYXNlIFVJbnQzMlRv
TnVtYmVyOgogICAgICAgICBjYXNlIERvdWJsZUFzSW50MzI6Ci0gICAgICAgIGNhc2UgSW50NTJU
b0RvdWJsZToKLSAgICAgICAgY2FzZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYzhkYmIxZWU5MTlmYWVkN2IwYTEwNDE5ZmE3
Njc5MGU1YWQ4ZWIxNy4uN2U3ZDFhNTI5YTliYWM2MTRlYTEyNjdmMDQxOGUzMTVkZDdkNjU1YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEyNDEsMTIgKzEyNDEsMTIgQEAg
c3RydWN0IE5vZGUgewogICAgIAogICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlTnVtYmVyKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkp
OworICAgICAgICByZXR1cm4gaXNOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwogICAg
IH0KICAgICAKICAgICBib29sIHNob3VsZFNwZWN1bGF0ZU51bWJlckV4cGVjdGluZ0RlZmluZWQo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzRnVsbE51bWJlclNwZWN1bGF0aW9uRXhwZWN0aW5n
RGVmaW5lZChwcmVkaWN0aW9uKCkpOworICAgICAgICByZXR1cm4gaXNOdW1iZXJTcGVjdWxhdGlv
bkV4cGVjdGluZ0RlZmluZWQocHJlZGljdGlvbigpKTsKICAgICB9CiAgICAgCiAgICAgYm9vbCBz
aG91bGRTcGVjdWxhdGVCb29sZWFuKCkKQEAgLTE0MjQsOSArMTQyNCw5IEBAIHN0cnVjdCBOb2Rl
IHsKICAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVJbnQzMihhcml0aE5vZGVGbGFncygp
KTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBjYW5TcGVjdWxhdGVJbnQ1MigpCisgICAgYm9vbCBj
YW5TcGVjdWxhdGVJbnQ0OCgpCiAgICAgewotICAgICAgICByZXR1cm4gbm9kZUNhblNwZWN1bGF0
ZUludDUyKGFyaXRoTm9kZUZsYWdzKCkpOworICAgICAgICByZXR1cm4gbm9kZUNhblNwZWN1bGF0
ZUludDQ4KGFyaXRoTm9kZUZsYWdzKCkpOwogICAgIH0KICAgICAKICAgICB2b2lkIGR1bXBDaGls
ZHJlbihQcmludFN0cmVhbSYgb3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlRmxhZ3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZs
YWdzLmgKaW5kZXggOWE2NmVmYjkwZjdhYTk5MTdhNWYxNjgzZTkwNWI2MjgxOWM0M2EwMS4uNzJl
OGQ3N2Y3NWYxMTRiYzM3ODg0MzY1NDgyNmQ2ZTkzYWFhZGI0NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5oCkBAIC00MSw5ICs0MSw4IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKICNkZWZpbmUgTm9kZVJlc3VsdEpTICAgICAgICAgICAgICAgICAg
ICAgMHgwMDAxCiAjZGVmaW5lIE5vZGVSZXN1bHROdW1iZXIgICAgICAgICAgICAgICAgIDB4MDAw
MgogI2RlZmluZSBOb2RlUmVzdWx0SW50MzIgICAgICAgICAgICAgICAgICAweDAwMDMKLSNkZWZp
bmUgTm9kZVJlc3VsdEludDUyICAgICAgICAgICAgICAgICAgMHgwMDA0Ci0jZGVmaW5lIE5vZGVS
ZXN1bHRCb29sZWFuICAgICAgICAgICAgICAgIDB4MDAwNQotI2RlZmluZSBOb2RlUmVzdWx0U3Rv
cmFnZSAgICAgICAgICAgICAgICAweDAwMDYKKyNkZWZpbmUgTm9kZVJlc3VsdEJvb2xlYW4gICAg
ICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIE5vZGVSZXN1bHRTdG9yYWdlICAgICAgICAgICAg
ICAgIDB4MDAwNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgTm9k
ZU11c3RHZW5lcmF0ZSAgICAgICAgICAgICAgICAgMHgwMDA4IC8vIHNldCBvbiBub2RlcyB0aGF0
IGhhdmUgc2lkZSBlZmZlY3RzLCBhbmQgbWF5IG5vdCB0cml2aWFsbHkgYmUgcmVtb3ZlZCBieSBE
Q0UuCiAjZGVmaW5lIE5vZGVIYXNWYXJBcmdzICAgICAgICAgICAgICAgICAgIDB4MDAxMApAQCAt
MTA4LDcgKzEwNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBub2RlQ2FuU3BlY3VsYXRlSW50MzIo
Tm9kZUZsYWdzIGZsYWdzKQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgbm9kZUNhblNwZWN1bGF0ZUludDUyKE5vZGVGbGFncyBmbGFncykKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBub2RlQ2FuU3BlY3VsYXRlSW50NDgoTm9kZUZsYWdzIGZsYWdzKQogewogICAgIGlmIChu
b2RlTWF5TmVnWmVybyhmbGFncykpCiAgICAgICAgIHJldHVybiBieXRlY29kZUNhbklnbm9yZU5l
Z2F0aXZlWmVybyhmbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgK
aW5kZXggNjQxYWVmZTFkMDg3Yzc3MmVjODlhZDFjMjA3OTFlMTgxYTZkNTE5Yi4uODJkMzczZmUx
M2Y4ODEzYjYyNzIyMDVmMDNiMzMwMDhlOTljMmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaApAQCAtMTE0LDEwICsxMTQsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSW50MzJUb0RvdWJsZSwgTm9kZVJlc3VsdE51bWJlcikg
XAogICAgIC8qIFVzZWQgdG8gc3BlY3VsYXRlIHRoYXQgYSBkb3VibGUgdmFsdWUgaXMgYWN0dWFs
bHkgYW4gaW50ZWdlci4gKi9cCiAgICAgbWFjcm8oRG91YmxlQXNJbnQzMiwgTm9kZVJlc3VsdElu
dDMyIHwgTm9kZUV4aXRzRm9yd2FyZCkgXAotICAgIC8qIFVzZWQgdG8gc2VwYXJhdGUgcmVwcmVz
ZW50YXRpb24gYW5kIHJlZ2lzdGVyIGFsbG9jYXRpb24gb2YgSW50NTIncyByZXByZXNlbnRlZCAq
L1wKLSAgICAvKiBhcyB2YWx1ZXMuICovXAotICAgIG1hY3JvKEludDUyVG9WYWx1ZSwgTm9kZVJl
c3VsdEpTKSBcCi0gICAgbWFjcm8oSW50NTJUb0RvdWJsZSwgTm9kZVJlc3VsdE51bWJlcikgXAog
ICAgIFwKICAgICAvKiBOb2RlcyBmb3IgYXJpdGhtZXRpYyBvcGVyYXRpb25zLiAqL1wKICAgICBt
YWNybyhBcml0aEFkZCwgTm9kZVJlc3VsdE51bWJlciB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKQEAg
LTM2MCwxNyArMzU2LDYgQEAgaW5saW5lIHVuc2lnbmVkIGZvcndhcmRSZXdpcmluZ1NlbGVjdGlv
blNjb3JlKE5vZGVUeXBlIG9wKQogICAgICAgICAvLyBUaGlzIGxvc2VzIGluZm9ybWF0aW9uLiBP
bmx5IHVzZSBpdCBpZiB0aGVyZSBhcmUgbm8gYmV0dGVyIGFsdGVybmF0aXZlcy4KICAgICAgICAg
cmV0dXJuIDI1OwogICAgICAgICAKLSAgICBjYXNlIEludDUyVG9WYWx1ZToKLSAgICAgICAgLy8g
TG9zZXMgbm8gaW5mb3JtYXRpb24uIEl0IGp1c3QgYm94ZXMgdGhlIHZhbHVlLCB3aGljaCBpcyB3
aGF0IE9TUiB3YW50cwotICAgICAgICAvLyB0byBkbyBhbnl3YXkuCi0gICAgICAgIHJldHVybiAx
MDA7Ci0gICAgICAgIAotICAgIGNhc2UgSW50NTJUb0RvdWJsZToKLSAgICAgICAgLy8gVGhpcyBp
cyBsaWtlIEludDMyVG9Eb3VibGU7IHdlIGNhbiB1c2UgaXQgYmVjYXVzZSBpdCBnaXZlcyBhIHNl
bWFudGljYWxseQotICAgICAgICAvLyBlcXVpdmFsZW50IHZhbHVlIGJ1dCB0aGF0IHZhbHVlIG1h
eSBiZSBhbiBpbnQzMiBpbiBhIGRvdWJsZSwgc28gd2UnZAotICAgICAgICAvLyByYXRoZXIgbm90
IGlmIHdlIGNhbiBhdm9pZCBpdC4KLSAgICAgICAgcmV0dXJuIDc1OwotICAgICAgICAKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKaW5kZXggZDdjMDA3NDQ3N2JiNTNmYWJm
M2FkNWExYTI4OTcxMjFhMzJmZWE2MC4uMDYzYzI4MjNmMWUzNDkzMmE2MTZmYzNkMDUzOWMwODlk
NTYxM2NmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyLmNwcApAQCAtNDAsNiArNDAsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCitzdGF0aWMgQ1N0cmluZyBzaG9ydE9wZXJhbmRzRHVtcChjb25zdCBPcGVyYW5k
czxWYWx1ZVJlY292ZXJ5PiYgb3BlcmFuZHMpCit7CisgICAgRHVtcENvbnRleHQgY29udGV4dDsK
KyAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CisgICAgb3V0LnByaW50KGluQ29udGV4dChvcGVy
YW5kcywgJmNvbnRleHQpKTsKKyAgICByZXR1cm4gb3V0LnRvQ1N0cmluZygpOworfQorCiBleHRl
cm4gIkMiIHsKIAogdm9pZCBjb21waWxlT1NSRXhpdChFeGVjU3RhdGUqIGV4ZWMpCkBAIC0xMDks
NyArMTE3LDcgQEAgdm9pZCBjb21waWxlT1NSRXhpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICAoIkRGRyBPU1IgZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9
ICVzIiwKICAgICAgICAgICAgICAgICBleGl0SW5kZXgsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9y
aWdpbikuZGF0YSgpLAogICAgICAgICAgICAgICAgIGV4aXRLaW5kVG9TdHJpbmcoZXhpdC5tX2tp
bmQpLCB0b0NTdHJpbmcoKmNvZGVCbG9jaykuZGF0YSgpLAotICAgICAgICAgICAgICAgIHRvQ1N0
cmluZyhpZ25vcmluZ0NvbnRleHQ8RHVtcENvbnRleHQ+KG9wZXJhbmRzKSkuZGF0YSgpKSk7Cisg
ICAgICAgICAgICAgICAgc2hvcnRPcGVyYW5kc0R1bXAob3BlcmFuZHMpLmRhdGEoKSkpOwogICAg
IH0KICAgICAKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXRDb21waWxlcjY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyNjQuY3BwCmluZGV4IDUyM2FjMzg5M2IxYmJmOTdhYzQzZTcxYjRkZjRlNTJm
YTE2YTVlM2MuLjNlMTQ4Yzk3Mzk0Zjg1ZjhhMDg0ODVlNzMxYTZhYTY0ZjI5NjU4YjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
CkBAIC0xOTUsOCArMTk1LDYgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNv
bnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3YKICAgICAgICAgY2Fz
ZSBJbkdQUjoKICAgICAgICAgY2FzZSBVbmJveGVkSW50MzJJbkdQUjoKICAgICAgICAgY2FzZSBV
SW50MzJJbkdQUjoKLSAgICAgICAgY2FzZSBVbmJveGVkSW50NTJJbkdQUjoKLSAgICAgICAgY2Fz
ZSBVbmJveGVkU3RyaWN0SW50NTJJbkdQUjoKICAgICAgICAgICAgIG1faml0LnN0b3JlNjQocmVj
b3ZlcnkuZ3ByKCksIHNjcmF0Y2ggKyBpbmRleCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIApAQCAtMjM3LDE1ICsyMzUsMTIgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBp
bGVFeGl0KGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3YKICAg
ICAgICAgY2FzZSBEaXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgIGNhc2UgSW50MzJEaXNwbGFj
ZWRJbkpTU3RhY2s6CiAgICAgICAgIGNhc2UgRG91YmxlRGlzcGxhY2VkSW5KU1N0YWNrOgotICAg
ICAgICBjYXNlIEludDUyRGlzcGxhY2VkSW5KU1N0YWNrOgotICAgICAgICBjYXNlIFN0cmljdElu
dDUyRGlzcGxhY2VkSW5KU1N0YWNrOgogICAgICAgICAgICAgbV9qaXQubG9hZDY0KEFzc2VtYmx5
SGVscGVyczo6YWRkcmVzc0ZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksIEdQUkluZm86
OnJlZ1QwKTsKICAgICAgICAgICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHNjcmF0
Y2ggKyBpbmRleCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBj
YXNlIEFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQzMjoKICAgICAgICAgY2FzZSBBbHJlYWR5
SW5KU1N0YWNrQXNVbmJveGVkRG91YmxlOgotICAgICAgICBjYXNlIEFscmVhZHlJbkpTU3RhY2tB
c1VuYm94ZWRJbnQ1MjoKICAgICAgICAgICAgIG1faml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6
OmFkZHJlc3NGb3Iob3BlcmFuZCksIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgICAgIG1faml0
LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHNjcmF0Y2ggKyBpbmRleCk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTI3OSwzMCArMjc0LDYgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVF
eGl0KGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3YKICAgICAg
ICAgICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRk
cmVzc0ZvcihvcGVyYW5kKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIEFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQ1MjoKLSAgICAgICAgY2FzZSBV
bmJveGVkSW50NTJJbkdQUjoKLSAgICAgICAgY2FzZSBJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazoK
LSAgICAgICAgICAgIG1faml0LmxvYWQ2NChzY3JhdGNoICsgaW5kZXgsIEdQUkluZm86OnJlZ1Qw
KTsKLSAgICAgICAgICAgIG1faml0LnJzaGlmdDY0KAotICAgICAgICAgICAgICAgIEFzc2VtYmx5
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBHUFJJbmZv
OjpyZWdUMCk7Ci0gICAgICAgICAgICBtX2ppdC5ib3hJbnQ1MihHUFJJbmZvOjpyZWdUMCwgR1BS
SW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKLSAgICAgICAg
ICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVz
c0ZvcihvcGVyYW5kKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAg
ICBjYXNlIFVuYm94ZWRTdHJpY3RJbnQ1MkluR1BSOgotICAgICAgICBjYXNlIFN0cmljdEludDUy
RGlzcGxhY2VkSW5KU1N0YWNrOgotICAgICAgICAgICAgbV9qaXQubG9hZDY0KHNjcmF0Y2ggKyBp
bmRleCwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgbV9qaXQuYm94SW50NTIoR1BSSW5m
bzo6cmVnVDAsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgRlBSSW5mbzo6ZnBSZWdU
MCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhl
bHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSBVSW50MzJJbkdQUjoKLSAgICAgICAgICAgIG1faml0LmxvYWQ2
NChzY3JhdGNoICsgaW5kZXgsIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAgIG1faml0Lnpl
cm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAg
ICAgICBtX2ppdC5ib3hJbnQ1MihHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDAsIEdQUklu
Zm86OnJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlNjQo
R1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihvcGVyYW5kKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFscmVhZHlJbkpT
U3RhY2tBc1VuYm94ZWREb3VibGU6CiAgICAgICAgIGNhc2UgSW5GUFI6CiAgICAgICAgIGNhc2Ug
RG91YmxlRGlzcGxhY2VkSW5KU1N0YWNrOgpAQCAtMzEyLDYgKzI4MywyNSBAQCB2b2lkIE9TUkV4
aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QgT3BlcmFu
ZHM8VmFsdWVSZWNvdgogICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwg
QXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKG9wZXJhbmQpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVUludDMySW5HUFI6IHsKKyAgICAgICAgICAg
IG1faml0LmxvYWQ2NChzY3JhdGNoICsgaW5kZXgsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAg
ICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdU
MCk7CisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgcG9zaXRpdmUgPSBtX2ppdC5i
cmFuY2gzMigKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkdyZWF0ZXJUaGFuT3JF
cXVhbCwKKyAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCkpOworICAgICAgICAgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUo
R1BSSW5mbzo6cmVnVDAsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgbV9qaXQuYWRk
RG91YmxlKAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KCZBc3NlbWJseUhlbHBlcnM6OnR3b1RvVGhlMzIpLAorICAgICAgICAgICAgICAgIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgbV9qaXQuYm94RG91YmxlKEZQUkluZm86OmZwUmVnVDAs
IEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBkb25l
ID0gbV9qaXQuanVtcCgpOworICAgICAgICAgICAgcG9zaXRpdmUubGluaygmbV9qaXQpOworICAg
ICAgICAgICAgbV9qaXQub3I2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUklu
Zm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworICAgICAgICAgICAg
bV9qaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9y
KG9wZXJhbmQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBDb25zdGFudDoKICAgICAgICAgICAgIG1faml0LnN0b3JlNjQoCiAgICAg
ICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2Rl
KHJlY292ZXJ5LmNvbnN0YW50KCkpKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNjEyMDEw
YTAzMDU5NWVkYzU5ZWFkZmNlZmRlY2VhNjBjOGFhMDUzYi4uZWM1ODQ1NmNkOTA4NzRiOGM5NWJh
NjhmMmVkOTU3Nzk5MGI4ODBhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTExNiw3ICsx
MTYsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWREb3Vi
bGVUeXBlRm9yUHJlZGljdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICB7Ci0gICAgICAg
IGlmICghaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24odmFsdWUpKQorICAgICAgICBpZiAoIWlzTnVt
YmVyU3BlY3VsYXRpb24odmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIFNwZWNEb3VibGU7CiAg
ICAgICAgIGlmICh2YWx1ZSAmIFNwZWNEb3VibGVOYU4pCiAgICAgICAgICAgICByZXR1cm4gU3Bl
Y0RvdWJsZTsKQEAgLTE0MiwxNyArMTQyLDE1IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgSlND
b25zdGFudDoKICAgICAgICAgY2FzZSBXZWFrSlNDb25zdGFudDogewogICAgICAgICAgICAgU3Bl
Y3VsYXRlZFR5cGUgdHlwZSA9IHNwZWN1bGF0aW9uRnJvbVZhbHVlKG1fZ3JhcGgudmFsdWVPZkpT
Q29uc3RhbnQobm9kZSkpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlY0ludDUyQXNEb3Vi
bGUpCi0gICAgICAgICAgICAgICAgdHlwZSA9IFNwZWNJbnQ1MjsKKyAgICAgICAgICAgIGlmICh0
eXBlID09IFNwZWNJbnQ0OEFzRG91YmxlKQorICAgICAgICAgICAgICAgIHR5cGUgPSBTcGVjSW50
NDg7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24odHlwZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgR2V0TG9j
YWw6IHsKLSAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBub2RlLT52
YXJpYWJsZUFjY2Vzc0RhdGEoKTsKLSAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rp
b24gPSB2YXJpYWJsZS0+cHJlZGljdGlvbigpOwotICAgICAgICAgICAgaWYgKHZhcmlhYmxlLT5z
aG91bGROZXZlclVuYm94KCkgJiYgKHByZWRpY3Rpb24gJiBTcGVjSW50NTIpKQotICAgICAgICAg
ICAgICAgIHByZWRpY3Rpb24gPSAocHJlZGljdGlvbiB8IFNwZWNJbnQ1MkFzRG91YmxlKSAmIH5T
cGVjSW50NTI7CisgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNz
RGF0YSA9IG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpOworICAgICAgICAgICAgU3BlY3VsYXRl
ZFR5cGUgcHJlZGljdGlvbiA9IHZhcmlhYmxlQWNjZXNzRGF0YS0+cHJlZGljdGlvbigpOwogICAg
ICAgICAgICAgaWYgKHByZWRpY3Rpb24pCiAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24ocHJlZGljdGlvbik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTIwNSw3ICsy
MDMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGVDYW5TcGVjdWxhdGVJbnQzMihu
b2RlLT5hcml0aE5vZGVGbGFncygpKSkKICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
UHJlZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNCeXRlY29kZU51bWJlcik7CisgICAgICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY051bWJlcik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0yMTQsMTQgKzIxMiwxNCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgcmlnaHQgPSBub2RlLT5jaGlsZDIoKS0+cHJlZGlj
dGlvbigpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCkgewot
ICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmlu
ZWQobGVmdCkgJiYgaXNGdWxsTnVtYmVyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0
KSkgeworICAgICAgICAgICAgICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uRXhwZWN0aW5nRGVm
aW5lZChsZWZ0KSAmJiBpc051bWJlclNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChyaWdodCkp
IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYWRkU3BlY3VsYXRpb25Nb2RlKG5v
ZGUpICE9IERvbnRTcGVjdWxhdGVJbnQzMikKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5n
ZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMik7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKG1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlKSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mik7
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
SW50NDgpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRp
Y3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghKGxlZnQg
JiBTcGVjRnVsbE51bWJlcikgfHwgIShyaWdodCAmIFNwZWNGdWxsTnVtYmVyKSkgeworICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoIShsZWZ0ICYgU3BlY051bWJlcikgfHwgIShyaWdodCAmIFNw
ZWNOdW1iZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIGxlZnQgb3IgcmlnaHQgaXMgZGVm
aW5pdGVseSBzb21ldGhpbmcgb3RoZXIgdGhhbiBhIG51bWJlci4KICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlCkBAIC0yMzgsNyArMjM2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBp
ZiAobV9ncmFwaC5hZGRTcGVjdWxhdGlvbk1vZGUobm9kZSkgIT0gRG9udFNwZWN1bGF0ZUludDMy
KQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50
MzIpOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRl
TWFjaGluZUludChub2RlKSkKLSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0ludDUyKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY0ludDQ4KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBl
Rm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKICAgICAgICAgICAgIH0KQEAgLTI1Myw3ICsy
NTEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLmFkZFNwZWN1bGF0
aW9uTW9kZShub2RlKSAhPSBEb250U3BlY3VsYXRlSW50MzIpCiAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMik7CiAgICAgICAgICAgICAgICAg
ZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUpKQotICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTIpOwor
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NDgp
OwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCBy
aWdodCkpOwogICAgICAgICAgICAgfQpAQCAtMjY1LDcgKzI2Myw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgaWYgKG1fZ3JhcGgubmVnYXRlU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSkp
CiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQz
Mik7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5uZWdhdGVTaG91bGRTcGVjdWxh
dGVNYWNoaW5lSW50KG5vZGUpKQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
UHJlZGljdGlvbihTcGVjSW50NTIpOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1l
cmdlUHJlZGljdGlvbihTcGVjSW50NDgpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5
cGVGb3JQcmVkaWN0aW9uKG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkpKTsKICAgICAgICAg
ICAgIH0KQEAgLTI5NCw3ICsyOTIsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGlmICht
X2dyYXBoLm11bFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUpKQogICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgICAg
IGVsc2UgaWYgKG1fZ3JhcGgubXVsU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlKSkKLSAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyKTsK
KyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDQ4
KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwg
cmlnaHQpKTsKICAgICAgICAgICAgIH0KQEAgLTM3MCwyMCArMzY4LDEwIEBAIHByaXZhdGU6CiAg
ICAgICAgIH0KIAogICAgICAgICBjYXNlIEdldEJ5VmFsOiB7Ci0gICAgICAgICAgICBpZiAoIW5v
ZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBpZiAoIW5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpCi0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hv
dWxkU3BlY3VsYXRlRmxvYXQzMkFycmF5KCkKICAgICAgICAgICAgICAgICB8fCBub2RlLT5jaGls
ZDEoKS0+c2hvdWxkU3BlY3VsYXRlRmxvYXQ2NEFycmF5KCkpCiAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0RvdWJsZSk7Ci0gICAgICAgICAgICBlbHNlIGlm
IChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlVWludDMyQXJyYXkoKSkgewotICAgICAg
ICAgICAgICAgIGlmIChpc0ludDMyU3BlY3VsYXRpb24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24o
KSkpCi0gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJ
bnQzMik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTIpOwotICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
bm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtNTc4LDggKzU2Niw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2hlY2tXYXRjaGRv
Z1RpbWVyOgogICAgICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICBjYXNlIExvb3BIaW50
OgotICAgICAgICBjYXNlIEludDUyVG9WYWx1ZToKLSAgICAgICAgY2FzZSBJbnQ1MlRvRG91Ymxl
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgLy8gVGhpcyBnZXRz
IGlnbm9yZWQgYmVjYXVzZSBpdCBhbHJlYWR5IGhhcyBhIHByZWRpY3Rpb24uCkBAIC02NTQsOSAr
NjQwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIERvdWJsZUJh
bGxvdCBiYWxsb3Q7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoaXNGdWxsTnVt
YmVyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKGxlZnQpICYmIGlzRnVsbE51bWJlclNwZWN1
bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChyaWdodCkKLSAgICAgICAgICAgICAgICAmJiAhbV9ncmFw
aC5hZGRTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlKQotICAgICAgICAgICAgICAgICYmICFtX2dy
YXBoLmFkZFNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobm9kZSkpCisgICAgICAgICAgICBpZiAo
aXNOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkgJiYgaXNOdW1iZXJTcGVj
dWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocmlnaHQpCisgICAgICAgICAgICAgICAgJiYgIW1fZ3Jh
cGguYWRkU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSkpCiAgICAgICAgICAgICAgICAgYmFsbG90
ID0gVm90ZURvdWJsZTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBiYWxsb3Qg
PSBWb3RlVmFsdWU7CkBAIC02NzIsOSArNjU3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgIERvdWJsZUJhbGxvdCBiYWxsb3Q7CiAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAoaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24obGVmdCkgJiYgaXNGdWxsTnVt
YmVyU3BlY3VsYXRpb24ocmlnaHQpCi0gICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGgubXVsU2hv
dWxkU3BlY3VsYXRlSW50MzIobm9kZSkKLSAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5tdWxT
aG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUpKQorICAgICAgICAgICAgaWYgKGlzTnVtYmVy
U3BlY3VsYXRpb24obGVmdCkgJiYgaXNOdW1iZXJTcGVjdWxhdGlvbihyaWdodCkKKyAgICAgICAg
ICAgICAgICAmJiAhbV9ncmFwaC5tdWxTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlKSkKICAgICAg
ICAgICAgICAgICBiYWxsb3QgPSBWb3RlRG91YmxlOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIGJhbGxvdCA9IFZvdGVWYWx1ZTsKQEAgLTY5Myw3ICs2NzcsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgRG91YmxlQmFsbG90IGJhbGxvdDsKICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbihs
ZWZ0KSAmJiBpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbihyaWdodCkKKyAgICAgICAgICAgIGlmIChp
c051bWJlclNwZWN1bGF0aW9uKGxlZnQpICYmIGlzTnVtYmVyU3BlY3VsYXRpb24ocmlnaHQpCiAg
ICAgICAgICAgICAgICAgJiYgIShOb2RlOjpzaG91bGRTcGVjdWxhdGVJbnQzMkZvckFyaXRobWV0
aWMobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpICYmIG5vZGUt
PmNhblNwZWN1bGF0ZUludDMyKCkpKQogICAgICAgICAgICAgICAgIGJhbGxvdCA9IFZvdGVEb3Vi
bGU7CiAgICAgICAgICAgICBlbHNlCkBAIC03MjIsOSArNzA2LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBub2RlLT5jaGlsZDEoKS0+cHJlZGlj
dGlvbigpOwogICAgICAgICAgICAgaWYgKGlzRG91YmxlU3BlY3VsYXRpb24ocHJlZGljdGlvbikp
CiAgICAgICAgICAgICAgICAgbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnZvdGUoVm90ZURv
dWJsZSk7Ci0gICAgICAgICAgICBlbHNlIGlmICgKLSAgICAgICAgICAgICAgICAhaXNGdWxsTnVt
YmVyU3BlY3VsYXRpb24ocHJlZGljdGlvbikKLSAgICAgICAgICAgICAgICB8fCBpc0ludDMyU3Bl
Y3VsYXRpb24ocHJlZGljdGlvbikgfHwgaXNNYWNoaW5lSW50U3BlY3VsYXRpb24ocHJlZGljdGlv
bikpCisgICAgICAgICAgICBlbHNlIGlmICghaXNOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9u
KSB8fCBpc0ludDMyU3BlY3VsYXRpb24ocHJlZGljdGlvbikpCiAgICAgICAgICAgICAgICAgbm9k
ZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnZvdGUoVm90ZVZhbHVlKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oCmluZGV4IDk3NTUyYzAzNDUyZjA0MjA5NTEwM2YzZjI0ZjY0NGY0MjAzNDcyMzUuLjI0
OTFjMzU0MjJkYWZlZjdhMDU1NmI4Yjk3ZDE2NGMxM2FiZTg5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBO
b3RDZWxsVXNlOgogICAgICAgICBjYXNlIE90aGVyVXNlOgotICAgICAgICBjYXNlIE1hY2hpbmVJ
bnRVc2U6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBL
bm93bkludDMyVXNlOgpAQCAtNzAsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBLbm93bk51bWJlclVzZToKLSAgICAgICAg
ICAgIGlmIChtX3N0YXRlLmZvck5vZGUoZWRnZSkubV90eXBlICYgflNwZWNGdWxsTnVtYmVyKQor
ICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShlZGdlKS5tX3R5cGUgJiB+U3BlY051bWJl
cikKICAgICAgICAgICAgICAgICBtX3Jlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgCkBAIC0yNDAsOCArMjM5LDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFi
c3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNh
c2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAgICBjYXNlIENoZWNrVGllclVwQW5kT1NSRW50ZXI6
CiAgICAgY2FzZSBMb29wSGludDoKLSAgICBjYXNlIEludDUyVG9Eb3VibGU6Ci0gICAgY2FzZSBJ
bnQ1MlRvVmFsdWU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKICAgICBjYXNlIEdl
dEJ5VmFsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTaWxlbnRS
ZWdpc3RlclNhdmVQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJl
Z2lzdGVyU2F2ZVBsYW4uaAppbmRleCA4YWM4MDBkMTMzMjhiODlmYzY2ZDkyMmVhY2ZjMjFhYWZm
ZDQ4NTVjLi42YjlkZjE5ZDdlM2MyNTJiYjFhNDg5MTk3OGQzNmFiZmU4NmYxMWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NpbGVudFJlZ2lzdGVyU2F2ZVBs
YW4uaApAQCAtNDgsOCArNDgsNiBAQCBlbnVtIFNpbGVudFNwaWxsQWN0aW9uIHsKIGVudW0gU2ls
ZW50RmlsbEFjdGlvbiB7CiAgICAgRG9Ob3RoaW5nRm9yRmlsbCwKICAgICBTZXRJbnQzMkNvbnN0
YW50LAotICAgIFNldEludDUyQ29uc3RhbnQsCi0gICAgU2V0U3RyaWN0SW50NTJDb25zdGFudCwK
ICAgICBTZXRCb29sZWFuQ29uc3RhbnQsCiAgICAgU2V0Q2VsbENvbnN0YW50LAogICAgIFNldFRy
dXN0ZWRKU0NvbnN0YW50LApAQCAtNjMsMTIgKzYxLDggQEAgZW51bSBTaWxlbnRGaWxsQWN0aW9u
IHsKICAgICBMb2FkMzJUYWcsCiAgICAgTG9hZDMyUGF5bG9hZCwKICAgICBMb2FkMzJQYXlsb2Fk
Qm94SW50LAotICAgIExvYWQzMlBheWxvYWRDb252ZXJ0VG9JbnQ1MiwKLSAgICBMb2FkMzJQYXls
b2FkU2lnbkV4dGVuZCwKICAgICBMb2FkUHRyLAogICAgIExvYWQ2NCwKLSAgICBMb2FkNjRTaGlm
dEludDUyUmlnaHQsCi0gICAgTG9hZDY0U2hpZnRJbnQ1MkxlZnQsCiAgICAgTG9hZERvdWJsZSwK
ICAgICBMb2FkRG91YmxlQm94RG91YmxlLAogICAgIExvYWRKU1VuYm94RG91YmxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGZlNTQx
ZTJkNWVkMTIwZjQ1ZTI0MTEzYTMxNmIwMTYxYzU5MWI5MWEuLmM1ZjRlMDE2OTE1MjA4MDY2MzQ5
MTc0YTdiZTFlMTRlMDQ1ZjAzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0zMzUsOCArMzM1LDYgQEAgU2lsZW50UmVnaXN0ZXJT
YXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lz
dGVyIHNwaWwKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxvYWQ7CiAgICAg
ICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsIHx8IHJlZ2lzdGVy
Rm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQogICAgICAgICAgICAgc3BpbGxBY3Rpb24gPSBT
dG9yZVB0cjsKLSAgICAgICAgZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdElu
dDUyIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1MikKLSAgICAgICAg
ICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBB
U1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwogICAgICAgICAgICAgc3BpbGxB
Y3Rpb24gPSBTdG9yZTY0OwpAQCAtMzg4LDQyICszODYsNiBAQCBTaWxlbnRSZWdpc3RlclNhdmVQ
bGFuIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUihWaXJ0dWFsUmVnaXN0ZXIg
c3BpbAogICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2Up
IHsKICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKICAgICAgICAgZmlsbEFj
dGlvbiA9IExvYWRQdHI7Ci0gICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9y
bWF0SW50NTIpIHsKLSAgICAgICAgaWYgKG5vZGUtPmhhc0NvbnN0YW50KCkpCi0gICAgICAgICAg
ICBmaWxsQWN0aW9uID0gU2V0SW50NTJDb25zdGFudDsKLSAgICAgICAgZWxzZSBpZiAoaXNKU0lu
dDMyKGluZm8uc3BpbGxGb3JtYXQoKSkgfHwgaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3Jt
YXRKUykKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkQ29udmVydFRvSW50
NTI7Ci0gICAgICAgIGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SW50
NTIpCi0gICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDY0OwotICAgICAgICBlbHNlIGlmIChp
bmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKQotICAgICAgICAgICAg
ZmlsbEFjdGlvbiA9IExvYWQ2NFNoaWZ0SW50NTJMZWZ0OwotICAgICAgICBlbHNlIGlmIChpbmZv
LnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdE5vbmUpCi0gICAgICAgICAgICBmaWxsQWN0aW9u
ID0gTG9hZDY0OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIFNob3VsZCBuZXZlciBo
YXBwZW4uIEFueXRoaW5nIHRoYXQgcXVhbGlmaWVzIGFzIGFuIGludDMyIHdpbGwgbmV2ZXIKLSAg
ICAgICAgICAgIC8vIGJlIHR1cm5lZCBpbnRvIGEgY2VsbCAoaW1tZWRpYXRlIHNwZWMgZmFpbCkg
b3IgYSBkb3VibGUgKHRvLWRvdWJsZQotICAgICAgICAgICAgLy8gY29udmVyc2lvbnMgaW52b2x2
ZSBhIHNlcGFyYXRlIG5vZGUpLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkNjQ7IC8vIE1ha2UgR0NDIGhhcHB5
LgotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
U3RyaWN0SW50NTIpIHsKLSAgICAgICAgaWYgKG5vZGUtPmhhc0NvbnN0YW50KCkpCi0gICAgICAg
ICAgICBmaWxsQWN0aW9uID0gU2V0U3RyaWN0SW50NTJDb25zdGFudDsKLSAgICAgICAgZWxzZSBp
ZiAoaXNKU0ludDMyKGluZm8uc3BpbGxGb3JtYXQoKSkgfHwgaW5mby5zcGlsbEZvcm1hdCgpID09
IERhdGFGb3JtYXRKUykKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkU2ln
bkV4dGVuZDsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3Jt
YXRJbnQ1MikKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkNjRTaGlmdEludDUyUmlnaHQ7
Ci0gICAgICAgIGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0U3RyaWN0
SW50NTIpCi0gICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDY0OwotICAgICAgICBlbHNlIGlm
IChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdE5vbmUpCi0gICAgICAgICAgICBmaWxs
QWN0aW9uID0gTG9hZDY0OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIFNob3VsZCBu
ZXZlciBoYXBwZW4uIEFueXRoaW5nIHRoYXQgcXVhbGlmaWVzIGFzIGFuIGludDMyIHdpbGwgbmV2
ZXIKLSAgICAgICAgICAgIC8vIGJlIHR1cm5lZCBpbnRvIGEgY2VsbCAoaW1tZWRpYXRlIHNwZWMg
ZmFpbCkgb3IgYSBkb3VibGUgKHRvLWRvdWJsZQotICAgICAgICAgICAgLy8gY29udmVyc2lvbnMg
aW52b2x2ZSBhIHNlcGFyYXRlIG5vZGUpLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkNjQ7IC8vIE1ha2UgR0ND
IGhhcHB5LgotICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKHJlZ2lzdGVy
Rm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtNDMxLDYgKzM5
Myw3IEBAIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQ
bGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsCiAgICAgICAgIGlmIChub2RlLT5oYXNDb25z
dGFudCgpKSB7CiAgICAgICAgICAgICBpZiAodmFsdWVPZkpTQ29uc3RhbnQobm9kZSkuaXNDZWxs
KCkpCiAgICAgICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldFRydXN0ZWRKU0NvbnN0YW50Owor
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBTZXRKU0NvbnN0
YW50OwogICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0
SW50MzIpIHsKICAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
SlNJbnQzMik7CkBAIC01NDksMTQgKzUxMiw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNpbGVu
dEZpbGwoY29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYgcGxhbiwgR1BSUmVnIGNhblRyCiAg
ICAgY2FzZSBTZXRJbnQzMkNvbnN0YW50OgogICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZhbHVl
T2ZJbnQzMkNvbnN0YW50KHBsYW4ubm9kZSgpKSksIHBsYW4uZ3ByKCkpOwogICAgICAgICBicmVh
azsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGNhc2UgU2V0SW50NTJDb25zdGFudDoKLSAgICAg
ICAgbV9qaXQubW92ZShJbW02NCh2YWx1ZU9mSlNDb25zdGFudChwbGFuLm5vZGUoKSkuYXNNYWNo
aW5lSW50KCkgPDwgSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudCksIHBsYW4uZ3ByKCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFNldFN0cmljdEludDUyQ29uc3RhbnQ6Ci0gICAgICAgIG1f
aml0Lm1vdmUoSW1tNjQodmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlKCkpLmFzTWFjaGluZUlu
dCgpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmIC8vIFVTRShKU1ZBTFVF
NjQpCiAgICAgY2FzZSBTZXRCb29sZWFuQ29uc3RhbnQ6CiAgICAgICAgIG1faml0Lm1vdmUoVHJ1
c3RlZEltbTMyKHZhbHVlT2ZCb29sZWFuQ29uc3RhbnQocGxhbi5ub2RlKCkpKSwgcGxhbi5ncHIo
KSk7CiAgICAgICAgIGJyZWFrOwpAQCAtNTc4LDE1ICs1MzMsNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpzaWxlbnRGaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJl
ZyBjYW5UcgogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IocGxh
bi5ub2RlKCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7CiAgICAgICAgIG1faml0
Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBwbGFuLmdwcigpKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBMb2FkMzJQYXlsb2FkQ29udmVydFRvSW50NTI6Ci0gICAgICAg
IG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihwbGFuLm5vZGUoKS0+dmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9Q
dHIocGxhbi5ncHIoKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgIG1faml0LmxzaGlmdDY0KFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgcGxhbi5ncHIoKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgTG9hZDMyUGF5bG9hZFNpZ25FeHRlbmQ6Ci0gICAgICAgIG1faml0
LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihwbGFuLm5vZGUoKS0+dmlydHVhbFJlZ2lz
dGVyKCkpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIocGxh
bi5ncHIoKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG9hZERvdWJs
ZUJveERvdWJsZToKICAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KHBsYW4ubm9kZSgpLT52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwogICAgICAgICBt
X2ppdC5zdWI2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHBsYW4uZ3ByKCkpOwpA
QCAtNjI4LDE0ICs1NzQsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsKGNvbnN0
IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcgogICAgIGNhc2UgTG9h
ZDY0OgogICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IocGxhbi5u
b2RlKCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgTG9hZDY0U2hpZnRJbnQ1MlJpZ2h0OgotICAgICAgICBtX2ppdC5sb2FkNjQoSklU
Q29tcGlsZXI6OmFkZHJlc3NGb3IocGxhbi5ub2RlKCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxh
bi5ncHIoKSk7Ci0gICAgICAgIG1faml0LnJzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpp
bnQ1MlNoaWZ0QW1vdW50KSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
TG9hZDY0U2hpZnRJbnQ1MkxlZnQ6Ci0gICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0ZvcihwbGFuLm5vZGUoKS0+dmlydHVhbFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsK
LSAgICAgICAgbV9qaXQubHNoaWZ0NjQoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OmludDUyU2hpZnRB
bW91bnQpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIExv
YWREb3VibGU6CiAgICAgICAgIG1faml0LmxvYWREb3VibGUoSklUQ29tcGlsZXI6OmFkZHJlc3NG
b3IocGxhbi5ub2RlKCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5mcHIoKSk7CkBAIC0xNDc4
LDEwICsxNDE2LDYgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlQnJhbmNo
KE5vZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmEKIAogICAgICAgICBpZiAobm9k
ZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNlKSkKICAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9s
ZUludDMyQnJhbmNoKG5vZGUsIGJyYW5jaE5vZGUsIGNvbmRpdGlvbik7Ci0jaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKE1hY2hpbmVJbnRV
c2UpKQotICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlSW50NTJCcmFuY2gobm9kZSwgYnJhbmNo
Tm9kZSwgY29uZGl0aW9uKTsKLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgICAgICBlbHNl
IGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoTnVtYmVyVXNlKSkKICAgICAgICAgICAgIGNvbXBp
bGVQZWVwSG9sZURvdWJsZUJyYW5jaChub2RlLCBicmFuY2hOb2RlLCBkb3VibGVDb25kaXRpb24p
OwogICAgICAgICBlbHNlIGlmIChub2RlLT5vcCgpID09IENvbXBhcmVFcSkgewpAQCAtMTU3Myw5
ICsxNTA3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlubGluZVN0YXJ0KE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBjYXNlIEZsdXNoZWRJbnQzMjoKICAgICAgICAgICAgICAgICB2
YWx1ZVNvdXJjZSA9IFZhbHVlU291cmNlKEludDMySW5KU1N0YWNrKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgRmx1c2hlZEludDUyOgotICAgICAgICAgICAgICAg
IHZhbHVlU291cmNlID0gVmFsdWVTb3VyY2UoSW50NTJJbkpTU3RhY2spOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBGbHVzaGVkQ2VsbDoKICAgICAgICAgICAgICAg
ICB2YWx1ZVNvdXJjZSA9IFZhbHVlU291cmNlKENlbGxJbkpTU3RhY2spOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMTk0Miw3ICsxODczLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXMK
ICAgICBGUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKICAgICAKICAgICBERkdfVFlQRV9D
SEVDSygKLSAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgY2hpbGQzLCBTcGVjRnVsbFJlYWxOdW1iZXIs
CisgICAgICAgIEpTVmFsdWVSZWdzKCksIGNoaWxkMywgU3BlY1JlYWxOdW1iZXIsCiAgICAgICAg
IG1faml0LmJyYW5jaERvdWJsZSgKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpEb3VibGVO
b3RFcXVhbE9yVW5vcmRlcmVkLCB2YWx1ZVJlZywgdmFsdWVSZWcpKTsKICAgICAKQEAgLTIyMTgs
MTggKzIxNDksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyKE5v
ZGUqIG5vZGUpCiAgICAgICAgIGludDMyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSwgb3AxLmZv
cm1hdCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAgICAgCi0jaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICBjYXNlIE1hY2hpbmVJbnRVc2U6IHsKLSAgICAgICAgU3BlY3VsYXRlU3RyaWN0
SW50NTJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBv
cmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9wMSk7Ci0gICAgICAgIEdQUlJlZyBvcDFHUFIgPSBv
cDEuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAg
ICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKG9wMUdQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAg
aW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlLCBEYXRhRm9ybWF0SW50MzIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAgICAgCiAgICAgY2FzZSBO
dW1iZXJVc2U6CiAgICAgY2FzZSBOb3RDZWxsVXNlOiB7CkBAIC0yMjY4LDcgKzIxODcsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyKE5vZGUqIG5vZGUpCiAKICAg
ICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gTnVtYmVyVXNlKSB7CiAg
ICAgICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWdzKGdwciksIG5vZGUtPmNoaWxkMSgpLCBTcGVjRnVsbE51bWJlciwKKyAgICAgICAgICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MoZ3ByKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNOdW1iZXIsCiAg
ICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NCgKICAgICAgICAgICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBncHIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlcikpOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTIzMjQsNyArMjI0Myw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVRvSW50MzIoTm9kZSogbm9kZSkKIAogICAg
ICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gTnVtYmVyVXNlKSB7
CiAgICAgICAgICAgICAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3ModGFnR1BSLCBwYXlsb2FkR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNw
ZWNGdWxsTnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3ModGFnR1BS
LCBwYXlsb2FkR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNOdW1iZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2ppdC5icmFuY2gzMigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCB0YWdHUFIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Okxvd2VzdFRhZykpKTsKQEAgLTI0NzAsMTUg
KzIzODksMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludDMyVG9Eb3VibGUoTm9k
ZSogbm9kZSkKICAgICBKSVRDb21waWxlcjo6SnVtcCBpc0ludGVnZXIgPSBtX2ppdC5icmFuY2g2
NCgKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgb3AxR1BSLCBHUFJJbmZv
Ojp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogICAgIAotICAgIGlmIChuZWVkc1R5cGVDaGVjayhu
b2RlLT5jaGlsZDEoKSwgU3BlY0Z1bGxOdW1iZXIpKSB7CisgICAgaWYgKG5lZWRzVHlwZUNoZWNr
KG5vZGUtPmNoaWxkMSgpLCBTcGVjTnVtYmVyKSkgewogICAgICAgICBpZiAobm9kZS0+ZmxhZ3Mo
KSAmIE5vZGVFeGl0c0ZvcndhcmQpIHsKICAgICAgICAgICAgIGZvcndhcmRUeXBlQ2hlY2soCi0g
ICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AxR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNG
dWxsTnVtYmVyLAorICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMUdQUiksIG5vZGUtPmNo
aWxkMSgpLCBTcGVjTnVtYmVyLAogICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChN
YWNyb0Fzc2VtYmxlcjo6WmVybywgb3AxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIpLAogICAgICAgICAgICAgICAgIFZhbHVlUmVjb3Zlcnk6OmluR1BSKG9wMUdQUiwgRGF0YUZv
cm1hdEpTKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBiYWNrd2FyZFR5cGVDaGVj
aygKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwg
U3BlY0Z1bGxOdW1iZXIsCisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AxR1BSKSwgbm9k
ZS0+Y2hpbGQxKCksIFNwZWNOdW1iZXIsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVz
dDY0KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBvcDFHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlcikpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjUwMSwxNSArMjQyMCwxNSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50MzJUb0RvdWJsZShOb2RlKiBub2RlKQogICAgIEpJ
VENvbXBpbGVyOjpKdW1wIGlzSW50ZWdlciA9IG1faml0LmJyYW5jaDMyKAogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsIG9wMVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSk7CiAgICAgCi0gICAgaWYgKG5lZWRzVHlwZUNoZWNrKG5vZGUtPmNoaWxkMSgpLCBTcGVj
RnVsbE51bWJlcikpIHsKKyAgICBpZiAobmVlZHNUeXBlQ2hlY2sobm9kZS0+Y2hpbGQxKCksIFNw
ZWNOdW1iZXIpKSB7CiAgICAgICAgIGlmIChub2RlLT5mbGFncygpICYgTm9kZUV4aXRzRm9yd2Fy
ZCkgewogICAgICAgICAgICAgZm9yd2FyZFR5cGVDaGVjaygKLSAgICAgICAgICAgICAgICBKU1Zh
bHVlUmVncyhvcDFUYWdHUFIsIG9wMVBheWxvYWRHUFIpLCBub2RlLT5jaGlsZDEoKSwgU3BlY0Z1
bGxOdW1iZXIsCisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AxVGFnR1BSLCBvcDFQYXls
b2FkR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNOdW1iZXIsCiAgICAgICAgICAgICAgICAgbV9q
aXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgb3AxVGFnR1BSLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSksCiAgICAgICAgICAgICAgICAgVmFsdWVSZWNv
dmVyeTo6aW5QYWlyKG9wMVRhZ0dQUiwgb3AxUGF5bG9hZEdQUikpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgYmFja3dhcmRUeXBlQ2hlY2soCi0gICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZ3Mob3AxVGFnR1BSLCBvcDFQYXlsb2FkR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNGdWxs
TnVtYmVyLAorICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMVRhZ0dQUiwgb3AxUGF5bG9h
ZEdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjTnVtYmVyLAogICAgICAgICAgICAgICAgIG1faml0
LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIG9wMVRhZ0dQUiwgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6Okxvd2VzdFRhZykpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2MzAs
MTQgKzI1NDksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5
cGVkQXJyYXkoTm9kZSogbm9kZSwgVHlwZWRBcnJheVR5cGUgdAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgaWYgKG5vZGUtPnNob3VsZFNwZWN1
bGF0ZU1hY2hpbmVJbnQoKSkgewotICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihyZXN1
bHRSZWcsIHJlc3VsdFJlZyk7Ci0gICAgICAgIHN0cmljdEludDUyUmVzdWx0KHJlc3VsdFJlZywg
bm9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLSAgICAKICAgICBGUFJUZW1w
b3JhcnkgZnJlc3VsdCh0aGlzKTsKICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShyZXN1
bHRSZWcsIGZyZXN1bHQuZnByKCkpOwogICAgIEpJVENvbXBpbGVyOjpKdW1wIHBvc2l0aXZlID0g
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkdyZWF0ZXJUaGFuT3JFcXVhbCwgcmVzdWx0
UmVnLCBUcnVzdGVkSW1tMzIoMCkpOwpAQCAtMjY5MSwzMSArMjYwMiw2IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQ
UlJlZyBwcm9wZXJ0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAg
Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOiB7Ci0gICAg
ICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQ1Mk9wZXJhbmQgdmFsdWVPcCh0aGlzLCB2YWx1ZVVz
ZSk7Ci0gICAgICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICAgICAgICAg
IEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKLSAgICAgICAgICAgIG1faml0Lm1v
dmUodmFsdWVPcC5ncHIoKSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgICAgICBpZiAoaXNDbGFtcGVk
KHR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGVsZW1lbnRTaXplKHR5cGUpID09IDEp
OwotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQu
YnJhbmNoNjQoCi0gICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCZWxvd09yRXF1
YWwsIHNjcmF0Y2hSZWcsIEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tNjQoMHhmZikpOwotICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHRvb0JpZyA9IG1faml0LmJyYW5jaDY0KAot
ICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6R3JlYXRlclRoYW4sIHNjcmF0Y2hS
ZWcsIEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tNjQoMHhmZikpOwotICAgICAgICAgICAgICAgIG1f
aml0Lm1vdmUoVHJ1c3RlZEltbTMyKDApLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBjbGFtcGVkID0gbV9qaXQuanVtcCgpOwotICAgICAgICAgICAg
ICAgIHRvb0JpZy5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZShKSVRD
b21waWxlcjo6VHJ1c3RlZEltbTMyKDI1NSksIHNjcmF0Y2hSZWcpOwotICAgICAgICAgICAgICAg
IGNsYW1wZWQubGluaygmbV9qaXQpOwotICAgICAgICAgICAgICAgIGluQm91bmRzLmxpbmsoJm1f
aml0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhbHVlLmFkb3B0KHNjcmF0Y2gpOwot
ICAgICAgICAgICAgdmFsdWVHUFIgPSBzY3JhdGNoUmVnOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgCiAgICAgICAg
IGNhc2UgTnVtYmVyVXNlOiB7CiAgICAgICAgICAgICBpZiAoaXNDbGFtcGVkKHR5cGUpKSB7CiAg
ICAgICAgICAgICAgICAgQVNTRVJUKGVsZW1lbnRTaXplKHR5cGUpID09IDEpOwpAQCAtMjk4NCw3
ICsyODcwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFkZChOb2RlKiBub2RlKQog
ICAgICAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgICAgICAgICAKICAgICAgICAg
aWYgKGlzTnVtYmVyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICAg
ICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBpbnQzMl90IGltbTIgPSB2YWx1ZU9mSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIo
KS5ub2RlKCkpOwpAQCAtMzAyOSwzMyArMjkxNSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBZGQoTm9kZSogbm9kZSkKICAgICAgICAgaW50MzJSZXN1bHQoZ3ByUmVzdWx0LCBub2Rl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAgICAgCi0jaWYgVVNFKEpTVkFMVUU2NCkK
LSAgICBjYXNlIE1hY2hpbmVJbnRVc2U6IHsKLSAgICAgICAgLy8gV2lsbCB3ZSBuZWVkIGFuIG92
ZXJmbG93IGNoZWNrPyBJZiB3ZSBjYW4gcHJvdmUgdGhhdCBuZWl0aGVyIGlucHV0IGNhbiBiZQot
ICAgICAgICAvLyBJbnQ1MiB0aGVuIHRoZSBvdmVyZmxvdyBjaGVjayB3aWxsIG5vdCBiZSBuZWNl
c3NhcnkuCi0gICAgICAgIGlmICghbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5jb3Vs
ZEJlVHlwZShTcGVjSW50NTIpCi0gICAgICAgICAgICAmJiAhbV9zdGF0ZS5mb3JOb2RlKG5vZGUt
PmNoaWxkMigpKS5jb3VsZEJlVHlwZShTcGVjSW50NTIpKSB7Ci0gICAgICAgICAgICBTcGVjdWxh
dGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIFNwZWN1bGF0ZVdoaWNoZXZlckludDUyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hp
bGQyKCksIG9wMSk7Ci0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNl
LCBvcDEpOwotICAgICAgICAgICAgbV9qaXQubW92ZShvcDEuZ3ByKCksIHJlc3VsdC5ncHIoKSk7
Ci0gICAgICAgICAgICBtX2ppdC5hZGQ2NChvcDIuZ3ByKCksIHJlc3VsdC5ncHIoKSk7Ci0gICAg
ICAgICAgICBpbnQ1MlJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIG9wMS5mb3JtYXQoKSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIFNwZWN1bGF0
ZUludDUyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBTcGVjdWxh
dGVJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgR1BSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxLCBvcDIpOwotICAgICAgICBtX2ppdC5tb3Zl
KG9wMS5ncHIoKSwgcmVzdWx0LmdwcigpKTsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAg
ICAgICAgICAgIEludDUyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAgICAgICBt
X2ppdC5icmFuY2hBZGQ2NChNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIG9wMi5ncHIoKSwgcmVz
dWx0LmdwcigpKSk7Ci0gICAgICAgIGludDUyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKICAgICAKICAg
ICBjYXNlIE51bWJlclVzZTogewogICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC0zMjAxLDMzICszMDYwLDYgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUFyaXRoU3ViKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY2FzZSBNYWNoaW5lSW50VXNl
OiB7Ci0gICAgICAgIC8vIFdpbGwgd2UgbmVlZCBhbiBvdmVyZmxvdyBjaGVjaz8gSWYgd2UgY2Fu
IHByb3ZlIHRoYXQgbmVpdGhlciBpbnB1dCBjYW4gYmUKLSAgICAgICAgLy8gSW50NTIgdGhlbiB0
aGUgb3ZlcmZsb3cgY2hlY2sgd2lsbCBub3QgYmUgbmVjZXNzYXJ5LgotICAgICAgICBpZiAoIW1f
c3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkuY291bGRCZVR5cGUoU3BlY0ludDUyKQotICAg
ICAgICAgICAgJiYgIW1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkuY291bGRCZVR5cGUo
U3BlY0ludDUyKSkgewotICAgICAgICAgICAgU3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5k
IG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBTcGVjdWxhdGVXaGljaGV2
ZXJJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpLCBvcDEpOwotICAgICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKLSAgICAgICAgICAgIG1f
aml0Lm1vdmUob3AxLmdwcigpLCByZXN1bHQuZ3ByKCkpOwotICAgICAgICAgICAgbV9qaXQuc3Vi
NjQob3AyLmdwcigpLCByZXN1bHQuZ3ByKCkpOwotICAgICAgICAgICAgaW50NTJSZXN1bHQocmVz
dWx0LmdwcigpLCBub2RlLCBvcDEuZm9ybWF0KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIAotICAgICAgICBTcGVjdWxhdGVJbnQ1Mk9wZXJhbmQgb3AxKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgU3BlY3VsYXRlSW50NTJPcGVyYW5kIG9wMih0aGlz
LCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1
c2UsIG9wMSwgb3AyKTsKLSAgICAgICAgbV9qaXQubW92ZShvcDEuZ3ByKCksIHJlc3VsdC5ncHIo
KSk7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICBJbnQ1Mk92ZXJmbG93
LCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgbV9qaXQuYnJhbmNoU3ViNjQoTWFjcm9B
c3NlbWJsZXI6Ok92ZXJmbG93LCBvcDIuZ3ByKCksIHJlc3VsdC5ncHIoKSkpOwotICAgICAgICBp
bnQ1MlJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
I2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCi0KICAgICBjYXNlIE51bWJlclVzZTogewogICAgICAg
ICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKQEAg
LTMyNTYsOSArMzA4OCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE5lZ2F0
ZShOb2RlKiBub2RlKQogCiAgICAgICAgIG1faml0Lm1vdmUob3AxLmdwcigpLCByZXN1bHQuZ3By
KCkpOwogCi0gICAgICAgIC8vIE5vdGU6IHRoZXJlIGlzIG5vIG5vdGlvbiBvZiBiZWluZyBub3Qg
dXNlZCBhcyBhIG51bWJlciwgYnV0IHNvbWVvbmUKLSAgICAgICAgLy8gY2FyaW5nIGFib3V0IG5l
Z2F0aXZlIHplcm8uCi0gICAgICAgIAogICAgICAgICBpZiAoYnl0ZWNvZGVDYW5UcnVuY2F0ZUlu
dGVnZXIobm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpCiAgICAgICAgICAgICBtX2ppdC5uZWczMihy
ZXN1bHQuZ3ByKCkpOwogICAgICAgICBlbHNlIGlmIChieXRlY29kZUNhbklnbm9yZU5lZ2F0aXZl
WmVybyhub2RlLT5hcml0aE5vZGVGbGFncygpKSkKQEAgLTMyNzEsNDIgKzMxMDAsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhOZWdhdGUoTm9kZSogbm9kZSkKICAgICAgICAg
aW50MzJSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LQotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY2FzZSBNYWNoaW5lSW50VXNlOiB7Ci0gICAgICAg
IGlmICghbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5jb3VsZEJlVHlwZShTcGVjSW50
NTIpKSB7Ci0gICAgICAgICAgICBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AxKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhp
cyk7Ci0gICAgICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwotICAgICAgICAgICAg
R1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUo
b3AxR1BSLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgbV9qaXQubmVnNjQocmVzdWx0R1BSKTsK
LSAgICAgICAgICAgIGlmICghYnl0ZWNvZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJp
dGhOb2RlRmxhZ3MoKSkpIHsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAg
ICAgICAgICAgICAgICAgICBOZWdhdGl2ZVplcm8sIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAg
ICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVz
dWx0R1BSKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbnQ1MlJlc3VsdChyZXN1bHRH
UFIsIG5vZGUsIG9wMS5mb3JtYXQoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIFNwZWN1bGF0ZUludDUyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICBH
UFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwotICAgICAgICBtX2ppdC5tb3ZlKG9wMUdQUiwgcmVzdWx0R1BSKTsKLSAgICAg
ICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIEludDUyT3ZlcmZsb3csIEpTVmFsdWVS
ZWdzKCksIDAsCi0gICAgICAgICAgICBtX2ppdC5icmFuY2hOZWc2NChNYWNyb0Fzc2VtYmxlcjo6
T3ZlcmZsb3csIHJlc3VsdEdQUikpOwotICAgICAgICBpZiAoIWJ5dGVjb2RlQ2FuSWdub3JlTmVn
YXRpdmVaZXJvKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7Ci0gICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAotICAgICAgICAgICAgICAgIE5lZ2F0aXZlWmVybywgSlNWYWx1ZVJlZ3MoKSwg
MCwKLSAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Olpl
cm8sIHJlc3VsdEdQUikpOwotICAgICAgICB9Ci0gICAgICAgIGludDUyUmVzdWx0KHJlc3VsdEdQ
Uiwgbm9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2
NCkKICAgICAgICAgCiAgICAgY2FzZSBOdW1iZXJVc2U6IHsKICAgICAgICAgU3BlY3VsYXRlRG91
YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMzM3Miw2MiArMzE2NSw2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11bChOb2RlKiBub2RlKQogICAg
ICAgICBpbnQzMlJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpICAgCi0gICAgY2FzZSBNYWNoaW5lSW50VXNl
OiB7Ci0gICAgICAgIC8vIFRoaXMgaXMgc3VwZXIgY2xldmVyLiBXZSB3YW50IHRvIGRvIGFuIGlu
dDUyIG11bHRpcGxpY2F0aW9uIGFuZCBjaGVjayB0aGUKLSAgICAgICAgLy8gaW50NTIgb3ZlcmZs
b3cgYml0LiBUaGVyZSBpcyBubyBkaXJlY3QgaGFyZHdhcmUgc3VwcG9ydCBmb3IgdGhpcywgYnV0
IHdlIGRvCi0gICAgICAgIC8vIGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gYW4gaW50NjQgbXVsdGlw
bGljYXRpb24gYW5kIGNoZWNrIHRoZSBpbnQ2NCBvdmVyZmxvdwotICAgICAgICAvLyBiaXQuIFdl
IGxldmVyYWdlIHRoYXQuIENvbnNpZGVyIHRoYXQgYSwgYiBhcmUgaW50NTIgbnVtYmVycyBpbnNp
ZGUgaW50NjQKLSAgICAgICAgLy8gcmVnaXN0ZXJzLCB3aXRoIHRoZSBoaWdoIDEyIGJpdHMgYmVp
bmcgc2lnbi1leHRlbmRlZC4gV2UgY2FuIGRvOgotICAgICAgICAvLwotICAgICAgICAvLyAgICAg
KGEgKiAoYiA8PCAxMikpCi0gICAgICAgIC8vCi0gICAgICAgIC8vIFRoaXMgd2lsbCBnaXZlIHVz
IGEgbGVmdC1zaGlmdGVkIGludDUyICh2YWx1ZSBpcyBpbiBoaWdoIDUyIGJpdHMsIGxvdyAxNgot
ICAgICAgICAvLyBiaXRzIGFyZSB6ZXJvKSBwbHVzIHRoZSBpbnQ1MiBvdmVyZmxvdyBiaXQuIEku
ZS4gd2hldGhlciB0aGlzIDY0LWJpdAotICAgICAgICAvLyBtdWx0aXBsaWNhdGlvbiBvdmVyZmxv
d3MgaXMgaWRlbnRpY2FsIHRvIHdoZXRoZXIgdGhlICdhICogYicgNTItYml0Ci0gICAgICAgIC8v
IG11bHRpcGxpY2F0aW9uIG92ZXJmbG93cy4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gSW4gb3Vy
IG5vbWVuY2xhdHVyZSwgdGhpcyBpczoKLSAgICAgICAgLy8KLSAgICAgICAgLy8gICAgIHN0cmlj
dEludDUyKGEpICogaW50NTIoYikgPT4gaW50NTIKLSAgICAgICAgLy8KLSAgICAgICAgLy8gVGhh
dCBpcyAic3RyaWN0SW50NTIiIG1lYW5zIHVuc2hpZnRlZCBhbmQgImludDUyIiBtZWFucyBsZWZ0
LXNoaWZ0ZWQgYnkgMTYKLSAgICAgICAgLy8gYml0cy4KLSAgICAgICAgLy8KLSAgICAgICAgLy8g
V2UgZG9uJ3QgY2FyZSB3aGljaCBvZiBvcDEgb3Igb3AyIHNlcnZlcyBhcyB0aGUgbGVmdC1zaGlm
dGVkIG9wZXJhbmQsIHNvCi0gICAgICAgIC8vIHdlIGp1c3QgZG8gd2hhdGV2ZXIgaXMgbW9yZSBj
b252ZW5pZW50IGZvciBvcDEgYW5kIGhhdmUgb3AyIGRvIHRoZQotICAgICAgICAvLyBvcHBvc2l0
ZS4gVGhpcyBlbnN1cmVzIHRoYXQgd2UgZG8gYXQgbW9zdCBvbmUgc2hpZnQuCi0KLSAgICAgICAg
U3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgIFNwZWN1bGF0ZVdoaWNoZXZlckludDUyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+
Y2hpbGQyKCksIE9wcG9zaXRlU2hpZnQsIG9wMSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwot
ICAgICAgICBHUFJSZWcgb3AyR1BSID0gb3AyLmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0
R1BSID0gcmVzdWx0LmdwcigpOwotICAgICAgICAKLSAgICAgICAgbV9qaXQubW92ZShvcDFHUFIs
IHJlc3VsdEdQUik7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICBJbnQ1
Mk92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgbV9qaXQuYnJhbmNoTXVs
NjQoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBvcDJHUFIsIHJlc3VsdEdQUikpOwotICAgICAg
ICAKLSAgICAgICAgaWYgKCFieXRlY29kZUNhbklnbm9yZU5lZ2F0aXZlWmVybyhub2RlLT5hcml0
aE5vZGVGbGFncygpKSkgewotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgcmVzdWx0
Tm9uWmVybyA9IG1faml0LmJyYW5jaFRlc3Q2NCgKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywgcmVzdWx0R1BSKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
Ci0gICAgICAgICAgICAgICAgTmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAg
ICAgICAgICAgIG1faml0LmJyYW5jaDY0KE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgb3AxR1BS
LCBUcnVzdGVkSW1tNjQoMCkpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAg
ICAgICAgICAgICAgTmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAg
ICAgIG1faml0LmJyYW5jaDY0KE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgb3AyR1BSLCBUcnVz
dGVkSW1tNjQoMCkpKTsKLSAgICAgICAgICAgIHJlc3VsdE5vblplcm8ubGluaygmbV9qaXQpOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpbnQ1MlJlc3VsdChyZXN1bHRHUFIsIG5vZGUp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIAogICAgIGNhc2UgTnVtYmVyVXNlOiB7CiAgICAgICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJh
bmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKQEAgLTM4NTEsMTQgKzM1ODgsNyBAQCBib29s
IFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbgogICAgICAgICBjb21waWxlSW50MzJDb21wYXJlKG5vZGUsIGNv
bmRpdGlvbik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCi0jaWYgVVNFKEpT
VkFMVUU2NCkKLSAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKE1hY2hpbmVJbnRVc2UpKSB7
Ci0gICAgICAgIGNvbXBpbGVJbnQ1MkNvbXBhcmUobm9kZSwgY29uZGl0aW9uKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQotICAgIAorCiAg
ICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChOdW1iZXJVc2UpKSB7CiAgICAgICAgIGNvbXBp
bGVEb3VibGVDb21wYXJlKG5vZGUsIGRvdWJsZUNvbmRpdGlvbik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTQwMDgsMjMgKzM3MzgsNiBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
U3RyaWN0RXEoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUludDMyQ29tcGFyZShub2RlLCBN
YWNyb0Fzc2VtYmxlcjo6RXF1YWwpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAg
IAotI2lmIFVTRShKU1ZBTFVFNjQpICAgCi0gICAgY2FzZSBNYWNoaW5lSW50VXNlOiB7Ci0gICAg
ICAgIHVuc2lnbmVkIGJyYW5jaEluZGV4SW5CbG9jayA9IGRldGVjdFBlZXBIb2xlQnJhbmNoKCk7
Ci0gICAgICAgIGlmIChicmFuY2hJbmRleEluQmxvY2sgIT0gVUlOVF9NQVgpIHsKLSAgICAgICAg
ICAgIE5vZGUqIGJyYW5jaE5vZGUgPSBtX2Jsb2NrLT5hdChicmFuY2hJbmRleEluQmxvY2spOwot
ICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlSW50NTJCcmFuY2gobm9kZSwgYnJhbmNoTm9kZSwg
TWFjcm9Bc3NlbWJsZXI6OkVxdWFsKTsKLSAgICAgICAgICAgIHVzZShub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgICAgICB1c2Uobm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgbV9pbmRleElu
QmxvY2sgPSBicmFuY2hJbmRleEluQmxvY2s7Ci0gICAgICAgICAgICBtX2N1cnJlbnROb2RlID0g
YnJhbmNoTm9kZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IGNvbXBpbGVJbnQ1MkNvbXBhcmUobm9kZSwgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsKTsKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICAKICAgICBjYXNlIE51bWJlclVzZTogewogICAgICAgICB1bnNpZ25lZCBicmFuY2hJbmRleElu
QmxvY2sgPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpOwpAQCAtNDc4MCwyMiArNDQ5Myw5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUludDMyKEVkZ2UgZWRnZSkKICAgICAoU3BlY3Vs
YXRlSW50MzJPcGVyYW5kKHRoaXMsIGVkZ2UpKS5ncHIoKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlTWFjaGluZUludChFZGdlIGVkZ2UpCi17Ci0jaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNNYWNoaW5lSW50KSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIChTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQodGhp
cywgZWRnZSkpLmdwcigpOwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkKLSAgICBVTlVTRURfUEFS
QU0oZWRnZSk7Ci0gICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7Ci0jZW5kaWYgLy8gVVNF
KEpTVkFMVUU2NCkKLX0KLQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTnVtYmVyKEVk
Z2UgZWRnZSkKIHsKLSAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNGdWxsTnVtYmVy
KSkKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNOdW1iZXIpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgKFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQodGhpcywgZWRnZSkpLmZw
cigpOwpAQCAtNDgwMywxMyArNDUwMywxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVOdW1iZXIoRWRnZSBlZGdlKQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVSZWFs
TnVtYmVyKEVkZ2UgZWRnZSkKIHsKLSAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNG
dWxsUmVhbE51bWJlcikpCisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjUmVhbE51
bWJlcikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5k
IG9wZXJhbmQodGhpcywgZWRnZSk7CiAgICAgRlBSUmVnIGZwciA9IG9wZXJhbmQuZnByKCk7CiAg
ICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgIEpTVmFsdWVSZWdzKCksIGVkZ2UsIFNwZWNGdWxs
UmVhbE51bWJlciwKKyAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgZWRnZSwgU3BlY1JlYWxOdW1iZXIs
CiAgICAgICAgIG1faml0LmJyYW5jaERvdWJsZSgKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBmcHIsIGZwcikpOwogfQpAQCAtNTA3MSw3ICs0
NzcxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2Up
CiAgICAgICAgIEFTU0VSVCghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY0ludDMyKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgS25vd25OdW1iZXJVc2U6Ci0gICAgICAgIEFTU0VSVCghbmVl
ZHNUeXBlQ2hlY2soZWRnZSwgU3BlY0Z1bGxOdW1iZXIpKTsKKyAgICAgICAgQVNTRVJUKCFuZWVk
c1R5cGVDaGVjayhlZGdlLCBTcGVjTnVtYmVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
S25vd25DZWxsVXNlOgogICAgICAgICBBU1NFUlQoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWND
ZWxsKSk7CkBAIC01MDgyLDkgKzQ3ODIsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGUoTm9kZSosIEVkZ2UgZWRnZSkKICAgICBjYXNlIEludDMyVXNlOgogICAgICAgICBzcGVjdWxh
dGVJbnQzMihlZGdlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNYWNoaW5lSW50VXNlOgot
ICAgICAgICBzcGVjdWxhdGVNYWNoaW5lSW50KGVkZ2UpOwotICAgICAgICBicmVhazsKICAgICBj
YXNlIFJlYWxOdW1iZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVJlYWxOdW1iZXIoZWRnZSk7CiAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCmluZGV4IGRkMjkzODViODJiNDY1ZjZhOGFkOTdkOTYyNGE5ZTExM2UyZWRmYjkuLjA4
MDUwYTcxMDhiZmZlMWY1YzdlZWI2MjljZDhjYjcxMWI4ZDkzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTE1OSw3ICsxNTksOSBAQCBw
dWJsaWM6CiAgICAgLy8gYW5kIGl0cyBtYWNoaW5lIHJlZ2lzdGVycyBtYXkgYmUgcmV1c2VkLgog
ICAgIGJvb2wgY2FuUmV1c2UoTm9kZSogbm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBnZW5l
cmF0aW9uSW5mbyhub2RlKS5jYW5SZXVzZSgpOworICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmly
dHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7CisgICAgICAgIEdlbmVyYXRp
b25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxS
ZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBpbmZvLmNhblJldXNlKCk7CiAgICAgfQogICAgIGJv
b2wgY2FuUmV1c2UoRWRnZSBub2RlVXNlKQogICAgIHsKQEAgLTIzNSwxMSArMjM3LDE1IEBAIHB1
YmxpYzoKICAgICAvLyBhdm9pZCBzcGlsbGluZyB2YWx1ZXMgd2Ugd2lsbCBuZWVkIGltbWVkaWF0
ZWx5KS4KICAgICBib29sIGlzRmlsbGVkKE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICByZXR1
cm4gZ2VuZXJhdGlvbkluZm8obm9kZSkucmVnaXN0ZXJGb3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9u
ZTsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1
YWxSZWdpc3RlcigpOworICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25J
bmZvRnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4g
aW5mby5yZWdpc3RlckZvcm1hdCgpICE9IERhdGFGb3JtYXROb25lOwogICAgIH0KICAgICBib29s
IGlzRmlsbGVkRG91YmxlKE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gZ2VuZXJh
dGlvbkluZm8obm9kZSkucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlOworICAg
ICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lz
dGVyKCk7CisgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9t
VmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBpbmZvLnJl
Z2lzdGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZTsKICAgICB9CiAKICAgICAvLyBDYWxs
ZWQgb24gYW4gb3BlcmFuZCBvbmNlIGl0IGhhcyBiZWVuIGNvbnN1bWVkIGJ5IGEgcGFyZW50IG5v
ZGUuCkBAIC0yNDcsNyArMjUzLDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKCFub2Rl
LT5oYXNSZXN1bHQoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgR2VuZXJhdGlvbklu
Zm8mIGluZm8gPSBnZW5lcmF0aW9uSW5mbyhub2RlKTsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVy
IHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpOworICAgICAgICBHZW5l
cmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0
dWFsUmVnaXN0ZXIpOwogCiAgICAgICAgIC8vIHVzZSgpIHJldHVybnMgdHJ1ZSB3aGVuIHRoZSB2
YWx1ZSBiZWNvbWVzIGRlYWQsIGFuZCBhbnkKICAgICAgICAgLy8gYXNzb2NpYXRlZCByZXNvdXJj
ZXMgbWF5IGJlIGZyZWVkLgpAQCAtMzI2LDcgKzMzMyw2IEBAIHB1YmxpYzoKICAgICAvLyBtYWNo
aW5lIHJlZ2lzdGVycywgaW1wbGljaXRseSBnZW5lcmF0aW5nIHNwZWN1bGF0aW9uIGNoZWNrcyBh
cyBuZWVkZWQuCiAgICAgR1BSUmVnIGZpbGxTcGVjdWxhdGVJbnQzMihFZGdlLCBEYXRhRm9ybWF0
JiByZXR1cm5Gb3JtYXQpOwogICAgIEdQUlJlZyBmaWxsU3BlY3VsYXRlSW50MzJTdHJpY3QoRWRn
ZSk7Ci0gICAgR1BSUmVnIGZpbGxTcGVjdWxhdGVJbnQ1MihFZGdlLCBEYXRhRm9ybWF0IGRlc2ly
ZWRGb3JtYXQpOwogICAgIEZQUlJlZyBmaWxsU3BlY3VsYXRlRG91YmxlKEVkZ2UpOwogICAgIEdQ
UlJlZyBmaWxsU3BlY3VsYXRlQ2VsbChFZGdlKTsKICAgICBHUFJSZWcgZmlsbFNwZWN1bGF0ZUJv
b2xlYW4oRWRnZSk7CkBAIC00NjIsOCArNDY4LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
cmV0dXJuIGJveERvdWJsZShmcHIsIGFsbG9jYXRlKCkpOwogICAgIH0KLSAgICAKLSAgICB2b2lk
IGJveEludDUyKEdQUlJlZyBzb3VyY2VHUFIsIEdQUlJlZyB0YXJnZXRHUFIsIERhdGFGb3JtYXQp
OwogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICB2b2lkIGJveERvdWJsZShGUFJSZWcgZnBy
LCBHUFJSZWcgdGFnR1BSLCBHUFJSZWcgcGF5bG9hZEdQUikKICAgICB7CkBAIC01NTUsMTEgKzU1
OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgYm9vbCBpc0tub3du
SW50ZWdlcihOb2RlKiBub2RlKSB7IHJldHVybiBtX3N0YXRlLmZvck5vZGUobm9kZSkuaXNUeXBl
KFNwZWNJbnQzMik7IH0KLSAgICBib29sIGlzS25vd25DZWxsKE5vZGUqIG5vZGUpIHsgcmV0dXJu
IG1fc3RhdGUuZm9yTm9kZShub2RlKS5pc1R5cGUoU3BlY0NlbGwpOyB9CisgICAgYm9vbCBpc0tu
b3duSW50ZWdlcihOb2RlKiBub2RlKSB7IHJldHVybiAhKG1fc3RhdGUuZm9yTm9kZShub2RlKS5t
X3R5cGUgJiB+U3BlY0ludDMyKTsgfQorICAgIGJvb2wgaXNLbm93bkNlbGwoTm9kZSogbm9kZSkg
eyByZXR1cm4gIShtX3N0YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgflNwZWNDZWxsKTsgfQog
ICAgIAogICAgIGJvb2wgaXNLbm93bk5vdEludGVnZXIoTm9kZSogbm9kZSkgeyByZXR1cm4gISht
X3N0YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgU3BlY0ludDMyKTsgfQotICAgIGJvb2wgaXNL
bm93bk5vdE51bWJlcihOb2RlKiBub2RlKSB7IHJldHVybiAhKG1fc3RhdGUuZm9yTm9kZShub2Rl
KS5tX3R5cGUgJiBTcGVjRnVsbE51bWJlcik7IH0KKyAgICBib29sIGlzS25vd25Ob3ROdW1iZXIo
Tm9kZSogbm9kZSkgeyByZXR1cm4gIShtX3N0YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgU3Bl
Y051bWJlcik7IH0KICAgICBib29sIGlzS25vd25Ob3RDZWxsKE5vZGUqIG5vZGUpIHsgcmV0dXJu
ICEobV9zdGF0ZS5mb3JOb2RlKG5vZGUpLm1fdHlwZSAmIFNwZWNDZWxsKTsgfQogICAgIAogICAg
IC8vIENoZWNrcy9hY2Nlc3NvcnMgZm9yIGNvbnN0YW50IHZhbHVlcy4KQEAgLTgxMiwyNSArODE2
LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaW50MzJSZXN1bHQocmVnLCBub2RlLCBEYXRh
Rm9ybWF0SW50MzIsIG1vZGUpOwogICAgIH0KLSAgICB2b2lkIGludDUyUmVzdWx0KEdQUlJlZyBy
ZWcsIE5vZGUqIG5vZGUsIERhdGFGb3JtYXQgZm9ybWF0LCBVc2VDaGlsZHJlbk1vZGUgbW9kZSA9
IENhbGxVc2VDaGlsZHJlbikKLSAgICB7Ci0gICAgICAgIGlmIChtb2RlID09IENhbGxVc2VDaGls
ZHJlbikKLSAgICAgICAgICAgIHVzZUNoaWxkcmVuKG5vZGUpOwotCi0gICAgICAgIFZpcnR1YWxS
ZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKLSAgICAg
ICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0
ZXIodmlydHVhbFJlZ2lzdGVyKTsKLQotICAgICAgICBtX2dwcnMucmV0YWluKHJlZywgdmlydHVh
bFJlZ2lzdGVyLCBTcGlsbE9yZGVySlMpOwotICAgICAgICBpbmZvLmluaXRJbnQ1Mihub2RlLCBu
b2RlLT5yZWZDb3VudCgpLCByZWcsIGZvcm1hdCk7Ci0gICAgfQotICAgIHZvaWQgaW50NTJSZXN1
bHQoR1BSUmVnIHJlZywgTm9kZSogbm9kZSwgVXNlQ2hpbGRyZW5Nb2RlIG1vZGUgPSBDYWxsVXNl
Q2hpbGRyZW4pCi0gICAgewotICAgICAgICBpbnQ1MlJlc3VsdChyZWcsIG5vZGUsIERhdGFGb3Jt
YXRJbnQ1MiwgbW9kZSk7Ci0gICAgfQotICAgIHZvaWQgc3RyaWN0SW50NTJSZXN1bHQoR1BSUmVn
IHJlZywgTm9kZSogbm9kZSwgVXNlQ2hpbGRyZW5Nb2RlIG1vZGUgPSBDYWxsVXNlQ2hpbGRyZW4p
Ci0gICAgewotICAgICAgICBpbnQ1MlJlc3VsdChyZWcsIG5vZGUsIERhdGFGb3JtYXRTdHJpY3RJ
bnQ1MiwgbW9kZSk7Ci0gICAgfQogICAgIHZvaWQgbm9SZXN1bHQoTm9kZSogbm9kZSwgVXNlQ2hp
bGRyZW5Nb2RlIG1vZGUgPSBDYWxsVXNlQ2hpbGRyZW4pCiAgICAgewogICAgICAgICBpZiAobW9k
ZSA9PSBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpCkBAIC05MTUsNyArOTAwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaW5pdENvbnN0YW50SW5mbyhOb2RlKiBub2RlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzSW50MzJDb25zdGFudChub2RlKSB8fCBpc051bWJlckNvbnN0YW50KG5vZGUp
IHx8IGlzSlNDb25zdGFudChub2RlKSk7Ci0gICAgICAgIGdlbmVyYXRpb25JbmZvKG5vZGUpLmlu
aXRDb25zdGFudChub2RlLCBub2RlLT5yZWZDb3VudCgpKTsKKyAgICAgICAgZ2VuZXJhdGlvbklu
Zm9Gcm9tVmlydHVhbFJlZ2lzdGVyKG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpKS5pbml0Q29uc3Rh
bnQobm9kZSwgbm9kZS0+cmVmQ291bnQoKSk7CiAgICAgfQogICAgIAogICAgIC8vIFRoZXNlIG1l
dGhvZHMgYWRkIGNhbGxzIHRvIEMrKyBoZWxwZXIgZnVuY3Rpb25zLgpAQCAtMTkwNCwyMiArMTg4
OSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc0ludDMyQ29uc3RhbnQobm9kZSkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICByZXR1cm4gZ2VuZXJhdGlvbkluZm8obm9k
ZSkuaXNKU0ludDMyKCk7Ci0gICAgfQotICAgIAotICAgIGJvb2wgYmV0dGVyVXNlU3RyaWN0SW50
NTIoTm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiAhZ2VuZXJhdGlvbkluZm8obm9k
ZSkuaXNJbnQ1MigpOwotICAgIH0KLSAgICBib29sIGJldHRlclVzZVN0cmljdEludDUyKEVkZ2Ug
ZWRnZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiZXR0ZXJVc2VTdHJpY3RJbnQ1MihlZGdlLm5v
ZGUoKSk7CisgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52
aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBnZW5lcmF0
aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKTsKKyAgICAgICAgCisg
ICAgICAgIHJldHVybiBpbmZvLmlzSlNJbnQzMigpOwogICAgIH0KICAgICAKICAgICBib29sIGNv
bXBhcmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBNYWNyb0Fz
c2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uLCBTX0RGR09wZXJhdGlvbl9FSkopOwogICAgIGJvb2wg
Y29tcGlsZVBlZXBIb2xlQnJhbmNoKE5vZGUqLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENv
bmRpdGlvbiwgTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiwgU19ERkdPcGVyYXRpb25f
RUpKKTsKICAgICB2b2lkIGNvbXBpbGVQZWVwSG9sZUludDMyQnJhbmNoKE5vZGUqLCBOb2RlKiBi
cmFuY2hOb2RlLCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRpdGlvbik7Ci0gICAgdm9pZCBj
b21waWxlUGVlcEhvbGVJbnQ1MkJyYW5jaChOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwgSklUQ29t
cGlsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24pOwogICAgIHZvaWQgY29tcGlsZVBlZXBIb2xlQm9v
bGVhbkJyYW5jaChOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwgSklUQ29tcGlsZXI6OlJlbGF0aW9u
YWxDb25kaXRpb24pOwogICAgIHZvaWQgY29tcGlsZVBlZXBIb2xlRG91YmxlQnJhbmNoKE5vZGUq
LCBOb2RlKiBicmFuY2hOb2RlLCBKSVRDb21waWxlcjo6RG91YmxlQ29uZGl0aW9uKTsKICAgICB2
b2lkIGNvbXBpbGVQZWVwSG9sZU9iamVjdEVxdWFsaXR5KE5vZGUqLCBOb2RlKiBicmFuY2hOb2Rl
KTsKQEAgLTE5NjcsNyArMTk0NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVOZXdUeXBl
ZEFycmF5KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVJbnQzMkNvbXBhcmUoTm9kZSos
IE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uKTsKLSAgICB2b2lkIGNvbXBpbGVJ
bnQ1MkNvbXBhcmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uKTsK
ICAgICB2b2lkIGNvbXBpbGVCb29sZWFuQ29tcGFyZShOb2RlKiwgTWFjcm9Bc3NlbWJsZXI6OlJl
bGF0aW9uYWxDb25kaXRpb24pOwogICAgIHZvaWQgY29tcGlsZURvdWJsZUNvbXBhcmUoTm9kZSos
IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24pOwogICAgIApAQCAtMjE0MSw3ICsyMTE4
LDYgQEAgcHVibGljOgogICAgIHZvaWQgZm9yd2FyZFR5cGVDaGVjayhKU1ZhbHVlU291cmNlLCBF
ZGdlLCBTcGVjdWxhdGVkVHlwZSB0eXBlc1Bhc3NlZFRocm91Z2gsIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIGp1bXBUb0ZhaWwsIGNvbnN0IFZhbHVlUmVjb3ZlcnkmKTsKIAogICAgIHZvaWQgc3BlY3Vs
YXRlSW50MzIoRWRnZSk7Ci0gICAgdm9pZCBzcGVjdWxhdGVNYWNoaW5lSW50KEVkZ2UpOwogICAg
IHZvaWQgc3BlY3VsYXRlTnVtYmVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlUmVhbE51bWJl
cihFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZUJvb2xlYW4oRWRnZSk7CkBAIC0yMjE5LDE2ICsy
MTk1LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG1fZ2VuZXJhdGlvbkluZm9b
b3BlcmFuZFRvTG9jYWwodmlydHVhbFJlZ2lzdGVyKV07CiAgICAgfQotICAgIAotICAgIEdlbmVy
YXRpb25JbmZvJiBnZW5lcmF0aW9uSW5mbyhOb2RlKiBub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rlcihub2RlLT52aXJ0dWFsUmVnaXN0
ZXIoKSk7Ci0gICAgfQotICAgIAotICAgIEdlbmVyYXRpb25JbmZvJiBnZW5lcmF0aW9uSW5mbyhF
ZGdlIGVkZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGlvbkluZm8oZWRnZS5ub2Rl
KCkpOwotICAgIH0KIAogICAgIC8vIFRoZSBKSVQsIHdoaWxlIGFsc28gcHJvdmlkZXMgTWFjcm9B
c3NlbWJsZXIgZnVuY3Rpb25hbGl0eS4KICAgICBKSVRDb21waWxlciYgbV9qaXQ7CkBAIC0yNzEw
LDE3OSArMjY3Niw2IEBAIHByaXZhdGU6CiAgICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlkOwogfTsK
IAotLy8gR2l2ZXMgeW91IGEgY2Fub25pY2FsIEludDUyIChpLmUuIGl0J3MgbGVmdC1zaGlmdGVk
IGJ5IDE2LCBsb3cgYml0cyB6ZXJvKS4KLWNsYXNzIFNwZWN1bGF0ZUludDUyT3BlcmFuZCB7Ci1w
dWJsaWM6Ci0gICAgZXhwbGljaXQgU3BlY3VsYXRlSW50NTJPcGVyYW5kKFNwZWN1bGF0aXZlSklU
KiBqaXQsIEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGlj
T3BlcmFuZFNwZWN1bGF0aW9uKQotICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgLCBtX2Vk
Z2UoZWRnZSkKLSAgICAgICAgLCBtX2dwck9ySW52YWxpZChJbnZhbGlkR1BSUmVnKQotICAgIHsK
LSAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxh
dGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBNYWNoaW5lSW50VXNlKTsKLSAgICAgICAgaWYgKGpp
dC0+aXNGaWxsZWQobm9kZSgpKSkKLSAgICAgICAgICAgIGdwcigpOwotICAgIH0KLSAgICAKLSAg
ICB+U3BlY3VsYXRlSW50NTJPcGVyYW5kKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2dwck9y
SW52YWxpZCAhPSBJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgbV9qaXQtPnVubG9jayhtX2dwck9y
SW52YWxpZCk7Ci0gICAgfQotICAgIAotICAgIEVkZ2UgZWRnZSgpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gbV9lZGdlOwotICAgIH0KLSAgICAKLSAgICBOb2RlKiBub2RlKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBlZGdlKCkubm9kZSgpOwotICAgIH0KLSAgICAKLSAgICBH
UFJSZWcgZ3ByKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2dwck9ySW52YWxpZCA9PSBJbnZhbGlk
R1BSUmVnKQotICAgICAgICAgICAgbV9ncHJPckludmFsaWQgPSBtX2ppdC0+ZmlsbFNwZWN1bGF0
ZUludDUyKGVkZ2UoKSwgRGF0YUZvcm1hdEludDUyKTsKLSAgICAgICAgcmV0dXJuIG1fZ3ByT3JJ
bnZhbGlkOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHVzZSgpCi0gICAgewotICAgICAgICBtX2pp
dC0+dXNlKG5vZGUoKSk7Ci0gICAgfQotICAgIAotcHJpdmF0ZToKLSAgICBTcGVjdWxhdGl2ZUpJ
VCogbV9qaXQ7Ci0gICAgRWRnZSBtX2VkZ2U7Ci0gICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlkOwot
fTsKLQotLy8gR2l2ZXMgeW91IGEgc3RyaWN0IEludDUyIChpLmUuIHRoZSBwYXlsb2FkIGlzIGlu
IHRoZSBsb3cgNDggYml0cywgaGlnaCAxNiBiaXRzIGFyZSBzaWduLWV4dGVuZGVkKS4KLWNsYXNz
IFNwZWN1bGF0ZVN0cmljdEludDUyT3BlcmFuZCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgU3Bl
Y3VsYXRlU3RyaWN0SW50NTJPcGVyYW5kKFNwZWN1bGF0aXZlSklUKiBqaXQsIEVkZ2UgZWRnZSwg
T3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9u
KQotICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgLCBtX2VkZ2UoZWRnZSkKLSAgICAgICAg
LCBtX2dwck9ySW52YWxpZChJbnZhbGlkR1BSUmVnKQotICAgIHsKLSAgICAgICAgQVNTRVJUX1VO
VVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtp
bmQoKSA9PSBNYWNoaW5lSW50VXNlKTsKLSAgICAgICAgaWYgKGppdC0+aXNGaWxsZWQobm9kZSgp
KSkKLSAgICAgICAgICAgIGdwcigpOwotICAgIH0KLSAgICAKLSAgICB+U3BlY3VsYXRlU3RyaWN0
SW50NTJPcGVyYW5kKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2dwck9ySW52YWxpZCAhPSBJ
bnZhbGlkR1BSUmVnKTsKLSAgICAgICAgbV9qaXQtPnVubG9jayhtX2dwck9ySW52YWxpZCk7Ci0g
ICAgfQotICAgIAotICAgIEVkZ2UgZWRnZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
bV9lZGdlOwotICAgIH0KLSAgICAKLSAgICBOb2RlKiBub2RlKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBlZGdlKCkubm9kZSgpOwotICAgIH0KLSAgICAKLSAgICBHUFJSZWcgZ3ByKCkK
LSAgICB7Ci0gICAgICAgIGlmIChtX2dwck9ySW52YWxpZCA9PSBJbnZhbGlkR1BSUmVnKQotICAg
ICAgICAgICAgbV9ncHJPckludmFsaWQgPSBtX2ppdC0+ZmlsbFNwZWN1bGF0ZUludDUyKGVkZ2Uo
KSwgRGF0YUZvcm1hdFN0cmljdEludDUyKTsKLSAgICAgICAgcmV0dXJuIG1fZ3ByT3JJbnZhbGlk
OwotICAgIH0KLSAgICAKLSAgICB2b2lkIHVzZSgpCi0gICAgewotICAgICAgICBtX2ppdC0+dXNl
KG5vZGUoKSk7Ci0gICAgfQotICAgIAotcHJpdmF0ZToKLSAgICBTcGVjdWxhdGl2ZUpJVCogbV9q
aXQ7Ci0gICAgRWRnZSBtX2VkZ2U7Ci0gICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlkOwotfTsKLQot
ZW51bSBPcHBvc2l0ZVNoaWZ0VGFnIHsgT3Bwb3NpdGVTaGlmdCB9OwotCi1jbGFzcyBTcGVjdWxh
dGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgewotcHVibGljOgotICAgIGV4cGxpY2l0IFNwZWN1bGF0
ZVdoaWNoZXZlckludDUyT3BlcmFuZChTcGVjdWxhdGl2ZUpJVCogaml0LCBFZGdlIGVkZ2UsIE9w
ZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikK
LSAgICAgICAgOiBtX2ppdChqaXQpCi0gICAgICAgICwgbV9lZGdlKGVkZ2UpCi0gICAgICAgICwg
bV9ncHJPckludmFsaWQoSW52YWxpZEdQUlJlZykKLSAgICAgICAgLCBtX3N0cmljdChqaXQtPmJl
dHRlclVzZVN0cmljdEludDUyKGVkZ2UpKQotICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCht
b2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9
PSBNYWNoaW5lSW50VXNlKTsKLSAgICAgICAgaWYgKGppdC0+aXNGaWxsZWQobm9kZSgpKSkKLSAg
ICAgICAgICAgIGdwcigpOwotICAgIH0KLSAgICAKLSAgICBleHBsaWNpdCBTcGVjdWxhdGVXaGlj
aGV2ZXJJbnQ1Mk9wZXJhbmQoU3BlY3VsYXRpdmVKSVQqIGppdCwgRWRnZSBlZGdlLCBjb25zdCBT
cGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQmIG90aGVyLCBPcGVyYW5kU3BlY3VsYXRpb25N
b2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCi0gICAgICAgIDogbV9qaXQo
aml0KQotICAgICAgICAsIG1fZWRnZShlZGdlKQotICAgICAgICAsIG1fZ3ByT3JJbnZhbGlkKElu
dmFsaWRHUFJSZWcpCi0gICAgICAgICwgbV9zdHJpY3Qob3RoZXIubV9zdHJpY3QpCi0gICAgewot
ICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0
aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE1hY2hpbmVJbnRVc2UpOwotICAgICAgICBpZiAoaml0
LT5pc0ZpbGxlZChub2RlKCkpKQotICAgICAgICAgICAgZ3ByKCk7Ci0gICAgfQotICAgIAotICAg
IGV4cGxpY2l0IFNwZWN1bGF0ZVdoaWNoZXZlckludDUyT3BlcmFuZChTcGVjdWxhdGl2ZUpJVCog
aml0LCBFZGdlIGVkZ2UsIE9wcG9zaXRlU2hpZnRUYWcsIGNvbnN0IFNwZWN1bGF0ZVdoaWNoZXZl
ckludDUyT3BlcmFuZCYgb3RoZXIsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9t
YXRpY09wZXJhbmRTcGVjdWxhdGlvbikKLSAgICAgICAgOiBtX2ppdChqaXQpCi0gICAgICAgICwg
bV9lZGdlKGVkZ2UpCi0gICAgICAgICwgbV9ncHJPckludmFsaWQoSW52YWxpZEdQUlJlZykKLSAg
ICAgICAgLCBtX3N0cmljdCghb3RoZXIubV9zdHJpY3QpCi0gICAgewotICAgICAgICBBU1NFUlRf
VU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8IGVkZ2UudXNl
S2luZCgpID09IE1hY2hpbmVJbnRVc2UpOwotICAgICAgICBpZiAoaml0LT5pc0ZpbGxlZChub2Rl
KCkpKQotICAgICAgICAgICAgZ3ByKCk7Ci0gICAgfQotICAgIAotICAgIH5TcGVjdWxhdGVXaGlj
aGV2ZXJJbnQ1Mk9wZXJhbmQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fZ3ByT3JJbnZhbGlk
ICE9IEludmFsaWRHUFJSZWcpOwotICAgICAgICBtX2ppdC0+dW5sb2NrKG1fZ3ByT3JJbnZhbGlk
KTsKLSAgICB9Ci0gICAgCi0gICAgRWRnZSBlZGdlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBtX2VkZ2U7Ci0gICAgfQotICAgIAotICAgIE5vZGUqIG5vZGUoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGVkZ2UoKS5ub2RlKCk7Ci0gICAgfQotICAgIAotICAgIEdQUlJlZyBn
cHIoKQotICAgIHsKLSAgICAgICAgaWYgKG1fZ3ByT3JJbnZhbGlkID09IEludmFsaWRHUFJSZWcp
IHsKLSAgICAgICAgICAgIG1fZ3ByT3JJbnZhbGlkID0gbV9qaXQtPmZpbGxTcGVjdWxhdGVJbnQ1
MigKLSAgICAgICAgICAgICAgICBlZGdlKCksIG1fc3RyaWN0ID8gRGF0YUZvcm1hdFN0cmljdElu
dDUyIDogRGF0YUZvcm1hdEludDUyKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbV9ncHJP
ckludmFsaWQ7Ci0gICAgfQotICAgIAotICAgIHZvaWQgdXNlKCkKLSAgICB7Ci0gICAgICAgIG1f
aml0LT51c2Uobm9kZSgpKTsKLSAgICB9Ci0gICAgCi0gICAgRGF0YUZvcm1hdCBmb3JtYXQoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc3RyaWN0ID8gRGF0YUZvcm1hdFN0cmljdElu
dDUyIDogRGF0YUZvcm1hdEludDUyOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBTcGVjdWxhdGl2
ZUpJVCogbV9qaXQ7Ci0gICAgRWRnZSBtX2VkZ2U7Ci0gICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlk
OwotICAgIGJvb2wgbV9zdHJpY3Q7Ci19OwotCiBjbGFzcyBTcGVjdWxhdGVEb3VibGVPcGVyYW5k
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTcGVjdWxhdGVEb3VibGVPcGVyYW5kKFNwZWN1bGF0
aXZlSklUKiBqaXQsIEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0
b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggYWU2NGQyZWYxZDA5ZDkyNjRi
N2IyMWQyODRmZjUyZWIyMjEwNmRmOC4uMTg0MmNmNjE2NDdjZDc3NWI1ZjM3ZDA0NTcwMDBhMWYz
NzViNTA4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCkBAIC04ODgsOCArODg4LDggQEAgRlBSUmVnIFNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlRG91YmxlKEVkZ2UgZWRnZSkKICNlbmRpZgogICAgIEFic3RyYWN0
VmFsdWUmIHZhbHVlID0gbV9zdGF0ZS5mb3JOb2RlKGVkZ2UpOwogICAgIFNwZWN1bGF0ZWRUeXBl
IHR5cGUgPSB2YWx1ZS5tX3R5cGU7Ci0gICAgQVNTRVJUKGVkZ2UudXNlS2luZCgpICE9IEtub3du
TnVtYmVyVXNlIHx8ICEodmFsdWUubV90eXBlICYgflNwZWNGdWxsTnVtYmVyKSk7Ci0gICAgbV9p
bnRlcnByZXRlci5maWx0ZXIodmFsdWUsIFNwZWNGdWxsTnVtYmVyKTsKKyAgICBBU1NFUlQoZWRn
ZS51c2VLaW5kKCkgIT0gS25vd25OdW1iZXJVc2UgfHwgISh2YWx1ZS5tX3R5cGUgJiB+U3BlY051
bWJlcikpOworICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjTnVtYmVyKTsKICAg
ICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gZWRnZS0+dmlydHVhbFJlZ2lzdGVy
KCk7CiAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFs
UmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKTsKIApAQCAtOTI4LDcgKzkyOCw3IEBAIEZQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShFZGdlIGVkZ2UpCiAKICAgICAgICAg
ICAgIGlmIChzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0SlNJbnQzMiAmJiBzcGlsbEZvcm1hdCAh
PSBEYXRhRm9ybWF0SW50MzIpIHsKICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBp
c0ludGVnZXIgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIEpJVENvbXBp
bGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGUgJiB+U3BlY0Z1bGxOdW1iZXIpCisgICAg
ICAgICAgICAgICAgaWYgKHR5cGUgJiB+U3BlY051bWJlcikKICAgICAgICAgICAgICAgICAgICAg
c3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlKEpJVENvbXBpbGVyOjphZGRy
ZXNzRm9yKHZpcnR1YWxSZWdpc3RlcikpLCBlZGdlLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3Rlciks
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7CiAgICAgICAgICAgICAgICAgbV9q
aXQubG9hZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBm
cHIpOwogICAgICAgICAgICAgICAgIGhhc1VuYm94ZWREb3VibGUgPSBtX2ppdC5qdW1wKCk7CkBA
IC05NjMsNyArOTYzLDcgQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlRG91
YmxlKEVkZ2UgZWRnZSkKICAgICAgICAgaWYgKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSAhPSBEYXRh
Rm9ybWF0SlNJbnQzMikgewogICAgICAgICAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7
CiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc0ludGVnZXIgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Oklu
dDMyVGFnKSk7Ci0gICAgICAgICAgICBpZiAodHlwZSAmIH5TcGVjRnVsbE51bWJlcikKKyAgICAg
ICAgICAgIGlmICh0eXBlICYgflNwZWNOdW1iZXIpCiAgICAgICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyh0YWdHUFIsIHBheWxvYWRHUFIpLCBlZGdlLCBt
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCB0YWdHUFIsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7CiAgICAgICAgICAgICB1bmJveERvdWJsZSh0
YWdHUFIsIHBheWxvYWRHUFIsIGZwciwgc2NyYXRjaC5mcHIoKSk7CiAgICAgICAgICAgICBoYXNV
bmJveGVkRG91YmxlID0gbV9qaXQuanVtcCgpOwpAQCAtMjkyMyw3ICsyOTIzLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgRlBSUmVnIHZh
bHVlRlBSID0gdmFsdWUuZnByKCk7CiAKICAgICAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAg
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzKCksIG5vZGUtPmNoaWxkMigpLCBTcGVjRnVsbFJlYWxO
dW1iZXIsCisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgbm9kZS0+Y2hpbGQyKCksIFNw
ZWNSZWFsTnVtYmVyLAogICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fz
c2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgdmFsdWVGUFIsIHZhbHVlRlBSKSk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdG9yYWdlR1BSLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpLCBz
dG9yYWdlTGVuZ3RoR1BSKTsKQEAgLTMxODcsNyArMzE4Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgCiAgICAgICAgIG9wMS51c2UoKTsKICAg
ICAgICAgCi0gICAgICAgIGlmICghKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90
eXBlICYgfihTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuKSkpIHsKKyAgICAgICAgaWYgKCEo
bV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUgJiB+KFNwZWNOdW1iZXIgfCBT
cGVjQm9vbGVhbikpKSB7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKG9wMVRhZ0dQUiwgcmVzdWx0
VGFnR1BSKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUob3AxUGF5bG9hZEdQUiwgcmVzdWx0UGF5
bG9hZEdQUik7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0zMjg5LDcgKzMyODksNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgICAgIFNw
ZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3BlcmFuZCh0aGlzLCB1c2UpOwogICAgICAgICAgICAgICAg
ICAgICBGUFJSZWcgb3BGUFIgPSBvcGVyYW5kLmZwcigpOwogICAgICAgICAgICAgICAgICAgICBE
RkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKCksIHVz
ZSwgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3MoKSwgdXNlLCBTcGVjUmVhbE51bWJlciwKICAgICAgICAgICAgICAgICAgICAgICAgIG1faml0
LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwg
b3BGUFIsIG9wRlBSKSk7CiAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdG9y
ZURvdWJsZShvcEZQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZUdQUiwgc2l6ZW9m
KGRvdWJsZSkgKiBvcGVyYW5kSWR4KSk7CkBAIC0zMzU0LDcgKzMzNTQsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgU3BlY3VsYXRl
RG91YmxlT3BlcmFuZCBvcGVyYW5kKHRoaXMsIHVzZSk7CiAgICAgICAgICAgICAgICAgRlBSUmVn
IG9wRlBSID0gb3BlcmFuZC5mcHIoKTsKICAgICAgICAgICAgICAgICBERkdfVFlQRV9DSEVDSygK
LSAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgdXNlLCBTcGVjRnVsbFJlYWxOdW1i
ZXIsCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKCksIHVzZSwgU3BlY1JlYWxOdW1i
ZXIsCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxl
cjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgb3BGUFIsIG9wRlBSKSk7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUob3BGUFIsIHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KGJ1ZmZlciArIG9wZXJhbmRJZHgpKTsKQEAgLTQ3OTcsOCArNDc5Nyw2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIENo
ZWNrVGllclVwSW5Mb29wOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAgICBjYXNl
IENoZWNrVGllclVwQW5kT1NSRW50ZXI6Ci0gICAgY2FzZSBJbnQ1MlRvRG91YmxlOgotICAgIGNh
c2UgSW50NTJUb1ZhbHVlOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBmZmRmMTM1NjE4NThiM2NiM2ExNTUwMjFlNjUw
MDA3MThkNWU3NzFhLi5mYjgyMTIzNDY5YmI2ZGFmOGVlY2I1ZTZlNDljN2NlOGIzZjRjY2M1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTQwLDI5ICs0MCw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAog
I2lmIFVTRShKU1ZBTFVFNjQpCiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmJveEludDUyKEdQUlJl
ZyBzb3VyY2VHUFIsIEdQUlJlZyB0YXJnZXRHUFIsIERhdGFGb3JtYXQgZm9ybWF0KQotewotICAg
IEdQUlJlZyB0ZW1wR1BSOwotICAgIGlmIChzb3VyY2VHUFIgPT0gdGFyZ2V0R1BSKQotICAgICAg
ICB0ZW1wR1BSID0gYWxsb2NhdGUoKTsKLSAgICBlbHNlCi0gICAgICAgIHRlbXBHUFIgPSB0YXJn
ZXRHUFI7Ci0gICAgCi0gICAgRlBSUmVnIGZwciA9IGZwckFsbG9jYXRlKCk7Ci0KLSAgICBpZiAo
Zm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MikKLSAgICAgICAgbV9qaXQucnNoaWZ0NjQoVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBzb3VyY2VHUFIpOwotICAgIGVsc2UK
LSAgICAgICAgQVNTRVJUKGZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIpOwotICAgIAot
ICAgIG1faml0LmJveEludDUyKHNvdXJjZUdQUiwgdGFyZ2V0R1BSLCB0ZW1wR1BSLCBmcHIpOwot
ICAgIAotICAgIGlmICh0ZW1wR1BSICE9IHRhcmdldEdQUikKLSAgICAgICAgdW5sb2NrKHRlbXBH
UFIpOwotICAgIAotICAgIHVubG9jayhmcHIpOwotfQotCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6
OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSkKIHsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJl
Z2lzdGVyID0gZWRnZS0+dmlydHVhbFJlZ2lzdGVyKCk7CkBAIC05MiwyMiArNjksMTEgQEAgR1BS
UmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9ybWF0ID0gaW5mby5zcGlsbEZvcm1h
dCgpOwogICAgICAgICAgICAgbV9ncHJzLnJldGFpbihncHIsIHZpcnR1YWxSZWdpc3RlciwgU3Bp
bGxPcmRlclNwaWxsZWQpOwotICAgICAgICAgICAgc3dpdGNoIChzcGlsbEZvcm1hdCkgewotICAg
ICAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50MzI6IHsKKyAgICAgICAgICAgIGlmIChzcGlsbEZv
cm1hdCA9PSBEYXRhRm9ybWF0SW50MzIpIHsKICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIo
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKICAgICAgICAg
ICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgZ3ByKTsK
ICAgICAgICAgICAgICAgICBzcGlsbEZvcm1hdCA9IERhdGFGb3JtYXRKU0ludDMyOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6Ci0gICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRT
dHJpY3RJbnQ1MjogewotICAgICAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotICAgICAgICAgICAgICAgIGJveElu
dDUyKGdwciwgZ3ByLCBzcGlsbEZvcm1hdCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGdwcjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21w
aWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwogICAgICAgICAgICAgICAg
IGlmIChzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0RG91YmxlKSB7CiAgICAgICAgICAgICAgICAg
ICAgIC8vIE5lZWQgdG8gYm94IHRoZSBkb3VibGUsIHNpbmNlIHdlIHdhbnQgYSBKU1ZhbHVlLgpA
QCAtMTE1LDcgKzgxLDYgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdl
IGVkZ2UpCiAgICAgICAgICAgICAgICAgICAgIHNwaWxsRm9ybWF0ID0gRGF0YUZvcm1hdEpTRG91
YmxlOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChzcGlsbEZvcm1hdCAmIERhdGFGb3JtYXRKUyk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpbmZvLmZpbGxKU1ZhbHVlKCptX3N0cmVh
bSwgZ3ByLCBzcGlsbEZvcm1hdCk7CiAgICAgICAgIH0KQEAgLTE0OCwxNiArMTEzLDYgQEAgR1BS
UmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAKICAgICAgICAgcmV0
dXJuIGdwcjsKICAgICB9Ci0gICAgICAgIAotICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOgotICAg
IGNhc2UgRGF0YUZvcm1hdFN0cmljdEludDUyOiB7Ci0gICAgICAgIEdQUlJlZyBncHIgPSBpbmZv
LmdwcigpOwotICAgICAgICBsb2NrKGdwcik7Ci0gICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSBh
bGxvY2F0ZSgpOwotICAgICAgICBib3hJbnQ1MihncHIsIHJlc3VsdEdQUiwgaW5mby5yZWdpc3Rl
ckZvcm1hdCgpKTsKLSAgICAgICAgdW5sb2NrKGdwcik7Ci0gICAgICAgIHJldHVybiByZXN1bHRH
UFI7Ci0gICAgfQogCiAgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKICAgICAgICAgLy8gTm8gcmV0
YWcgcmVxdWlyZWQgb24gSlNWQUxVRTY0IQpAQCAtODEzLDcgKzc2OCw3IEBAIEdQUlJlZyBTcGVj
dWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9y
bWF0JiByZXR1cm5GCiAgICAgICAgIAogICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9ybWF0ID0g
aW5mby5zcGlsbEZvcm1hdCgpOwogICAgICAgICAKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoKHNw
aWxsRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB8fCBzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0SW50
MzIgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyIHx8IHNwaWxsRm9ybWF0ID09IERh
dGFGb3JtYXRTdHJpY3RJbnQ1Mik7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKChzcGlsbEZvcm1h
dCAmIERhdGFGb3JtYXRKUykgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEludDMyKTsKICAg
ICAgICAgCiAgICAgICAgIG1fZ3Bycy5yZXRhaW4oZ3ByLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxs
T3JkZXJTcGlsbGVkKTsKICAgICAgICAgCkBAIC04MzQsMzYgKzc4OSw2IEBAIEdQUlJlZyBTcGVj
dWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9y
bWF0JiByZXR1cm5GCiAgICAgICAgICAgICByZXR1cm5Gb3JtYXQgPSBEYXRhRm9ybWF0SlNJbnQz
MjsKICAgICAgICAgICAgIHJldHVybiBncHI7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHNwaWxs
Rm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8fCBzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0U3Ry
aWN0SW50NTIpIHsKLSAgICAgICAgICAgIC8vIEdlbmVyYWxseSwgdGhpcyBjYW4gb25seSBoYXBw
ZW4gaWYgd2UndmUgYWxyZWFkeSBwcm92ZWQgdGhhdCB0aGUKLSAgICAgICAgICAgIC8vIHZhbHVl
IGlzIGFuIGludDMyLiBUaGF0J3MgYmVjYXVzZSBpZiBhIHZhbHVlIG9yaWdpbmF0ZWQgYXMgYSBK
U1ZhbHVlCi0gICAgICAgICAgICAvLyB0aGVuIHdlIHdvdWxkIHNwZWN1bGF0ZSB0aGF0IGl0J3Mg
YW4gaW50MzIgYmVmb3JlIHJlcHJlc2VudGluZyBpdCBhcwotICAgICAgICAgICAgLy8gYW4gaW50
NTIuIE90aGVyd2lzZSwgaWYgd2Uga25vd2luZ2x5IHByb2R1Y2VkIGFuIGludDUyLCB0aGVuIHdl
IHdvdWxkCi0gICAgICAgICAgICAvLyBiZSBib3hpbmcgaXQgaW50byBhIHZhbHVlIHVzaW5nIElu
dDUyVG9WYWx1ZS4gVGhpcyBhc3NlcnRpb24gaXMgdmFsaWQKLSAgICAgICAgICAgIC8vIG9ubHkg
YmVjYXVzZSBJbnQ1MiBpcyBzb21ldGhpbmcgdGhhdCB3ZSBpbnRyb2R1Y2UgYXQgcHJlZGljdGlv
biB0aW1lLgotICAgICAgICAgICAgLy8gSG93ZXZlcjogd2UgbWF5IGhhdmUgYW4gaW50MzItcHJv
ZHVjaW5nIG5vZGUgcmVwbGFjZWQgYnkgYW4KLSAgICAgICAgICAgIC8vIGludDUyLXByb2R1Y2lu
ZyBub2RlIGR1ZSB0byBDU0UuIFNvIHdlIG11c3QgZG8gYSBjaGVjay4KLSAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKCEodHlwZSAmIH5TcGVjTWFjaGluZUludCkpOwotICAgICAgICAgICAgaWYg
KHR5cGUgJiBTcGVjSW50NTIpIHsKLSAgICAgICAgICAgICAgICBHUFJSZWcgdGVtcCA9IGFsbG9j
YXRlKCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIoZ3ByLCB0ZW1w
KTsKLSAgICAgICAgICAgICAgICAvLyBDdXJyZW50bHksIHdlIGNhbid0IHN1cHBseSB2YWx1ZSBw
cm9maWxpbmcgaW5mb3JtYXRpb24gaGVyZS4gOi0vCi0gICAgICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjaygKLSAgICAgICAgICAgICAgICAgICAgQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCwK
LSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCBncHIsIHRlbXApKTsKLSAgICAgICAgICAgICAgICB1bmxvY2sodGVtcCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdElu
dDUyKQotICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6YWRkcmVzc0Zv
cih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIGdwcik7Ci0gICAgICAgICAgICAgICAgbV9qaXQucnNoaWZ0NjQoVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBncHIpOwotICAgICAgICAgICAgICAgIG1faml0Lnpl
cm9FeHRlbmQzMlRvUHRyKGdwciwgZ3ByKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlu
Zm8uZmlsbEludDMyKCptX3N0cmVhbSwgZ3ByKTsKLSAgICAgICAgICAgIHJldHVybkZvcm1hdCA9
IERhdGFGb3JtYXRJbnQzMjsKLSAgICAgICAgICAgIHJldHVybiBncHI7Ci0gICAgICAgIH0KICAg
ICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIGdwcik7CiAKICAgICAgICAgLy8gRmlsbCBhcyBKU1ZhbHVlLCBhbmQgZmFsbCB0aHJvdWdo
LgpAQCAtODcyLDcgKzc5Nyw2IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0
ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5GCiAgICAgfQogCiAg
ICAgY2FzZSBEYXRhRm9ybWF0SlM6IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoISh0eXBlICYg
U3BlY0ludDUyKSk7CiAgICAgICAgIC8vIENoZWNrIHRoZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyLgog
ICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKICAgICAgICAgbV9ncHJzLmxvY2soZ3By
KTsKQEAgLTkxOSwzNSArODQzLDYgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3Vs
YXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkYKICAgICAgICAg
cmV0dXJuRm9ybWF0ID0gRGF0YUZvcm1hdEludDMyOwogICAgICAgICByZXR1cm4gZ3ByOwogICAg
IH0KLSAgICAgICAgCi0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6Ci0gICAgY2FzZSBE
YXRhRm9ybWF0SW50NTI6IHsKLSAgICAgICAgR1BSUmVnIGdwciA9IGluZm8uZ3ByKCk7Ci0gICAg
ICAgIEdQUlJlZyByZXN1bHQ7Ci0gICAgICAgIGlmIChtX2dwcnMuaXNMb2NrZWQoZ3ByKSkgewot
ICAgICAgICAgICAgcmVzdWx0ID0gYWxsb2NhdGUoKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUo
Z3ByLCByZXN1bHQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbG9jayhncHIpOwot
ICAgICAgICAgICAgaW5mby5maWxsSW50MzIoKm1fc3RyZWFtLCBncHIpOwotICAgICAgICAgICAg
cmVzdWx0ID0gZ3ByOwotICAgICAgICB9Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCEodHlwZSAm
IH5TcGVjTWFjaGluZUludCkpOwotICAgICAgICBpZiAoaW5mby5yZWdpc3RlckZvcm1hdCgpID09
IERhdGFGb3JtYXRJbnQ1MikKLSAgICAgICAgICAgIG1faml0LnJzaGlmdDY0KFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgcmVzdWx0KTsKLSAgICAgICAgaWYgKHR5cGUg
JiBTcGVjSW50NTIpIHsKLSAgICAgICAgICAgIEdQUlJlZyB0ZW1wID0gYWxsb2NhdGUoKTsKLSAg
ICAgICAgICAgIG1faml0LnNpZ25FeHRlbmQzMlRvUHRyKHJlc3VsdCwgdGVtcCk7Ci0gICAgICAg
ICAgICAvLyBDdXJyZW50bHksIHdlIGNhbid0IHN1cHBseSB2YWx1ZSBwcm9maWxpbmcgaW5mb3Jt
YXRpb24gaGVyZS4gOi0vCi0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAg
ICAgICAgIEJhZFR5cGUsIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAgICAgICAgICAgbV9qaXQu
YnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCByZXN1bHQsIHRlbXApKTsKLSAgICAg
ICAgICAgIHVubG9jayh0ZW1wKTsKLSAgICAgICAgfQotICAgICAgICBtX2ppdC56ZXJvRXh0ZW5k
MzJUb1B0cihyZXN1bHQsIHJlc3VsdCk7Ci0gICAgICAgIHJldHVybkZvcm1hdCA9IERhdGFGb3Jt
YXRJbnQzMjsKLSAgICAgICAgcmV0dXJuIGdwcjsKLSAgICB9CiAKICAgICBjYXNlIERhdGFGb3Jt
YXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0SlNEb3VibGU6IHsKQEAgLTk5MCwxODAgKzg4
NSw2IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMyU3RyaWN0KEVk
Z2UgZWRnZSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1HUFJSZWcgU3BlY3VsYXRpdmVKSVQ6
OmZpbGxTcGVjdWxhdGVJbnQ1MihFZGdlIGVkZ2UsIERhdGFGb3JtYXQgZGVzaXJlZEZvcm1hdCkK
LXsKLSAgICBBU1NFUlQoZGVzaXJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIgfHwgZGVzaXJl
ZEZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIpOwotICAgIEFic3RyYWN0VmFsdWUmIHZh
bHVlID0gbV9zdGF0ZS5mb3JOb2RlKGVkZ2UpOwotICAgIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSB2
YWx1ZS5tX3R5cGU7Ci0gICAgbV9pbnRlcnByZXRlci5maWx0ZXIodmFsdWUsIFNwZWNNYWNoaW5l
SW50KTsKLSAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gZWRnZS0+dmlydHVh
bFJlZ2lzdGVyKCk7Ci0gICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBnZW5lcmF0aW9uSW5mb0Zy
b21WaXJ0dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKTsKLQotICAgIHN3aXRjaCAoaW5mby5y
ZWdpc3RlckZvcm1hdCgpKSB7Ci0gICAgY2FzZSBEYXRhRm9ybWF0Tm9uZTogewotICAgICAgICBp
ZiAoKGVkZ2UtPmhhc0NvbnN0YW50KCkgJiYgIXZhbHVlT2ZKU0NvbnN0YW50KGVkZ2Uubm9kZSgp
KS5pc01hY2hpbmVJbnQoKSkgfHwgaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXREb3Vi
bGUpIHsKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRh
YmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKLSAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZSgpOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKLQot
ICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgSlNWYWx1ZSBq
c1ZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQoZWRnZS5ub2RlKCkpOwotICAgICAgICAgICAgQVNT
RVJUKGpzVmFsdWUuaXNNYWNoaW5lSW50KCkpOwotICAgICAgICAgICAgbV9ncHJzLnJldGFpbihn
cHIsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckNvbnN0YW50KTsKLSAgICAgICAgICAgIGlu
dDY0X3QgdmFsdWUgPSBqc1ZhbHVlLmFzTWFjaGluZUludCgpOwotICAgICAgICAgICAgaWYgKGRl
c2lyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyKQotICAgICAgICAgICAgICAgIHZhbHVlID0g
dmFsdWUgPDwgSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudDsKLSAgICAgICAgICAgIG1faml0Lm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OkltbTY0KHZhbHVlKSwgZ3ByKTsKLSAgICAgICAgICAgIGluZm8u
ZmlsbEdQUigqbV9zdHJlYW0sIGdwciwgZGVzaXJlZEZvcm1hdCk7Ci0gICAgICAgICAgICByZXR1
cm4gZ3ByOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9y
bWF0ID0gaW5mby5zcGlsbEZvcm1hdCgpOwotICAgICAgICAKLSAgICAgICAgUkVMRUFTRV9BU1NF
UlQoKHNwaWxsRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB8fCBzcGlsbEZvcm1hdCA9PSBEYXRhRm9y
bWF0SW50MzIgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyIHx8IHNwaWxsRm9ybWF0
ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1Mik7Ci0gICAgICAgIAotICAgICAgICBtX2dwcnMucmV0
YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyU3BpbGxlZCk7Ci0gICAgICAgIAot
ICAgICAgICBpZiAoc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50MzIgfHwgc3BpbGxGb3Jt
YXQgPT0gRGF0YUZvcm1hdEludDMyKSB7Ci0gICAgICAgICAgICAvLyBJZiB3ZSBrbm93IHRoaXMg
d2FzIHNwaWxsZWQgYXMgYW4gaW50ZWdlciB3ZSBjYW4gZmlsbCB3aXRob3V0IGNoZWNraW5nLgot
ICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxS
ZWdpc3RlciksIGdwcik7Ci0gICAgICAgICAgICBtX2ppdC5zaWduRXh0ZW5kMzJUb1B0cihncHIs
IGdwcik7Ci0gICAgICAgICAgICBpZiAoZGVzaXJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0
SW50NTIpIHsKLSAgICAgICAgICAgICAgICBpbmZvLmZpbGxTdHJpY3RJbnQ1MigqbV9zdHJlYW0s
IGdwcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGdwcjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIG1faml0LmxzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1v
dW50KSwgZ3ByKTsKLSAgICAgICAgICAgIGluZm8uZmlsbEludDUyKCptX3N0cmVhbSwgZ3ByKTsK
LSAgICAgICAgICAgIHJldHVybiBncHI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNwaWxsRm9y
bWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8fCBzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0
SW50NTIpIHsKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0Zv
cih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotICAgICAgICAgICAgaWYgKGRlc2lyZWRGb3JtYXQg
PT0gRGF0YUZvcm1hdFN0cmljdEludDUyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNwaWxsRm9y
bWF0ID09IERhdGFGb3JtYXRJbnQ1MikKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQucnNoaWZ0
NjQoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBncHIpOwotICAgICAg
ICAgICAgICAgIGluZm8uZmlsbFN0cmljdEludDUyKCptX3N0cmVhbSwgZ3ByKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZ3ByOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHNwaWxs
Rm9ybWF0ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1MikKLSAgICAgICAgICAgICAgICBtX2ppdC5s
c2hpZnQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudCksIGdwcik7Ci0g
ICAgICAgICAgICBpbmZvLmZpbGxJbnQ1MigqbV9zdHJlYW0sIGdwcik7Ci0gICAgICAgICAgICBy
ZXR1cm4gZ3ByOwotICAgICAgICB9Ci0gICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6
YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotCi0gICAgICAgIC8vIEZpbGwgYXMg
SlNWYWx1ZSwgYW5kIGZhbGwgdGhyb3VnaC4KLSAgICAgICAgaW5mby5maWxsSlNWYWx1ZSgqbV9z
dHJlYW0sIGdwciwgRGF0YUZvcm1hdEpTSW50MzIpOwotICAgICAgICBtX2dwcnMudW5sb2NrKGdw
cik7Ci0gICAgfQotCi0gICAgY2FzZSBEYXRhRm9ybWF0SlM6IHsKLSAgICAgICAgLy8gQ2hlY2sg
dGhlIHZhbHVlIGlzIGFuIGludGVnZXIuIE5vdGUgdGhhdCB3ZSB3b3VsZCAqbGlrZSogdG8gdW5i
b3ggYW4gSW50NTIKLSAgICAgICAgLy8gYXQgdGhpcyBwb2ludCBidXQgdGhpcyBpcyB0b28gY29z
dGx5LiBXZSBvbmx5ICpwcm92ZSogdGhhdCB0aGlzIGlzIGFuIEludDUyCi0gICAgICAgIC8vIGV2
ZW4gdGhvdWdoIHdlIGNoZWNrIGlmIGl0J3MgYW4gaW50MzIuCi0gICAgICAgIEdQUlJlZyBncHIg
PSBpbmZvLmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0OwotICAgICAgICBpZiAobV9ncHJz
LmlzTG9ja2VkKGdwcikpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGFsbG9jYXRlKCk7Ci0gICAg
ICAgICAgICBtX2ppdC5tb3ZlKGdwciwgcmVzdWx0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIG1fZ3Bycy5sb2NrKGdwcik7Ci0gICAgICAgICAgICByZXN1bHQgPSBncHI7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHR5cGUgJiB+U3BlY0ludDMyKQotICAgICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhyZXN1bHQpLCBlZGdlLCBtX2ppdC5icmFu
Y2g2NChNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHJlc3VsdCwgR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gZ3ByKSAvLyBUaGUgbm90LWFscmVh
ZHktbG9ja2VkLCBzbyBmaWxsIGluLXBsYWNlLCBjYXNlLgotICAgICAgICAgICAgaW5mby5maWxs
SW50NTIoKm1fc3RyZWFtLCBncHIsIGRlc2lyZWRGb3JtYXQpOwotICAgICAgICBtX2ppdC5zaWdu
RXh0ZW5kMzJUb1B0cihyZXN1bHQsIHJlc3VsdCk7Ci0gICAgICAgIGlmIChkZXNpcmVkRm9ybWF0
ID09IERhdGFGb3JtYXRJbnQ1MikKLSAgICAgICAgICAgIG1faml0LmxzaGlmdDY0KFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgcmVzdWx0KTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0KLSAgICBjYXNlIERhdGFGb3JtYXRJbnQzMjoKLSAgICBjYXNlIERh
dGFGb3JtYXRKU0ludDMyOiB7Ci0gICAgICAgIEdQUlJlZyBncHIgPSBpbmZvLmdwcigpOwotICAg
ICAgICBHUFJSZWcgcmVzdWx0OwotICAgICAgICBpZiAobV9ncHJzLmlzTG9ja2VkKGdwcikpIHsK
LSAgICAgICAgICAgIHJlc3VsdCA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBtX2ppdC5tb3Zl
KGdwciwgcmVzdWx0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fZ3Bycy5sb2Nr
KGdwcik7Ci0gICAgICAgICAgICBpbmZvLmZpbGxJbnQ1MigqbV9zdHJlYW0sIGdwciwgZGVzaXJl
ZEZvcm1hdCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBncHI7Ci0gICAgICAgIH0KLSAgICAgICAg
bV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIocmVzdWx0LCByZXN1bHQpOwotICAgICAgICBpZiAoZGVz
aXJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIpCi0gICAgICAgICAgICBtX2ppdC5sc2hpZnQ2
NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudCksIHJlc3VsdCk7Ci0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50
NTI6IHsKLSAgICAgICAgR1BSUmVnIGdwciA9IGluZm8uZ3ByKCk7Ci0gICAgICAgIGJvb2wgd2Fz
TG9ja2VkID0gbV9ncHJzLmlzTG9ja2VkKGdwcik7Ci0gICAgICAgIGxvY2soZ3ByKTsKLSAgICAg
ICAgaWYgKGRlc2lyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKQotICAgICAgICAg
ICAgcmV0dXJuIGdwcjsKLSAgICAgICAgaWYgKHdhc0xvY2tlZCkgewotICAgICAgICAgICAgR1BS
UmVnIHJlc3VsdCA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKGdwciwgcmVz
dWx0KTsKLSAgICAgICAgICAgIHVubG9jayhncHIpOwotICAgICAgICAgICAgZ3ByID0gcmVzdWx0
OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGluZm8uZmlsbFN0cmljdEludDUyKCptX3N0
cmVhbSwgZ3ByKTsKLSAgICAgICAgbV9qaXQubHNoaWZ0NjQoVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OmludDUyU2hpZnRBbW91bnQpLCBncHIpOwotICAgICAgICByZXR1cm4gZ3ByOwotICAgIH0KLSAg
ICAgICAgCi0gICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6IHsKLSAgICAgICAgR1BSUmVnIGdwciA9
IGluZm8uZ3ByKCk7Ci0gICAgICAgIGJvb2wgd2FzTG9ja2VkID0gbV9ncHJzLmlzTG9ja2VkKGdw
cik7Ci0gICAgICAgIGxvY2soZ3ByKTsKLSAgICAgICAgaWYgKGRlc2lyZWRGb3JtYXQgPT0gRGF0
YUZvcm1hdEludDUyKQotICAgICAgICAgICAgcmV0dXJuIGdwcjsKLSAgICAgICAgaWYgKHdhc0xv
Y2tlZCkgewotICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IGFsbG9jYXRlKCk7Ci0gICAgICAg
ICAgICBtX2ppdC5tb3ZlKGdwciwgcmVzdWx0KTsKLSAgICAgICAgICAgIHVubG9jayhncHIpOwot
ICAgICAgICAgICAgZ3ByID0gcmVzdWx0OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGlu
Zm8uZmlsbEludDUyKCptX3N0cmVhbSwgZ3ByKTsKLSAgICAgICAgbV9qaXQucnNoaWZ0NjQoVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBncHIpOwotICAgICAgICByZXR1
cm4gZ3ByOwotICAgIH0KLQotICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKLSAgICBjYXNlIERh
dGFGb3JtYXRKU0RvdWJsZToKLSAgICAgICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkpIHsKLSAg
ICAgICAgICAgIEpTVmFsdWUganNWYWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KGVkZ2Uubm9kZSgp
KTsKLSAgICAgICAgICAgIGlmIChqc1ZhbHVlLmlzTWFjaGluZUludCgpKSB7Ci0gICAgICAgICAg
ICAgICAgaW50NjRfdCB2YWx1ZSA9IGpzVmFsdWUuYXNNYWNoaW5lSW50KCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKGRlc2lyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyKQotICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHZhbHVlIDw8IEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQ7Ci0gICAg
ICAgICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICAgICAgbV9q
aXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tNjQodmFsdWUpLCBncHIpOwotICAgICAgICAgICAg
ICAgIHJldHVybiBncHI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
Y2FzZSBEYXRhRm9ybWF0Q2VsbDoKLSAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgotICAgIGNh
c2UgRGF0YUZvcm1hdEpTQ2VsbDoKLSAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46IHsKLSAg
ICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVS
ZWdzKCksIDApOwotICAgICAgICByZXR1cm4gYWxsb2NhdGUoKTsKLSAgICB9Ci0KLSAgICBjYXNl
IERhdGFGb3JtYXRTdG9yYWdlOgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKLSAgICB9Ci19Ci0KIEZQUlJl
ZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShFZGdlIGVkZ2UpCiB7CiAjaWYg
REZHX0VOQUJMRShERUJVR19WRVJCT1NFKQpAQCAtMTE3MSw4ICs4OTIsOCBAQCBGUFJSZWcgU3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVEb3VibGUoRWRnZSBlZGdlKQogI2VuZGlmCiAgICAg
QWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBtX3N0YXRlLmZvck5vZGUoZWRnZSk7CiAgICAgU3BlY3Vs
YXRlZFR5cGUgdHlwZSA9IHZhbHVlLm1fdHlwZTsKLSAgICBBU1NFUlQoZWRnZS51c2VLaW5kKCkg
IT0gS25vd25OdW1iZXJVc2UgfHwgISh2YWx1ZS5tX3R5cGUgJiB+U3BlY0Z1bGxOdW1iZXIpKTsK
LSAgICBtX2ludGVycHJldGVyLmZpbHRlcih2YWx1ZSwgU3BlY0Z1bGxOdW1iZXIpOworICAgIEFT
U0VSVChlZGdlLnVzZUtpbmQoKSAhPSBLbm93bk51bWJlclVzZSB8fCAhKHZhbHVlLm1fdHlwZSAm
IH5TcGVjTnVtYmVyKSk7CisgICAgbV9pbnRlcnByZXRlci5maWx0ZXIodmFsdWUsIFNwZWNOdW1i
ZXIpOwogICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBlZGdlLT52aXJ0dWFs
UmVnaXN0ZXIoKTsKICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJv
bVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOwogCkBAIC0xMjI0LDI0ICs5NDUsNiBA
QCBGUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVEb3VibGUoRWRnZSBlZGdlKQog
ICAgICAgICAgICAgdW5sb2NrKGdwcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOiB7Ci0gICAgICAgICAg
ICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKLSAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4oZ3By
LCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKLSAgICAgICAgICAgIG1faml0
LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwot
ICAgICAgICAgICAgaW5mby5maWxsSW50NTIoKm1fc3RyZWFtLCBncHIpOwotICAgICAgICAgICAg
dW5sb2NrKGdwcik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgRGF0YUZvcm1hdFN0cmljdEludDUyOiB7Ci0gICAgICAgICAgICBHUFJS
ZWcgZ3ByID0gYWxsb2NhdGUoKTsKLSAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4oZ3ByLCB2aXJ0
dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKLSAgICAgICAgICAgIG1faml0LmxvYWQ2
NChKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotICAgICAg
ICAgICAgaW5mby5maWxsU3RyaWN0SW50NTIoKm1fc3RyZWFtLCBncHIpOwotICAgICAgICAgICAg
dW5sb2NrKGdwcik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogCiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKQEAgLTEyNzUsNyAr
OTc4LDcgQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlRG91YmxlKEVkZ2Ug
ZWRnZSkKIAogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc0ludGVnZXIgPSBtX2ppdC5icmFu
Y2g2NChNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBqc1ZhbHVlR3ByLCBHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogCi0gICAgICAgIGlmICh0eXBlICYgflNwZWNGdWxsTnVt
YmVyKQorICAgICAgICBpZiAodHlwZSAmIH5TcGVjTnVtYmVyKQogICAgICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhqc1ZhbHVlR3ByKSwgZWRnZSwgbV9qaXQu
YnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBqc1ZhbHVlR3ByLCBHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKIAogICAgICAgICAvLyBGaXJzdCwgaWYgd2UgZ2V0IGhl
cmUgd2UgaGF2ZSBhIGRvdWJsZSBlbmNvZGVkIGFzIGEgSlNWYWx1ZQpAQCAtMTMwNiwyOCArMTAw
OSw2IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShFZGdlIGVk
Z2UpCiAgICAgICAgIG1fZ3Bycy51bmxvY2soZ3ByKTsKICAgICAgICAgcmV0dXJuIGZwcjsKICAg
ICB9Ci0gICAgICAgIAotICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOiB7Ci0gICAgICAgIEZQUlJl
ZyBmcHIgPSBmcHJBbGxvY2F0ZSgpOwotICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsK
LSAgICAgICAgbV9ncHJzLmxvY2soZ3ByKTsKLSAgICAgICAgR1BSUmVnIHRlbXAgPSBhbGxvY2F0
ZSgpOwotICAgICAgICBtX2ppdC5tb3ZlKGdwciwgdGVtcCk7Ci0gICAgICAgIG1faml0LnJzaGlm
dDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgdGVtcCk7Ci0gICAg
ICAgIG1faml0LmNvbnZlcnRJbnQ2NFRvRG91YmxlKHRlbXAsIGZwcik7Ci0gICAgICAgIHVubG9j
ayh0ZW1wKTsKLSAgICAgICAgbV9ncHJzLnVubG9jayhncHIpOwotICAgICAgICByZXR1cm4gZnBy
OwotICAgIH0KLSAgICAgICAgCi0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6IHsKLSAg
ICAgICAgRlBSUmVnIGZwciA9IGZwckFsbG9jYXRlKCk7Ci0gICAgICAgIEdQUlJlZyBncHIgPSBp
bmZvLmdwcigpOwotICAgICAgICBtX2dwcnMubG9jayhncHIpOwotICAgICAgICBtX2ppdC5jb252
ZXJ0SW50NjRUb0RvdWJsZShncHIsIGZwcik7Ci0gICAgICAgIG1fZ3Bycy51bmxvY2soZ3ByKTsK
LSAgICAgICAgcmV0dXJuIGZwcjsKLSAgICB9CiAKICAgICAvLyBVbmJveCB0aGUgZG91YmxlCiAg
ICAgY2FzZSBEYXRhRm9ybWF0SlNEb3VibGU6IHsKQEAgLTE0MzAsOSArMTExMSw3IEBAIEdQUlJl
ZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgIGNhc2Ug
RGF0YUZvcm1hdEpTRG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBjYXNl
IERhdGFGb3JtYXRKU0Jvb2xlYW46Ci0gICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKLSAgICBj
YXNlIERhdGFGb3JtYXRJbnQ1MjoKLSAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1Mjogewor
ICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46IHsKICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRp
dmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIDApOwogICAgICAgICByZXR1
cm4gYWxsb2NhdGUoKTsKICAgICB9CkBAIC0xNTE1LDkgKzExOTQsNyBAQCBHUFJSZWcgU3BlY3Vs
YXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKEVkZ2UgZWRnZSkKICAgICBjYXNlIERhdGFG
b3JtYXRKU0RvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgY2FzZSBEYXRh
Rm9ybWF0SlNDZWxsOgotICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgY2FzZSBEYXRhRm9y
bWF0SW50NTI6Ci0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6IHsKKyAgICBjYXNlIERh
dGFGb3JtYXRDZWxsOiB7CiAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVu
Y291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7
CiAgICAgfQpAQCAtMTgyNiw0MCArMTUwMyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVJbnQzMkNvbXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDCiAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY3VycmVudE5vZGUsIERhdGFGb3JtYXRK
U0Jvb2xlYW4pOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50NTJDb21wYXJl
KE5vZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlv
bikKLXsKLSAgICBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKLSAgICBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMs
IG5vZGUtPmNoaWxkMigpLCBvcDEpOwotICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1
c2UsIG9wMSwgb3AyKTsKLSAgICAKLSAgICBtX2ppdC5jb21wYXJlNjQoY29uZGl0aW9uLCBvcDEu
Z3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0LmdwcigpKTsKLSAgICAKLSAgICAvLyBJZiB3ZSBhZGQg
YSBEYXRhRm9ybWF0Qm9vbCwgd2Ugc2hvdWxkIHVzZSBpdCBoZXJlLgotICAgIG1faml0Lm9yMzIo
VHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkpOwotICAgIGpzVmFsdWVSZXN1
bHQocmVzdWx0LmdwcigpLCBtX2N1cnJlbnROb2RlLCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKLX0K
LQotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlSW50NTJCcmFuY2goTm9kZSog
bm9kZSwgTm9kZSogYnJhbmNoTm9kZSwgSklUQ29tcGlsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24g
Y29uZGl0aW9uKQotewotICAgIEJhc2ljQmxvY2sqIHRha2VuID0gYnJhbmNoTm9kZS0+dGFrZW5C
bG9jaygpOwotICAgIEJhc2ljQmxvY2sqIG5vdFRha2VuID0gYnJhbmNoTm9kZS0+bm90VGFrZW5C
bG9jaygpOwotCi0gICAgLy8gVGhlIGJyYW5jaCBpbnN0cnVjdGlvbiB3aWxsIGJyYW5jaCB0byB0
aGUgdGFrZW4gYmxvY2suCi0gICAgLy8gSWYgdGFrZW4gaXMgbmV4dCwgc3dpdGNoIHRha2VuIHdp
dGggbm90VGFrZW4gJiBpbnZlcnQgdGhlIGJyYW5jaCBjb25kaXRpb24gc28gd2UgY2FuIGZhbGwg
dGhyb3VnaC4KLSAgICBpZiAodGFrZW4gPT0gbmV4dEJsb2NrKCkpIHsKLSAgICAgICAgY29uZGl0
aW9uID0gSklUQ29tcGlsZXI6OmludmVydChjb25kaXRpb24pOwotICAgICAgICBCYXNpY0Jsb2Nr
KiB0bXAgPSB0YWtlbjsKLSAgICAgICAgdGFrZW4gPSBub3RUYWtlbjsKLSAgICAgICAgbm90VGFr
ZW4gPSB0bXA7Ci0gICAgfQotICAgIAotICAgIFNwZWN1bGF0ZVdoaWNoZXZlckludDUyT3BlcmFu
ZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgIFNwZWN1bGF0ZVdoaWNoZXZlckludDUy
T3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCksIG9wMSk7Ci0gICAgCi0gICAgYnJhbmNo
NjQoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgdGFrZW4pOwotICAgIGp1bXAobm90
VGFrZW4pOwotfQotCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlQ29tcGFyZShO
b2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRpdGlvbikKIHsK
ICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBA
IC0yMjYzLDE2ICsxOTA2LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAg
ICBjYXNlIEZsdXNoZWRJbnQ1MjogewotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzKTsKLSAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0Zvcihu
b2RlLT5sb2NhbCgpKSwgcmVzdWx0LmdwcigpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
VmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3Rlcigp
OwotICAgICAgICAgICAgbV9ncHJzLnJldGFpbihyZXN1bHQuZ3ByKCksIHZpcnR1YWxSZWdpc3Rl
ciwgU3BpbGxPcmRlckpTKTsKLSAgICAgICAgICAgIGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxS
ZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpLmluaXRJbnQ1Mihub2RlLCBub2RlLT5yZWZDb3VudCgp
LCByZXN1bHQuZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
ICAgIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzKTsKICAgICAgICAgICAgIG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0Zvcihu
b2RlLT5sb2NhbCgpKSwgcmVzdWx0LmdwcigpKTsKQEAgLTIzNDgsMTQgKzE5ODEsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgRmx1c2hlZEludDUyOiB7Ci0g
ICAgICAgICAgICBTcGVjdWxhdGVJbnQ1Mk9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZS5ncHIoKSwgSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3Iobm9kZS0+bG9jYWwoKSkpOwotICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7
Ci0gICAgICAgICAgICByZWNvcmRTZXRMb2NhbChub2RlLT5sb2NhbCgpLCBWYWx1ZVNvdXJjZShJ
bnQ1MkluSlNTdGFjaykpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIEZsdXNoZWRDZWxsOiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBjZWxsKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIEdQUlJl
ZyBjZWxsR1BSID0gY2VsbC5ncHIoKTsKQEAgLTI0NzksMjIgKzIxMDQsNiBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICAgICAgCi0gICAgY2FzZSBJbnQ1MlRvVmFsdWU6IHsKLSAgICAgICAgSlNWYWx1ZU9wZXJhbmQg
b3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcywgUmV1c2UsIG9wZXJhbmQpOwotICAgICAgICBtX2ppdC5tb3ZlKG9wZXJhbmQuZ3By
KCksIHJlc3VsdC5ncHIoKSk7Ci0gICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBu
b2RlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAgICAKLSAgICBjYXNlIEludDUyVG9E
b3VibGU6IHsKLSAgICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcGVyYW5kKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcGVyYW5k
KTsKLSAgICAgICAgbV9qaXQubW92ZURvdWJsZShvcGVyYW5kLmZwcigpLCByZXN1bHQuZnByKCkp
OwotICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0LmZwcigpLCBub2RlKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgICAgICAKICAgICBjYXNlIFZhbHVlQWRkOgogICAgIGNhc2UgQXJpdGhB
ZGQ6CiAgICAgICAgIGNvbXBpbGVBZGQobm9kZSk7CkBAIC0zMjgwLDcgKzI4ODksNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBGUFJSZWcg
dmFsdWVGUFIgPSB2YWx1ZS5mcHIoKTsKIAogICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0g
ICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgbm9kZS0+Y2hpbGQyKCksIFNwZWNGdWxsUmVh
bE51bWJlciwKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncygpLCBub2RlLT5jaGlsZDIoKSwg
U3BlY1JlYWxOdW1iZXIsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoRG91YmxlKE1hY3Jv
QXNzZW1ibGVyOjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCB2YWx1ZUZQUiwgdmFsdWVGUFIp
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VHUFIsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSks
IHN0b3JhZ2VMZW5ndGhHUFIpOwpAQCAtMzQ5Niw3ICszMTA1LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICAgICAgb3AxLnVzZSgpOwog
ICAgICAgICAKLSAgICAgICAgaWYgKCEobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5t
X3R5cGUgJiB+KFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jvb2xlYW4pKSkKKyAgICAgICAgaWYgKCEo
bV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUgJiB+KFNwZWNOdW1iZXIgfCBT
cGVjQm9vbGVhbikpKQogICAgICAgICAgICAgbV9qaXQubW92ZShvcDFHUFIsIHJlc3VsdEdQUik7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYWxyZWFk
eVByaW1pdGl2ZSA9IG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywg
b3AxR1BSLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwpAQCAtMzU5Myw3ICszMjAyLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAg
ICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wZXJhbmQodGhpcywgdXNlKTsKICAgICAgICAg
ICAgICAgICAgICAgRlBSUmVnIG9wRlBSID0gb3BlcmFuZC5mcHIoKTsKICAgICAgICAgICAgICAg
ICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVn
cygpLCB1c2UsIFNwZWNGdWxsUmVhbE51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIEpT
VmFsdWVSZWdzKCksIHVzZSwgU3BlY1JlYWxOdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2ppdC5icmFuY2hEb3VibGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIG9wRlBSLCBvcEZQUikpOwogICAg
ICAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZURvdWJsZShvcEZQUiwgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZUdQUiwgc2l6ZW9mKGRvdWJsZSkgKiBvcGVyYW5kSWR4KSk7CkBAIC0z
NjU4LDcgKzMyNjcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUp
CiAgICAgICAgICAgICAgICAgRlBSUmVnIG9wRlBSID0gb3BlcmFuZC5mcHIoKTsKICAgICAgICAg
ICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAgICAgICAgICAg
ICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKCksIHVz
ZSwgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncygp
LCB1c2UsIFNwZWNSZWFsTnVtYmVyLAogICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hE
b3VibGUoCiAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90
RXF1YWxPclVub3JkZXJlZCwgb3BGUFIsIG9wRlBSKSk7CiAgICAgICAgICAgICAgICAgbV9qaXQu
Ym94RG91YmxlKG9wRlBSLCBzY3JhdGNoR1BSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1VzZUtpbmQuY3BwCmluZGV4IDA3M2ViMGU2NjZlZWMyZDYyYjIzZmY2YWY2ZDkxMzQ5NjhkNGUz
ZDIuLjU2YWU2YWRlYzRlNGQ2M2M0OGM2NzlkODQxMTYyNWJlZGFmMzQzY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtNDQsOSArNDQsNiBAQCB2b2lkIHBy
aW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2Ug
S25vd25JbnQzMlVzZToKICAgICAgICAgb3V0LnByaW50KCJLbm93bkludDMyIik7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgTWFjaGluZUludFVzZToKLSAgICAgICAgb3V0LnByaW50KCJNYWNo
aW5lSW50Iik7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVhbE51bWJlclVzZToKICAgICAg
ICAgb3V0LnByaW50KCJSZWFsTnVtYmVyIik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCA3YWQzOTA1MjRhYTkxNDVkZThlNmY1ZjUwZjg1
ZjE0YjUxYzk1NjBkLi5lY2M2M2Y2ODBlMjNlNzY4MDI5YjlmODA5Mzg3ODU1NWI5MDdiYjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAtMzksNyArMzksNiBAQCBl
bnVtIFVzZUtpbmQgewogICAgIFVudHlwZWRVc2UsCiAgICAgSW50MzJVc2UsCiAgICAgS25vd25J
bnQzMlVzZSwKLSAgICBNYWNoaW5lSW50VXNlLAogICAgIFJlYWxOdW1iZXJVc2UsCiAgICAgTnVt
YmVyVXNlLAogICAgIEtub3duTnVtYmVyVXNlLApAQCAtNjcsMTMgKzY2LDExIEBAIEFMV0FZU19J
TkxJTkUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAg
Y2FzZSBJbnQzMlVzZToKICAgICBjYXNlIEtub3duSW50MzJVc2U6CiAgICAgICAgIHJldHVybiBT
cGVjSW50MzI7Ci0gICAgY2FzZSBNYWNoaW5lSW50VXNlOgotICAgICAgICByZXR1cm4gU3BlY01h
Y2hpbmVJbnQ7CiAgICAgY2FzZSBSZWFsTnVtYmVyVXNlOgotICAgICAgICByZXR1cm4gU3BlY0Z1
bGxSZWFsTnVtYmVyOworICAgICAgICByZXR1cm4gU3BlY1JlYWxOdW1iZXI7CiAgICAgY2FzZSBO
dW1iZXJVc2U6CiAgICAgY2FzZSBLbm93bk51bWJlclVzZToKLSAgICAgICAgcmV0dXJuIFNwZWNG
dWxsTnVtYmVyOworICAgICAgICByZXR1cm4gU3BlY051bWJlcjsKICAgICBjYXNlIEJvb2xlYW5V
c2U6CiAgICAgICAgIHJldHVybiBTcGVjQm9vbGVhbjsKICAgICBjYXNlIENlbGxVc2U6CkBAIC0x
MjgsNyArMTI1LDYgQEAgQUxXQVlTX0lOTElORSBib29sIGlzTnVtZXJpY2FsKFVzZUtpbmQga2lu
ZCkKICAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICBjYXNlIEludDMyVXNlOgogICAgIGNhc2UgS25v
d25JbnQzMlVzZToKLSAgICBjYXNlIE1hY2hpbmVJbnRVc2U6CiAgICAgY2FzZSBSZWFsTnVtYmVy
VXNlOgogICAgIGNhc2UgTnVtYmVyVXNlOgogICAgIGNhc2UgS25vd25OdW1iZXJVc2U6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsdWVTb3VyY2UuY3BwCmluZGV4IGVmNzAyZTRk
NTRlNzJlMzU3NWNhMGJmNjhiNWE1Yjc1OGFkNzUzOWMuLjg3OWFhMzAyNTRjMWU1ODg2ZGU2MDY3
NzM1Yjk4MTQ3M2RjNWJkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFsdWVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFs
dWVTb3VyY2UuY3BwCkBAIC00NSw5ICs0NSw2IEBAIHZvaWQgVmFsdWVTb3VyY2U6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEludDMySW5KU1N0YWNrOgogICAgICAgICBv
dXQucHJpbnQoIkludDMyIik7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW50NTJJbkpTU3Rh
Y2s6Ci0gICAgICAgIG91dC5wcmludCgiSW50NTIiKTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDZWxsSW5KU1N0YWNrOgogICAgICAgICBvdXQucHJpbnQoIkNlbGwiKTsKICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmgKaW5kZXggMTU5
NDU2Zjk0MThkZDA0ZDNkZDQyOWYwMzY5ZTZiMjM2NTY3YmFlMC4uZTYzODFkZWNkYWI0YWUwZGE2
YjIzOGYwMTRlMWFmNjFmYWI2NDViNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdWYWx1ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VmFsdWVTb3VyY2UuaApAQCAtNDMsNyArNDMsNiBAQCBlbnVtIFZhbHVlU291cmNlS2luZCB7CiAg
ICAgU291cmNlTm90U2V0LAogICAgIFZhbHVlSW5KU1N0YWNrLAogICAgIEludDMySW5KU1N0YWNr
LAotICAgIEludDUySW5KU1N0YWNrLAogICAgIENlbGxJbkpTU3RhY2ssCiAgICAgQm9vbGVhbklu
SlNTdGFjaywKICAgICBEb3VibGVJbkpTU3RhY2ssCkBAIC01Nyw4ICs1Niw2IEBAIHN0YXRpYyBp
bmxpbmUgVmFsdWVTb3VyY2VLaW5kIGRhdGFGb3JtYXRUb1ZhbHVlU291cmNlS2luZChEYXRhRm9y
bWF0IGRhdGFGb3JtYXQpCiAgICAgc3dpdGNoIChkYXRhRm9ybWF0KSB7CiAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50MzI6CiAgICAgICAgIHJldHVybiBJbnQzMkluSlNTdGFjazsKLSAgICBjYXNlIERh
dGFGb3JtYXRJbnQ1MjoKLSAgICAgICAgcmV0dXJuIEludDUySW5KU1N0YWNrOwogICAgIGNhc2Ug
RGF0YUZvcm1hdERvdWJsZToKICAgICAgICAgcmV0dXJuIERvdWJsZUluSlNTdGFjazsKICAgICBj
YXNlIERhdGFGb3JtYXRCb29sZWFuOgpAQCAtODIsOCArNzksNiBAQCBzdGF0aWMgaW5saW5lIERh
dGFGb3JtYXQgdmFsdWVTb3VyY2VLaW5kVG9EYXRhRm9ybWF0KFZhbHVlU291cmNlS2luZCBraW5k
KQogICAgICAgICByZXR1cm4gRGF0YUZvcm1hdEpTOwogICAgIGNhc2UgSW50MzJJbkpTU3RhY2s6
CiAgICAgICAgIHJldHVybiBEYXRhRm9ybWF0SW50MzI7Ci0gICAgY2FzZSBJbnQ1MkluSlNTdGFj
azoKLSAgICAgICAgcmV0dXJuIERhdGFGb3JtYXRJbnQ1MjsKICAgICBjYXNlIENlbGxJbkpTU3Rh
Y2s6CiAgICAgICAgIHJldHVybiBEYXRhRm9ybWF0Q2VsbDsKICAgICBjYXNlIEJvb2xlYW5JbkpT
U3RhY2s6CkBAIC0xNDQsOCArMTM5LDYgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIFZh
bHVlU291cmNlKERvdWJsZUluSlNTdGFjayk7CiAgICAgICAgIGNhc2UgRmx1c2hlZEludDMyOgog
ICAgICAgICAgICAgcmV0dXJuIFZhbHVlU291cmNlKEludDMySW5KU1N0YWNrKTsKLSAgICAgICAg
Y2FzZSBGbHVzaGVkSW50NTI6Ci0gICAgICAgICAgICByZXR1cm4gVmFsdWVTb3VyY2UoSW50NTJJ
bkpTU3RhY2spOwogICAgICAgICBjYXNlIEZsdXNoZWRDZWxsOgogICAgICAgICAgICAgcmV0dXJu
IFZhbHVlU291cmNlKENlbGxJbkpTU3RhY2spOwogICAgICAgICBjYXNlIEZsdXNoZWRCb29sZWFu
OgpAQCAtMTg4LDkgKzE4MSw2IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBJbnQzMkluSlNTdGFj
azoKICAgICAgICAgICAgIHJldHVybiBWYWx1ZVJlY292ZXJ5OjphbHJlYWR5SW5KU1N0YWNrQXNV
bmJveGVkSW50MzIoKTsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIEludDUySW5KU1N0YWNr
OgotICAgICAgICAgICAgcmV0dXJuIFZhbHVlUmVjb3Zlcnk6OmFscmVhZHlJbkpTU3RhY2tBc1Vu
Ym94ZWRJbnQ1MigpOwotICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQ2VsbEluSlNTdGFjazoK
ICAgICAgICAgICAgIHJldHVybiBWYWx1ZVJlY292ZXJ5OjphbHJlYWR5SW5KU1N0YWNrQXNVbmJv
eGVkQ2VsbCgpOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAppbmRleCAzZTY4ZjQ0OThhZTU0N2NlZjExNDIwOGM3
OGVlZjYwZTc2ZTdlMTg2Li5hMTM4MzhhNDY1Nzc3ZTYzN2Y3ZTNmYWEyNGQ1ZmJhYzQ1Njk2MDA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNz
RGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVBY2Nlc3NE
YXRhLmgKQEAgLTIzNSw3ICsyMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgICAgICAvLyBJ
ZiB0aGUgdmFyaWFibGUgaXMgbm90IGEgbnVtYmVyIHByZWRpY3Rpb24sIHRoZW4gdGhpcyBkb2Vz
bid0CiAgICAgICAgIC8vIG1ha2UgYW55IHNlbnNlLgotICAgICAgICBpZiAoIWlzRnVsbE51bWJl
clNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSkpIHsKKyAgICAgICAgaWYgKCFpc051bWJlclNwZWN1
bGF0aW9uKHByZWRpY3Rpb24oKSkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBtYXkgZW5k
IHVwIGZvcmNpbmcgYSBsb2NhbCBpbiBpbmxpbmVkIGFyZ3VtZW50IHBvc2l0aW9uIHRvIGJlIGEg
ZG91YmxlIGV2ZW4KICAgICAgICAgICAgIC8vIGlmIGl0IGlzIHNvbWV0aW1lcyBub3QgZXZlbiBu
dW1lcmljLCBzaW5jZSB0aGlzIG5ldmVyIHNpZ25hbHMgdGhlIGZhY3QgdGhhdCBpdCBkb2Vzbid0
CiAgICAgICAgICAgICAvLyB3YW50IGRvdWJsZXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDk1MTEKQEAgLTMzMyw5ICszMzMsNiBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc0ludDMyU3BlY3VsYXRpb24ocHJlZGljdGlvbikpCiAgICAgICAgICAgICByZXR1cm4g
Rmx1c2hlZEludDMyOwogICAgICAgICAKLSAgICAgICAgaWYgKGVuYWJsZUludDUyKCkgJiYgIW9w
ZXJhbmRJc0FyZ3VtZW50KG1fbG9jYWwpICYmIGlzTWFjaGluZUludFNwZWN1bGF0aW9uKHByZWRp
Y3Rpb24pKQotICAgICAgICAgICAgcmV0dXJuIEZsdXNoZWRJbnQ1MjsKLSAgICAgICAgCiAgICAg
ICAgIGlmIChpc0NlbGxTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAgICAgIHJldHVy
biBGbHVzaGVkQ2VsbDsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENBcmd1bWVudEdldHRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENBcmd1bWVudEdldHRlci5jcHAKaW5kZXggYWM1ODU4YTEyNDJjMmNiOGNhYWY1MDM2YTE2
NGExNmQ1ODYyOGFiMC4uNTQwM2ViM2Q5ZjQ2OGM5MjA2M2FiNTMxODkwMjFjN2QzZjExYjk3NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDQXJndW1lbnRHZXR0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ0FyZ3VtZW50R2V0dGVyLmNw
cApAQCAtMzIsMjMgKzMyLDEzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAog
dXNpbmcgbmFtZXNwYWNlIERGRzsKIAotdm9pZCBDQXJndW1lbnRHZXR0ZXI6OmxvYWROZXh0QW5k
Qm94KAotICAgIFZhbHVlRm9ybWF0IGZvcm1hdCwgR1BSUmVnIGRlc3RpbmF0aW9uLCBHUFJSZWcg
c2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMikKK3ZvaWQgQ0FyZ3VtZW50R2V0dGVyOjpsb2FkTmV4
dEFuZEJveChWYWx1ZUZvcm1hdCBmb3JtYXQsIEdQUlJlZyBkZXN0aW5hdGlvbiwgR1BSUmVnIHNj
cmF0Y2gpCiB7Ci0gICAgaWYgKHNjcmF0Y2gxID09IEludmFsaWRHUFJSZWcpIHsKLSAgICAgICAg
QVNTRVJUKHNjcmF0Y2gyID09IEludmFsaWRHUFJSZWcpOworICAgIGlmIChzY3JhdGNoID09IElu
dmFsaWRHUFJSZWcpIHsKICAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IEdQUkluZm86Om5vbkFy
Z0dQUjApCi0gICAgICAgICAgICBzY3JhdGNoMSA9IEdQUkluZm86Om5vbkFyZ0dQUjE7CisgICAg
ICAgICAgICBzY3JhdGNoID0gR1BSSW5mbzo6bm9uQXJnR1BSMTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgc2NyYXRjaDEgPSBHUFJJbmZvOjpub25BcmdHUFIwOwotICAgIH0KLSAgICBpZiAo
c2NyYXRjaDIgPT0gSW52YWxpZEdQUlJlZykgewotICAgICAgICBpZiAoZGVzdGluYXRpb24gIT0g
R1BSSW5mbzo6bm9uQXJnR1BSMCAmJiBzY3JhdGNoMSAhPSBHUFJJbmZvOjpub25BcmdHUFIwKQot
ICAgICAgICAgICAgc2NyYXRjaDIgPSBHUFJJbmZvOjpub25BcmdHUFIwOwotICAgICAgICBlbHNl
IGlmIChkZXN0aW5hdGlvbiAhPSBHUFJJbmZvOjpub25BcmdHUFIxICYmIHNjcmF0Y2gxICE9IEdQ
UkluZm86Om5vbkFyZ0dQUjEpCi0gICAgICAgICAgICBzY3JhdGNoMiA9IEdQUkluZm86Om5vbkFy
Z0dQUjE7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcmF0Y2gyID0gR1BSSW5mbzo6bm9u
QXJnR1BSMjsKKyAgICAgICAgICAgIHNjcmF0Y2ggPSBHUFJJbmZvOjpub25BcmdHUFIwOwogICAg
IH0KICAgICAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewpAQCAtNjAsMjYgKzUwLDIxIEBAIHZvaWQg
Q0FyZ3VtZW50R2V0dGVyOjpsb2FkTmV4dEFuZEJveCgKICAgICAgICAgICAgIAogICAgIGNhc2Ug
VmFsdWVGb3JtYXRVSW50MzI6IHsKICAgICAgICAgbG9hZE5leHQzMihkZXN0aW5hdGlvbik7Ci0g
ICAgICAgIG1faml0Lm1vdmVEb3VibGVUbzY0KEZQUkluZm86OmZwUmVnVDAsIHNjcmF0Y2gyKTsK
LSAgICAgICAgbV9qaXQuYm94SW50NTIoZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uLCBzY3JhdGNo
MSwgRlBSSW5mbzo6ZnBSZWdUMCk7Ci0gICAgICAgIG1faml0Lm1vdmU2NFRvRG91YmxlKHNjcmF0
Y2gyLCBGUFJJbmZvOjpmcFJlZ1QwKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAgICAK
LSAgICBjYXNlIFZhbHVlRm9ybWF0SW50NTI6IHsKLSAgICAgICAgbG9hZE5leHQ2NChkZXN0aW5h
dGlvbik7Ci0gICAgICAgIG1faml0LnJzaGlmdDY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBkZXN0aW5hdGlvbik7Ci0gICAgICAgIG1f
aml0Lm1vdmVEb3VibGVUbzY0KEZQUkluZm86OmZwUmVnVDAsIHNjcmF0Y2gyKTsKLSAgICAgICAg
bV9qaXQuYm94SW50NTIoZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uLCBzY3JhdGNoMSwgRlBSSW5m
bzo6ZnBSZWdUMCk7Ci0gICAgICAgIG1faml0Lm1vdmU2NFRvRG91YmxlKHNjcmF0Y2gyLCBGUFJJ
bmZvOjpmcFJlZ1QwKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBpc0ludCA9IG1faml0LmJyYW5jaDMyKAorICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkdyZWF0ZXJUaGFuT3JFcXVhbCwKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApKTsKICAgICAgICAgICAgIAotICAgIGNhc2UgVmFs
dWVGb3JtYXRTdHJpY3RJbnQ1MjogewotICAgICAgICBsb2FkTmV4dDY0KGRlc3RpbmF0aW9uKTsK
LSAgICAgICAgbV9qaXQubW92ZURvdWJsZVRvNjQoRlBSSW5mbzo6ZnBSZWdUMCwgc2NyYXRjaDIp
OwotICAgICAgICBtX2ppdC5ib3hJbnQ1MihkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24sIHNjcmF0
Y2gxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKLSAgICAgICAgbV9qaXQubW92ZTY0VG9Eb3VibGUoc2Ny
YXRjaDIsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBtX2ppdC5tb3ZlRG91YmxlVG82NChG
UFJJbmZvOjpmcFJlZ1QwLCBzY3JhdGNoKTsKKyAgICAgICAgbV9qaXQuY29udmVydEludDMyVG9E
b3VibGUoZGVzdGluYXRpb24sIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBtX2ppdC5ib3hE
b3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgZGVzdGluYXRpb24pOworICAgICAgICBtX2ppdC5tb3Zl
NjRUb0RvdWJsZShzY3JhdGNoLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIAorICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworICAgICAgICAg
ICAgCisgICAgICAgIGlzSW50LmxpbmsoJm1faml0KTsKKyAgICAgICAgbV9qaXQub3I2NChHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIGRlc3RpbmF0aW9uKTsKKyAgICAgICAgICAgIAor
ICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAg
ICAgICAgCkBAIC05NSwxMCArODAsMTAgQEAgdm9pZCBDQXJndW1lbnRHZXR0ZXI6OmxvYWROZXh0
QW5kQm94KAogICAgIH0KICAgICAgICAgICAgIAogICAgIGNhc2UgVmFsdWVGb3JtYXREb3VibGU6
IHsKLSAgICAgICAgbV9qaXQubW92ZURvdWJsZVRvNjQoRlBSSW5mbzo6ZnBSZWdUMCwgc2NyYXRj
aDEpOworICAgICAgICBtX2ppdC5tb3ZlRG91YmxlVG82NChGUFJJbmZvOjpmcFJlZ1QwLCBzY3Jh
dGNoKTsKICAgICAgICAgbG9hZE5leHREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAg
IG1faml0LmJveERvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBkZXN0aW5hdGlvbik7Ci0gICAgICAg
IG1faml0Lm1vdmU2NFRvRG91YmxlKHNjcmF0Y2gxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAg
ICAgbV9qaXQubW92ZTY0VG9Eb3VibGUoc2NyYXRjaCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDQXJndW1lbnRHZXR0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ0FyZ3VtZW50R2V0dGVyLmgKaW5kZXggZjgwZmZjYzg3ZjA3ZTYwOTQ2NzMzMzky
ZjhlOTA5YTY2YWY3YmJiNy4uMThmYmIwMjFmOGIxY2I4MGJiNzE5OTE1MGZjMDQ4NjAwNDFjNGNi
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDQXJndW1lbnRHZXR0
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENBcmd1bWVudEdldHRlci5o
CkBAIC0xMTUsOCArMTE1LDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICB2b2lkIGxvYWRO
ZXh0QW5kQm94KAotICAgICAgICBWYWx1ZUZvcm1hdCwgREZHOjpHUFJSZWcgZGVzdGluYXRpb24s
Ci0gICAgICAgIERGRzo6R1BSUmVnIHNjcmF0Y2gxID0gSW52YWxpZEdQUlJlZywgREZHOjpHUFJS
ZWcgc2NyYXRjaDIgPSBJbnZhbGlkR1BSUmVnKTsKKyAgICAgICAgVmFsdWVGb3JtYXQgZm9ybWF0
LCBERkc6OkdQUlJlZyBkZXN0aW5hdGlvbiwgREZHOjpHUFJSZWcgc2NyYXRjaCA9IEludmFsaWRH
UFJSZWcpOwogCiBwcml2YXRlOgogICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIG5leHRBZGRy
ZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApp
bmRleCA0YWQyNzVhNGMxZGIzNWZiODI2YWQzZjM0ZjExMTFhMzJlOTRmM2FhLi43OTYwNjY3NDgx
YTlkNWE2ZWZlOTI4OTI5NGJiYjg2M2RmZjg4M2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNjQsOCArMTY0LDYgQEAgaW5saW5lIENh
cGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb21wYXJlU3Ry
aWN0RXE6CiAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoSW50MzJVc2UpKQogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoTWFjaGlu
ZUludFVzZSkpCi0gICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5
VXNlS2luZChOdW1iZXJVc2UpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChub2Rl
LT5pc0JpbmFyeVVzZUtpbmQoT2JqZWN0VXNlKSkKQEAgLTE3Nyw4ICsxNzUsNiBAQCBpbmxpbmUg
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIENvbXBhcmVH
cmVhdGVyRXE6CiAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoSW50MzJVc2UpKQog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoTWFj
aGluZUludFVzZSkpCi0gICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKG5vZGUtPmlzQmlu
YXJ5VXNlS2luZChOdW1iZXJVc2UpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHJldHVy
biBDYW5ub3RDb21waWxlOwpAQCAtMjQwLDcgKzIzNiw2IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIFVudHlwZWRVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBJbnQzMlVzZToKICAgICAgICAgICAgICAgICBjYXNlIEtub3du
SW50MzJVc2U6Ci0gICAgICAgICAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOgogICAgICAgICAg
ICAgICAgIGNhc2UgTnVtYmVyVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgS25vd25OdW1iZXJV
c2U6CiAgICAgICAgICAgICAgICAgY2FzZSBSZWFsTnVtYmVyVXNlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCmluZGV4IDk1ZGM4MmNiOTRiMGJiMWIwOWYwMjI0
MzAxNjU0N2EyYjc3Y2ExYTYuLmI5MGM1Y2Y0YThkZmYzYjkzM2FkOTRjMWFjZmIyZWZjODYwNmRl
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKQEAgLTUz
LDkgKzUzLDYgQEAgdm9pZCBFeGl0VmFsdWU6OmR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mIG91
dCwgRHVtcENvbnRleHQqIGNvbnRleHQpIGNvbnN0CiAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3Rh
Y2tBc0ludDMyOgogICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFja0FzSW50MzIiKTsKICAgICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MjoKLSAgICAgICAg
b3V0LnByaW50KCJJbkpTU3RhY2tBc0ludDUyIik7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNl
IEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgogICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFj
a0FzRG91YmxlIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEV4aXRWYWx1ZS5oCmluZGV4IDBhYmFlMmNhNjU2ZjAxMTY4NjJiNTFkYTBmNWU5YTdjNmQzNzg1
NjYuLjU4MTRmYzlhODIzMDcxOWY3ZGNkNGM2YmNjNjg2MzYzNWM0Njg1NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaApAQCAtNDksNyArNDksNiBAQCBlbnVtIEV4
aXRWYWx1ZUtpbmQgewogICAgIEV4aXRWYWx1ZUNvbnN0YW50LAogICAgIEV4aXRWYWx1ZUluSlNT
dGFjaywKICAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyLAotICAgIEV4aXRWYWx1ZUluSlNT
dGFja0FzSW50NTIsCiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGUKIH07CiAKQEAgLTgz
LDEzICs4Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAg
Ci0gICAgc3RhdGljIEV4aXRWYWx1ZSBpbkpTU3RhY2tBc0ludDUyKCkKLSAgICB7Ci0gICAgICAg
IEV4aXRWYWx1ZSByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX2tpbmQgPSBFeGl0VmFsdWVJbkpT
U3RhY2tBc0ludDUyOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKICAgICBz
dGF0aWMgRXhpdFZhbHVlIGluSlNTdGFja0FzRG91YmxlKCkKICAgICB7CiAgICAgICAgIEV4aXRW
YWx1ZSByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmlu
c2ljUmVwb3NpdG9yeS5oCmluZGV4IDIzZDE1NDFmOTdlYTk2NzIyNTgzNzE1MGMyYTYyMDhiMDA3
Nzg1OTguLmM2NDZhZjQ1YWViNjFhNzdmOTliYWU1NTg0OGUyZTYyN2UzOWFjNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCkBA
IC0zOCwxMiArMzgsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKICNkZWZp
bmUgRk9SX0VBQ0hfRlRMX0lOVFJJTlNJQyhtYWNybykgXAogICAgIG1hY3JvKGFkZFdpdGhPdmVy
ZmxvdzMyLCAibGx2bS5zYWRkLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVj
dFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKLSAgICBt
YWNybyhhZGRXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc2FkZC53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1
bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwg
aW50NjQpKSBcCiAgICAgbWFjcm8oZG91YmxlQWJzLCAibGx2bS5mYWJzLmY2NCIsIGZ1bmN0aW9u
VHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAogICAgIG1hY3JvKG11bFdpdGhPdmVyZmxv
dzMyLCAibGx2bS5zbXVsLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5
cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKLSAgICBtYWNy
byhtdWxXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc211bC53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0
aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50
NjQpKSBcCiAgICAgbWFjcm8oc3ViV2l0aE92ZXJmbG93MzIsICJsbHZtLnNzdWIud2l0aC5vdmVy
Zmxvdy5pMzIiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDMyLCBib29s
ZWFuKSwgaW50MzIsIGludDMyKSkgXAotICAgIG1hY3JvKHN1YldpdGhPdmVyZmxvdzY0LCAibGx2
bS5zc3ViLndpdGgub3ZlcmZsb3cuaTY0IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250
ZXh0LCBpbnQ2NCwgYm9vbGVhbiksIGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyh0cmFwLCAi
bGx2bS50cmFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlKSkgXAogICAgIG1hY3JvKG9zckV4aXQs
ICJ3ZWJraXRfb3NyX2V4aXQiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGJvb2xlYW4sIGludDMy
LCBWYXJpYWRpYykpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAKaW5kZXggODk2MTRjYWIxZWQ0NzZkZTc5NTU5OTE3NTg1MjIzZjczZGViZTcw
MS4uM2JjMDg3NTc0YWM0Y2Y2ZjNjYjQ4YzQ3MmY0M2IwMTBmYzBmN2RkNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTE1MSw5ICsx
NTEsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDMyOgog
ICAgICAgICAgICAgICAgICAgICB0eXBlID0gbV9vdXQuaW50MzI7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDUyOgotICAgICAg
ICAgICAgICAgICAgICB0eXBlID0gbV9vdXQuaW50NjQ7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgTm9kZVJlc3VsdEJvb2xlYW46CiAgICAgICAgICAg
ICAgICAgICAgIHR5cGUgPSBtX291dC5ib29sZWFuOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTI0Miw2ICsyMzksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZVBoaSgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAg
ICAgIGNvbXBpbGVKU0NvbnN0YW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBXZWFrSlNDb25zdGFudDoKICAgICAgICAgICAgIGNvbXBpbGVXZWFrSlNDb25zdGFudCgpOwpA
QCAtNDYzLDkgKzQ2MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgSW50MzJVc2U6CiAgICAg
ICAgICAgICBtX291dC5zZXQobG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSksIGRlc3RpbmF0aW9u
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1hY2hpbmVJbnRVc2U6Ci0gICAg
ICAgICAgICBtX291dC5zZXQobG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSksIGRlc3RpbmF0aW9u
KTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEJvb2xlYW5Vc2U6CiAgICAgICAg
ICAgICBtX291dC5zZXQobG93Qm9vbGVhbihtX25vZGUtPmNoaWxkMSgpKSwgZGVzdGluYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC00OTIsOSArNDg3LDYgQEAgcHJpdmF0ZToKICAgICAg
ICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAgICAgICAgICBzZXRJbnQzMihtX291dC5nZXQo
c291cmNlKSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOb2RlUmVzdWx0SW50
NTI6Ci0gICAgICAgICAgICBzZXRJbnQ1MihtX291dC5nZXQoc291cmNlKSk7Ci0gICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0Qm9vbGVhbjoKICAgICAgICAgICAgIHNl
dEJvb2xlYW4obV9vdXQuZ2V0KHNvdXJjZSkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC01OTks
MTMgKzU5MSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgICAgIAotICAgICAgICBjYXNlIEZsdXNoZWRJbnQ1MjogewotICAgICAgICAgICAgTFZh
bHVlIHZhbHVlID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBtX291
dC5zdG9yZTY0KHZhbHVlLCBhZGRyZXNzRm9yKHZhcmlhYmxlLT5sb2NhbCgpKSk7Ci0gICAgICAg
ICAgICBtX3ZhbHVlU291cmNlcy5vcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpKSA9IFZhbHVlU291
cmNlKEludDUySW5KU1N0YWNrKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICAgICAgCiAgICAgICAgIGNhc2UgRmx1c2hlZENlbGw6IHsKICAgICAgICAgICAgIExWYWx1
ZSB2YWx1ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBtX291dC5z
dG9yZTY0KHZhbHVlLCBhZGRyZXNzRm9yKHZhcmlhYmxlLT5sb2NhbCgpKSk7CkBAIC02NzAsMjQg
KzY1NSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICAgICAgaWYgKCFt
X3N0YXRlLmZvck5vZGUobV9ub2RlLT5jaGlsZDEoKSkuY291bGRCZVR5cGUoU3BlY0ludDUyKQot
ICAgICAgICAgICAgICAgICYmICFtX3N0YXRlLmZvck5vZGUobV9ub2RlLT5jaGlsZDIoKSkuY291
bGRCZVR5cGUoU3BlY0ludDUyKSkgewotICAgICAgICAgICAgICAgIEludDUyS2luZCBraW5kOwot
ICAgICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93V2hpY2hldmVySW50NTIobV9ub2RlLT5j
aGlsZDEoKSwga2luZCk7Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIo
bV9ub2RlLT5jaGlsZDIoKSwga2luZCk7Ci0gICAgICAgICAgICAgICAgc2V0SW50NTIobV9vdXQu
YWRkKGxlZnQsIHJpZ2h0KSwga2luZCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SW50NTIo
bV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQ1Miht
X25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5hZGRX
aXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJP
dmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7Ci0g
ICAgICAgICAgICBzZXRJbnQ1MihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVt
YmVyVXNlOiB7CiAgICAgICAgICAgICBzZXREb3VibGUoCiAgICAgICAgICAgICAgICAgbV9vdXQu
ZG91YmxlQWRkKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+
Y2hpbGQyKCkpKSk7CkBAIC03MTgsMjQgKzY4NSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgTWFjaGluZUludFVz
ZTogewotICAgICAgICAgICAgaWYgKCFtX3N0YXRlLmZvck5vZGUobV9ub2RlLT5jaGlsZDEoKSku
Y291bGRCZVR5cGUoU3BlY0ludDUyKQotICAgICAgICAgICAgICAgICYmICFtX3N0YXRlLmZvck5v
ZGUobV9ub2RlLT5jaGlsZDIoKSkuY291bGRCZVR5cGUoU3BlY0ludDUyKSkgewotICAgICAgICAg
ICAgICAgIEludDUyS2luZCBraW5kOwotICAgICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
V2hpY2hldmVySW50NTIobV9ub2RlLT5jaGlsZDEoKSwga2luZCk7Ci0gICAgICAgICAgICAgICAg
TFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSwga2luZCk7Ci0gICAgICAg
ICAgICAgICAgc2V0SW50NTIobV9vdXQuc3ViKGxlZnQsIHJpZ2h0KSwga2luZCk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IExWYWx1ZSBsZWZ0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBM
VmFsdWUgcmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7Ci0gICAg
ICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRy
YWN0VmFsdWUocmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICBzZXRJbnQ1MihtX291dC5leHRyYWN0
VmFsdWUocmVzdWx0LCAwKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgTnVtYmVyVXNlOiB7CiAgICAgICAgICAgICBzZXREb3VibGUo
CiAgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlU3ViKGxvd0RvdWJsZShtX25vZGUtPmNoaWxk
MSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CkBAIC03ODEsMzIgKzczMCw2IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCi0g
ICAgICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICAgICAgSW50NTJLaW5kIGtpbmQ7
Ci0gICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1doaWNoZXZlckludDUyKG1fbm9kZS0+Y2hp
bGQxKCksIGtpbmQpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2Rl
LT5jaGlsZDIoKSwgb3Bwb3NpdGUoa2luZCkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBM
VmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5tdWxXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdo
dCk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBt
X291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoIWJ5dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG1f
bm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBz
bG93Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNdWwgc2xvdyBjYXNlIikpOwot
ICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhNdWwgY29udGludWF0aW9uIikpOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvNjQocmVzdWx0KSwgY29udGlu
dWF0aW9uLCBzbG93Q2FzZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9u
KTsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAs
IG1fb3V0Lmxlc3NUaGFuKGxlZnQsIG1fb3V0LmludDY0WmVybykpOwotICAgICAgICAgICAgICAg
IHNwZWN1bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQubGVzc1RoYW4ocmln
aHQsIG1fb3V0LmludDY0WmVybykpOwotICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKLSAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxh
c3ROZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0SW50
NTIocmVzdWx0KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKICAgICAgICAgICAgIHNldERvdWJsZSgKICAgICAg
ICAgICAgICAgICBtX291dC5kb3VibGVNdWwobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpLCBs
b3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKQEAgLTExMDksMjYgKzEwMzIsNiBAQCBwcml2
YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAg
ICBjYXNlIE1hY2hpbmVJbnRVc2U6IHsKLSAgICAgICAgICAgIGlmICghbV9zdGF0ZS5mb3JOb2Rl
KG1fbm9kZS0+Y2hpbGQxKCkpLmNvdWxkQmVUeXBlKFNwZWNJbnQ1MikpIHsKLSAgICAgICAgICAg
ICAgICBJbnQ1MktpbmQga2luZDsKLSAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dX
aGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKLSAgICAgICAgICAgICAgICBM
VmFsdWUgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoIWJ5
dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpCi0g
ICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwg
bV9vdXQuaXNaZXJvNjQocmVzdWx0KSk7Ci0gICAgICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0
LCBraW5kKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDEo
KSk7Ci0gICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5zdWJXaXRoT3Zl
cmZsb3c2NChtX291dC5pbnQ2NFplcm8sIHZhbHVlKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShJ
bnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jl
c3VsdCwgMSkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1
ZShvdmVyZmxvd1Jlc3VsdCwgMCk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJv
LCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3VsdCkpOwotICAgICAgICAgICAgc2V0
SW50NTIocmVzdWx0KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKICAgICAgICAgICAgIHNldERvdWJsZShtX291
dC5kb3VibGVOZWcobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTE1NzAsNyArMTQ3Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgTFZh
bHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAgIGRvdWJsZVZhbHVl
KHZhbHVlKSwgY2hpbGQzLCBTcGVjRnVsbFJlYWxOdW1iZXIsCisgICAgICAgICAgICAgICAgICAg
IGRvdWJsZVZhbHVlKHZhbHVlKSwgY2hpbGQzLCBTcGVjUmVhbE51bWJlciwKICAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZCh2YWx1ZSwgdmFsdWUpKTsK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBUeXBlZFBvaW50ZXIgZWxlbWVudFBv
aW50ZXIgPSBtX291dC5iYXNlSW5kZXgoCkBAIC0xODA1LDcgKzE3MDgsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY29tcGlsZUNvbXBhcmVFcSgpCiAgICAgewogICAgICAgICBpZiAobV9ub2RlLT5p
c0JpbmFyeVVzZUtpbmQoSW50MzJVc2UpCi0gICAgICAgICAgICB8fCBtX25vZGUtPmlzQmluYXJ5
VXNlS2luZChNYWNoaW5lSW50VXNlKQogICAgICAgICAgICAgfHwgbV9ub2RlLT5pc0JpbmFyeVVz
ZUtpbmQoTnVtYmVyVXNlKQogICAgICAgICAgICAgfHwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQo
T2JqZWN0VXNlKSkgewogICAgICAgICAgICAgY29tcGlsZUNvbXBhcmVTdHJpY3RFcSgpOwpAQCAt
MTgzMiwxNCArMTczNCw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChNYWNoaW5l
SW50VXNlKSkgewotICAgICAgICAgICAgSW50NTJLaW5kIGtpbmQ7Ci0gICAgICAgICAgICBMVmFs
dWUgbGVmdCA9IGxvd1doaWNoZXZlckludDUyKG1fbm9kZS0+Y2hpbGQxKCksIGtpbmQpOwotICAg
ICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSwga2luZCk7
Ci0gICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmVxdWFsKGxlZnQsIHJpZ2h0KSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmIChtX25vZGUt
PmlzQmluYXJ5VXNlS2luZChOdW1iZXJVc2UpKSB7CiAgICAgICAgICAgICBzZXRCb29sZWFuKAog
ICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUVxdWFsKGxvd0RvdWJsZShtX25vZGUtPmNoaWxk
MSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CkBAIC0xODg4LDE0ICsxNzgyLDYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKE1hY2hpbmVJbnRVc2UpKSB7Ci0gICAg
ICAgICAgICBJbnQ1MktpbmQga2luZDsKLSAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93V2hp
Y2hldmVySW50NTIobV9ub2RlLT5jaGlsZDEoKSwga2luZCk7Ci0gICAgICAgICAgICBMVmFsdWUg
cmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMigpLCBraW5kKTsKLSAgICAgICAgICAgIHNl
dEJvb2xlYW4obV9vdXQubGVzc1RoYW4obGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VL
aW5kKE51bWJlclVzZSkpIHsKICAgICAgICAgICAgIHNldEJvb2xlYW4oCiAgICAgICAgICAgICAg
ICAgbV9vdXQuZG91YmxlTGVzc1RoYW4obG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dE
b3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKQEAgLTE5MTMsMTQgKzE3OTksNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAo
bV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoTWFjaGluZUludFVzZSkpIHsKLSAgICAgICAgICAgIElu
dDUyS2luZCBraW5kOwotICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGljaGV2ZXJJbnQ1
MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKLSAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxv
d0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIGtpbmQpOwotICAgICAgICAgICAgc2V0Qm9vbGVhbiht
X291dC5sZXNzVGhhbk9yRXF1YWwobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5k
KE51bWJlclVzZSkpIHsKICAgICAgICAgICAgIHNldEJvb2xlYW4oCiAgICAgICAgICAgICAgICAg
bV9vdXQuZG91YmxlTGVzc1RoYW5PckVxdWFsKApAQCAtMTkzOSwxNCArMTgxNyw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlm
IChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChNYWNoaW5lSW50VXNlKSkgewotICAgICAgICAgICAg
SW50NTJLaW5kIGtpbmQ7Ci0gICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1doaWNoZXZlcklu
dDUyKG1fbm9kZS0+Y2hpbGQxKCksIGtpbmQpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0g
bG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSwga2luZCk7Ci0gICAgICAgICAgICBzZXRCb29sZWFu
KG1fb3V0LmdyZWF0ZXJUaGFuKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChO
dW1iZXJVc2UpKSB7CiAgICAgICAgICAgICBzZXRCb29sZWFuKAogICAgICAgICAgICAgICAgIG1f
b3V0LmRvdWJsZUdyZWF0ZXJUaGFuKApAQCAtMTk2NiwxNCArMTgzNiw2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmIChtX25v
ZGUtPmlzQmluYXJ5VXNlS2luZChNYWNoaW5lSW50VXNlKSkgewotICAgICAgICAgICAgSW50NTJL
aW5kIGtpbmQ7Ci0gICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1doaWNoZXZlckludDUyKG1f
bm9kZS0+Y2hpbGQxKCksIGtpbmQpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50
NTIobV9ub2RlLT5jaGlsZDIoKSwga2luZCk7Ci0gICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0
LmdyZWF0ZXJUaGFuT3JFcXVhbChsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQo
TnVtYmVyVXNlKSkgewogICAgICAgICAgICAgc2V0Qm9vbGVhbigKICAgICAgICAgICAgICAgICBt
X291dC5kb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwoCkBAIC0yNDkwLDI3ICsyMzUyLDEwIEBAIHBy
aXZhdGU6CiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFs
T3BlcmFuZFNwZWN1bGF0aW9uIHx8IChlZGdlLnVzZUtpbmQoKSA9PSBJbnQzMlVzZSB8fCBlZGdl
LnVzZUtpbmQoKSA9PSBLbm93bkludDMyVXNlKSk7CiAgICAgICAgIAotICAgICAgICBpZiAoZWRn
ZS0+aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG1fZ3JhcGgu
dmFsdWVPZkpTQ29uc3RhbnQoZWRnZS5ub2RlKCkpOwotICAgICAgICAgICAgaWYgKCF2YWx1ZS5p
c0ludDMyKCkpIHsKLSAgICAgICAgICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOwotICAg
ICAgICAgICAgICAgIHJldHVybiBtX291dC5pbnQzMlplcm87Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICByZXR1cm4gbV9vdXQuY29uc3RJbnQzMih2YWx1ZS5hc0ludDMyKCkpOwotICAgICAg
ICB9Ci0gICAgICAgIAogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9pbnQzMlZh
bHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAg
ICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUoKTsKICAgICAgICAgCi0gICAgICAgIHZhbHVlID0g
bV9zdHJpY3RJbnQ1MlZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwotICAgICAgICBpZiAoaXNWYWxp
ZCh2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gc3RyaWN0SW50NTJUb0ludDMyKGVkZ2UsIHZh
bHVlLnZhbHVlKCkpOwotICAgICAgICAKLSAgICAgICAgdmFsdWUgPSBtX2ludDUyVmFsdWVzLmdl
dChlZGdlLm5vZGUoKSk7Ci0gICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAgICAgICAgICAg
IHJldHVybiBzdHJpY3RJbnQ1MlRvSW50MzIoZWRnZSwgaW50NTJUb1N0cmljdEludDUyKHZhbHVl
LnZhbHVlKCkpKTsKLSAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVzLmdl
dChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAgICAg
ICAgTFZhbHVlIGJveGVkUmVzdWx0ID0gdmFsdWUudmFsdWUoKTsKQEAgLTI1MjYsMTIyICsyMzcx
LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX291dC5pbnQzMlplcm87CiAgICAgfQog
ICAgIAotICAgIGVudW0gSW50NTJLaW5kIHsgU3RyaWN0SW50NTIsIEludDUyIH07Ci0gICAgTFZh
bHVlIGxvd0ludDUyKEVkZ2UgZWRnZSwgSW50NTJLaW5kIGtpbmQsIE9wZXJhbmRTcGVjdWxhdGlv
bk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKLSAgICB7Ci0gICAgICAg
IEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwg
ZWRnZS51c2VLaW5kKCkgPT0gTWFjaGluZUludFVzZSk7Ci0gICAgICAgIAotICAgICAgICBpZiAo
ZWRnZS0+aGFzQ29uc3RhbnQoKSkgewotICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG1fZ3Jh
cGgudmFsdWVPZkpTQ29uc3RhbnQoZWRnZS5ub2RlKCkpOwotICAgICAgICAgICAgaWYgKCF2YWx1
ZS5pc01hY2hpbmVJbnQoKSkgewotICAgICAgICAgICAgICAgIHRlcm1pbmF0ZShVbmNvdW50YWJs
ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmludDY0WmVybzsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGludDY0X3QgcmVzdWx0ID0gdmFsdWUuYXNNYWNoaW5lSW50KCk7Ci0g
ICAgICAgICAgICBpZiAoa2luZCA9PSBJbnQ1MikKLSAgICAgICAgICAgICAgICByZXN1bHQgPDw9
IEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQ7Ci0gICAgICAgICAgICByZXR1cm4gbV9vdXQuY29u
c3RJbnQ2NChyZXN1bHQpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBMb3dlcmVkTm9k
ZVZhbHVlIHZhbHVlOwotICAgICAgICAKLSAgICAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgICAg
IGNhc2UgSW50NTI6Ci0gICAgICAgICAgICB2YWx1ZSA9IG1faW50NTJWYWx1ZXMuZ2V0KGVkZ2Uu
bm9kZSgpKTsKLSAgICAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdmFsdWUudmFsdWUoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmFsdWUg
PSBtX3N0cmljdEludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAgICBpZiAo
aXNWYWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmljdEludDUyVG9JbnQ1
Mih2YWx1ZS52YWx1ZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAg
ICAgIGNhc2UgU3RyaWN0SW50NTI6Ci0gICAgICAgICAgICB2YWx1ZSA9IG1fc3RyaWN0SW50NTJW
YWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKLSAgICAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUoKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgdmFsdWUgPSBtX2ludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0gICAgICAg
ICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGludDUyVG9T
dHJpY3RJbnQ1Mih2YWx1ZS52YWx1ZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIAotICAgICAgICB2YWx1ZSA9IG1faW50MzJWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgp
KTsKLSAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gc2V0
SW50NTJXaXRoU3RyaWN0VmFsdWUoCi0gICAgICAgICAgICAgICAgZWRnZS5ub2RlKCksIG1fb3V0
LnNpZ25FeHQodmFsdWUudmFsdWUoKSwgbV9vdXQuaW50NjQpLCBraW5kKTsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIShtX3N0YXRlLmZvck5vZGUoZWRnZSku
bV90eXBlICYgU3BlY0ludDUyKSk7Ci0gICAgICAgIAotICAgICAgICB2YWx1ZSA9IG1fanNWYWx1
ZVZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwotICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsK
LSAgICAgICAgICAgIExWYWx1ZSBib3hlZFJlc3VsdCA9IHZhbHVlLnZhbHVlKCk7Ci0gICAgICAg
ICAgICBGVExfVFlQRV9DSEVDSygKLSAgICAgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoYm94ZWRS
ZXN1bHQpLCBlZGdlLCBTcGVjTWFjaGluZUludCwgaXNOb3RJbnQzMihib3hlZFJlc3VsdCkpOwot
ICAgICAgICAgICAgcmV0dXJuIHNldEludDUyV2l0aFN0cmljdFZhbHVlKAotICAgICAgICAgICAg
ICAgIGVkZ2Uubm9kZSgpLCBtX291dC5zaWduRXh0KHVuYm94SW50MzIoYm94ZWRSZXN1bHQpLCBt
X291dC5pbnQ2NCksIGtpbmQpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBSRUxFQVNF
X0FTU0VSVCghKG1fc3RhdGUuZm9yTm9kZShlZGdlKS5tX3R5cGUgJiBTcGVjTWFjaGluZUludCkp
OwotICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOwotICAgICAgICByZXR1cm4gbV9vdXQu
aW50NjRaZXJvOwotICAgIH0KLSAgICAKLSAgICBMVmFsdWUgbG93SW50NTIoRWRnZSBlZGdlLCBP
cGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24p
Ci0gICAgewotICAgICAgICByZXR1cm4gbG93SW50NTIoZWRnZSwgSW50NTIsIG1vZGUpOwotICAg
IH0KLSAgICAKLSAgICBMVmFsdWUgbG93U3RyaWN0SW50NTIoRWRnZSBlZGdlLCBPcGVyYW5kU3Bl
Y3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCi0gICAgewot
ICAgICAgICByZXR1cm4gbG93SW50NTIoZWRnZSwgU3RyaWN0SW50NTIsIG1vZGUpOwotICAgIH0K
LSAgICAKLSAgICBib29sIGJldHRlclVzZVN0cmljdEludDUyKE5vZGUqIG5vZGUpCi0gICAgewot
ICAgICAgICByZXR1cm4gIWlzVmFsaWQobV9pbnQ1MlZhbHVlcy5nZXQobm9kZSkpOwotICAgIH0K
LSAgICBib29sIGJldHRlclVzZVN0cmljdEludDUyKEVkZ2UgZWRnZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBiZXR0ZXJVc2VTdHJpY3RJbnQ1MihlZGdlLm5vZGUoKSk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgSW50NTJLaW5kIGJlc3RJbnQ1MktpbmQoVCBub2RlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGJldHRlclVzZVN0cmljdEludDUyKG5vZGUpID8gU3RyaWN0
SW50NTIgOiBJbnQ1MjsKLSAgICB9Ci0gICAgSW50NTJLaW5kIG9wcG9zaXRlKEludDUyS2luZCBr
aW5kKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgICAgIGNhc2UgSW50NTI6
Ci0gICAgICAgICAgICByZXR1cm4gU3RyaWN0SW50NTI7Ci0gICAgICAgIGNhc2UgU3RyaWN0SW50
NTI6Ci0gICAgICAgICAgICByZXR1cm4gSW50NTI7Ci0gICAgICAgIH0KLSAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgCi0gICAgTFZhbHVlIGxvd1doaWNo
ZXZlckludDUyKEVkZ2UgZWRnZSwgSW50NTJLaW5kJiBraW5kLCBPcGVyYW5kU3BlY3VsYXRpb25N
b2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCi0gICAgewotICAgICAgICBr
aW5kID0gYmVzdEludDUyS2luZChlZGdlKTsKLSAgICAgICAgcmV0dXJuIGxvd0ludDUyKGVkZ2Us
IGtpbmQsIG1vZGUpOwotICAgIH0KLSAgICAKICAgICBMVmFsdWUgbG93Q2VsbChFZGdlIGVkZ2Us
IE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlv
bikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24gfHwgaXNDZWxsKGVkZ2UudXNlS2luZCgpKSk7CiAgICAgICAgIAotICAg
ICAgICBpZiAoZWRnZS0+b3AoKSA9PSBKU0NvbnN0YW50KSB7Ci0gICAgICAgICAgICBKU1ZhbHVl
IHZhbHVlID0gbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChlZGdlLm5vZGUoKSk7Ci0gICAgICAg
ICAgICBpZiAoIXZhbHVlLmlzQ2VsbCgpKSB7Ci0gICAgICAgICAgICAgICAgdGVybWluYXRlKFVu
Y291bnRhYmxlKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9vdXQuaW50UHRyWmVybzsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBtX291dC5jb25zdEludFB0cih2YWx1ZS5h
c0NlbGwoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUg
dmFsdWUgPSBtX2pzVmFsdWVWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlz
VmFsaWQodmFsdWUpKSB7CiAgICAgICAgICAgICBMVmFsdWUgdW5jaGVja2VkVmFsdWUgPSB2YWx1
ZS52YWx1ZSgpOwpAQCAtMjY4NiwxNSArMjQxOSw2IEBAIHByaXZhdGU6CiAgICAgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8
IGVkZ2UudXNlS2luZCgpID09IEJvb2xlYW5Vc2UpOwogICAgICAgICAKLSAgICAgICAgaWYgKGVk
Z2UtPmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBtX2dyYXBo
LnZhbHVlT2ZKU0NvbnN0YW50KGVkZ2Uubm9kZSgpKTsKLSAgICAgICAgICAgIGlmICghdmFsdWUu
aXNCb29sZWFuKCkpIHsKLSAgICAgICAgICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5ib29sZWFuRmFsc2U7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXR1cm4gbV9vdXQuY29uc3RCb29sKHZhbHVlLmFzQm9vbGVhbigpKTsK
LSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1f
Ym9vbGVhblZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1
ZSkpCiAgICAgICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUoKTsKQEAgLTI3MTgsMTUgKzI0NDIs
NiBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09
IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBpc0RvdWJsZShlZGdlLnVzZUtpbmQoKSkpOwog
ICAgICAgICAKLSAgICAgICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAg
IEpTVmFsdWUgdmFsdWUgPSBtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KGVkZ2Uubm9kZSgpKTsK
LSAgICAgICAgICAgIGlmICghdmFsdWUuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgICAgIHRl
cm1pbmF0ZShVbmNvdW50YWJsZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmRvdWJs
ZVplcm87Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gbV9vdXQuY29uc3REb3Vi
bGUodmFsdWUuYXNOdW1iZXIoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIExvd2Vy
ZWROb2RlVmFsdWUgdmFsdWUgPSBtX2RvdWJsZVZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAg
ICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUo
KTsKQEAgLTI3MzgsMTQgKzI0NTMsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgdmFsdWUgPSBtX3N0cmljdEludDUy
VmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0gICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAg
ICAgICAgICAgIHJldHVybiBzdHJpY3RJbnQ1MlRvRG91YmxlKGVkZ2UsIHZhbHVlLnZhbHVlKCkp
OwotICAgICAgICAKLSAgICAgICAgdmFsdWUgPSBtX2ludDUyVmFsdWVzLmdldChlZGdlLm5vZGUo
KSk7Ci0gICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBzdHJp
Y3RJbnQ1MlRvRG91YmxlKGVkZ2UsIGludDUyVG9TdHJpY3RJbnQ1Mih2YWx1ZS52YWx1ZSgpKSk7
Ci0gICAgICAgIAogICAgICAgICB2YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQoZWRnZS5ub2Rl
KCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBi
b3hlZFJlc3VsdCA9IHZhbHVlLnZhbHVlKCk7CkBAIC0yNzY1LDcgKzI0NzIsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG91YmxlQ2FzZSwgY29udGludWF0aW9uKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAg
ICAganNWYWx1ZVZhbHVlKGJveGVkUmVzdWx0KSwgZWRnZSwgU3BlY0Z1bGxOdW1iZXIsIGlzQ2Vs
bE9yTWlzYyhib3hlZFJlc3VsdCkpOworICAgICAgICAgICAgICAgIGpzVmFsdWVWYWx1ZShib3hl
ZFJlc3VsdCksIGVkZ2UsIFNwZWNOdW1iZXIsIGlzQ2VsbE9yTWlzYyhib3hlZFJlc3VsdCkpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayB1bmJveGVkRG91YmxlID0g
bV9vdXQuYW5jaG9yKHVuYm94RG91YmxlKGJveGVkUmVzdWx0KSk7CiAgICAgICAgICAgICBtX291
dC5qdW1wKGNvbnRpbnVhdGlvbik7CkBAIC0yNzc4LDcgKzI0ODUsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgUkVM
RUFTRV9BU1NFUlQoIShtX3N0YXRlLmZvck5vZGUoZWRnZSkubV90eXBlICYgU3BlY0Z1bGxOdW1i
ZXIpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIShtX3N0YXRlLmZvck5vZGUoZWRnZSkubV90
eXBlICYgU3BlY051bWJlcikpOwogICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOwogICAg
ICAgICByZXR1cm4gbV9vdXQuZG91YmxlWmVybzsKICAgICB9CkBAIC0yNzg3LDkgKzI0OTQsNiBA
QCBwcml2YXRlOgogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1h
bnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKTsK
ICAgICAgICAgCi0gICAgICAgIGlmIChlZGdlLT5oYXNDb25zdGFudCgpKQotICAgICAgICAgICAg
cmV0dXJuIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKG1fZ3JhcGgudmFsdWVPZkpT
Q29uc3RhbnQoZWRnZS5ub2RlKCkpKSk7Ci0gICAgICAgIAogICAgICAgICBMb3dlcmVkTm9kZVZh
bHVlIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlm
IChpc1ZhbGlkKHZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiB2YWx1ZS52YWx1ZSgpOwpAQCAt
MjgwMSwxNCArMjUwNSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2YWx1ZSA9IG1fc3RyaWN0SW50NTJWYWx1ZXMu
Z2V0KGVkZ2Uubm9kZSgpKTsKLSAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQotICAgICAgICAg
ICAgcmV0dXJuIHN0cmljdEludDUyVG9KU1ZhbHVlKHZhbHVlLnZhbHVlKCkpOwotICAgICAgICAK
LSAgICAgICAgdmFsdWUgPSBtX2ludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0gICAgICAg
IGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBzdHJpY3RJbnQ1MlRvSlNW
YWx1ZShpbnQ1MlRvU3RyaWN0SW50NTIodmFsdWUudmFsdWUoKSkpOwotICAgICAgICAKICAgICAg
ICAgdmFsdWUgPSBtX2Jvb2xlYW5WYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYg
KGlzVmFsaWQodmFsdWUpKSB7CiAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gYm94Qm9vbGVh
bih2YWx1ZS52YWx1ZSgpKTsKQEAgLTI4MzgsNzcgKzI1MzQsNiBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBMVmFsdWUgc3RyaWN0SW50NTJUb0lu
dDMyKEVkZ2UgZWRnZSwgTFZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgTFZhbHVlIHJlc3Vs
dCA9IG1fb3V0LmNhc3RUb0ludDMyKHZhbHVlKTsKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCi0g
ICAgICAgICAgICBub1ZhbHVlKCksIGVkZ2UsIFNwZWNJbnQzMiwKLSAgICAgICAgICAgIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0LnNpZ25FeHQocmVzdWx0LCBtX291dC5pbnQ2NCksIHZhbHVlKSk7Ci0g
ICAgICAgIHNldEludDMyKGVkZ2Uubm9kZSgpLCByZXN1bHQpOwotICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgIH0KLSAgICAKLSAgICBMVmFsdWUgc3RyaWN0SW50NTJUb0RvdWJsZShFZGdlIGVk
Z2UsIExWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5p
bnRUb0RvdWJsZSh2YWx1ZSk7Ci0gICAgICAgIHNldERvdWJsZShlZGdlLm5vZGUoKSwgcmVzdWx0
KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgTFZhbHVlIHN0cmlj
dEludDUyVG9KU1ZhbHVlKExWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIExCYXNpY0Jsb2Nr
IGlzSW50MzIgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoInN0cmljdEludDUyVG9KU1ZhbHVlIGlz
SW50MzIgY2FzZSIpKTsKLSAgICAgICAgTEJhc2ljQmxvY2sgaXNEb3VibGUgPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoInN0cmljdEludDUyVG9KU1ZhbHVlIGlzRG91YmxlIGNhc2UiKSk7Ci0gICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgic3Ry
aWN0SW50NTJUb0pTVmFsdWUgY29udGludWF0aW9uIikpOwotICAgICAgICAKLSAgICAgICAgVmVj
dG9yPFZhbHVlRnJvbUJsb2NrLCAyPiByZXN1bHRzOwotICAgICAgICAgICAgCi0gICAgICAgIExW
YWx1ZSBpbnQzMlZhbHVlID0gbV9vdXQuY2FzdFRvSW50MzIodmFsdWUpOwotICAgICAgICBtX291
dC5icmFuY2goCi0gICAgICAgICAgICBtX291dC5lcXVhbChtX291dC5zaWduRXh0KGludDMyVmFs
dWUsIG1fb3V0LmludDY0KSwgdmFsdWUpLAotICAgICAgICAgICAgaXNJbnQzMiwgaXNEb3VibGUp
OwotICAgICAgICAKLSAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRU
byhpc0ludDMyLCBpc0RvdWJsZSk7Ci0gICAgICAgIAotICAgICAgICByZXN1bHRzLmFwcGVuZCht
X291dC5hbmNob3IoYm94SW50MzIoaW50MzJWYWx1ZSkpKTsKLSAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOwotICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNEb3VibGUs
IGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIAotICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5h
bmNob3IoYm94RG91YmxlKG1fb3V0LmludFRvRG91YmxlKHZhbHVlKSkpKTsKLSAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOwotICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8o
Y29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgIHJldHVybiBtX291dC5waGkobV9vdXQu
aW50NjQsIHJlc3VsdHMpOwotICAgIH0KLSAgICAKLSAgICBMVmFsdWUgc2V0SW50NTJXaXRoU3Ry
aWN0VmFsdWUoTm9kZSogbm9kZSwgTFZhbHVlIHZhbHVlLCBJbnQ1MktpbmQga2luZCkKLSAgICB7
Ci0gICAgICAgIHN3aXRjaCAoa2luZCkgewotICAgICAgICBjYXNlIFN0cmljdEludDUyOgotICAg
ICAgICAgICAgc2V0U3RyaWN0SW50NTIobm9kZSwgdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJu
IHZhbHVlOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgSW50NTI6Ci0gICAgICAgICAgICB2
YWx1ZSA9IHN0cmljdEludDUyVG9JbnQ1Mih2YWx1ZSk7Ci0gICAgICAgICAgICBzZXRJbnQ1Mihu
b2RlLCB2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biAwOwotICAgIH0KLQotICAgIExWYWx1ZSBzdHJpY3RJbnQ1MlRvSW50NTIoTFZhbHVlIHZhbHVl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fb3V0LnNobCh2YWx1ZSwgbV9vdXQuY29uc3RJbnQ2
NChKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSk7Ci0gICAgfQotICAgIAotICAgIExWYWx1ZSBp
bnQ1MlRvU3RyaWN0SW50NTIoTFZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
b3V0LmFTaHIodmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3Vu
dCkpOwotICAgIH0KLSAgICAKICAgICBMVmFsdWUgaXNOb3RJbnQzMihMVmFsdWUganNWYWx1ZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX291dC5iZWxvdyhqc1ZhbHVlLCBtX3RhZ1R5cGVOdW1i
ZXIpOwpAQCAtMzE2OSw3ICsyNzk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExW
YWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShlZGdlKTsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCi0g
ICAgICAgICAgICBkb3VibGVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNGdWxsUmVhbE51bWJlciwK
KyAgICAgICAgICAgIGRvdWJsZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY1JlYWxOdW1iZXIsCiAg
ICAgICAgICAgICBtX291dC5kb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKHZhbHVlLCB2YWx1ZSkp
OwogICAgIH0KICAgICAKQEAgLTMxNzcsNyArMjgwMiw3IEBAIHByaXZhdGU6CiAgICAgewogICAg
ICAgICBsb3dCb29sZWFuKGVkZ2UpOwogICAgIH0KLSAgICAKKwogICAgIGJvb2wgbWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRJc1N0aWxsVmFsaWQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fZ3JhcGgubWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRJc1N0aWxsVmFsaWQo
bV9ub2RlLT5jb2RlT3JpZ2luKTsKQEAgLTMzMDgsMTAgKzI5MzMsNiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIG1fdmFsdWVTb3VyY2VzW2ldID0gVmFsdWVTb3VyY2UoSW50MzJJbkpTU3Rh
Y2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgY2FzZSBGbHVzaGVkSW50NTI6Ci0gICAgICAgICAgICAgICAgbV92YWx1ZVNvdXJjZXNbaV0g
PSBWYWx1ZVNvdXJjZShJbnQ1MkluSlNTdGFjayk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBjYXNlIEZsdXNoZWREb3VibGU6CiAgICAgICAg
ICAgICAgICAgbV92YWx1ZVNvdXJjZXNbaV0gPSBWYWx1ZVNvdXJjZShEb3VibGVJbkpTU3RhY2sp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzQxNSw5ICszMDM2LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGNhc2UgSW50MzJJbkpTU3RhY2s6CiAgICAgICAgICAgICAgICAgZXhpdC5t
X3ZhbHVlc1tpXSA9IEV4aXRWYWx1ZTo6aW5KU1N0YWNrQXNJbnQzMigpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBJbnQ1MkluSlNTdGFjazoKLSAgICAgICAgICAg
ICAgICBleGl0Lm1fdmFsdWVzW2ldID0gRXhpdFZhbHVlOjppbkpTU3RhY2tBc0ludDUyKCk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIERvdWJsZUluSlNTdGFjazoK
ICAgICAgICAgICAgICAgICBleGl0Lm1fdmFsdWVzW2ldID0gRXhpdFZhbHVlOjppbkpTU3RhY2tB
c0RvdWJsZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUyMSwxOCArMzEzOSw2IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHZhbHVlID0gbV9pbnQ1MlZhbHVlcy5nZXQobm9kZSk7Ci0gICAgICAgIGlmIChpc1ZhbGlk
KHZhbHVlKSkgewotICAgICAgICAgICAgYWRkRXhpdEFyZ3VtZW50KGV4aXQsIGFyZ3VtZW50cywg
aW5kZXgsIFZhbHVlRm9ybWF0SW50NTIsIHZhbHVlLnZhbHVlKCkpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB2YWx1ZSA9IG1fc3RyaWN0SW50NTJW
YWx1ZXMuZ2V0KG5vZGUpOwotICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsKLSAgICAgICAg
ICAgIGFkZEV4aXRBcmd1bWVudChleGl0LCBhcmd1bWVudHMsIGluZGV4LCBWYWx1ZUZvcm1hdFN0
cmljdEludDUyLCB2YWx1ZS52YWx1ZSgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICAKICAgICAgICAgdmFsdWUgPSBtX2Jvb2xlYW5WYWx1ZXMuZ2V0KG5vZGUpOwog
ICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsKICAgICAgICAgICAgIGFkZEV4aXRBcmd1bWVu
dChleGl0LCBhcmd1bWVudHMsIGluZGV4LCBWYWx1ZUZvcm1hdEJvb2xlYW4sIHZhbHVlLnZhbHVl
KCkpOwpAQCAtMzYzNiwyOCArMzI0Miw2IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBtX2lu
dDMyVmFsdWVzLnNldChub2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykp
OwogICAgIH0KLSAgICB2b2lkIHNldEludDUyKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIG1faW50NTJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFs
dWUsIG1faGlnaEJsb2NrKSk7Ci0gICAgfQotICAgIHZvaWQgc2V0U3RyaWN0SW50NTIoTm9kZSog
bm9kZSwgTFZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgbV9zdHJpY3RJbnQ1MlZhbHVlcy5z
ZXQobm9kZSwgTG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsKLSAgICB9Ci0g
ICAgdm9pZCBzZXRJbnQ1MihOb2RlKiBub2RlLCBMVmFsdWUgdmFsdWUsIEludDUyS2luZCBraW5k
KQotICAgIHsKLSAgICAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgICAgIGNhc2UgSW50NTI6Ci0g
ICAgICAgICAgICBzZXRJbnQ1Mihub2RlLCB2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICAKLSAgICAgICAgY2FzZSBTdHJpY3RJbnQ1MjoKLSAgICAgICAgICAgIHNldFN0
cmljdEludDUyKG5vZGUsIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9CiAg
ICAgdm9pZCBzZXRKU1ZhbHVlKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIG1fanNWYWx1ZVZhbHVlcy5zZXQobm9kZSwgTG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9o
aWdoQmxvY2spKTsKQEAgLTM2NzksMTggKzMyNjMsNiBAQCBwcml2YXRlOgogICAgIHsKICAgICAg
ICAgc2V0SW50MzIobV9ub2RlLCB2YWx1ZSk7CiAgICAgfQotICAgIHZvaWQgc2V0SW50NTIoTFZh
bHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgc2V0SW50NTIobV9ub2RlLCB2YWx1ZSk7Ci0gICAg
fQotICAgIHZvaWQgc2V0U3RyaWN0SW50NTIoTFZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAg
c2V0U3RyaWN0SW50NTIobV9ub2RlLCB2YWx1ZSk7Ci0gICAgfQotICAgIHZvaWQgc2V0SW50NTIo
TFZhbHVlIHZhbHVlLCBJbnQ1MktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIHNldEludDUyKG1f
bm9kZSwgdmFsdWUsIGtpbmQpOwotICAgIH0KICAgICB2b2lkIHNldEpTVmFsdWUoTFZhbHVlIHZh
bHVlKQogICAgIHsKICAgICAgICAgc2V0SlNWYWx1ZShtX25vZGUsIHZhbHVlKTsKQEAgLTM3NzAs
OCArMzM0Miw2IEBAIHByaXZhdGU6CiAgICAgTFZhbHVlIG1fdGFnTWFzazsKICAgICAKICAgICBI
YXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBtX2ludDMyVmFsdWVzOwotICAgIEhhc2hN
YXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fc3RyaWN0SW50NTJWYWx1ZXM7Ci0gICAgSGFz
aE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9pbnQ1MlZhbHVlczsKICAgICBIYXNoTWFw
PE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBtX2pzVmFsdWVWYWx1ZXM7CiAgICAgSGFzaE1hcDxO
b2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9ib29sZWFuVmFsdWVzOwogICAgIEhhc2hNYXA8Tm9k
ZSosIExvd2VyZWROb2RlVmFsdWU+IG1fc3RvcmFnZVZhbHVlczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAppbmRleCBjZjA2MDVhNmFiY2Rm
NDE3YTM3MzIyZTAyZDUzMWZjMjU0NzZiNGU3Li44ZmQxNWJiNzYzNzQxOWRkY2QwNmU5Mzk1YjQ0
YmFjY2I4NjNlNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
eGl0Q29tcGlsZXIuY3BwCkBAIC0xMDQsOCArMTA0LDYgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0
dWIoCiAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86Om5vbkFyZ0dQUjAsIEFzc2VtYmx5SGVs
cGVyczo6YWRkcmVzc0Zvcihhcmd1bWVudC5vcGVyYW5kKCkpKTsKICAgICB9CiAgICAgCi0gICAg
Ly8gQWxsIHRlbXAgcmVnaXN0ZXJzIGFyZSBmcmVlIGF0IHRoaXMgcG9pbnQuCi0gICAgCiAgICAg
Ly8gQm94IGFueXRoaW5nIHRoYXQgaXMgYWxyZWFkeSBvbiB0aGUgc3RhY2ssIG9yIHRoYXQgaXMg
YSBjb25zdGFudC4KICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBleGl0Lm1fdmFsdWVzLnNp
emUoKTsgaS0tOykgewpAQCAtMTMwLDEzICsxMjgsNiBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1
YigKICAgICAgICAgICAgIGppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
R1BSSW5mbzo6cmVnVDApOwogICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAs
IGFkZHJlc3MpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRXhpdFZhbHVlSW5K
U1N0YWNrQXNJbnQ1MjoKLSAgICAgICAgICAgIGppdC5sb2FkNjQoYWRkcmVzcywgR1BSSW5mbzo6
cmVnVDApOwotICAgICAgICAgICAgaml0LnJzaGlmdDY0KAotICAgICAgICAgICAgICAgIEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBHUFJJ
bmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQuYm94SW50NTIoR1BSSW5mbzo6cmVnVDAsIEdQ
UkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7Ci0gICAgICAg
ICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgYWRkcmVzcyk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJsZToKICAgICAgICAg
ICAgIGppdC5sb2FkRG91YmxlKGFkZHJlc3MsIEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICAg
ICAgaml0LmJveERvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC0x
NjksMTAgKzE2MCw5IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgIGV4aXQubV9jb2Rl
ID0gRklOQUxJWkVfQ09ERV9JRigKICAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCksCiAg
ICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAoIkZUTCBPU1IgZXhpdCAjJXUgKGJjIyV1LCAl
cykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9ICVzIiwKKyAgICAgICAgKCJGVEwgT1NSIGV4aXQg
IyV1IChiYyMldSwgJXMpIGZyb20gJXMiLAogICAgICAgICAgICAgZXhpdElELCBleGl0Lm1fY29k
ZU9yaWdpbi5ieXRlY29kZUluZGV4LAotICAgICAgICAgICAgZXhpdEtpbmRUb1N0cmluZyhleGl0
Lm1fa2luZCksIHRvQ1N0cmluZygqY29kZUJsb2NrKS5kYXRhKCksCi0gICAgICAgICAgICB0b0NT
dHJpbmcoaWdub3JpbmdDb250ZXh0PER1bXBDb250ZXh0PihleGl0Lm1fdmFsdWVzKSkuZGF0YSgp
KSk7CisgICAgICAgICAgICBleGl0S2luZFRvU3RyaW5nKGV4aXQubV9raW5kKSwgdG9DU3RyaW5n
KCpjb2RlQmxvY2spLmRhdGEoKSkpOwogfQogCiBleHRlcm4gIkMiIHZvaWQqIGNvbXBpbGVGVExP
U1JFeGl0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgZXhpdElEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggYWY2OGRkM2JiOTNlMTg1YWY1Yzc2OTUxNDUxYWQ5MWRk
ODM2ZGVkYi4uZGJjMmQzMjg5OTI1NGUxNDY0YWJmMTUxOWQzYTMzMmQyMGE1MWQ0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC0xNjYsMTggKzE2Niw2IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsKG11bFdpdGhPdmVyZmxvdzMySW50cmluc2lj
KCksIGxlZnQsIHJpZ2h0KTsKICAgICB9Ci0gICAgTFZhbHVlIGFkZFdpdGhPdmVyZmxvdzY0KExW
YWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpCi0gICAgewotICAgICAgICByZXR1cm4gY2FsbChhZGRX
aXRoT3ZlcmZsb3c2NEludHJpbnNpYygpLCBsZWZ0LCByaWdodCk7Ci0gICAgfQotICAgIExWYWx1
ZSBzdWJXaXRoT3ZlcmZsb3c2NChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGNhbGwoc3ViV2l0aE92ZXJmbG93NjRJbnRyaW5zaWMoKSwgbGVmdCwgcmln
aHQpOwotICAgIH0KLSAgICBMVmFsdWUgbXVsV2l0aE92ZXJmbG93NjQoTFZhbHVlIGxlZnQsIExW
YWx1ZSByaWdodCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsKG11bFdpdGhPdmVyZmxvdzY0
SW50cmluc2ljKCksIGxlZnQsIHJpZ2h0KTsKLSAgICB9CiAgICAgTFZhbHVlIGRvdWJsZUFicyhM
VmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gY2FsbChkb3VibGVBYnNJbnRyaW5z
aWMoKSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExW
YWx1ZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlRm9ybWF0
LmNwcAppbmRleCBmYTIwMGQ3ODk1NDNlMzdhMjNjYzlkYTVmZmNlZDczNjI0MmI2OGM2Li45MmY5
NzA5NTU4YjY2NTBmZjdjNTliZmVkM2YwZTIyM2RlZjM1MmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFZhbHVlRm9ybWF0LmNwcApAQCAtNDQsMTIgKzQ0LDYgQEAgdm9pZCBw
cmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFZhbHVlRm9ybWF0IGZvcm1hdCkKICAgICBj
YXNlIFZhbHVlRm9ybWF0VUludDMyOgogICAgICAgICBvdXQucHJpbnQoIlVJbnQzMiIpOwogICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBWYWx1ZUZvcm1hdEludDUyOgotICAgICAgICBvdXQucHJp
bnQoIkludDUyIik7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFZhbHVlRm9ybWF0U3RyaWN0
SW50NTI6Ci0gICAgICAgIG91dC5wcmludCgiU3RyaWN0SW50NTIiKTsKLSAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgVmFsdWVGb3JtYXRCb29sZWFuOgogICAgICAgICBvdXQucHJpbnQoIkJvb2xl
YW4iKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExWYWx1ZUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1
ZUZvcm1hdC5oCmluZGV4IGYxNGU4Yzc2NzkyMDcyZjhmNTg3MGZmZmQwYmI3ODAwZTg2MjhiNzQu
LjM1N2FmNTBjOWM4Njg4NjFmNjNlYmMyNTY3MTg1NTU4Mjg3ZDA3YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlRm9ybWF0LmgKQEAgLTQxLDggKzQxLDYgQEAgZW51bSBW
YWx1ZUZvcm1hdCB7CiAgICAgSW52YWxpZFZhbHVlRm9ybWF0LAogICAgIFZhbHVlRm9ybWF0SW50
MzIsCiAgICAgVmFsdWVGb3JtYXRVSW50MzIsCi0gICAgVmFsdWVGb3JtYXRJbnQ1MiwKLSAgICBW
YWx1ZUZvcm1hdFN0cmljdEludDUyLAogICAgIFZhbHVlRm9ybWF0Qm9vbGVhbiwKICAgICBWYWx1
ZUZvcm1hdEpTVmFsdWUsCiAgICAgVmFsdWVGb3JtYXREb3VibGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVTb3VyY2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExWYWx1ZVNvdXJjZS5jcHAKaW5kZXggYzZkOWU4ZjU2YThmZDcyNjQ4NTdm
OTUxNzYzZTkxYzhmYjFiOTBkMC4uYTU1OTUyMTEyZWZhZTk0YWY5MzM4ZDJjNDU0ZjMyOGY3Yzc4
YTNhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVNvdXJjZS5jcHAK
QEAgLTQyLDkgKzQyLDYgQEAgdm9pZCBWYWx1ZVNvdXJjZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdAogICAgIGNhc2UgSW50MzJJbkpTU3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiSW50
MzJJbkpTU3RhY2siKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW50NTJJbkpTU3RhY2s6
Ci0gICAgICAgIG91dC5wcmludCgiSW50NTJJbkpTU3RhY2siKTsKLSAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgRG91YmxlSW5KU1N0YWNrOgogICAgICAgICBvdXQucHJpbnQoIkRvdWJsZUluSlNT
dGFjayIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFZhbHVlU291cmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZh
bHVlU291cmNlLmgKaW5kZXggNTNhMjlkYjY4M2NkZmJlYzkyZmY3MGM2ZjUzNDI4NGQwMmNlODAy
Yi4uMTY3MTlmZmI4MjQ5ZTk1NjZkZDkyMjE2NTFhYjYyMjA1ZTRiZmZiMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVTb3VyY2UuaApAQCAtNDAsNyArNDAsNiBAQCBlbnVt
IFZhbHVlU291cmNlS2luZCB7CiAgICAgU291cmNlTm90U2V0LAogICAgIFZhbHVlSW5KU1N0YWNr
LAogICAgIEludDMySW5KU1N0YWNrLAotICAgIEludDUySW5KU1N0YWNrLAogICAgIERvdWJsZUlu
SlNTdGFjaywKICAgICBTb3VyY2VJc0RlYWQsCiAgICAgSGF2ZU5vZGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKaW5kZXggYWVmNTZmMWM1M2Y5ZDM0MTZi
ZTNmZjVjYzlmYzcwZjQyMWU5NjkwYi4uNTJkNmE2MjlmMTc3NDUzOTg4ZmVhMmM4NGVjZWIyMmE4
MDEyZmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Jl
Z2lzdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVy
LmgKQEAgLTczLDcgKzczLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEluc3RydWN0aW9u
KiB2UEMoKSBjb25zdDsKICAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBhc0lubGluZUNhbGxGcmFt
ZSgpIGNvbnN0OwogICAgICAgICBpbnQzMl90IHVuYm94ZWRJbnQzMigpIGNvbnN0OwotICAgICAg
ICBpbnQ2NF90IHVuYm94ZWRJbnQ1MigpIGNvbnN0OwogICAgICAgICBib29sIHVuYm94ZWRCb29s
ZWFuKCkgY29uc3Q7CiAgICAgICAgIGRvdWJsZSB1bmJveGVkRG91YmxlKCkgY29uc3Q7CiAgICAg
ICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAgLTk5LDcgKzk4LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZTsK
ICAgICAgICAgICAgIEVuY29kZWRWYWx1ZURlc2NyaXB0b3IgZW5jb2RlZFZhbHVlOwogICAgICAg
ICAgICAgZG91YmxlIG51bWJlcjsKLSAgICAgICAgICAgIGludDY0X3QgaW50ZWdlcjsKICAgICAg
ICAgfSB1OwogICAgIH07CiAKQEAgLTE4NywxMSArMTg1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHJldHVybiBwYXlsb2FkKCk7CiAgICAgfQogCi0gICAgQUxXQVlTX0lOTElORSBpbnQ2
NF90IFJlZ2lzdGVyOjp1bmJveGVkSW50NTIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IHUuaW50ZWdlciA+PiBKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50OwotICAgIH0KLQogICAgIEFM
V0FZU19JTkxJTkUgYm9vbCBSZWdpc3Rlcjo6dW5ib3hlZEJvb2xlYW4oKSBjb25zdAogICAgIHsK
ICAgICAgICAgcmV0dXJuICEhcGF5bG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggNWI1MzY0NThhMmNhYzY0MmU0MTVlNjcwN2Q5OWYxM2Vm
ZmYyMTllYi4uYmYyMmM1NzAwZGU5OTIxOTFmY2M2Zjg2YzFiMjM3YTVjYjBjYWFhOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0zODMsOSArMzgz
LDYgQEAgdm9pZCBBcmd1bWVudHM6OnRlYXJPZmZGb3JJbmxpbmVDYWxsRnJhbWUoVk0mIHZtLCBS
ZWdpc3RlciogcmVnaXN0ZXJzLCBJbmxpbmVDYWwKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0
YWNrQXNVbmJveGVkSW50MzI6CiAgICAgICAgICAgICB2YWx1ZSA9IGpzTnVtYmVyKGxvY2F0aW9u
LT51bmJveGVkSW50MzIoKSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBbHJl
YWR5SW5KU1N0YWNrQXNVbmJveGVkSW50NTI6Ci0gICAgICAgICAgICB2YWx1ZSA9IGpzTnVtYmVy
KGxvY2F0aW9uLT51bmJveGVkSW50NTIoKSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkQ2VsbDoKICAgICAgICAgICAgIHZhbHVlID0g
bG9jYXRpb24tPnVuYm94ZWRDZWxsKCk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGV4aW5nVHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCmluZGV4IDQwNGY2YjNiYmEy
MDg0YThkNDk3OThhYzVkYThlMmMyYjYzOGM2YjQuLjA0MGE3ODI4YTI0M2ZhZmIxNmQ4MGZmZWUz
ZmFhYTRmMzA4YjhjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0luZGV4aW5nVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5k
ZXhpbmdUeXBlLmNwcApAQCAtNTAsMTEgKzUwLDExIEBAIEluZGV4aW5nVHlwZSBsZWFzdFVwcGVy
Qm91bmRPZkluZGV4aW5nVHlwZUFuZFR5cGUoSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwgU3Bl
CiAgICAgY2FzZSBBTExfSU5UMzJfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAgIGlmIChpc0ludDMy
U3BlY3VsYXRpb24odHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gKGluZGV4aW5nVHlwZSAmIH5J
bmRleGluZ1NoYXBlTWFzaykgfCBJbnQzMlNoYXBlOwotICAgICAgICBpZiAoaXNGdWxsTnVtYmVy
U3BlY3VsYXRpb24odHlwZSkpCisgICAgICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uKHR5cGUp
KQogICAgICAgICAgICAgcmV0dXJuIChpbmRleGluZ1R5cGUgJiB+SW5kZXhpbmdTaGFwZU1hc2sp
IHwgRG91YmxlU2hhcGU7CiAgICAgICAgIHJldHVybiAoaW5kZXhpbmdUeXBlICYgfkluZGV4aW5n
U2hhcGVNYXNrKSB8IENvbnRpZ3VvdXNTaGFwZTsKICAgICBjYXNlIEFMTF9ET1VCTEVfSU5ERVhJ
TkdfVFlQRVM6Ci0gICAgICAgIGlmIChpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbih0eXBlKSkKKyAg
ICAgICAgaWYgKGlzTnVtYmVyU3BlY3VsYXRpb24odHlwZSkpCiAgICAgICAgICAgICByZXR1cm4g
aW5kZXhpbmdUeXBlOwogICAgICAgICByZXR1cm4gKGluZGV4aW5nVHlwZSAmIH5JbmRleGluZ1No
YXBlTWFzaykgfCBDb250aWd1b3VzU2hhcGU7CiAgICAgY2FzZSBBTExfQ09OVElHVU9VU19JTkRF
WElOR19UWVBFUzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApp
bmRleCBjN2MyODc2NTk4YTQyNmIzOGE4ZTZmY2RmYTY1ODk2MDgyY2UxMjdiLi5iMGRlZTg5NGZi
NDdkNzc3ZmRjNTI2ZjA5ZmQ1ZDZkM2M2YzhhM2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0xOTEsNyArMTkxLDYgQEAgcHVibGljOgogCiAgICAg
aW50MzJfdCBhc0ludDMyKCkgY29uc3Q7CiAgICAgdWludDMyX3QgYXNVSW50MzIoKSBjb25zdDsK
LSAgICBpbnQ2NF90IGFzTWFjaGluZUludCgpIGNvbnN0OwogICAgIGRvdWJsZSBhc0RvdWJsZSgp
IGNvbnN0OwogICAgIGJvb2wgYXNCb29sZWFuKCkgY29uc3Q7CiAgICAgZG91YmxlIGFzTnVtYmVy
KCkgY29uc3Q7CkBAIC0yMDMsNyArMjAyLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3Q7CiAgICAgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0OwogICAgIGJvb2wgaXNC
b29sZWFuKCkgY29uc3Q7Ci0gICAgYm9vbCBpc01hY2hpbmVJbnQoKSBjb25zdDsKICAgICBib29s
IGlzTnVtYmVyKCkgY29uc3Q7CiAgICAgYm9vbCBpc1N0cmluZygpIGNvbnN0OwogICAgIGJvb2wg
aXNQcmltaXRpdmUoKSBjb25zdDsKQEAgLTI3NiwxMyArMjc0LDYgQEAgcHVibGljOgogCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIHN5bnRoZXNpemVQcm90b3R5cGUoRXhlY1N0YXRl
KikgY29uc3Q7CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIC8vIENvbnN0YW50cyB1c2VkIGZv
ciBJbnQ1Mi4gSW50NTIgaXNuJ3QgcGFydCBvZiBKU1ZhbHVlIHJpZ2h0IG5vdywgYnV0IEpTVmFs
dWVzIG1heSBiZQotICAgIC8vIGNvbnZlcnRlZCB0byBJbnQ1MnMgYW5kIGJhY2sgYWdhaW4uCi0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mSW50NTJCaXRzID0gNTI7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludDUyU2hpZnRBbW91bnQgPSAxMjsKLSNlbmRpZgotCiBwcml2
YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBKU1ZhbHVlKFdyaXRlQmFycmllckJhc2U8VD4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaAppbmRleCBiMzRhZGY4MDk4MTNhNWE4MzRkMDEwNTA5M2MyNGEwYTUzY2ViOTc2Li4yNGRh
ZDEyMmZiMzlhNWM3ZjIxMWRmNzBmOWYxYTgxMjQwMGYzNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTQ5NCwzNSArNDk0
LDYgQEAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNvbnN0CiAKICNl
bmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjppc01hY2hpbmVJ
bnQoKSBjb25zdAotewotICAgIGlmIChpc0ludDMyKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGlmICghaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBu
dW1iZXIgPSBhc0RvdWJsZSgpOwotICAgIGlmIChudW1iZXIgIT0gbnVtYmVyKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaW50NjRfdCBhc0ludDY0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4o
bnVtYmVyKTsKLSAgICBpZiAoYXNJbnQ2NCAhPSBudW1iZXIpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWFzSW50NjQgJiYgc3RkOjpzaWduYml0KG51bWJlcikpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoYXNJbnQ2NCA+PSAoc3RhdGljX2Nhc3Q8aW50NjRfdD4oMSkg
PDwgKG51bWJlck9mSW50NTJCaXRzIC0gMSkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKGFzSW50NjQgPCAtKHN0YXRpY19jYXN0PGludDY0X3Q+KDEpIDw8IChudW1iZXJPZkludDUy
Qml0cyAtIDEpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci1pbmxpbmUgaW50NjRfdCBKU1ZhbHVlOjphc01hY2hpbmVJbnQoKSBjb25zdAotewotICAgIEFT
U0VSVChpc01hY2hpbmVJbnQoKSk7Ci0gICAgaWYgKGlzSW50MzIoKSkKLSAgICAgICAgcmV0dXJu
IGFzSW50MzIoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50NjRfdD4oYXNEb3VibGUoKSk7
Ci19Ci0KIGlubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKIHsKICAgICByZXR1
cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9QcmludFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAppbmRl
eCAzZWFmNzc1ZGI0YmE1ZDg5ZWFmNzE2YWQxODYxMzVkYTdlNjdjYWZkLi43OGU2ODljMjY5NTcw
N2JhNDQxYTI5ZTljMTQ1ZDI3OTIzZmJjNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
cmludFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgKQEAgLTM2MCwz
NiArMzYwLDExIEBAIFZhbHVlSW5Db250ZXh0PFQsIFU+IGluQ29udGV4dChjb25zdCBUJiB2YWx1
ZSwgVSogY29udGV4dCkKICAgICByZXR1cm4gVmFsdWVJbkNvbnRleHQ8VCwgVT4odmFsdWUsIGNv
bnRleHQpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotY2xhc3MgVmFs
dWVJZ25vcmluZ0NvbnRleHQgewotcHVibGljOgotICAgIFZhbHVlSWdub3JpbmdDb250ZXh0KGNv
bnN0IFUmIHZhbHVlKQotICAgICAgICA6IG1fdmFsdWUoJnZhbHVlKQotICAgIHsKLSAgICB9Ci0g
ICAgCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci0gICAgewotICAgICAg
ICBUIGNvbnRleHQ7Ci0gICAgICAgIG1fdmFsdWUtPmR1bXBJbkNvbnRleHQob3V0LCAmY29udGV4
dCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IFUqIG1fdmFsdWU7Ci19OwotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotVmFsdWVJZ25vcmluZ0NvbnRleHQ8VCwgVT4g
aWdub3JpbmdDb250ZXh0KGNvbnN0IFUmIHZhbHVlKQotewotICAgIHJldHVybiBWYWx1ZUlnbm9y
aW5nQ29udGV4dDxULCBVPih2YWx1ZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2lu
ZyBXVEY6OkNoYXJhY3RlckR1bXA7CiB1c2luZyBXVEY6OlBvaW50ZXJEdW1wOwogdXNpbmcgV1RG
OjpQcmludFN0cmVhbTsKLXVzaW5nIFdURjo6aWdub3JpbmdDb250ZXh0OwogdXNpbmcgV1RGOjpp
bkNvbnRleHQ7CiB1c2luZyBXVEY6OnBvaW50ZXJEdW1wOwogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q2M2M1Njk2NTRmZmY5OTFiY2EwZmQx
YWNlODYwMjE1MTQ2YmU1MC4uMjYzZDM5MDAxMTA2ZWI5NjllYzk3NGFmMzY5MzM1MThkZmQ3M2Ri
YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEzLTA5LTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTU2MDE5LgorICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNTYwMTkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTUzMAorCisgICAgICAgIGJy
b2tlIHRoZSBNYWMgYW5kIFdpbmRvd3MgYnVpbGRzIChSZXF1ZXN0ZWQgYnkgdGhvcnRvbiBvbgor
ICAgICAgICAjd2Via2l0KS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVz
dHM6CisKIDIwMTMtMDktMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBERkcgc2hvdWxkIHN1cHBvcnQgSW50NTIgZm9yIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggMmMzYjgxMzc1YzMwZDFmNGEyZmQ2YTE4ZmUyODU3
Yjg4ZDY4YTQ0Mi4uNWQ5NDY0ZTliZWNiYThlOTQ0OGE2ZTA2ZWI1ZGM5ZmIwMmYxMjg1NSAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC0yMTQsMTEgKzIxNCwxMiBAQCBkZWYgZGVm
YXVsdFJ1bgogICAgIHJ1bkRlZmF1bHQKICAgICBydW5BbHdheXNUcmlnZ2VyQ29weVBoYXNlCiAg
ICAgcnVuTm9DSklUCi0gICAgcnVuREZHRWFnZXIKICAgICBpZiAkZW5hYmxlRlRMCiAgICAgICAg
IHJ1bkRlZmF1bHRGVEwKICAgICAgICAgcnVuRlRMTm9DSklUCiAgICAgICAgIHJ1bkZUTEVhZ2Vy
CisgICAgZWxzZQorICAgICAgICBydW5ERkdFYWdlcgogICAgIGVuZAogZW5kCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAw
ZTAwZmU0YzQ2NDhmZDlmZTQ0NmQ4YjFlNGUxNGZkOWY0NDcyMDUzLi41NzYzOGY4ZDMyNmUzMmM4
ZjlkOGZhMTNhMjBmNTBmYzg5ZTFkMmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDkt
MTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTYwMTkuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE1NjAxOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIxNTMwCisKKyAgICAgICAgYnJva2UgdGhlIE1hYyBhbmQgV2luZG93
cyBidWlsZHMgKFJlcXVlc3RlZCBieSB0aG9ydG9uIG9uCisgICAgICAgICN3ZWJraXQpLgorCisg
ICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQtY2FwdHVyZWQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbGFyZ2UtaW50LWNhcHR1cmVkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbGFyZ2UtaW50LW5lZy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL21hcnNhZ2xpYS1sYXJnZXItaW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWludHMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQtY2FwdHVyZWQuanM6
IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50LW5l
Zy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1p
bnQuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWFyc2Fn
bGlhLWxhcmdlci1pbnRzLmpzOiBSZW1vdmVkLgorCiAyMDEzLTA5LTE3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBzdXBwb3J0IEludDUyIGZv
ciBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFy
Z2UtaW50LWNhcHR1cmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFy
Z2UtaW50LWNhcHR1cmVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTY0MDMyZWJjMjcyZTA1ZmM5NjVkNjM0MWIzNTJiMGU5Y2QzMzY3Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2xhcmdlLWludC1jYXB0dXJlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1KU1JlZ3Jlc3MvbGFyZ2UtaW50LWNhcHR1cmVkCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2xhcmdlLWludC1jYXB0dXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9sYXJnZS1pbnQtY2FwdHVyZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTZlOTA5NmI2ZWE4NTY2NDUwNjFhNTEwYzNjMmExNjRjOGFhNjk3ZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2xhcmdlLWludC1jYXB0dXJlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAot
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbGFyZ2UtaW50LWNhcHR1
cmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvbGFyZ2UtaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
bGFyZ2UtaW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWY3
YzJlYTllNWQwMGNkYjRmNTBhZjliZWJlOTUwNDNkZDFiN2U2MS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdl
LWludC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jl
c3MvbGFyZ2UtaW50Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4
Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1u
ZWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTY1YzBjMzkyNGVlNzcy
NjMzYTFmNDIwNzU0MTcyYzk3M2JhMzI1Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1uZWctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2xhcmdl
LWludC1uZWcKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0
aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50LW5lZy5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZTM0OGMxNjJiOGI5ZWQ5YTYzOWVmMWI3YmY0Mjc4NGJl
NzMyNmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9s
YXJnZS1pbnQtbmVnLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2xhcmdlLWludC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDI1NTU5NzE5
Mjk3M2QzMGRiOWE1ZWQ3NGEwNjgwM2EzNmZmYjg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9sYXJnZS1pbnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWludHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWlu
dHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzFiYjA4NDk1
MzNhOTA0YTRhYjE4NWYzNzYwOTY1YjEwOTQ3YjFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbWFyc2FnbGlhLWxh
cmdlci1pbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpT
UmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWludHMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvbWFyc2FnbGlhLWxhcmdlci1pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L21hcnNhZ2xpYS1sYXJnZXItaW50cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOGVkZGVkNzI3NzI3NTYyZTdjYWQzMjdiNWM0YzMzNmI2NjFmNjIxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
bWFyc2FnbGlhLWxhcmdlci1pbnRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBA
Ci08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9tYXJzYWdsaWEtbGFy
Z2VyLWludHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50LWNhcHR1cmVkLmpzIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50LWNhcHR1cmVkLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjQ5YTFlMzZiN2Q1MzA3MTJhOTg0MTg0OTkwODIy
M2Q1NjBlMGY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xhcmdlLWludC1jYXB0dXJlZC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLWZ1bmN0aW9uIGZvbyh4LCB5KSB7Ci0g
ICAgdmFyIHogPSB4OwotICAgIGZ1bmN0aW9uIGJhcigpIHsKLSAgICAgICAgcmV0dXJuIHo7Ci0g
ICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKQotICAgICAgICB6ICs9IHk7Ci0g
ICAgcmV0dXJuIGJhcigpOwotfQotCi1ldmFsKCIvLyBEb24ndCBjb21waWxlIG1lIik7Ci0KLXZh
ciByZXN1bHQgPSAwOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQotICAgIHJl
c3VsdCArPSBmb28oMTAwMDAwMDAwMCwgMTAwMDAwMDAwMCk7Ci0KLWlmIChyZXN1bHQgIT0gNDAw
MDAwMDAwMDAwMDAwKQotICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xhcmdlLWlu
dC1uZWcuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQt
bmVnLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjRjZDIzYmNkYzM5MTM3MTE3
MGE2ZjI0N2UxYTU0ZDhhMWNkNjE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xhcmdlLWlu
dC1uZWcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1mdW5jdGlvbiBmb28oeCwg
eSkgewotICAgIHZhciB6ID0geDsKLSAgICB2YXIgdyA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAzOyArK2kpIHsKLSAgICAgICAgeiArPSB5OwotICAgICAgICB3ID0gLXo7Ci0gICAgfQot
ICAgIHJldHVybiB3ICsgMTsKLX0KLQotZXZhbCgiLy8gRG9uJ3QgY29tcGlsZSBtZSIpOwotCi12
YXIgcmVzdWx0ID0gMDsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpCi0gICAg
cmVzdWx0ICs9IGZvbygxMDAwMDAwMDAwLCAxMDAwMDAwMDAwKTsKLQotaWYgKHJlc3VsdCAhPSAt
Mzk5OTk5OTk5OTAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJn
ZS1pbnQuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyZDBjYWUwODU1OTZjMjQ5ZGFlNzBi
MjkyMTc4ZDE0YTc2MzBhNWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotZnVuY3Rpb24gZm9vKHgsIHkpIHsKLSAg
ICB2YXIgeiA9IHg7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzOyArK2kpCi0gICAgICAgIHog
Kz0geTsKLSAgICByZXR1cm4gejsKLX0KLQotZXZhbCgiLy8gRG9uJ3QgY29tcGlsZSBtZSIpOwot
Ci12YXIgcmVzdWx0ID0gMDsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpCi0g
ICAgcmVzdWx0ICs9IGZvbygxMDAwMDAwMDAwLCAxMDAwMDAwMDAwKTsKLQotaWYgKHJlc3VsdCAh
PSA0MDAwMDAwMDAwMDAwMDAwKQotICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL21h
cnNhZ2xpYS1sYXJnZXItaW50cy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL21hcnNhZ2xpYS1sYXJnZXItaW50cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWQ3MTIxZjdhODg2MjNmODU2MjFkNGU0MDU1ZWIxZDgyMGY0N2MxYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9tYXJzYWdsaWEtbGFyZ2VyLWludHMuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwyMSArMCwwIEBACi1mdW5jdGlvbiB1aW50KHgpIHsKLSAgICBpZiAoeCA8IDApCi0gICAgICAg
IHJldHVybiB4ICsgNDI5NDk2NzI5NjsKLSAgICByZXR1cm4geDsKLX0KLQotZnVuY3Rpb24gbWFy
c2FnbGlhKG1feiwgbV93LCBuKSB7Ci0gICAgdmFyIHJlc3VsdDsKLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG47ICsraSkgewotICAgICAgICBtX3ogPSAoMzY5NjkgKiB1aW50KG1feiAmIDY1NTM1
KSArIChtX3ogPj4gMTYpKSB8IDA7Ci0gICAgICAgIG1fdyA9ICgxODAwMCAqIHVpbnQobV93ICYg
NjU1MzUpICsgKG1fdyA+PiAxNikpIHwgMDsKLSAgICAgICAgcmVzdWx0ID0gKChtX3ogPDwgMTYp
ICsgbV93KSB8IDA7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZhciByZXN1bHQg
PSBtYXJzYWdsaWEoNSwgNywgMTAwMDAwMDApOwotCi1pZiAocmVzdWx0ICE9IC0xMDQ3MzY0MDU2
KQotICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLQo=
</data>
<flag name="commit-queue"
          id="234107"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>