<?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>109047</bug_id>
          
          <creation_ts>2013-02-06 06:37:54 -0800</creation_ts>
          <short_desc>REGRESSION(r141991): Fails to compile on all Chromium platforms (Requested by schenney on #webkit).</short_desc>
          <delta_ts>2013-02-06 06:45:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108466</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>jochen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826400</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 06:37:54 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/141991 broke the build:
Fails to compile on all Chromium platforms (Requested by schenney on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826403</commentid>
    <comment_count>1</comment_count>
      <attachid>186844</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 06:38:24 -0800</bug_when>
    <thetext>Created attachment 186844
ROLLOUT of r141991

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>826408</commentid>
    <comment_count>2</comment_count>
      <attachid>186844</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 06:45:34 -0800</bug_when>
    <thetext>Comment on attachment 186844
ROLLOUT of r141991

Clearing flags on attachment: 186844

Committed r141998: &lt;http://trac.webkit.org/changeset/141998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826409</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 06:45:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186844</attachid>
            <date>2013-02-06 06:38:24 -0800</date>
            <delta_ts>2013-02-06 06:45:34 -0800</delta_ts>
            <desc>ROLLOUT of r141991</desc>
            <filename>bug-109047-20130206143501.patch</filename>
            <type>text/plain</type>
            <size>103248</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2Q0ZjQ5OGNhOTFhNmFjMGUzNjIxY2M1ODNjZDg1OTUy
M2M3MmFkMC4uYzk0YzFjOWFiMzZkY2M2NmUxZjFhZjEyOTFlOWQ3MzM0ZWY1NTIxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1
MSBAQAogMjAxMy0wMi0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MTk5MS4KKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTQxOTkxCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNDcKKworICAgICAgICBGYWlscyB0
byBjb21waWxlIG9uIGFsbCBDaHJvbWl1bSBwbGF0Zm9ybXMgKFJlcXVlc3RlZCBieQorICAgICAg
ICBzY2hlbm5leSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLmd5cC9EdW1wUmVuZGVyVHJlZS5neXA6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRhc2suaDoKKyAgICAgICAgKFdl
YlRhc2tMaXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3B1YmxpYy9XZWJUZXN0Q29tbW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFjZXMuaDoKKyAgICAg
ICAgKFdlYlRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYlRlc3RQcm94
eUJhc2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpnZXRPckNy
ZWF0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TGlz
dDo6Y3JlYXRlUm9vdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmg6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TGlzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpDcHBCb3VuZENsYXNzOjp+Q3BwQm91bmRDbGFzcyk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpDcHBCb3VuZENsYXNzOjppbnZva2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6Q3Bw
Qm91bmRDbGFzczo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6Q3BwQm91
bmRDbGFzczo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6Q3BwQm91bmRD
bGFzczo6YmluZENhbGxiYWNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkNwcEJvdW5kQ2xh
c3M6OmJpbmRHZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpDcHBCb3Vu
ZENsYXNzOjpiaW5kUHJvcGVydHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6Q3BwQm91bmRD
bGFzczo6Z2V0QXNDcHBWYXJpYW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKENwcEJvdW5kQ2xhc3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6Q3Bw
Qm91bmRDbGFzczo6YmluZFByb3BlcnR5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkNwcEJv
dW5kQ2xhc3M6OmJpbmRGYWxsYmFja0NhbGxiYWNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OkNwcEJvdW5kQ2xhc3M6OmJpbmRGYWxsYmFja01ldGhvZCk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5jcHA6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpDcHBWYXJpYW50Ojp0b0ludDMyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkNwcFZh
cmlhbnQ6OnRvRG91YmxlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQ6OnRv
Qm9vbGVhbik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Ojp0b1N0cmluZ1Zl
Y3Rvcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50OjppbnZva2UpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudDo6aW52b2tlRGVmYXVsdCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oOgor
ICAgICAgICAoQ3BwVmFyaWFudCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6RXZlbnRTZW5kZXIpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnJlc2V0KToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OkV2ZW50U2VuZGVyOjptb3VzZURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6RXZlbnRTZW5kZXI6Om1vdXNlVXApOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRT
ZW5kZXI6Om1vdXNlTW92ZVRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVy
OjprZXlEb3duKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpkaXNwYXRj
aE1lc3NhZ2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmxlYXBGb3J3
YXJkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2
ZW50cyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjptYWtlTWVudUl0ZW1TdHJpbmdzRm9yKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2spOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmJlZ2luRHJhZ1dpdGhGaWxlcyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6YWRkVG91Y2hQb2ludCk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6cmVsZWFzZVRvdWNoUG9pbnQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnVwZGF0ZVRvdWNoUG9pbnQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmNhbmNlbFRvdWNoUG9pbnQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnNlbmRDdXJyZW50VG91Y2hFdmVudCk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFw
cGluZy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpOYXRpdmVLZXlDb2RlRm9yV2luZG93
c0tleUNvZGUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL01vY2tHcmFtbWFyQ2hlY2suY3BwOgorICAgICAgICAoTW9ja0dyYW1tYXJDaGVjazo6Y2hl
Y2tHcmFtbWFyT2ZTdHJpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL01vY2tHcmFtbWFyQ2hlY2suaDoKKyAgICAgICAgKE1vY2tHcmFtbWFyQ2hl
Y2spOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01v
Y2tTcGVsbENoZWNrLmNwcDoKKyAgICAgICAgKGFwcGVuZCk6CisgICAgICAgIChpc05vdEFTQ0lJ
QWxwaGEpOgorICAgICAgICAoTW9ja1NwZWxsQ2hlY2s6OnNwZWxsQ2hlY2tXb3JkKToKKyAgICAg
ICAgKE1vY2tTcGVsbENoZWNrOjppbml0aWFsaXplSWZOZWVkZWQpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tTcGVsbENoZWNrLmg6CisgICAg
ICAgIChNb2NrU3BlbGxDaGVjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvU3BlbGxDaGVja0NsaWVudC5jcHA6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpTcGVsbENoZWNrQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpTcGVsbENoZWNrQ2xpZW50OjpmaW5pc2hMYXN0VGV4dENoZWNrKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0Q29tbW9u
Lmg6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdElu
dGVyZmFjZXM6OlRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoVGVzdEludGVy
ZmFjZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RQbHVnaW4uY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFBsdWdpbjo6VGVz
dFBsdWdpbik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UGx1Z2luOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RQbHVnaW46OmRlc3Ryb3kpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFBsdWdpbjo6cGFyc2VQcmltaXRpdmUpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6VGVzdFBsdWdpbjo6cGFyc2VDb2xvcik6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpUZXN0UGx1Z2luOjppbml0UHJvZ3JhbSk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpUZXN0UGx1Z2luOjppbml0UHJpbWl0aXZlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RQbHVnaW46OmRyYXdQcmltaXRpdmUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFBs
dWdpbjo6bG9hZFNoYWRlcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UGx1Z2luOjps
b2FkUHJvZ3JhbSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UGx1Z2luOjpoYW5kbGVE
cmFnU3RhdHVzVXBkYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UGx1Z2luLmg6CisgICAgICAgIChUZXN0UGx1Z2luKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6cHJvY2Vzc1dv
cmtTb29uKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6
cHJvY2Vzc1dvcmspOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6V29ya1F1
ZXVlOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpXb3JrUXVl
dWU6OmFkZFdvcmspOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1
bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZURvbmUpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6ZmluZFN0cmluZyk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpzZXRUZXh0U3VicGl4ZWxQb3NpdGlvbmluZyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVu
bmVyOjpzZXRCYWNraW5nU2NhbGVGYWN0b3IpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OlRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6aXNFbXB0eSk6CisgICAgICAgIChUZXN0UnVubmVy
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXh0
SW5wdXRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRleHRJbnB1dENv
bnRyb2xsZXI6Om1hcmtlZFJhbmdlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRleHRJbnB1
dENvbnRyb2xsZXI6OnNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGV4
dElucHV0Q29udHJvbGxlcjo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNw
cDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGFzay5jcHA6
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRh
c2tMaXN0OjpXZWJUYXNrTGlzdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUYXNrTGlz
dDo6fldlYlRhc2tMaXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRhc2tMaXN0Ojpy
ZWdpc3RlclRhc2spOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGFza0xpc3Q6OnVucmVn
aXN0ZXJUYXNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRhc2tMaXN0OjpyZXZva2VB
bGwpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dl
YlRlc3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRl
cmZhY2VzOjpXZWJUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0SW50ZXJmYWNlczo6fldlYlRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjp0ZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6On5XZWJUZXN0UHJveHlCYXNlKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OnNwZWxsQ2hlY2tDbGll
bnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6cmVnaXN0ZXJJ
bnRlbnRTZXJ2aWNlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6
OmRpc3BhdGNoSW50ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJh
c2U6OmFzc2lnbklkZW50aWZpZXJUb1JlcXVlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL2NvbmZpZy5oOiBSZW1vdmVkLgorCisyMDEzLTAyLTA2
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKwogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTQxOTk1LgogICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xNDE5OTUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTA0NgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwL0R1bXBSZW5kZXJUcmVlLmd5cCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLmd5cC9EdW1wUmVuZGVyVHJlZS5neXAKaW5kZXggZDE1NzdhMGIw
ODlhNjVjMWQ4MjBlOGYwOGFkYTcxY2RmYjNjOGM1OC4uNWYzNjdkZjc4NWFjZDExOTM3NDJhMDQw
MzUyNzk4M2Y3ZGMwMjAwNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuZ3lwL0R1bXBSZW5kZXJUcmVlLmd5cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9EdW1wUmVuZGVyVHJlZS5neXAvRHVtcFJlbmRlclRyZWUuZ3lwCkBAIC04Myw3ICs4MywxMCBA
QAogICAgICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKICAgICAgICAgICAgICAgICAnVGVzdFJ1
bm5lcl9yZXNvdXJjZXMnLAogICAgICAgICAgICAgICAgICc8KHNvdXJjZV9kaXIpL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwOndlYmtpdCcsCisgICAgICAgICAgICAgICAgJzwoc291cmNlX2Rp
cikvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXA6d2Via2l0X3d0Zl9zdXBwb3J0JywKICAgICAg
ICAgICAgICAgICAnPChzb3VyY2VfZGlyKS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cDp3ZWJr
aXRfdGVzdF9zdXBwb3J0JywKKyAgICAgICAgICAgICAgICAnPChzb3VyY2VfZGlyKS9XVEYvV1RG
Lmd5cC9XVEYuZ3lwOnd0ZicsCisgICAgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuZ3lwOndlYmtpdF9zdXBwb3J0JywKICAgICAg
ICAgICAgIF0sCiAgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWwogICAgICAgICAgICAgICAg
ICc8KGNocm9taXVtX3NyY19kaXIpJywKQEAgLTEwMywzMSArMTA2LDYgQEAKICAgICAgICAgICAg
ICAgICAnPEAodGVzdF9ydW5uZXJfZmlsZXMpJywKICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAnY29uZGl0aW9ucyc6IFsKLSAgICAgICAgICAgICAgICBbJ2luc2lkZV9jaHJvbWl1bV9idWls
ZCA9PSAxJywgewotICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICc8KGNvbXBvbmVudCknLAot
ICAgICAgICAgICAgICAgICAgICAnY29uZGl0aW9ucyc6IFsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFsnY29tcG9uZW50PT0ic2hhcmVkX2xpYnJhcnkiJywgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdkZWZpbmVzJzogWwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
V0VCVEVTVFJVTk5FUl9ETEwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV0VC
VEVTVFJVTk5FUl9JTVBMRU1FTlRBVElPTj0xJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXJlY3RfZGVwZW5kZW50X3NldHRp
bmdzJzogewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmaW5lcyc6IFsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXRUJURVNUUlVOTkVSX0RMTCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbXN2c19zZXR0aW5ncyc6IHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZDTGlua2VyVG9vbCc6IHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25kaXRpb25zJzogWwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnaW5jcmVtZW50YWxfY2hyb21lX2RsbD09
MScsIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZUxp
YnJhcnlEZXBlbmRlbmN5SW5wdXRzJzogJ3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgfV0sCi0gICAgICAgICAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAgICAgfV0sCiAgICAgICAgICAgICAgICAgWyd0b29sa2l0
X3VzZXNfZ3RrID09IDEnLCB7CiAgICAgICAgICAgICAgICAgICAgICdkZWZpbmVzJzogWwogICAg
ICAgICAgICAgICAgICAgICAgICAgJ1dURl9VU0VfR1RLPTEnLApAQCAtMjE3LDcgKzE5NSw2IEBA
CiAgICAgICAgICAgICAgICAgJ1Rlc3RSdW5uZXInLAogICAgICAgICAgICAgICAgICc8KHNvdXJj
ZV9kaXIpL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwOmluc3BlY3Rvcl9yZXNvdXJjZXMnLAog
ICAgICAgICAgICAgICAgICc8KHNvdXJjZV9kaXIpL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
OndlYmtpdCcsCi0gICAgICAgICAgICAgICAgJzwoc291cmNlX2RpcikvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXA6d2Via2l0X3d0Zl9zdXBwb3J0JywKICAgICAgICAgICAgICAgICAnPChzb3Vy
Y2VfZGlyKS9XVEYvV1RGLmd5cC9XVEYuZ3lwOnd0ZicsCiAgICAgICAgICAgICAgICAgJzwoY2hy
b21pdW1fc3JjX2RpcikvYmFzZS9iYXNlLmd5cDp0ZXN0X3N1cHBvcnRfYmFzZScsCiAgICAgICAg
ICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvYnVpbGQvdGVtcF9neXAvZ29vZ2xldXJsLmd5
cDpnb29nbGV1cmwnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5k
ZXggYWFkYmNjOTMzMTJlMDI4NDJkNjcyNDBlOTZmMzcxOGQxMmY3ZjA3Yy4uMDg4Yzk4NTc3NDRj
N2ZjZDQ2NmYyY2YxZDg4MTEwYzdhM2IyMDhmZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS5neXBpCkBAIC01Nyw3ICs1Nyw2IEBACiAgICAgICAgICAgICAnY2hyb21pdW0v
VGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRhc2suaCcsCi0gICAgICAgICAgICAnY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdENvbW1vbi5oJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5oJywKICAgICAgICAgICAg
ICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oJywKQEAgLTgxLDcg
KzgwLDYgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrU3BlbGxD
aGVjay5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9TcGVsbENoZWNr
Q2xpZW50LmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvU3BlbGxD
aGVja0NsaWVudC5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
Q29tbW9uLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRl
cmZhY2VzLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdElu
dGVyZmFjZXMuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElu
cHV0Q29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgKaW5kZXgg
YTEzOGJmZDcwMGNjNGY3N2ZmNTM4ZDAzYTFiMjY5ZGQyMGVkOTYwMC4uYjQ3MzgyNmIxYTViNzI1
Yjk5ZTkyZjI0YjE1NWU5Nzc3NzBmZjc3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNl
cy5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlN0cmluZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkwu
aCIKICNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgiCi0jaW5j
bHVkZSAiV2ViVGVzdENvbW1vbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlZp
ZXc7CkBAIC00Miw3ICs0MSw3IEBAIGNsYXNzIFdlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJUZXN0
UnVubmVyIHsKIAotc3RydWN0IFdFQlRFU1RSVU5ORVJfRVhQT1JUIFdlYlByZWZlcmVuY2VzIHsK
K3N0cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgV2ViS2l0OjpXZWJTdHJpbmcgc3RhbmRhcmRG
b250RmFtaWx5OwogICAgIFdlYktpdDo6V2ViU3RyaW5nIGZpeGVkRm9udEZhbWlseTsKICAgICBX
ZWJLaXQ6OldlYlN0cmluZyBzZXJpZkZvbnRGYW1pbHk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUYXNrLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUYXNrLmgKaW5kZXgg
YzNiYzA5Y2MxY2VlYWFmNjFlODVjYzUzNzNjY2U2MTc5MmIxNDQ1Yy4uZWY3M2UxNzdlMDQxMGU2
ZmU2ZGE2MThjMGUxZDZlYjc0NDQ3MzBhNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGFzay5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRhc2suaApAQCAtMzEsMTYg
KzMxLDEzIEBACiAjaWZuZGVmIFdlYlRhc2tfaAogI2RlZmluZSBXZWJUYXNrX2gKIAotI2luY2x1
ZGUgIldlYlRlc3RDb21tb24uaCIKLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KIG5hbWVzcGFjZSBXZWJU
ZXN0UnVubmVyIHsKIAogY2xhc3MgV2ViVGFza0xpc3Q7CiAKIC8vIFdlYlRhc2sgcmVwcmVzZW50
cyBhIHRhc2sgd2hpY2ggY2FuIHJ1biBieSBXZWJUZXN0RGVsZWdhdGU6OnBvc3RUYXNrKCkgb3IK
IC8vIFdlYlRlc3REZWxlZ2F0ZTo6cG9zdERlbGF5ZWRUYXNrKCkuCi1jbGFzcyBXRUJURVNUUlVO
TkVSX0VYUE9SVCBXZWJUYXNrIHsKK2NsYXNzIFdlYlRhc2sgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IFdlYlRhc2soV2ViVGFza0xpc3QqKTsKICAgICB2aXJ0dWFsIH5XZWJUYXNrKCk7CkBAIC01
NCw3ICs1MSw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJUYXNrTGlzdCogbV90YXNrTGlzdDsKIH07
CiAKLWNsYXNzIFdFQlRFU1RSVU5ORVJfRVhQT1JUIFdlYlRhc2tMaXN0IHsKK2NsYXNzIFdlYlRh
c2tMaXN0IHsKIHB1YmxpYzoKICAgICBXZWJUYXNrTGlzdCgpOwogICAgIH5XZWJUYXNrTGlzdCgp
OwpAQCAtNjMsNyArNjAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXZva2VBbGwoKTsKIAogcHJp
dmF0ZToKLSAgICBzdGQ6OnZlY3RvcjxXZWJUYXNrKj4gbV90YXNrczsKKyAgICBjbGFzcyBQcml2
YXRlOworICAgIFByaXZhdGUqIG1fcHJpdmF0ZTsKIH07CiAKIC8vIEEgdGFzayBjb250YWluaW5n
IGFuIG9iamVjdCBwb2ludGVyIG9mIGNsYXNzIFQuIERlcml2ZWQgY2xhc3NlcyBzaG91bGQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3RDb21tb24uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvcHVibGljL1dlYlRlc3RDb21tb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2FiZTc5N2JmNjllZGMyYjFlMjJjZTZmY2MyOTU1ODUxZTg1YjcxZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0Q29tbW9uLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBXZWJUZXN0Q29tbW9uX2gKLSNkZWZpbmUgV2ViVGVzdENvbW1v
bl9oCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBEZWZhdWx0IGNvbmZpZ3VyYXRpb24K
LQotI2lmICFkZWZpbmVkKFdFQlRFU1RSVU5ORVJfSU1QTEVNRU5UQVRJT04pCi0jZGVmaW5lIFdF
QlRFU1RSVU5ORVJfSU1QTEVNRU5UQVRJT04gMAotI2VuZGlmCi0KLS8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0vLyBFeHBvcnRlZCBzeW1ib2xzIG5lZWQgdG8gYmUgYW5ub3RhdGVkIHdpdGggV0VC
VEVTVFJVTk5FUl9FWFBPUlQKLQotI2lmIGRlZmluZWQoV0VCVEVTVFJVTk5FUl9ETEwpCi0jaWYg
ZGVmaW5lZChXSU4zMikKLSNpZiBXRUJURVNUUlVOTkVSX0lNUExFTUVOVEFUSU9OCi0jZGVmaW5l
IFdFQlRFU1RSVU5ORVJfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQotI2Vsc2UKLSNkZWZp
bmUgV0VCVEVTVFJVTk5FUl9FWFBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jZW5kaWYKLSNl
bHNlCi0jZGVmaW5lIFdFQlRFU1RSVU5ORVJfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxp
dHkoImRlZmF1bHQiKSkpCi0jZW5kaWYKLSNlbHNlCi0jZGVmaW5lIFdFQlRFU1RSVU5ORVJfRVhQ
T1JUCi0jZW5kaWYKLQotI2VuZGlmIC8vIFdlYlRlc3RDb21tb25faApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVy
ZmFjZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3RJbnRlcmZhY2VzLmgKaW5kZXggNzNkNzlkYzJjZGRlMGYyZWI5OWU3OTI2YjFkOGZi
ZjFkMWFmMjdjZS4uMmNjZDYxZTI1YzEwYmE0NzIwODYxNTIyMDk2MzY1NmU5ODg2ZWRiOSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMv
V2ViVGVzdEludGVyZmFjZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5oCkBAIC0zMSw5ICszMSw2IEBACiAj
aWZuZGVmIFdlYlRlc3RJbnRlcmZhY2VzX2gKICNkZWZpbmUgV2ViVGVzdEludGVyZmFjZXNfaAog
Ci0jaW5jbHVkZSAiV2ViVGVzdENvbW1vbi5oIgotI2luY2x1ZGUgPG1lbW9yeT4KLQogbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYlZpZXc7CkBAIC00NSw3ICs0
Miw3IEBAIGNsYXNzIFRlc3RJbnRlcmZhY2VzOwogY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogY2xh
c3MgV2ViVGVzdFJ1bm5lcjsKIAotY2xhc3MgV0VCVEVTVFJVTk5FUl9FWFBPUlQgV2ViVGVzdElu
dGVyZmFjZXMgeworY2xhc3MgV2ViVGVzdEludGVyZmFjZXMgewogcHVibGljOgogICAgIFdlYlRl
c3RJbnRlcmZhY2VzKCk7CiAgICAgfldlYlRlc3RJbnRlcmZhY2VzKCk7CkBAIC02NCw3ICs2MSw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6YXV0b19wdHI8VGVzdElu
dGVyZmFjZXM+IG1faW50ZXJmYWNlczsKKyAgICBUZXN0SW50ZXJmYWNlcyogbV9pbnRlcmZhY2Vz
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAppbmRleCAxMDBkMjg3ZGJlMjZk
NzgyOGJkYjRkNTQ1YTEyZDFiNjVlYmQyZGNkLi40MjkwOTY5YmRkN2E2ODY3YzYwM2VmYTg5NDc1
YzA1ZDdmNDBmYzVmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAtNDIsOSArNDIs
NyBAQAogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRleHRBZmZpbml0eS5oIgog
I2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVGV4dERpcmVjdGlvbi5oIgotI2lu
Y2x1ZGUgIldlYlRlc3RDb21tb24uaCIKICNpbmNsdWRlIDxtYXA+Ci0jaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHN0cmluZz4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC04MSw3ICs3OSw3
IEBAIGNsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIGNsYXNzIFdlYlRlc3RJbnRlcmZhY2VzOwogY2xh
c3MgV2ViVGVzdFJ1bm5lcjsKIAotY2xhc3MgV0VCVEVTVFJVTk5FUl9FWFBPUlQgV2ViVGVzdFBy
b3h5QmFzZSB7CitjbGFzcyBXZWJUZXN0UHJveHlCYXNlIHsKIHB1YmxpYzoKICAgICB2b2lkIHNl
dEludGVyZmFjZXMoV2ViVGVzdEludGVyZmFjZXMqKTsKICAgICB2b2lkIHNldERlbGVnYXRlKFdl
YlRlc3REZWxlZ2F0ZSopOwpAQCAtMTY3LDcgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgVGVzdElu
dGVyZmFjZXMqIG1fdGVzdEludGVyZmFjZXM7CiAgICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVn
YXRlOwogCi0gICAgc3RkOjphdXRvX3B0cjxTcGVsbENoZWNrQ2xpZW50PiBtX3NwZWxsY2hlY2s7
CisgICAgU3BlbGxDaGVja0NsaWVudCogbV9zcGVsbGNoZWNrOwogCiAgICAgV2ViS2l0OjpXZWJS
ZWN0IG1fcGFpbnRSZWN0OwogICAgIHN0ZDo6bWFwPHVuc2lnbmVkLCBzdGQ6OnN0cmluZz4gbV9y
ZXNvdXJjZUlkZW50aWZpZXJNYXA7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudENocm9taXVtLmNwcAppbmRleCA2ZGNjNDA2MDYzZjY5MjE0YjY3NjIyMzQz
MTYxMWU2MTdmZGM3MmM5Li4wNjNkZGJiYWRmYmFiNjYzMzg1NTk5Yjg4MmM3ZDBlNGM1NThhMmQy
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJv
bWl1bS5jcHAKQEAgLTMxLDEyICszMSwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5oIgogCi0jaW5jbHVkZSAiVGVzdENv
bW1vbi5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlIDxw
dWJsaWMvV2ViQ1N0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJQb2ludC5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJSZWN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgorI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTM2Nyw3
ICszNjgsNyBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iagogICAgICwgbV9mYWN0b3J5KGZhY3Rv
cnkpCiB7CiAKLSAgICBXRUJLSVRfQVNTRVJUKGZhY3RvcnkpOworICAgIEFTU0VSVChmYWN0b3J5
KTsKIAogICAgIC8vCiAgICAgLy8gUHJvcGVydGllcwpAQCAtMTAyNCwxNCArMTAyNSwxNCBAQCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TGlzdDo6Z2V0T3JD
cmVhdGUoY29uc3QgV2ViQWNjZXNzaQogICAgIH0KIAogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQqIGVsZW1lbnQgPSBuZXcgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChvYmplY3QsIHRoaXMpOwot
ICAgIG1fZWxlbWVudHMucHVzaF9iYWNrKGVsZW1lbnQpOworICAgIG1fZWxlbWVudHMuYXBwZW5k
KGVsZW1lbnQpOwogICAgIHJldHVybiBlbGVtZW50OwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TGlzdDo6Y3JlYXRlUm9vdChjb25zdCBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmplY3QpCiB7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCog
ZWxlbWVudCA9IG5ldyBSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudChvYmplY3QsIHRoaXMpOwot
ICAgIG1fZWxlbWVudHMucHVzaF9iYWNrKGVsZW1lbnQpOworICAgIG1fZWxlbWVudHMuYXBwZW5k
KGVsZW1lbnQpOwogICAgIHJldHVybiBlbGVtZW50OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Q2hyb21pdW0uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IGM2Y2IxYTIzNTZkYTA3
MGIxYTJlMTg0ZmE0MGVmMjg4OWFjNzkwOTAuLjM5NmFhNzA4MGE5NWM4ODUyMWE2OTAxZGMyNjE5
OTkwYTEyNDcwMWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRDaHJvbWl1bS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ3BwQm91bmRDbGFz
cy5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlIDx2ZWN0
b3I+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7
CiAKQEAgLTE2Nyw3ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCogY3JlYXRlUm9vdChjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKIAog
cHJpdmF0ZToKLSAgICB0eXBlZGVmIHN0ZDo6dmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQq
PiBFbGVtZW50TGlzdDsKKyAgICB0eXBlZGVmIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Kj4gRWxlbWVudExpc3Q7CiAgICAgRWxlbWVudExpc3QgbV9lbGVtZW50czsKIH07CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcEJv
dW5kQ2xhc3MuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvQ3BwQm91bmRDbGFzcy5jcHAKaW5kZXggNDllNjE0OTczYjcxOTJjYWRjOTEyZGQ4NmVkN2Q4
ODdjZmFhZDBlZC4uMDM1YWNkZWQ3OGQ2OGU4NzU3MGRhMDE1NWZmNjUyZDZhOTU5Y2MwYSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3Bw
Qm91bmRDbGFzcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkNwcEJvdW5kQ2xhc3MuaCIKIAotI2luY2x1ZGUgIlRlc3RD
b21tb24uaCIKICNpbmNsdWRlICJXZWJCaW5kaW5ncy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
Ci0jaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC03Nyw3ICs3Nyw3IEBA
IHByaXZhdGU6CiAKIGNsYXNzIEdldHRlclByb3BlcnR5Q2FsbGJhY2sgOiBwdWJsaWMgQ3BwQm91
bmRDbGFzczo6UHJvcGVydHlDYWxsYmFjayB7CiBwdWJsaWM6Ci0gICAgR2V0dGVyUHJvcGVydHlD
YWxsYmFjayhhdXRvX3B0cjxDcHBCb3VuZENsYXNzOjpHZXR0ZXJDYWxsYmFjaz4gY2FsbGJhY2sp
CisgICAgR2V0dGVyUHJvcGVydHlDYWxsYmFjayhQYXNzT3duUHRyPENwcEJvdW5kQ2xhc3M6Okdl
dHRlckNhbGxiYWNrPiBjYWxsYmFjaykKICAgICAgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQog
ICAgIHsKICAgICB9CkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c2V0VmFsdWUoY29uc3QgQ3BwVmFyaWFudCYgdmFsdWUpIHsgcmV0dXJuIGZhbHNlOyB9CiAKIHBy
aXZhdGU6Ci0gICAgYXV0b19wdHI8Q3BwQm91bmRDbGFzczo6R2V0dGVyQ2FsbGJhY2s+IG1fY2Fs
bGJhY2s7CisgICAgT3duUHRyPENwcEJvdW5kQ2xhc3M6OkdldHRlckNhbGxiYWNrPiBtX2NhbGxi
YWNrOwogfTsKIAogfQpAQCAtMjA5LDEwICsyMDksMTAgQEAgYm9vbCBDcHBOUE9iamVjdDo6c2V0
UHJvcGVydHkoTlBPYmplY3QqIG5wT2JqLCBOUElkZW50aWZpZXIgaWRlbnQsIGNvbnN0IE5QVmFy
aWEKIENwcEJvdW5kQ2xhc3M6On5DcHBCb3VuZENsYXNzKCkKIHsKICAgICBmb3IgKE1ldGhvZExp
c3Q6Oml0ZXJhdG9yIGkgPSBtX21ldGhvZHMuYmVnaW4oKTsgaSAhPSBtX21ldGhvZHMuZW5kKCk7
ICsraSkKLSAgICAgICAgZGVsZXRlIGktPnNlY29uZDsKKyAgICAgICAgZGVsZXRlIGktPnZhbHVl
OwogCiAgICAgZm9yIChQcm9wZXJ0eUxpc3Q6Oml0ZXJhdG9yIGkgPSBtX3Byb3BlcnRpZXMuYmVn
aW4oKTsgaSAhPSBtX3Byb3BlcnRpZXMuZW5kKCk7ICsraSkKLSAgICAgICAgZGVsZXRlIGktPnNl
Y29uZDsKKyAgICAgICAgZGVsZXRlIGktPnZhbHVlOwogCiAgICAgLy8gVW5yZWdpc3RlciBvdXJz
ZWx2ZXMgaWYgd2Ugd2VyZSBib3VuZCB0byBhIGZyYW1lLgogICAgIGlmIChtX2JvdW5kVG9GcmFt
ZSkKQEAgLTI0Myw3ICsyNDMsNyBAQCBib29sIENwcEJvdW5kQ2xhc3M6Omludm9rZShOUElkZW50
aWZpZXIgaWRlbnQsCiAgICAgICAgIH0KICAgICAgICAgY2FsbGJhY2sgPSBtX2ZhbGxiYWNrQ2Fs
bGJhY2suZ2V0KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIGNhbGxiYWNrID0gKCptZXRob2QpLnNl
Y29uZDsKKyAgICAgICAgY2FsbGJhY2sgPSAoKm1ldGhvZCkudmFsdWU7CiAKICAgICAvLyBCdWls
ZCBhIENwcEFyZ3VtZW50TGlzdCBhcmd1bWVudCB2ZWN0b3IgZnJvbSB0aGUgTlBWYXJpYW50cyBj
b21pbmcgaW4uCiAgICAgQ3BwQXJndW1lbnRMaXN0IGNwcEFyZ3VtZW50cyhhcmd1bWVudENvdW50
KTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIENwcEJvdW5kQ2xhc3M6OmdldFByb3BlcnR5KE5Q
SWRlbnRpZmllciBpZGVudCwgTlBWYXJpYW50KiByZXN1bHQpIGNvbnN0CiAgICAgfQogCiAgICAg
Q3BwVmFyaWFudCBjcHBWYWx1ZTsKLSAgICBpZiAoIWNhbGxiYWNrLT5zZWNvbmQtPmdldFZhbHVl
KCZjcHBWYWx1ZSkpCisgICAgaWYgKCFjYWxsYmFjay0+dmFsdWUtPmdldFZhbHVlKCZjcHBWYWx1
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjcHBWYWx1ZS5jb3B5VG9OUFZhcmlhbnQo
cmVzdWx0KTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI4MCw3ICsyODAsNyBAQCBib29sIENwcEJv
dW5kQ2xhc3M6OnNldFByb3BlcnR5KE5QSWRlbnRpZmllciBpZGVudCwgY29uc3QgTlBWYXJpYW50
KiB2YWx1ZSkKIAogICAgIENwcFZhcmlhbnQgY3BwVmFsdWU7CiAgICAgY3BwVmFsdWUuc2V0KCp2
YWx1ZSk7Ci0gICAgcmV0dXJuICgqY2FsbGJhY2spLnNlY29uZC0+c2V0VmFsdWUoY3BwVmFsdWUp
OworICAgIHJldHVybiAoKmNhbGxiYWNrKS52YWx1ZS0+c2V0VmFsdWUoY3BwVmFsdWUpOwogfQog
CiB2b2lkIENwcEJvdW5kQ2xhc3M6OmJpbmRDYWxsYmFjayhjb25zdCBzdHJpbmcmIG5hbWUsIENh
bGxiYWNrKiBjYWxsYmFjaykKQEAgLTI4OCwxOSArMjg4LDE5IEBAIHZvaWQgQ3BwQm91bmRDbGFz
czo6YmluZENhbGxiYWNrKGNvbnN0IHN0cmluZyYgbmFtZSwgQ2FsbGJhY2sqIGNhbGxiYWNrKQog
ICAgIE5QSWRlbnRpZmllciBpZGVudCA9IFdlYkJpbmRpbmdzOjpnZXRTdHJpbmdJZGVudGlmaWVy
KG5hbWUuY19zdHIoKSk7CiAgICAgTWV0aG9kTGlzdDo6aXRlcmF0b3Igb2xkQ2FsbGJhY2sgPSBt
X21ldGhvZHMuZmluZChpZGVudCk7CiAgICAgaWYgKG9sZENhbGxiYWNrICE9IG1fbWV0aG9kcy5l
bmQoKSkgewotICAgICAgICBkZWxldGUgb2xkQ2FsbGJhY2stPnNlY29uZDsKKyAgICAgICAgZGVs
ZXRlIG9sZENhbGxiYWNrLT52YWx1ZTsKICAgICAgICAgaWYgKCFjYWxsYmFjaykgewotICAgICAg
ICAgICAgbV9tZXRob2RzLmVyYXNlKG9sZENhbGxiYWNrKTsKKyAgICAgICAgICAgIG1fbWV0aG9k
cy5yZW1vdmUob2xkQ2FsbGJhY2spOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgbV9tZXRob2RzW2lkZW50XSA9IGNhbGxiYWNrOworICAgIG1fbWV0aG9kcy5z
ZXQoaWRlbnQsIGNhbGxiYWNrKTsKIH0KIAotdm9pZCBDcHBCb3VuZENsYXNzOjpiaW5kR2V0dGVy
Q2FsbGJhY2soY29uc3Qgc3RyaW5nJiBuYW1lLCBhdXRvX3B0cjxHZXR0ZXJDYWxsYmFjaz4gY2Fs
bGJhY2spCit2b2lkIENwcEJvdW5kQ2xhc3M6OmJpbmRHZXR0ZXJDYWxsYmFjayhjb25zdCBzdHJp
bmcmIG5hbWUsIFBhc3NPd25QdHI8R2V0dGVyQ2FsbGJhY2s+IGNhbGxiYWNrKQogewotICAgIFBy
b3BlcnR5Q2FsbGJhY2sqIHByb3BlcnR5Q2FsbGJhY2sgPSBjYWxsYmFjay5nZXQoKSA/IG5ldyBH
ZXR0ZXJQcm9wZXJ0eUNhbGxiYWNrKGNhbGxiYWNrKSA6IDA7CisgICAgUHJvcGVydHlDYWxsYmFj
ayogcHJvcGVydHlDYWxsYmFjayA9IGNhbGxiYWNrID8gbmV3IEdldHRlclByb3BlcnR5Q2FsbGJh
Y2soY2FsbGJhY2spIDogMDsKICAgICBiaW5kUHJvcGVydHkobmFtZSwgcHJvcGVydHlDYWxsYmFj
ayk7CiB9CiAKQEAgLTMxNSwxNCArMzE1LDE0IEBAIHZvaWQgQ3BwQm91bmRDbGFzczo6YmluZFBy
b3BlcnR5KGNvbnN0IHN0cmluZyYgbmFtZSwgUHJvcGVydHlDYWxsYmFjayogY2FsbGJhY2spCiAg
ICAgTlBJZGVudGlmaWVyIGlkZW50ID0gV2ViQmluZGluZ3M6OmdldFN0cmluZ0lkZW50aWZpZXIo
bmFtZS5jX3N0cigpKTsKICAgICBQcm9wZXJ0eUxpc3Q6Oml0ZXJhdG9yIG9sZENhbGxiYWNrID0g
bV9wcm9wZXJ0aWVzLmZpbmQoaWRlbnQpOwogICAgIGlmIChvbGRDYWxsYmFjayAhPSBtX3Byb3Bl
cnRpZXMuZW5kKCkpIHsKLSAgICAgICAgZGVsZXRlIG9sZENhbGxiYWNrLT5zZWNvbmQ7CisgICAg
ICAgIGRlbGV0ZSBvbGRDYWxsYmFjay0+dmFsdWU7CiAgICAgICAgIGlmICghY2FsbGJhY2spIHsK
LSAgICAgICAgICAgIG1fcHJvcGVydGllcy5lcmFzZShvbGRDYWxsYmFjayk7CisgICAgICAgICAg
ICBtX3Byb3BlcnRpZXMucmVtb3ZlKG9sZENhbGxiYWNrKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KIAotICAgIG1fcHJvcGVydGllc1tpZGVudF0gPSBjYWxsYmFjazsK
KyAgICBtX3Byb3BlcnRpZXMuc2V0KGlkZW50LCBjYWxsYmFjayk7CiB9CiAKIGJvb2wgQ3BwQm91
bmRDbGFzczo6aXNNZXRob2RSZWdpc3RlcmVkKGNvbnN0IHN0cmluZyYgbmFtZSkgY29uc3QKQEAg
LTM0NCw3ICszNDQsNyBAQCBDcHBWYXJpYW50KiBDcHBCb3VuZENsYXNzOjpnZXRBc0NwcFZhcmlh
bnQoKQogICAgICAgICBtX3NlbGZWYXJpYW50LnNldChucE9iaik7CiAgICAgICAgIFdlYkJpbmRp
bmdzOjpyZWxlYXNlT2JqZWN0KG5wT2JqKTsgLy8gQ3BwVmFyaWFudCB0YWtlcyB0aGUgcmVmZXJl
bmNlLgogICAgIH0KLSAgICBXRUJLSVRfQVNTRVJUKG1fc2VsZlZhcmlhbnQuaXNPYmplY3QoKSk7
CisgICAgQVNTRVJUKG1fc2VsZlZhcmlhbnQuaXNPYmplY3QoKSk7CiAgICAgcmV0dXJuICZtX3Nl
bGZWYXJpYW50OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmgKaW5kZXggOTUyYTQxYzUzNDBl
ZmRmMDBiYzc2Yjc4MmI0ZDQ2ZGFjY2Y4ZDFkYi4uNTRhZjZkZGNlMWU2ODAyZmYwMGQ2OGFhNzJi
NWYyMDI5ZTQ3NTNjNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcEJvdW5kQ2xhc3MuaApAQCAtNDQsOSArNDQsMTEg
QEAKICNkZWZpbmUgQ3BwQm91bmRDbGFzc19oCiAKICNpbmNsdWRlICJDcHBWYXJpYW50LmgiCi0j
aW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx2ZWN0b3I+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRnJhbWU7CkBA
IC01NSwxMSArNTcsMTIgQEAgY2xhc3MgV2ViU3RyaW5nOwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1
bm5lciB7CiAKLXR5cGVkZWYgc3RkOjp2ZWN0b3I8Q3BwVmFyaWFudD4gQ3BwQXJndW1lbnRMaXN0
OwordHlwZWRlZiBWZWN0b3I8Q3BwVmFyaWFudD4gQ3BwQXJndW1lbnRMaXN0OwogCiAvLyBDcHBC
b3VuZENsYXNzIGxldHMgeW91IG1hcCBKYXZhc2NyaXB0IG1ldGhvZCBjYWxscyBhbmQgcHJvcGVy
dHkgYWNjZXNzZXMKIC8vIGRpcmVjdGx5IHRvIEMrKyBtZXRob2QgY2FsbHMgYW5kIENwcFZhcmlh
bnQqIHZhcmlhYmxlIGFjY2Vzcy4KIGNsYXNzIENwcEJvdW5kQ2xhc3MgeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKENwcEJvdW5kQ2xhc3MpOwogcHVibGljOgogICAgIGNsYXNzIFByb3BlcnR5
Q2FsbGJhY2sgewogICAgIHB1YmxpYzoKQEAgLTE2MSw3ICsxNjQsNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICAvLyBCaW5kIEphdmFzY3JpcHQgcHJvcGVydHkgfG5hbWV8IHRvIHRoZSBDKysgZ2V0dGVy
IGNhbGxiYWNrIHxjYWxsYmFja3wuCiAgICAgLy8gVGhpcyBjYW4gYmUgdXNlZCB0byBjcmVhdGUg
cmVhZC1vbmx5IHByb3BlcnRpZXMuCi0gICAgdm9pZCBiaW5kR2V0dGVyQ2FsbGJhY2soY29uc3Qg
c3RkOjpzdHJpbmcmLCBzdGQ6OmF1dG9fcHRyPEdldHRlckNhbGxiYWNrPik7CisgICAgdm9pZCBi
aW5kR2V0dGVyQ2FsbGJhY2soY29uc3Qgc3RkOjpzdHJpbmcmLCBQYXNzT3duUHRyPEdldHRlckNh
bGxiYWNrPik7CiAKICAgICAvLyBBIHdyYXBwZXIgZm9yIEJpbmRHZXR0ZXJDYWxsYmFjaywgdG8g
c2ltcGxpZnkgdGhlIGNvbW1vbiBjYXNlIG9mIGJpbmRpbmcgYQogICAgIC8vIHByb3BlcnR5IG9u
IHRoZSBjdXJyZW50IG9iamVjdC4gVGhvdWdoIG5vdCB2ZXJpZmllZCBoZXJlLCB0aGUgbWV0aG9k
IHBhcmFtZXRlcgpAQCAtMTY5LDggKzE3Miw4IEBAIHByb3RlY3RlZDoKICAgICB0ZW1wbGF0ZTxj
bGFzcyBUPgogICAgIHZvaWQgYmluZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCB2
b2lkIChUOjoqbWV0aG9kKShDcHBWYXJpYW50KikpCiAgICAgewotICAgICAgICBzdGQ6OmF1dG9f
cHRyPEdldHRlckNhbGxiYWNrPiBjYWxsYmFjayhuZXcgTWVtYmVyR2V0dGVyQ2FsbGJhY2s8VD4o
c3RhdGljX2Nhc3Q8VCo+KHRoaXMpLCBtZXRob2QpKTsKLSAgICAgICAgYmluZEdldHRlckNhbGxi
YWNrKG5hbWUsIGNhbGxiYWNrKTsKKyAgICAgICAgT3duUHRyPEdldHRlckNhbGxiYWNrPiBjYWxs
YmFjayA9IGFkb3B0UHRyKG5ldyBNZW1iZXJHZXR0ZXJDYWxsYmFjazxUPihzdGF0aWNfY2FzdDxU
Kj4odGhpcyksIG1ldGhvZCkpOworICAgICAgICBiaW5kR2V0dGVyQ2FsbGJhY2sobmFtZSwgY2Fs
bGJhY2sucmVsZWFzZSgpKTsKICAgICB9CiAKICAgICAvLyBCaW5kIHRoZSBKYXZhc2NyaXB0IHBy
b3BlcnR5IGNhbGxlZCB8bmFtZXwgdG8gYSBDcHBWYXJpYW50LgpAQCAtMTkwLDcgKzE5Myw3IEBA
IHByb3RlY3RlZDoKICAgICAvLyBhcyBpdCBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcnMg
KGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBhCiAgICAgLy8gZmFsbGJhY2sgYWx3YXlzIHJldHVy
bnMgdHJ1ZSB3aGVuIGNoZWNrZWQgZm9yIGEgbWV0aG9kJ3MKICAgICAvLyBleGlzdGVuY2UpLgot
ICAgIHZvaWQgYmluZEZhbGxiYWNrQ2FsbGJhY2soc3RkOjphdXRvX3B0cjxDYWxsYmFjaz4gZmFs
bGJhY2tDYWxsYmFjaykKKyAgICB2b2lkIGJpbmRGYWxsYmFja0NhbGxiYWNrKFBhc3NPd25QdHI8
Q2FsbGJhY2s+IGZhbGxiYWNrQ2FsbGJhY2spCiAgICAgewogICAgICAgICBtX2ZhbGxiYWNrQ2Fs
bGJhY2sgPSBmYWxsYmFja0NhbGxiYWNrOwogICAgIH0KQEAgLTIwMiwyNCArMjA1LDI1IEBAIHBy
b3RlY3RlZDoKICAgICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAgIHZvaWQgYmluZEZhbGxiYWNrTWV0
aG9kKHZvaWQgKFQ6OiptZXRob2QpKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KSkKICAgICB7Ci0gICAgICAgIGlmIChtZXRob2QpCi0gICAgICAgICAgICBiaW5kRmFsbGJhY2tD
YWxsYmFjayhzdGQ6OmF1dG9fcHRyPENhbGxiYWNrPihuZXcgTWVtYmVyQ2FsbGJhY2s8VD4oc3Rh
dGljX2Nhc3Q8VCo+KHRoaXMpLCBtZXRob2QpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGJpbmRGYWxsYmFja0NhbGxiYWNrKHN0ZDo6YXV0b19wdHI8Q2FsbGJhY2s+KCkpOworICAgICAg
ICBpZiAobWV0aG9kKSB7CisgICAgICAgICAgICBPd25QdHI8Q2FsbGJhY2s+IGNhbGxiYWNrID0g
YWRvcHRQdHIobmV3IE1lbWJlckNhbGxiYWNrPFQ+KHN0YXRpY19jYXN0PFQqPih0aGlzKSwgbWV0
aG9kKSk7CisgICAgICAgICAgICBiaW5kRmFsbGJhY2tDYWxsYmFjayhjYWxsYmFjay5yZWxlYXNl
KCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJpbmRGYWxsYmFja0NhbGxiYWNrKG51
bGxwdHIpOwogICAgIH0KIAogICAgIC8vIFNvbWUgZmllbGRzIGFyZSBwcm90ZWN0ZWQgYmVjYXVz
ZSBzb21lIHRlc3RzIGRlcGVuZCBvbiBhY2Nlc3NpbmcgdGhlbSwKICAgICAvLyBidXQgb3RoZXJ3
aXNlIHRoZXkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcHJpdmF0ZS4KIAotICAgIHR5cGVkZWYgc3Rk
OjptYXA8TlBJZGVudGlmaWVyLCBQcm9wZXJ0eUNhbGxiYWNrKj4gUHJvcGVydHlMaXN0OwotICAg
IHR5cGVkZWYgc3RkOjptYXA8TlBJZGVudGlmaWVyLCBDYWxsYmFjayo+IE1ldGhvZExpc3Q7Cisg
ICAgdHlwZWRlZiBIYXNoTWFwPE5QSWRlbnRpZmllciwgUHJvcGVydHlDYWxsYmFjayo+IFByb3Bl
cnR5TGlzdDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8TlBJZGVudGlmaWVyLCBDYWxsYmFjayo+IE1l
dGhvZExpc3Q7CiAgICAgLy8gVGhlc2UgbWFwcyBhc3NvY2lhdGUgbmFtZXMgd2l0aCBwcm9wZXJ0
eSBhbmQgbWV0aG9kIHBvaW50ZXJzIHRvIGJlCiAgICAgLy8gZXhwb3NlZCB0byBKYXZhU2NyaXB0
LgogICAgIFByb3BlcnR5TGlzdCBtX3Byb3BlcnRpZXM7CiAgICAgTWV0aG9kTGlzdCBtX21ldGhv
ZHM7CiAKICAgICAvLyBUaGUgY2FsbGJhY2sgZ2V0cyBpbnZva2VkIHdoZW4gYSBjYWxsIGlzIG1h
ZGUgdG8gYW4gbm9uZXhpc3RlbnQgbWV0aG9kLgotICAgIHN0ZDo6YXV0b19wdHI8Q2FsbGJhY2s+
IG1fZmFsbGJhY2tDYWxsYmFjazsKKyAgICBPd25QdHI8Q2FsbGJhY2s+IG1fZmFsbGJhY2tDYWxs
YmFjazsKIAogcHJpdmF0ZToKICAgICAvLyBOUE9iamVjdCBjYWxsYmFja3MuCkBAIC0yMzgsMTAg
KzI0Miw2IEBAIHByaXZhdGU6CiAgICAgLy8gVHJ1ZSBpZiBvdXIgbnBfb2JqZWN0IGhhcyBiZWVu
IGJvdW5kIHRvIGEgV2ViRnJhbWUsIGluIHdoaWNoIGNhc2UgaXQgbXVzdAogICAgIC8vIGJlIHVu
cmVnaXN0ZXJlZCB3aXRoIFY4IHdoZW4gd2UgZGVsZXRlIGl0LgogICAgIGJvb2wgbV9ib3VuZFRv
RnJhbWU7Ci0KLXByaXZhdGU6Ci0gICAgQ3BwQm91bmRDbGFzcyhDcHBCb3VuZENsYXNzJik7Ci0g
ICAgQ3BwQm91bmRDbGFzcyYgb3BlcmF0b3I9KGNvbnN0IENwcEJvdW5kQ2xhc3MmKTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL0NwcFZhcmlhbnQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvQ3BwVmFyaWFudC5jcHAKaW5kZXggZWYyZTkyYTY1YzBlZjRlOGMzYmRmNGU1Y2Rk
NDcxNTViZTc3MmMzNS4uNGQyODU2ZTc0MmQ5N2NkZDlhMDA4NWUxOWEyZGQxODExMmY4ZjVmYyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
Q3BwVmFyaWFudC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvQ3BwVmFyaWFudC5jcHAKQEAgLTMxLDkgKzMxLDEwIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ3BwVmFyaWFudC5oIgogCi0jaW5jbHVkZSAiVGVzdENvbW1vbi5o
IgogI2luY2x1ZGUgIldlYkJpbmRpbmdzLmgiCiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTIxOSw3ICsyMjAs
NyBAQCB2b2lkIENwcFZhcmlhbnQ6OnNldChOUE9iamVjdCogbmV3VmFsdWUpCiAKIHN0cmluZyBD
cHBWYXJpYW50Ojp0b1N0cmluZygpIGNvbnN0CiB7Ci0gICAgV0VCS0lUX0FTU0VSVChpc1N0cmlu
ZygpKTsKKyAgICBBU1NFUlQoaXNTdHJpbmcoKSk7CiAgICAgcmV0dXJuIHN0cmluZyh2YWx1ZS5z
dHJpbmdWYWx1ZS5VVEY4Q2hhcmFjdGVycywKICAgICAgICAgICAgICAgICAgIHZhbHVlLnN0cmlu
Z1ZhbHVlLlVURjhMZW5ndGgpOwogfQpAQCAtMjMwLDcgKzIzMSw3IEBAIGludDMyX3QgQ3BwVmFy
aWFudDo6dG9JbnQzMigpIGNvbnN0CiAgICAgICAgIHJldHVybiB2YWx1ZS5pbnRWYWx1ZTsKICAg
ICBpZiAoaXNEb3VibGUoKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHZh
bHVlLmRvdWJsZVZhbHVlKTsKLSAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTI0MCwyMSArMjQx
LDIxIEBAIGRvdWJsZSBDcHBWYXJpYW50Ojp0b0RvdWJsZSgpIGNvbnN0CiAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlLmludFZhbHVlKTsKICAgICBpZiAoaXNEb3VibGUo
KSkKICAgICAgICAgcmV0dXJuIHZhbHVlLmRvdWJsZVZhbHVlOwotICAgIFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsK
IH0KIAogYm9vbCBDcHBWYXJpYW50Ojp0b0Jvb2xlYW4oKSBjb25zdAogewotICAgIFdFQktJVF9B
U1NFUlQoaXNCb29sKCkpOworICAgIEFTU0VSVChpc0Jvb2woKSk7CiAgICAgcmV0dXJuIHZhbHVl
LmJvb2xWYWx1ZTsKIH0KIAotdmVjdG9yPHN0cmluZz4gQ3BwVmFyaWFudDo6dG9TdHJpbmdWZWN0
b3IoKSBjb25zdAorVmVjdG9yPHN0cmluZz4gQ3BwVmFyaWFudDo6dG9TdHJpbmdWZWN0b3IoKSBj
b25zdAogewogCi0gICAgV0VCS0lUX0FTU0VSVChpc09iamVjdCgpKTsKLSAgICB2ZWN0b3I8c3Ry
aW5nPiBzdHJpbmdWZWN0b3I7CisgICAgQVNTRVJUKGlzT2JqZWN0KCkpOworICAgIFZlY3Rvcjxz
dHJpbmc+IHN0cmluZ1ZlY3RvcjsKICAgICBOUE9iamVjdCogbnBWYWx1ZSA9IHZhbHVlLm9iamVj
dFZhbHVlOwogICAgIE5QSWRlbnRpZmllciBsZW5ndGhJZCA9IFdlYkJpbmRpbmdzOjpnZXRTdHJp
bmdJZGVudGlmaWVyKCJsZW5ndGgiKTsKIApAQCAtMjg5LDcgKzI5MCw3IEBAIHZlY3RvcjxzdHJp
bmc+IENwcFZhcmlhbnQ6OnRvU3RyaW5nVmVjdG9yKCkgY29uc3QKICAgICAgICAgaWYgKE5QVkFS
SUFOVF9JU19TVFJJTkcoaW5kZXhWYWx1ZSkpIHsKICAgICAgICAgICAgIHN0cmluZyBpdGVtKE5Q
VkFSSUFOVF9UT19TVFJJTkcoaW5kZXhWYWx1ZSkuVVRGOENoYXJhY3RlcnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBOUFZBUklBTlRfVE9fU1RSSU5HKGluZGV4VmFsdWUpLlVURjhMZW5ndGgp
OwotICAgICAgICAgICAgc3RyaW5nVmVjdG9yLnB1c2hfYmFjayhpdGVtKTsKKyAgICAgICAgICAg
IHN0cmluZ1ZlY3Rvci5hcHBlbmQoaXRlbSk7CiAgICAgICAgIH0KICAgICAgICAgV2ViQmluZGlu
Z3M6OnJlbGVhc2VWYXJpYW50VmFsdWUoJmluZGV4VmFsdWUpOwogICAgIH0KQEAgLTI5OSw3ICsz
MDAsNyBAQCB2ZWN0b3I8c3RyaW5nPiBDcHBWYXJpYW50Ojp0b1N0cmluZ1ZlY3RvcigpIGNvbnN0
CiBib29sIENwcFZhcmlhbnQ6Omludm9rZShjb25zdCBzdHJpbmcmIG1ldGhvZCwgY29uc3QgQ3Bw
VmFyaWFudCogYXJndW1lbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYXJn
dW1lbnRDb3VudCwgQ3BwVmFyaWFudCYgcmVzdWx0KSBjb25zdAogewotICAgIFdFQktJVF9BU1NF
UlQoaXNPYmplY3QoKSk7CisgICAgQVNTRVJUKGlzT2JqZWN0KCkpOwogICAgIE5QSWRlbnRpZmll
ciBtZXRob2ROYW1lID0gV2ViQmluZGluZ3M6OmdldFN0cmluZ0lkZW50aWZpZXIobWV0aG9kLmNf
c3RyKCkpOwogICAgIE5QT2JqZWN0KiBucE9iamVjdCA9IHZhbHVlLm9iamVjdFZhbHVlOwogICAg
IGlmICghV2ViQmluZGluZ3M6Omhhc01ldGhvZCgwLCBucE9iamVjdCwgbWV0aG9kTmFtZSkpCkBA
IC0zMTMsNyArMzE0LDcgQEAgYm9vbCBDcHBWYXJpYW50OjppbnZva2UoY29uc3Qgc3RyaW5nJiBt
ZXRob2QsIGNvbnN0IENwcFZhcmlhbnQqIGFyZ3VtZW50cywKIGJvb2wgQ3BwVmFyaWFudDo6aW52
b2tlRGVmYXVsdChjb25zdCBDcHBWYXJpYW50KiBhcmd1bWVudHMsIHVpbnQzMl90IGFyZ3VtZW50
Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3BwVmFyaWFudCYgcmVzdWx0
KSBjb25zdAogewotICAgIFdFQktJVF9BU1NFUlQoaXNPYmplY3QoKSk7CisgICAgQVNTRVJUKGlz
T2JqZWN0KCkpOwogICAgIE5QT2JqZWN0KiBucE9iamVjdCA9IHZhbHVlLm9iamVjdFZhbHVlOwog
ICAgIE5QVmFyaWFudCByOwogICAgIGJvb2wgc3RhdHVzID0gV2ViQmluZGluZ3M6Omludm9rZURl
ZmF1bHQoMCwgbnBPYmplY3QsIGFyZ3VtZW50cywgYXJndW1lbnRDb3VudCwgJnIpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFy
aWFudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3Bw
VmFyaWFudC5oCmluZGV4IGU5Mjk1YTNiZTg5NWJhM2UwYTk3MWIwZTllYTlkOGRhZjhlY2ZjMjgu
LmU4MmE3MGI2Njc1MjRmN2IyNmMyZDNjMzBiZjVjMWMyMjNkZmNmNzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJp
YW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogI2luY2x1ZGUgIldlYkJpbmRpbmdzLmgiCiAjaW5j
bHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIHRvQm9vbGVhbigpIGNvbnN0OwogICAgIC8vIFJldHVybnMgYSB2ZWN0b3Ig
b2Ygc3RyaW5ncyBmb3IgdGhlIHNwZWNpZmllZCBhcmd1bWVudC4gVGhpcyBpcyB1c2VmdWwKICAg
ICAvLyBmb3IgY29udmVydGluZyBhIEphdmFTY3JpcHQgYXJyYXkgb2Ygc3RyaW5ncyBpbnRvIGEg
dmVjdG9yIG9mIHN0cmluZ3MuCi0gICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHRvU3RyaW5n
VmVjdG9yKCkgY29uc3Q7CisgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiB0b1N0cmluZ1ZlY3Rvcigp
IGNvbnN0OwogCiAgICAgLy8gSW52b2tlIG1ldGhvZCBvZiB0aGUgZ2l2ZW4gbmFtZSBvbiBhbiBv
YmplY3Qgd2l0aCB0aGUgc3VwcGxpZWQgYXJndW1lbnRzLgogICAgIC8vIFRoZSBmaXJzdCBhcmd1
bWVudCBzaG91bGQgYmUgdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgbWV0aG9kIGlzIHRvIGJlCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9F
dmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9FdmVudFNlbmRlci5jcHAKaW5kZXggZGJjMDhiMjExOTkwZmZhNWM5NTQzMTgxNmFmNzU1
ZmU5OTM1ODZmMC4uYWI2MDE5M2Q3NzA4MmQzOWM1NTZmM2UzOWMzM2EwMDQzNzk2NWY1YiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0V2ZW50U2VuZGVyLmNwcApAQCAtNDUsMTkgKzQ1LDE5IEBACiAKICNpbmNsdWRlICJL
ZXlDb2RlTWFwcGluZy5oIgogI2luY2x1ZGUgIk1vY2tTcGVsbENoZWNrLmgiCi0jaW5jbHVkZSAi
VGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51RGF0YS5oIgogI2luY2x1ZGUg
IldlYkRyYWdPcGVyYXRpb24uaCIKICNpbmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKICNpbmNs
dWRlICJXZWJUb3VjaFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgotI2luY2x1ZGUgPGRl
cXVlPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJEcmFnRGF0YS5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJQb2ludC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL1N0
cmluZ0V4dHJhcy5oPgogCi0jaWZkZWYgV0lOMzIKKyNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUg
Indpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5oIgogI2VuZGlmCiAKQEAgLTk3LDkgKzk3LDkgQEAg
V2ViRHJhZ0RhdGEgY3VycmVudERyYWdEYXRhOwogV2ViRHJhZ09wZXJhdGlvbiBjdXJyZW50RHJh
Z0VmZmVjdDsKIFdlYkRyYWdPcGVyYXRpb25zTWFzayBjdXJyZW50RHJhZ0VmZmVjdHNBbGxvd2Vk
OwogYm9vbCByZXBsYXlpbmdTYXZlZEV2ZW50cyA9IGZhbHNlOwotZGVxdWU8U2F2ZWRFdmVudD4g
bW91c2VFdmVudFF1ZXVlOworRGVxdWU8U2F2ZWRFdmVudD4gbW91c2VFdmVudFF1ZXVlOwogaW50
IHRvdWNoTW9kaWZpZXJzOwotdmVjdG9yPFdlYlRvdWNoUG9pbnQ+IHRvdWNoUG9pbnRzOworVmVj
dG9yPFdlYlRvdWNoUG9pbnQ+IHRvdWNoUG9pbnRzOwogCiAvLyBUaW1lIGFuZCBwbGFjZSBvZiB0
aGUgbGFzdCBtb3VzZSB1cCBldmVudC4KIGRvdWJsZSBsYXN0Q2xpY2tUaW1lU2VjID0gMDsKQEAg
LTE1NSw3ICsxNTUsNyBAQCBib29sIGFwcGx5S2V5TW9kaWZpZXIoY29uc3Qgc3RyaW5nJiBtb2Rp
Zmllck5hbWUsIFdlYklucHV0RXZlbnQqIGV2ZW50KQogICAgIGJvb2wgaXNTeXN0ZW1LZXkgPSBm
YWxzZTsKICAgICBjb25zdCBjaGFyKiBjaGFyYWN0ZXJzID0gbW9kaWZpZXJOYW1lLmNfc3RyKCk7
CiAgICAgaWYgKCFzdHJjbXAoY2hhcmFjdGVycywgImN0cmxLZXkiKQotI2lmbmRlZiBfX0FQUExF
X18KKyNpZiAhT1MoTUFDX09TX1gpCiAgICAgICAgIHx8ICFzdHJjbXAoY2hhcmFjdGVycywgImFk
ZFNlbGVjdGlvbktleSIpCiAjZW5kaWYKICAgICAgICAgKSB7CkBAIC0xNjQsNyArMTY0LDcgQEAg
Ym9vbCBhcHBseUtleU1vZGlmaWVyKGNvbnN0IHN0cmluZyYgbW9kaWZpZXJOYW1lLCBXZWJJbnB1
dEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPm1vZGlmaWVycyB8PSBXZWJJbnB1dEV2ZW50
OjpTaGlmdEtleTsKICAgICBlbHNlIGlmICghc3RyY21wKGNoYXJhY3RlcnMsICJhbHRLZXkiKSkg
ewogICAgICAgICBldmVudC0+bW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6OkFsdEtleTsKLSNp
Zm5kZWYgX19BUFBMRV9fCisjaWYgIU9TKE1BQ19PU19YKQogICAgICAgICAvLyBPbiBXaW5kb3dz
IGFsbCBrZXlzIHdpdGggQWx0IG1vZGlmaWVyIHdpbGwgYmUgbWFya2VkIGFzIHN5c3RlbSBrZXku
CiAgICAgICAgIC8vIFdlIGtlZXAgdGhlIHNhbWUgYmVoYXZpb3Igb24gTGludXggYW5kIGV2ZXJ5
d2hlcmUgbm9uLU1hYywgc2VlOgogICAgICAgICAvLyBXZWJLaXQvY2hyb21pdW0vc3JjL2d0ay9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTE3Miw3ICsxNzIsOCBAQCBib29sIGFwcGx5S2V5
TW9kaWZpZXIoY29uc3Qgc3RyaW5nJiBtb2RpZmllck5hbWUsIFdlYklucHV0RXZlbnQqIGV2ZW50
KQogICAgICAgICAvLyBrZXB0IGluIHN5bmMgd2l0aCB0aGUgcmVsYXRlZCBjb2RlIGluIGFib3Zl
IGZpbGUuCiAgICAgICAgIGlzU3lzdGVtS2V5ID0gdHJ1ZTsKICNlbmRpZgotI2lmZGVmIF9fQVBQ
TEVfXworI2lmIE9TKE1BQ19PU19YKQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjaGFyYWN0ZXJz
LCAibWV0YUtleSIpIHx8ICFzdHJjbXAoY2hhcmFjdGVycywgImFkZFNlbGVjdGlvbktleSIpKSB7
CiAgICAgICAgIGV2ZW50LT5tb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6TWV0YUtleTsKICAg
ICAgICAgLy8gT24gTWFjIG9ubHkgY29tbWFuZCBrZXkgcHJlc3NlcyBhcmUgbWFya2VkIGFzIHN5
c3RlbSBrZXkuCiAgICAgICAgIC8vIFNlZSB0aGUgcmVsYXRlZCBjb2RlIGluOiBXZWJLaXQvY2hy
b21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTE5MCw4ICsxOTEsOCBA
QCBib29sIGFwcGx5S2V5TW9kaWZpZXJzKGNvbnN0IENwcFZhcmlhbnQqIGFyZ3VtZW50LCBXZWJJ
bnB1dEV2ZW50KiBldmVudCkKIHsKICAgICBib29sIGlzU3lzdGVtS2V5ID0gZmFsc2U7CiAgICAg
aWYgKGFyZ3VtZW50LT5pc09iamVjdCgpKSB7Ci0gICAgICAgIHZlY3RvcjxzdHJpbmc+IG1vZGlm
aWVycyA9IGFyZ3VtZW50LT50b1N0cmluZ1ZlY3RvcigpOwotICAgICAgICBmb3IgKHZlY3Rvcjxz
dHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpID0gbW9kaWZpZXJzLmJlZ2luKCk7IGkgIT0gbW9kaWZp
ZXJzLmVuZCgpOyArK2kpCisgICAgICAgIFZlY3RvcjxzdHJpbmc+IG1vZGlmaWVycyA9IGFyZ3Vt
ZW50LT50b1N0cmluZ1ZlY3RvcigpOworICAgICAgICBmb3IgKFZlY3RvcjxzdHJpbmc+Ojpjb25z
dF9pdGVyYXRvciBpID0gbW9kaWZpZXJzLmJlZ2luKCk7IGkgIT0gbW9kaWZpZXJzLmVuZCgpOyAr
K2kpCiAgICAgICAgICAgICBpc1N5c3RlbUtleSB8PSBhcHBseUtleU1vZGlmaWVyKCppLCBldmVu
dCk7CiAgICAgfSBlbHNlIGlmIChhcmd1bWVudC0+aXNTdHJpbmcoKSkKICAgICAgICAgaXNTeXN0
ZW1LZXkgPSBhcHBseUtleU1vZGlmaWVyKGFyZ3VtZW50LT50b1N0cmluZygpLCBldmVudCk7CkBA
IC0yMDMsNyArMjA0LDcgQEAgYm9vbCBhcHBseUtleU1vZGlmaWVycyhjb25zdCBDcHBWYXJpYW50
KiBhcmd1bWVudCwgV2ViSW5wdXRFdmVudCogZXZlbnQpCiAvLyBvZiB0aGUgZWRpdCBjb21tYW5k
IHdpbGwgYmUgc3RvcmVkIGluIHwqbmFtZXwuCiBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0IFdl
YktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiB7Ci0jaWZkZWYgX19BUFBMRV9f
CisjaWYgT1MoTUFDX09TX1gpCiAgICAgLy8gV2Ugb25seSBjYXJlcyBhYm91dCBMZWZ0LFJpZ2h0
LFVwLERvd24ga2V5cyB3aXRoIENvbW1hbmQgb3IgQ29tbWFuZCtTaGlmdAogICAgIC8vIG1vZGlm
aWVycy4gVGhlc2Uga2V5IGV2ZW50cyBjb3JyZXNwb25kIHRvIHNvbWUgc3BlY2lhbCBtb3ZlbWVu
dCBhbmQKICAgICAvLyBzZWxlY3Rpb24gZWRpdG9yIGNvbW1hbmRzLCBhbmQgd2FzIHN1cHBvc2Vk
IHRvIGJlIGhhbmRsZWQgaW4KQEAgLTMwNSw3ICszMDYsNyBAQCBFdmVudFNlbmRlcjo6RXZlbnRT
ZW5kZXIoKQogICAgIC8vIFdoZW4gc2V0IHRvIHRydWUgKHRoZSBkZWZhdWx0IHZhbHVlKSwgd2Ug
YmF0Y2ggbW91c2UgbW92ZSBhbmQgbW91c2UgdXAKICAgICAvLyBldmVudHMgc28gd2UgY2FuIHNp
bXVsYXRlIGRyYWcgJiBkcm9wLgogICAgIGJpbmRQcm9wZXJ0eSgiZHJhZ01vZGUiLCAmZHJhZ01v
ZGUpOwotI2lmZGVmIFdJTjMyCisjaWYgT1MoV0lORE9XUykKICAgICBiaW5kUHJvcGVydHkoIldN
X0tFWURPV04iLCAmd21LZXlEb3duKTsKICAgICBiaW5kUHJvcGVydHkoIldNX0tFWVVQIiwgJndt
S2V5VXApOwogICAgIGJpbmRQcm9wZXJ0eSgiV01fQ0hBUiIsICZ3bUNoYXIpOwpAQCAtMzIwLDEz
ICszMjEsMTMgQEAgRXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKCkKIHZvaWQgRXZlbnRTZW5kZXI6
OnJlc2V0KCkKIHsKICAgICAvLyBUaGUgdGVzdCBzaG91bGQgaGF2ZSBmaW5pc2hlZCBhIGRyYWcg
YW5kIHRoZSBtb3VzZSBidXR0b24gc3RhdGUuCi0gICAgV0VCS0lUX0FTU0VSVChjdXJyZW50RHJh
Z0RhdGEuaXNOdWxsKCkpOworICAgIEFTU0VSVChjdXJyZW50RHJhZ0RhdGEuaXNOdWxsKCkpOwog
ICAgIGN1cnJlbnREcmFnRGF0YS5yZXNldCgpOwogICAgIGN1cnJlbnREcmFnRWZmZWN0ID0gV2Vi
S2l0OjpXZWJEcmFnT3BlcmF0aW9uTm9uZTsKICAgICBjdXJyZW50RHJhZ0VmZmVjdHNBbGxvd2Vk
ID0gV2ViS2l0OjpXZWJEcmFnT3BlcmF0aW9uTm9uZTsKICAgICBwcmVzc2VkQnV0dG9uID0gV2Vi
TW91c2VFdmVudDo6QnV0dG9uTm9uZTsKICAgICBkcmFnTW9kZS5zZXQodHJ1ZSk7Ci0jaWZkZWYg
V0lOMzIKKyNpZiBPUyhXSU5ET1dTKQogICAgIHdtS2V5RG93bi5zZXQoV01fS0VZRE9XTik7CiAg
ICAgd21LZXlVcC5zZXQoV01fS0VZVVApOwogICAgIHdtQ2hhci5zZXQoV01fQ0hBUik7CkBAIC00
MTYsNyArNDE3LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VEb3duKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQKICAgICB3ZWJ2aWV3KCktPmxh
eW91dCgpOwogCiAgICAgaW50IGJ1dHRvbk51bWJlciA9IGdldEJ1dHRvbk51bWJlckZyb21TaW5n
bGVBcmcoYXJndW1lbnRzKTsKLSAgICBXRUJLSVRfQVNTRVJUKGJ1dHRvbk51bWJlciAhPSAtMSk7
CisgICAgQVNTRVJUKGJ1dHRvbk51bWJlciAhPSAtMSk7CiAKICAgICBXZWJNb3VzZUV2ZW50OjpC
dXR0b24gYnV0dG9uVHlwZSA9IGdldEJ1dHRvblR5cGVGcm9tQnV0dG9uTnVtYmVyKGJ1dHRvbk51
bWJlcik7CiAKQEAgLTQzOCw3ICs0MzksNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3VzZVVwKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAg
d2VidmlldygpLT5sYXlvdXQoKTsKIAogICAgIGludCBidXR0b25OdW1iZXIgPSBnZXRCdXR0b25O
dW1iZXJGcm9tU2luZ2xlQXJnKGFyZ3VtZW50cyk7Ci0gICAgV0VCS0lUX0FTU0VSVChidXR0b25O
dW1iZXIgIT0gLTEpOworICAgIEFTU0VSVChidXR0b25OdW1iZXIgIT0gLTEpOwogCiAgICAgV2Vi
TW91c2VFdmVudDo6QnV0dG9uIGJ1dHRvblR5cGUgPSBnZXRCdXR0b25UeXBlRnJvbUJ1dHRvbk51
bWJlcihidXR0b25OdW1iZXIpOwogCkBAIC00NDYsNyArNDQ3LDcgQEAgdm9pZCBFdmVudFNlbmRl
cjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogICAgICAgICBTYXZlZEV2ZW50IHNhdmVkRXZlbnQ7CiAgICAgICAgIHNhdmVkRXZl
bnQudHlwZSA9IFNhdmVkRXZlbnQ6Ok1vdXNlVXA7CiAgICAgICAgIHNhdmVkRXZlbnQuYnV0dG9u
VHlwZSA9IGJ1dHRvblR5cGU7Ci0gICAgICAgIG1vdXNlRXZlbnRRdWV1ZS5wdXNoX2JhY2soc2F2
ZWRFdmVudCk7CisgICAgICAgIG1vdXNlRXZlbnRRdWV1ZS5hcHBlbmQoc2F2ZWRFdmVudCk7CiAg
ICAgICAgIHJlcGxheVNhdmVkRXZlbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV2ViTW91
c2VFdmVudCBldmVudDsKQEAgLTUwMyw3ICs1MDQsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3Vz
ZU1vdmVUbyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dQogICAgICAgICBTYXZlZEV2ZW50IHNhdmVkRXZlbnQ7CiAgICAgICAgIHNhdmVkRXZlbnQudHlw
ZSA9IFNhdmVkRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICAgICAgc2F2ZWRFdmVudC5wb3MgPSBtb3Vz
ZVBvczsKLSAgICAgICAgbW91c2VFdmVudFF1ZXVlLnB1c2hfYmFjayhzYXZlZEV2ZW50KTsKKyAg
ICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50KTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgICAgICBpbml0TW91c2VFdmVudChXZWJJ
bnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdl
dEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwpAQCAtNTk2LDcgKzU5Nyw3IEBAIHZv
aWQgRXZlbnRTZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKICAgICAgICAgfQogICAgICAgICBpZiAoIWNvZGUpIHsKICAg
ICAgICAgICAgIFdlYlN0cmluZyB3ZWJDb2RlU3RyID0gV2ViU3RyaW5nOjpmcm9tVVRGOChjb2Rl
U3RyLmRhdGEoKSwgY29kZVN0ci5zaXplKCkpOwotICAgICAgICAgICAgV0VCS0lUX0FTU0VSVCh3
ZWJDb2RlU3RyLmxlbmd0aCgpID09IDEpOworICAgICAgICAgICAgQVNTRVJUKHdlYkNvZGVTdHIu
bGVuZ3RoKCkgPT0gMSk7CiAgICAgICAgICAgICB0ZXh0ID0gY29kZSA9IHdlYkNvZGVTdHIuZGF0
YSgpWzBdOwogICAgICAgICAgICAgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gbmVlZHNTaGlmdE1v
ZGlmaWVyKGNvZGUpOwogICAgICAgICAgICAgaWYgKChjb2RlICYgMHhGRikgPj0gJ2EnICYmIChj
b2RlICYgMHhGRikgPD0gJ3onKQpAQCAtNjE0LDcgKzYxNSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6
OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKICAgICBldmVudERvd24udHlwZSA9IFdlYklucHV0RXZlbnQ6OlJhd0tleURvd247CiAg
ICAgZXZlbnREb3duLm1vZGlmaWVycyA9IDA7CiAgICAgZXZlbnREb3duLndpbmRvd3NLZXlDb2Rl
ID0gY29kZTsKLSNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgVVNFKEdUSykKKyNpZiBPUyhMSU5V
WCkgJiYgVVNFKEdUSykKICAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNv
ZGVGb3JXaW5kb3dzS2V5Q29kZShjb2RlKTsKICNlbmRpZgogCkBAIC02NzYsNyArNjc3LDcgQEAg
dm9pZCBFdmVudFNlbmRlcjo6ZGlzcGF0Y2hNZXNzYWdlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KgogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogCi0jaWZk
ZWYgV0lOMzIKKyNpZiBPUyhXSU5ET1dTKQogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID09IDMp
IHsKICAgICAgICAgLy8gR3JhYiB0aGUgbWVzc2FnZSBpZCB0byBzZWUgaWYgd2UgbmVlZCB0byBk
aXNwYXRjaCBpdC4KICAgICAgICAgaW50IG1zZyA9IGFyZ3VtZW50c1swXS50b0ludDMyKCk7CkBA
IC02OTIsNyArNjkzLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6ZGlzcGF0Y2hNZXNzYWdlKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KgogICAgICAgICB1bnNpZ25l
ZCBsb25nIGxwYXJhbSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGFyZ3VtZW50c1syXS50
b0RvdWJsZSgpKTsKICAgICAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KFdlYklucHV0
RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KDAsIG1zZywgYXJndW1lbnRzWzFdLnRvSW50MzIo
KSwgbHBhcmFtKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKIH0KIApAQCAtNzE2
LDcgKzcxNyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmxlYXBGb3J3YXJkKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1CiAgICAgICAgIFNhdmVkRXZlbnQg
c2F2ZWRFdmVudDsKICAgICAgICAgc2F2ZWRFdmVudC50eXBlID0gU2F2ZWRFdmVudDo6TGVhcEZv
cndhcmQ7CiAgICAgICAgIHNhdmVkRXZlbnQubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzOwot
ICAgICAgICBtb3VzZUV2ZW50UXVldWUucHVzaF9iYWNrKHNhdmVkRXZlbnQpOworICAgICAgICBt
b3VzZUV2ZW50UXVldWUuYXBwZW5kKHNhdmVkRXZlbnQpOwogICAgIH0gZWxzZQogICAgICAgICBk
b0xlYXBGb3J3YXJkKG1pbGxpc2Vjb25kcyk7CiB9CkBAIC03NzcsOSArNzc4LDggQEAgdm9pZCBF
dmVudFNlbmRlcjo6Y29udGludW91c01vdXNlU2Nyb2xsQnkoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFYKIHZvaWQgRXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkK
IHsKICAgICByZXBsYXlpbmdTYXZlZEV2ZW50cyA9IHRydWU7Ci0gICAgd2hpbGUgKCFtb3VzZUV2
ZW50UXVldWUuZW1wdHkoKSkgewotICAgICAgICBTYXZlZEV2ZW50IGUgPSBtb3VzZUV2ZW50UXVl
dWUuZnJvbnQoKTsKLSAgICAgICAgbW91c2VFdmVudFF1ZXVlLnBvcF9mcm9udCgpOworICAgIHdo
aWxlICghbW91c2VFdmVudFF1ZXVlLmlzRW1wdHkoKSkgeworICAgICAgICBTYXZlZEV2ZW50IGUg
PSBtb3VzZUV2ZW50UXVldWUudGFrZUZpcnN0KCk7CiAKICAgICAgICAgc3dpdGNoIChlLnR5cGUp
IHsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsKQEAgLTc5OCw3ICs3OTgs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cygpCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTgxMiw3ICs4MTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpy
ZXBsYXlTYXZlZEV2ZW50cygpCiAvLyAgIGFsc28gbWFrZXMgc2Vuc2UuIFRoaXMgZnVuY3Rpb24g
aXMgZG9pbmcgc3VjaCBmb3Igc29tZSBmbGFncy4KIC8vIC0gU29tZSB0ZXN0IGV2ZW4gY2hlY2tz
IGFjdHVhbCBzdHJpbmcgY29udGVudC4gU28gcHJvdmlkaW5nIGl0IHdvdWxkIGJlIGFsc28gaGVs
cGZ1bC4KIC8vCi1zdGF0aWMgdmVjdG9yPFdlYlN0cmluZz4gbWFrZU1lbnVJdGVtU3RyaW5nc0Zv
cihXZWJDb250ZXh0TWVudURhdGEqIGNvbnRleHRNZW51LCBXZWJUZXN0RGVsZWdhdGUqIGRlbGVn
YXRlKQorc3RhdGljIFZlY3RvcjxXZWJTdHJpbmc+IG1ha2VNZW51SXRlbVN0cmluZ3NGb3IoV2Vi
Q29udGV4dE1lbnVEYXRhKiBjb250ZXh0TWVudSwgV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkK
IHsKICAgICAvLyBUaGVzZSBjb25zdGFudHMgYXJlIGJhc2VkIG9uIFNhZmFyaSdzIGNvbnRleHQg
bWVudSBiZWNhdXNlIHRlc3RzIGFyZSBtYWRlIGZvciBpdC4KICAgICBzdGF0aWMgY29uc3QgY2hh
ciogbm9uRWRpdGFibGVNZW51U3RyaW5nc1tdID0geyAiQmFjayIsICJSZWxvYWQgUGFnZSIsICJP
cGVuIGluIERhc2hiYW9yZCIsICI8c2VwYXJhdG9yPiIsICJWaWV3IFNvdXJjZSIsICJTYXZlIFBh
Z2UgQXMiLCAiUHJpbnQgUGFnZSIsICJJbnNwZWN0IEVsZW1lbnQiLCAwIH07CkBAIC04MjAsMjAg
KzgyMCwyMCBAQCBzdGF0aWMgdmVjdG9yPFdlYlN0cmluZz4gbWFrZU1lbnVJdGVtU3RyaW5nc0Zv
cihXZWJDb250ZXh0TWVudURhdGEqIGNvbnRleHRNZW51LAogCiAgICAgLy8gVGhpcyBpcyBwb3Nz
aWJsZSBiZWNhdXNlIG1vdXNlIGV2ZW50cyBhcmUgY2FuY2VsbGVhYmxlLgogICAgIGlmICghY29u
dGV4dE1lbnUpCi0gICAgICAgIHJldHVybiB2ZWN0b3I8V2ViU3RyaW5nPigpOworICAgICAgICBy
ZXR1cm4gVmVjdG9yPFdlYlN0cmluZz4oKTsKIAotICAgIHZlY3RvcjxXZWJTdHJpbmc+IHN0cmlu
Z3M7CisgICAgVmVjdG9yPFdlYlN0cmluZz4gc3RyaW5nczsKIAogICAgIGlmIChjb250ZXh0TWVu
dS0+aXNFZGl0YWJsZSkgewogICAgICAgICBmb3IgKGNvbnN0IGNoYXIqKiBpdGVtID0gZWRpdGFi
bGVNZW51U3RyaW5nczsgKml0ZW07ICsraXRlbSkgCi0gICAgICAgICAgICBzdHJpbmdzLnB1c2hf
YmFjayhXZWJTdHJpbmc6OmZyb21VVEY4KCppdGVtKSk7CisgICAgICAgICAgICBzdHJpbmdzLmFw
cGVuZChXZWJTdHJpbmc6OmZyb21VVEY4KCppdGVtKSk7CiAgICAgICAgIFdlYlZlY3RvcjxXZWJT
dHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAgICBNb2NrU3BlbGxDaGVjazo6ZmlsbFN1Z2dlc3Rp
b25MaXN0KGNvbnRleHRNZW51LT5taXNzcGVsbGVkV29yZCwgJnN1Z2dlc3Rpb25zKTsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWdnZXN0aW9ucy5zaXplKCk7ICsraSkgCi0gICAg
ICAgICAgICBzdHJpbmdzLnB1c2hfYmFjayhzdWdnZXN0aW9uc1tpXSk7CisgICAgICAgICAgICBz
dHJpbmdzLmFwcGVuZChzdWdnZXN0aW9uc1tpXSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9y
IChjb25zdCBjaGFyKiogaXRlbSA9IG5vbkVkaXRhYmxlTWVudVN0cmluZ3M7ICppdGVtOyArK2l0
ZW0pIAotICAgICAgICAgICAgc3RyaW5ncy5wdXNoX2JhY2soV2ViU3RyaW5nOjpmcm9tVVRGOCgq
aXRlbSkpOworICAgICAgICAgICAgc3RyaW5ncy5hcHBlbmQoV2ViU3RyaW5nOjpmcm9tVVRGOCgq
aXRlbSkpOwogICAgIH0KIAogICAgIHJldHVybiBzdHJpbmdzOwpAQCAtODU4LDcgKzg1OCw3IEBA
IHZvaWQgRXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzCiAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVu
dDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAm
ZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXco
KS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAKLSNpZmRlZiBXSU4zMgorI2lmIE9TKFdJTkRP
V1MpCiAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgV2ViTW91c2VF
dmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRU
aW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZl
bnQpOwogCkBAIC05MTUsNyArOTE1LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6c2NoZWR1bGVBc3lu
Y2hyb25vdXNLZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLAogdm9pZCBF
dmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0aEZpbGVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgY3VycmVudERyYWdEYXRhLmluaXRp
YWxpemUoKTsKLSAgICB2ZWN0b3I8c3RyaW5nPiBmaWxlcyA9IGFyZ3VtZW50c1swXS50b1N0cmlu
Z1ZlY3RvcigpOworICAgIFZlY3RvcjxzdHJpbmc+IGZpbGVzID0gYXJndW1lbnRzWzBdLnRvU3Ry
aW5nVmVjdG9yKCk7CiAgICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gYWJzb2x1dGVGaWxlbmFtZXMo
ZmlsZXMuc2l6ZSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbGVzLnNpemUoKTsg
KytpKSB7CiAgICAgICAgIFdlYkRyYWdEYXRhOjpJdGVtIGl0ZW07CkBAIC05NTQsNyArOTU0LDcg
QEAgdm9pZCBFdmVudFNlbmRlcjo6YWRkVG91Y2hQb2ludChjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmUKICAgICAgICAgICAgIGxvd2VzdElkKys7CiAgICAg
fQogICAgIHRvdWNoUG9pbnQuaWQgPSBsb3dlc3RJZDsKLSAgICB0b3VjaFBvaW50cy5wdXNoX2Jh
Y2sodG91Y2hQb2ludCk7CisgICAgdG91Y2hQb2ludHMuYXBwZW5kKHRvdWNoUG9pbnQpOwogfQog
CiB2b2lkIEV2ZW50U2VuZGVyOjpjbGVhclRvdWNoUG9pbnRzKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTk2OCw3ICs5NjgsNyBAQCB2b2lkIEV2ZW50U2Vu
ZGVyOjpyZWxlYXNlVG91Y2hQb2ludChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
Q3BwVmFyaWFudAogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogCiAgICAgY29uc3QgdW5zaWduZWQg
aW5kZXggPSBhcmd1bWVudHNbMF0udG9JbnQzMigpOwotICAgIFdFQktJVF9BU1NFUlQoaW5kZXgg
PCB0b3VjaFBvaW50cy5zaXplKCkpOworICAgIEFTU0VSVChpbmRleCA8IHRvdWNoUG9pbnRzLnNp
emUoKSk7CiAKICAgICBXZWJUb3VjaFBvaW50KiB0b3VjaFBvaW50ID0gJnRvdWNoUG9pbnRzW2lu
ZGV4XTsKICAgICB0b3VjaFBvaW50LT5zdGF0ZSA9IFdlYlRvdWNoUG9pbnQ6OlN0YXRlUmVsZWFz
ZWQ7CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjp1cGRhdGVUb3VjaFBv
aW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KgogICAgIHJl
c3VsdC0+c2V0TnVsbCgpOwogCiAgICAgY29uc3QgdW5zaWduZWQgaW5kZXggPSBhcmd1bWVudHNb
MF0udG9JbnQzMigpOwotICAgIFdFQktJVF9BU1NFUlQoaW5kZXggPCB0b3VjaFBvaW50cy5zaXpl
KCkpOworICAgIEFTU0VSVChpbmRleCA8IHRvdWNoUG9pbnRzLnNpemUoKSk7CiAKICAgICBXZWJQ
b2ludCBwb3NpdGlvbihhcmd1bWVudHNbMV0udG9JbnQzMigpLCBhcmd1bWVudHNbMl0udG9JbnQz
MigpKTsKICAgICBXZWJUb3VjaFBvaW50KiB0b3VjaFBvaW50ID0gJnRvdWNoUG9pbnRzW2luZGV4
XTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmNhbmNlbFRvdWNoUG9p
bnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqCiAgICAgcmVz
dWx0LT5zZXROdWxsKCk7CiAKICAgICBjb25zdCB1bnNpZ25lZCBpbmRleCA9IGFyZ3VtZW50c1sw
XS50b0ludDMyKCk7Ci0gICAgV0VCS0lUX0FTU0VSVChpbmRleCA8IHRvdWNoUG9pbnRzLnNpemUo
KSk7CisgICAgQVNTRVJUKGluZGV4IDwgdG91Y2hQb2ludHMuc2l6ZSgpKTsKIAogICAgIFdlYlRv
dWNoUG9pbnQqIHRvdWNoUG9pbnQgPSAmdG91Y2hQb2ludHNbaW5kZXhdOwogICAgIHRvdWNoUG9p
bnQtPnN0YXRlID0gV2ViVG91Y2hQb2ludDo6U3RhdGVDYW5jZWxsZWQ7CkBAIC0xMDIyLDcgKzEw
MjIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpjYW5jZWxUb3VjaFBvaW50KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KgogCiB2b2lkIEV2ZW50U2VuZGVyOjpzZW5k
Q3VycmVudFRvdWNoRXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlKQogewotICAg
IFdFQktJVF9BU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdlYlRvdWNoRXZlbnQ6OnRvdWNo
ZXNMZW5ndGhDYXApID4gdG91Y2hQb2ludHMuc2l6ZSgpKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFdlYlRvdWNoRXZlbnQ6OnRvdWNoZXNMZW5ndGhDYXApID4gdG91Y2hQb2lu
dHMuc2l6ZSgpKTsKICAgICB3ZWJ2aWV3KCktPmxheW91dCgpOwogCiAgICAgV2ViVG91Y2hFdmVu
dCB0b3VjaEV2ZW50OwpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6c2Vu
ZEN1cnJlbnRUb3VjaEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSkKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG91Y2hQb2ludHMuc2l6ZSgpOyArK2kpIHsKICAgICAg
ICAgV2ViVG91Y2hQb2ludCogdG91Y2hQb2ludCA9ICZ0b3VjaFBvaW50c1tpXTsKICAgICAgICAg
aWYgKHRvdWNoUG9pbnQtPnN0YXRlID09IFdlYlRvdWNoUG9pbnQ6OlN0YXRlUmVsZWFzZWQpIHsK
LSAgICAgICAgICAgIHRvdWNoUG9pbnRzLmVyYXNlKHRvdWNoUG9pbnRzLmJlZ2luKCkgKyBpKTsK
KyAgICAgICAgICAgIHRvdWNoUG9pbnRzLnJlbW92ZShpKTsKICAgICAgICAgICAgIC0taTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0b3VjaFBvaW50LT5zdGF0ZSA9IFdlYlRvdWNoUG9p
bnQ6OlN0YXRlU3RhdGlvbmFyeTsKQEAgLTEyNTcsNyArMTI1Nyw3IEBAIHZvaWQgRXZlbnRTZW5k
ZXI6Omdlc3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHR5cGUsIGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAgICAg
ICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KIAogICAgIGV2ZW50Lmdsb2JhbFggPSBldmVudC54OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvS2V5Q29kZU1hcHBp
bmcuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvS2V5
Q29kZU1hcHBpbmcuY3BwCmluZGV4IDIxMTU4NmUzNWUwYzZmN2EyODVkYzk2ZTY2NzYxOThmZTAw
YzU5ZDguLmMzMzlmMmYyYmNkMjVhODQwNmMzNDY3Zjg4NGU4ZmJhNTM0Njk3NjUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVN
YXBwaW5nLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9LZXlDb2RlTWFwcGluZy5jcHAKQEAgLTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIktleUNvZGVNYXBwaW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KKwogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCiBpbnQgTmF0aXZlS2V5
Q29kZUZvcldpbmRvd3NLZXlDb2RlKGludCBrZXlzeW0pCiB7Ci0jaWYgZGVmaW5lZChfX2xpbnV4
X18pICYmIFVTRShHVEspCisjaWYgT1MoTElOVVgpICYmIFVTRShHVEspCiAgICAgLy8gU2VlIC91
c3Ivc2hhcmUvWDExL3hrYi9rZXljb2Rlcy8qCiAgICAgc3RhdGljIGNvbnN0IGludCBhc2NpaVRv
S2V5Q29kZVtdID0gewogICAgICAgICAwLApAQCAtMjM4LDcgKzI0MCw4IEBAIGludCBOYXRpdmVL
ZXlDb2RlRm9yV2luZG93c0tleUNvZGUoaW50IGtleXN5bSkKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogI2Vsc2UKLSAgICByZXR1cm4ga2V5c3ltIC0ga2V5c3ltOworICAgIFVOVVNFRF9QQVJB
TShrZXlzeW0pOworICAgIHJldHVybiAwOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tHcmFtbWFyQ2hlY2su
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja0dy
YW1tYXJDaGVjay5jcHAKaW5kZXggNjFlZWUwYzgwNTI1MGVjZTc1ZDY4NTcwZmI3MGFmMzNmYzZh
ZmY5ZS4uN2Q0OWVkMmZhYTM4OGVjNjhkZTYwN2U1YTBlM2NlNjEwNTMxZjI3YiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja0dyYW1t
YXJDaGVjay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvTW9ja0dyYW1tYXJDaGVjay5jcHAKQEAgLTMxLDIyICszMSwyMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk1vY2tHcmFtbWFyQ2hlY2suaCIKIAotI2luY2x1ZGUgIlBs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlN0cmluZy5oIgotI2luY2x1ZGUgIlRlc3RDb21tb24uaCIKICNp
bmNsdWRlICJXZWJUZXh0Q2hlY2tpbmdSZXN1bHQuaCIKLSNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
LXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2Ugc3RkOworI2luY2x1ZGUg
PHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAotYm9vbCBNb2NrR3JhbW1hckNoZWNrOjpjaGVja0dyYW1t
YXJPZlN0cmluZyhjb25zdCBXZWJTdHJpbmcmIHRleHQsIHZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdS
ZXN1bHQ+KiByZXN1bHRzKQorYm9vbCBNb2NrR3JhbW1hckNoZWNrOjpjaGVja0dyYW1tYXJPZlN0
cmluZyhjb25zdCBXZWJTdHJpbmcmIHRleHQsIFZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ+
KiByZXN1bHRzKQogewotICAgIFdFQktJVF9BU1NFUlQocmVzdWx0cyk7Ci0gICAgc3RyaW5nMTYg
c3RyaW5nVGV4dCA9IHRleHQ7Ci0gICAgaWYgKGZpbmRfaWYoc3RyaW5nVGV4dC5iZWdpbigpLCBz
dHJpbmdUZXh0LmVuZCgpLCBpc0FTQ0lJQWxwaGEpID09IHN0cmluZ1RleHQuZW5kKCkpCisgICAg
QVNTRVJUKHJlc3VsdHMpOworICAgIFdURjo6U3RyaW5nIHN0cmluZ1RleHQodGV4dC5kYXRhKCks
IHRleHQubGVuZ3RoKCkpOworICAgIGlmIChzdHJpbmdUZXh0LmZpbmQoaXNBU0NJSUFscGhhKSA9
PSBzdGF0aWNfY2FzdDxzaXplX3Q+KC0xKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAv
LyBGaW5kIG1hdGNoaW5nIGdyYW1tYXRpY2FsIGVycm9ycyBmcm9tIGtub3duIG9uZXMuIFRoaXMg
ZnVuY3Rpb24gaGFzIHRvCkBAIC03MSwxMyArNjksMTAgQEAgYm9vbCBNb2NrR3JhbW1hckNoZWNr
OjpjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBXZWJTdHJpbmcmIHRleHQsIHZlY3RvcjxXZWJU
ZXgKICAgICB9OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlTSVpFX1VOU0FGRShn
cmFtbWFyRXJyb3JzKTsgKytpKSB7CiAgICAgICAgIGludCBvZmZzZXQgPSAwOwotICAgICAgICBz
dHJpbmcxNiBlcnJvcihncmFtbWFyRXJyb3JzW2ldLnRleHQsIGdyYW1tYXJFcnJvcnNbaV0udGV4
dCArIHN0cmxlbihncmFtbWFyRXJyb3JzW2ldLnRleHQpKTsKLSAgICAgICAgd2hpbGUgKChvZmZz
ZXQgPSBzdHJpbmdUZXh0LmZpbmQoZXJyb3IsIG9mZnNldCkpICE9IHN0cmluZzE2OjpucG9zKSB7
Ci0gICAgICAgICAgICByZXN1bHRzLT5wdXNoX2JhY2soV2ViVGV4dENoZWNraW5nUmVzdWx0KFdl
YlRleHRDaGVja2luZ1R5cGVHcmFtbWFyLCBvZmZzZXQgKyBncmFtbWFyRXJyb3JzW2ldLmxvY2F0
aW9uLCBncmFtbWFyRXJyb3JzW2ldLmxlbmd0aCkpOworICAgICAgICB3aGlsZSAoKG9mZnNldCA9
IHN0cmluZ1RleHQuZmluZChncmFtbWFyRXJyb3JzW2ldLnRleHQsIG9mZnNldCkpICE9IC0xKSB7
CisgICAgICAgICAgICByZXN1bHRzLT5hcHBlbmQoV2ViVGV4dENoZWNraW5nUmVzdWx0KFdlYlRl
eHRDaGVja2luZ1R5cGVHcmFtbWFyLCBvZmZzZXQgKyBncmFtbWFyRXJyb3JzW2ldLmxvY2F0aW9u
LCBncmFtbWFyRXJyb3JzW2ldLmxlbmd0aCkpOwogICAgICAgICAgICAgb2Zmc2V0ICs9IGdyYW1t
YXJFcnJvcnNbaV0ubGVuZ3RoOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
IH0KLQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvTW9ja0dyYW1tYXJDaGVjay5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvTW9ja0dyYW1tYXJDaGVjay5oCmluZGV4IGExODNkY2NiMDc0Yzc5
MGJmYWNhYzNmNzc5ODc1ZDlkYTg4MTk5NWMuLjY0MjcxYjNmYTNjMmMwMWFjMTM2YzhlMTAzMDcx
NjE5MjZkM2U5ODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL01vY2tHcmFtbWFyQ2hlY2suaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrR3JhbW1hckNoZWNrLmgKQEAgLTMxLDcgKzMx
LDggQEAKICNpZm5kZWYgTW9ja0dyYW1tYXJDaGVja19oCiAjZGVmaW5lIE1vY2tHcmFtbWFyQ2hl
Y2tfaAogCi0jaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQw
LDggKzQxLDYgQEAgc3RydWN0IFdlYlRleHRDaGVja2luZ1Jlc3VsdDsKIAogfQogCi1uYW1lc3Bh
Y2UgV2ViVGVzdFJ1bm5lciB7Ci0KIC8vIEEgbW9jayBpbXBsZW1lbnRhdGlvbiBvZiBhIGdyYW1t
YXItY2hlY2tlciB1c2VkIGZvciBXZWJLaXQgdGVzdHMuIFRoaXMgY2xhc3MKIC8vIG9ubHkgaW1w
bGVtZW50cyB0aGUgbWluaW1hbCBmdW5jdGlvbmFyaXRpZXMgcmVxdWlyZWQgYnkgV2ViS2l0IHRl
c3RzLCBpLmUuCiAvLyB0aGlzIGNsYXNzIGp1c3QgY29tcGFyZXMgdGhlIGdpdmVuIHN0cmluZyB3
aXRoIGtub3duIGdyYW1tYXIgbWlzdGFrZXMgaW4KQEAgLTQ5LDkgKzQ4LDcgQEAgbmFtZXNwYWNl
IFdlYlRlc3RSdW5uZXIgewogLy8gZm9yIHdlYmtpdCB0ZXN0cywgdGhpcyBjbGFzcyBpcyBub3Qg
c3VpdGFibGUgZm9yIGFueSBvdGhlciB1c2FnZXMuCiBjbGFzcyBNb2NrR3JhbW1hckNoZWNrIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgYm9vbCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBXZWJL
aXQ6OldlYlN0cmluZyYsIHN0ZDo6dmVjdG9yPFdlYktpdDo6V2ViVGV4dENoZWNraW5nUmVzdWx0
PiopOworICAgIHN0YXRpYyBib29sIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFdlYktpdDo6
V2ViU3RyaW5nJiwgVmVjdG9yPFdlYktpdDo6V2ViVGV4dENoZWNraW5nUmVzdWx0PiopOwogfTsK
IAotfQotCiAjZW5kaWYgLy8gTW9ja1NwZWxsQ2hlY2tfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1NwZWxsQ2hlY2suY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1NwZWxsQ2hl
Y2suY3BwCmluZGV4IGYyNzNjYjI3MmRjNjk1NzQyMzU4ODEwNzVmYjYzNGI1MWI5M2NlOWIuLjgx
YjMwODkyYjU4MjBhY2YzYzhiMmFkNzhmZTg0MTE2ZjkwZThjYmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tTcGVsbENoZWNrLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2Nr
U3BlbGxDaGVjay5jcHAKQEAgLTMxLDE3ICszMSwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIk1vY2tTcGVsbENoZWNrLmgiCiAKLSNpbmNsdWRlICJUZXN0Q29tbW9uLmgiCi0j
aW5jbHVkZSA8cHVibGljL1dlYkNTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5o
PgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwog
Ci1uYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7Ci0KLW5hbWVzcGFjZSB7Ci0KLXZvaWQgYXBwZW5k
KFdlYlZlY3RvcjxXZWJTdHJpbmc+KiBkYXRhLCBjb25zdCBXZWJTdHJpbmcmIGl0ZW0pCitzdGF0
aWMgdm9pZCBhcHBlbmQoV2ViVmVjdG9yPFdlYlN0cmluZz4qIGRhdGEsIGNvbnN0IFdlYlN0cmlu
ZyYgaXRlbSkKIHsKICAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiByZXN1bHQoZGF0YS0+c2l6ZSgp
ICsgMSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhLT5zaXplKCk7ICsraSkKQEAg
LTUwLDE3ICs0NiwxNyBAQCB2b2lkIGFwcGVuZChXZWJWZWN0b3I8V2ViU3RyaW5nPiogZGF0YSwg
Y29uc3QgV2ViU3RyaW5nJiBpdGVtKQogICAgIGRhdGEtPnN3YXAocmVzdWx0KTsKIH0KIAotfQot
CiBNb2NrU3BlbGxDaGVjazo6TW9ja1NwZWxsQ2hlY2soKQogICAgIDogbV9pbml0aWFsaXplZChm
YWxzZSkgeyB9CiAKIE1vY2tTcGVsbENoZWNrOjp+TW9ja1NwZWxsQ2hlY2soKSB7IH0KIAorc3Rh
dGljIGJvb2wgaXNOb3RBU0NJSUFscGhhKFVDaGFyIGNoKSB7IHJldHVybiAhaXNBU0NJSUFscGhh
KGNoKTsgfQorCiBib29sIE1vY2tTcGVsbENoZWNrOjpzcGVsbENoZWNrV29yZChjb25zdCBXZWJT
dHJpbmcmIHRleHQsIGludCogbWlzc3BlbGxlZE9mZnNldCwgaW50KiBtaXNzcGVsbGVkTGVuZ3Ro
KQogewotICAgIFdFQktJVF9BU1NFUlQobWlzc3BlbGxlZE9mZnNldCk7Ci0gICAgV0VCS0lUX0FT
U0VSVChtaXNzcGVsbGVkTGVuZ3RoKTsKKyAgICBBU1NFUlQobWlzc3BlbGxlZE9mZnNldCk7Cisg
ICAgQVNTRVJUKG1pc3NwZWxsZWRMZW5ndGgpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGlzIHNw
ZWxsY2hlY2tlci4KICAgICBpbml0aWFsaXplSWZOZWVkZWQoKTsKQEAgLTY5LDEyICs2NSwxMiBA
QCBib29sIE1vY2tTcGVsbENoZWNrOjpzcGVsbENoZWNrV29yZChjb25zdCBXZWJTdHJpbmcmIHRl
eHQsIGludCogbWlzc3BlbGxlZE9mZnNldAogICAgICptaXNzcGVsbGVkT2Zmc2V0ID0gMDsKICAg
ICAqbWlzc3BlbGxlZExlbmd0aCA9IDA7CiAKLSAgICAvLyBDb252ZXJ0IHRvIGEgc3RyaW5nMTYg
YmVjYXVzZSB3ZSBzdG9yZSBzdHJpbmcxNiBpbnN0YW5jZXMgaW4KKyAgICAvLyBDb252ZXJ0IHRv
IGEgU3RyaW5nIGJlY2F1c2Ugd2Ugc3RvcmUgU3RyaW5nIGluc3RhbmNlcyBpbgogICAgIC8vIG1f
bWlzc3BlbGxlZFdvcmRzIGFuZCBXZWJTdHJpbmcgaGFzIG5vIGZpbmQoKS4KLSAgICBzdHJpbmcx
NiBzdHJpbmdUZXh0ID0gdGV4dDsKKyAgICBTdHJpbmcgc3RyaW5nVGV4dCh0ZXh0LmRhdGEoKSwg
dGV4dC5sZW5ndGgoKSk7CiAgICAgaW50IHNraXBwZWRMZW5ndGggPSAwOwogCi0gICAgd2hpbGUg
KCFzdHJpbmdUZXh0LmVtcHR5KCkpIHsKKyAgICB3aGlsZSAoIXN0cmluZ1RleHQuaXNFbXB0eSgp
KSB7CiAgICAgICAgIC8vIEV4dHJhY3QgdGhlIGZpcnN0IHBvc3NpYmxlIEVuZ2xpc2ggd29yZCBm
cm9tIHRoZSBnaXZlbiBzdHJpbmcuCiAgICAgICAgIC8vIFRoZSBnaXZlbiBzdHJpbmcgbWF5IGlu
Y2x1ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgb3IgbnVtYmVycy4gU28sIHdlCiAgICAgICAgIC8v
IHNob3VsZCBmaWx0ZXIgb3V0IHN1Y2ggY2hhcmFjdGVycyBiZWZvcmUgc3RhcnQgbG9va2luZyB1
cCBvdXIKQEAgLTgyLDEzICs3OCwxMiBAQCBib29sIE1vY2tTcGVsbENoZWNrOjpzcGVsbENoZWNr
V29yZChjb25zdCBXZWJTdHJpbmcmIHRleHQsIGludCogbWlzc3BlbGxlZE9mZnNldAogICAgICAg
ICAvLyAoVGhpcyBpcyBhIHNpbXBsZSB2ZXJzaW9uIG9mIG91ciBTcGVsbENoZWNrV29yZEl0ZXJh
dG9yIGNsYXNzLikKICAgICAgICAgLy8gSWYgdGhlIGdpdmVuIHN0cmluZyBkb2Vzbid0IGluY2x1
ZGUgYW55IEFTQ0lJIGNoYXJhY3RlcnMsIHdlIGNhbiB0cmVhdCB0aGUKICAgICAgICAgLy8gc3Ry
aW5nIGFzIHZhbGlkIG9uZS4KLSAgICAgICAgc3RyaW5nMTY6Oml0ZXJhdG9yIGZpcnN0Q2hhciA9
IGZpbmRfaWYoc3RyaW5nVGV4dC5iZWdpbigpLCBzdHJpbmdUZXh0LmVuZCgpLCBpc0FTQ0lJQWxw
aGEpOwotICAgICAgICBpZiAoZmlyc3RDaGFyID09IHN0cmluZ1RleHQuZW5kKCkpCisgICAgICAg
IGludCB3b3JkT2Zmc2V0ID0gc3RyaW5nVGV4dC5maW5kKGlzQVNDSUlBbHBoYSk7CisgICAgICAg
IGlmICh3b3JkT2Zmc2V0ID09IC0xKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IGludCB3b3JkT2Zmc2V0ID0gZGlzdGFuY2Uoc3RyaW5nVGV4dC5iZWdpbigpLCBmaXJzdENoYXIp
OwogICAgICAgICBpbnQgbWF4V29yZExlbmd0aCA9IHN0YXRpY19jYXN0PGludD4oc3RyaW5nVGV4
dC5sZW5ndGgoKSkgLSB3b3JkT2Zmc2V0OwogICAgICAgICBpbnQgd29yZExlbmd0aDsKLSAgICAg
ICAgc3RyaW5nMTYgd29yZDsKKyAgICAgICAgU3RyaW5nIHdvcmQ7CiAKICAgICAgICAgLy8gTG9v
ayB1cCBvdXIgbWlzc3BlbGxlZC13b3JkIHRhYmxlIHRvIGNoZWNrIGlmIHRoZSBleHRyYWN0ZWQg
d29yZCBpcyBhCiAgICAgICAgIC8vIGtub3duIG1pc3NwZWxsZWQgd29yZCwgYW5kIHJldHVybiB0
aGUgb2Zmc2V0IGFuZCB0aGUgbGVuZ3RoIG9mIHRoZQpAQCAtOTcsNyArOTIsNyBAQCBib29sIE1v
Y2tTcGVsbENoZWNrOjpzcGVsbENoZWNrV29yZChjb25zdCBXZWJTdHJpbmcmIHRleHQsIGludCog
bWlzc3BlbGxlZE9mZnNldAogICAgICAgICAvLyBtaXNzcGVsbGVkLXdvcmQgdGFibGUuKQogICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbWlzc3BlbGxlZFdvcmRzLnNpemUoKTsgKytp
KSB7CiAgICAgICAgICAgICB3b3JkTGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihtX21pc3NwZWxs
ZWRXb3Jkcy5hdChpKS5sZW5ndGgoKSkgPiBtYXhXb3JkTGVuZ3RoID8gbWF4V29yZExlbmd0aCA6
IHN0YXRpY19jYXN0PGludD4obV9taXNzcGVsbGVkV29yZHMuYXQoaSkubGVuZ3RoKCkpOwotICAg
ICAgICAgICAgd29yZCA9IHN0cmluZ1RleHQuc3Vic3RyKHdvcmRPZmZzZXQsIHdvcmRMZW5ndGgp
OworICAgICAgICAgICAgd29yZCA9IHN0cmluZ1RleHQuc3Vic3RyaW5nKHdvcmRPZmZzZXQsIHdv
cmRMZW5ndGgpOwogICAgICAgICAgICAgaWYgKHdvcmQgPT0gbV9taXNzcGVsbGVkV29yZHMuYXQo
aSkgJiYgKHN0YXRpY19jYXN0PGludD4oc3RyaW5nVGV4dC5sZW5ndGgoKSkgPT0gd29yZE9mZnNl
dCArIHdvcmRMZW5ndGggfHwgaXNOb3RBU0NJSUFscGhhKHN0cmluZ1RleHRbd29yZE9mZnNldCAr
IHdvcmRMZW5ndGhdKSkpIHsKICAgICAgICAgICAgICAgICAqbWlzc3BlbGxlZE9mZnNldCA9IHdv
cmRPZmZzZXQgKyBza2lwcGVkTGVuZ3RoOwogICAgICAgICAgICAgICAgICptaXNzcGVsbGVkTGVu
Z3RoID0gd29yZExlbmd0aDsKQEAgLTEwOCwxNCArMTAzLDExIEBAIGJvb2wgTW9ja1NwZWxsQ2hl
Y2s6OnNwZWxsQ2hlY2tXb3JkKGNvbnN0IFdlYlN0cmluZyYgdGV4dCwgaW50KiBtaXNzcGVsbGVk
T2Zmc2V0CiAgICAgICAgIGlmICgqbWlzc3BlbGxlZExlbmd0aCA+IDApCiAgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICBzdHJpbmcxNjo6aXRlcmF0b3IgbGFzdENoYXIgPSBmaW5kX2lmKHN0
cmluZ1RleHQuYmVnaW4oKSArIHdvcmRPZmZzZXQsIHN0cmluZ1RleHQuZW5kKCksIGlzTm90QVND
SUlBbHBoYSk7Ci0gICAgICAgIGlmIChsYXN0Q2hhciA9PSBzdHJpbmdUZXh0LmVuZCgpKQotICAg
ICAgICAgICAgd29yZExlbmd0aCA9IHN0YXRpY19jYXN0PGludD4oc3RyaW5nVGV4dC5sZW5ndGgo
KSkgLSB3b3JkT2Zmc2V0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB3b3JkTGVuZ3RoID0g
ZGlzdGFuY2UoZmlyc3RDaGFyLCBsYXN0Q2hhcik7CisgICAgICAgIGludCB3b3JkRW5kID0gc3Ry
aW5nVGV4dC5maW5kKGlzTm90QVNDSUlBbHBoYSwgd29yZE9mZnNldCk7CisgICAgICAgIHdvcmRM
ZW5ndGggPSB3b3JkRW5kID09IC0xID8gc3RhdGljX2Nhc3Q8aW50PihzdHJpbmdUZXh0Lmxlbmd0
aCgpKSAtIHdvcmRPZmZzZXQgOiB3b3JkRW5kIC0gd29yZE9mZnNldDsKIAotICAgICAgICBXRUJL
SVRfQVNTRVJUKDAgPCB3b3JkT2Zmc2V0ICsgd29yZExlbmd0aCk7Ci0gICAgICAgIHN0cmluZ1Rl
eHQgPSBzdHJpbmdUZXh0LnN1YnN0cih3b3JkT2Zmc2V0ICsgd29yZExlbmd0aCk7CisgICAgICAg
IEFTU0VSVCgwIDwgd29yZE9mZnNldCArIHdvcmRMZW5ndGgpOworICAgICAgICBzdHJpbmdUZXh0
ID0gc3RyaW5nVGV4dC5zdWJzdHJpbmcod29yZE9mZnNldCArIHdvcmRMZW5ndGgpOwogICAgICAg
ICBza2lwcGVkTGVuZ3RoICs9IHdvcmRPZmZzZXQgKyB3b3JkTGVuZ3RoOwogICAgIH0KIApAQCAt
MTc4LDcgKzE3MCw3IEBAIGJvb2wgTW9ja1NwZWxsQ2hlY2s6OmluaXRpYWxpemVJZk5lZWRlZCgp
CiAKICAgICBtX21pc3NwZWxsZWRXb3Jkcy5jbGVhcigpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgYXJyYXlzaXplKG1pc3NwZWxsZWRXb3Jkcyk7ICsraSkKLSAgICAgICAgbV9taXNzcGVs
bGVkV29yZHMucHVzaF9iYWNrKHN0cmluZzE2KG1pc3NwZWxsZWRXb3Jkc1tpXSwgbWlzc3BlbGxl
ZFdvcmRzW2ldICsgc3RybGVuKG1pc3NwZWxsZWRXb3Jkc1tpXSkpKTsKKyAgICAgICAgbV9taXNz
cGVsbGVkV29yZHMuYXBwZW5kKFN0cmluZzo6ZnJvbVVURjgobWlzc3BlbGxlZFdvcmRzW2ldKSk7
CiAKICAgICAvLyBNYXJrIGFzIGluaXRpYWxpemVkIHRvIHByZXZlbnQgdGhpcyBvYmplY3QgZnJv
bSBiZWluZyBpbml0aWFsaXplZCB0d2ljZQogICAgIC8vIG9yIG1vcmUuCkBAIC0xODgsNSArMTgw
LDMgQEAgYm9vbCBNb2NrU3BlbGxDaGVjazo6aW5pdGlhbGl6ZUlmTmVlZGVkKCkKICAgICAvLyBm
dW5jdGlvbiBhbHdheXMgcmV0dXJucyBmYWxzZS4KICAgICByZXR1cm4gZmFsc2U7CiB9Ci0KLX0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L01vY2tTcGVsbENoZWNrLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9Nb2NrU3BlbGxDaGVjay5oCmluZGV4IDUzNTljODg4YWFlZGE4NTViMjJlMTk3YzUx
ZGU4ODgyMDkyOTA2YjEuLmVlMzhmMjI5MjIyNjNlN2YzMTY4MzhjZGY4NDM2NWU0MzBhNWYxYTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L01vY2tTcGVsbENoZWNrLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvTW9ja1NwZWxsQ2hlY2suaApAQCAtMzMsOSArMzMsOCBAQAogCiAjaW5jbHVk
ZSAiUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0cmluZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWZWN0b3IuaCIKLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLW5h
bWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIC8vIEEgbW9jayBpbXBsZW1lbnRhdGlvbiBvZiBh
IHNwZWxsLWNoZWNrZXIgdXNlZCBmb3IgV2ViS2l0IHRlc3RzLgogLy8gVGhpcyBjbGFzcyBvbmx5
IGltcGxlbWVudHMgdGhlIG1pbmltYWwgZnVuY3Rpb25hcml0aWVzIHJlcXVpcmVkIGJ5IFdlYktp
dApAQCAtNzEsMTIgKzcwLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBpbml0aWFsaXplSWZOZWVk
ZWQoKTsKIAogICAgIC8vIEEgdGFibGUgdGhhdCBjb25zaXN0cyBvZiBtaXNzcGVsbGVkIHdvcmRz
LgotICAgIHN0ZDo6dmVjdG9yPHN0cmluZzE2PiBtX21pc3NwZWxsZWRXb3JkczsKKyAgICBWZWN0
b3I8U3RyaW5nPiBtX21pc3NwZWxsZWRXb3JkczsKIAogICAgIC8vIEEgZmxhZyByZXByZXNlbnRp
bmcgd2hldGhlciBvciBub3QgdGhpcyBvYmplY3QgaXMgaW5pdGlhbGl6ZWQuCiAgICAgYm9vbCBt
X2luaXRpYWxpemVkOwogfTsKIAotfQotCiAjZW5kaWYgLy8gTW9ja1NwZWxsQ2hlY2tfaApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvU3Bl
bGxDaGVja0NsaWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9TcGVsbENoZWNrQ2xpZW50LmNwcAppbmRleCBiMDUxODM1MmQ0NzdiY2I2ZjY5Y2Nm
NzI4MDY4NTkzMjhlYjBjZmU1Li42ZWYwZjViMTlmYWFjN2MxYjkzZDY0Njc3NGIxYjgyNmU3YzVm
YzgwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9TcGVsbENoZWNrQ2xpZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9TcGVsbENoZWNrQ2xpZW50LmNwcApAQCAtMzcsNyArMzcsNiBA
QAogI2luY2x1ZGUgIldlYlRleHRDaGVja2luZ1Jlc3VsdC5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIg
ewogCkBAIC04Miw3ICs4MSw3IEBAIHZvaWQgU3BlbGxDaGVja0NsaWVudDo6c3BlbGxDaGVjayhj
b25zdCBXZWJTdHJpbmcmIHRleHQsIGludCYgbWlzc3BlbGxlZE9mZnNldCwKIAogdm9pZCBTcGVs
bENoZWNrQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBXZWJTdHJpbmcmIHRleHQs
IFdlYlRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFdlYlZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdS
ZXN1bHQ+KiB3ZWJSZXN1bHRzKQogewotICAgIHZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ+
IHJlc3VsdHM7CisgICAgVmVjdG9yPFdlYlRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0czsKICAg
ICBpZiAobWFzayAmIFdlYlRleHRDaGVja2luZ1R5cGVTcGVsbGluZykgewogICAgICAgICBzaXpl
X3Qgb2Zmc2V0ID0gMDsKICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CkBA
IC05Nyw3ICs5Niw3IEBAIHZvaWQgU3BlbGxDaGVja0NsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoY29uc3QgV2ViU3RyaW5nJiB0ZXh0LCBXZWJUZXh0Q2hlY2tpCiAgICAgICAgICAgICByZXN1
bHQudHlwZSA9IFdlYlRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKICAgICAgICAgICAgIHJlc3Vs
dC5sb2NhdGlvbiA9IG9mZnNldCArIG1pc3NwZWxsZWRQb3NpdGlvbjsKICAgICAgICAgICAgIHJl
c3VsdC5sZW5ndGggPSBtaXNzcGVsbGVkTGVuZ3RoOwotICAgICAgICAgICAgcmVzdWx0cy5wdXNo
X2JhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlc3VsdCk7CiAgICAg
ICAgICAgICBvZmZzZXQgKz0gbWlzc3BlbGxlZFBvc2l0aW9uICsgbWlzc3BlbGxlZExlbmd0aDsK
ICAgICAgICAgfQogICAgIH0KQEAgLTEyMSwxOSArMTIwLDE5IEBAIHZvaWQgU3BlbGxDaGVja0Ns
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZUZXh0KGNvbnN0IFdlYlN0cmluZyYgdGV4dCwgV2ViVGV4
dENoZWNrCiAKIHZvaWQgU3BlbGxDaGVja0NsaWVudDo6ZmluaXNoTGFzdFRleHRDaGVjaygpCiB7
Ci0gICAgdmVjdG9yPFdlYlRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0czsKKyAgICBWZWN0b3I8
V2ViVGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgIGludCBvZmZzZXQgPSAwOwotICAg
IHN0cmluZzE2IHRleHQgPSBtX2xhc3RSZXF1ZXN0ZWRUZXh0Q2hlY2tTdHJpbmc7CisgICAgU3Ry
aW5nIHRleHQobV9sYXN0UmVxdWVzdGVkVGV4dENoZWNrU3RyaW5nLmRhdGEoKSwgbV9sYXN0UmVx
dWVzdGVkVGV4dENoZWNrU3RyaW5nLmxlbmd0aCgpKTsKICAgICB3aGlsZSAodGV4dC5sZW5ndGgo
KSkgewogICAgICAgICBpbnQgbWlzc3BlbGxlZFBvc2l0aW9uID0gMDsKICAgICAgICAgaW50IG1p
c3NwZWxsZWRMZW5ndGggPSAwOwotICAgICAgICBtX3NwZWxsY2hlY2suc3BlbGxDaGVja1dvcmQo
V2ViU3RyaW5nKHRleHQpLCAmbWlzc3BlbGxlZFBvc2l0aW9uLCAmbWlzc3BlbGxlZExlbmd0aCk7
CisgICAgICAgIG1fc3BlbGxjaGVjay5zcGVsbENoZWNrV29yZChXZWJTdHJpbmcodGV4dC5jaGFy
YWN0ZXJzKCksIHRleHQubGVuZ3RoKCkpLCAmbWlzc3BlbGxlZFBvc2l0aW9uLCAmbWlzc3BlbGxl
ZExlbmd0aCk7CiAgICAgICAgIGlmICghbWlzc3BlbGxlZExlbmd0aCkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiBzdWdnZXN0aW9uczsKLSAgICAgICAg
bV9zcGVsbGNoZWNrLmZpbGxTdWdnZXN0aW9uTGlzdChXZWJTdHJpbmcodGV4dC5zdWJzdHIobWlz
c3BlbGxlZFBvc2l0aW9uLCBtaXNzcGVsbGVkTGVuZ3RoKSksICZzdWdnZXN0aW9ucyk7Ci0gICAg
ICAgIHJlc3VsdHMucHVzaF9iYWNrKFdlYlRleHRDaGVja2luZ1Jlc3VsdChXZWJUZXh0Q2hlY2tp
bmdUeXBlU3BlbGxpbmcsIG9mZnNldCArIG1pc3NwZWxsZWRQb3NpdGlvbiwgbWlzc3BlbGxlZExl
bmd0aCwgc3VnZ2VzdGlvbnMuaXNFbXB0eSgpID8gV2ViU3RyaW5nKCkgOiBzdWdnZXN0aW9uc1sw
XSkpOwotICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHIobWlzc3BlbGxlZFBvc2l0aW9uICsgbWlz
c3BlbGxlZExlbmd0aCk7CisgICAgICAgIG1fc3BlbGxjaGVjay5maWxsU3VnZ2VzdGlvbkxpc3Qo
V2ViU3RyaW5nKHRleHQuY2hhcmFjdGVycygpICsgbWlzc3BlbGxlZFBvc2l0aW9uLCBtaXNzcGVs
bGVkTGVuZ3RoKSwgJnN1Z2dlc3Rpb25zKTsKKyAgICAgICAgcmVzdWx0cy5hcHBlbmQoV2ViVGV4
dENoZWNraW5nUmVzdWx0KFdlYlRleHRDaGVja2luZ1R5cGVTcGVsbGluZywgb2Zmc2V0ICsgbWlz
c3BlbGxlZFBvc2l0aW9uLCBtaXNzcGVsbGVkTGVuZ3RoLCBzdWdnZXN0aW9ucy5pc0VtcHR5KCkg
PyBXZWJTdHJpbmcoKSA6IHN1Z2dlc3Rpb25zWzBdKSk7CisgICAgICAgIHRleHQgPSB0ZXh0LnN1
YnN0cmluZyhtaXNzcGVsbGVkUG9zaXRpb24gKyBtaXNzcGVsbGVkTGVuZ3RoKTsKICAgICAgICAg
b2Zmc2V0ICs9IG1pc3NwZWxsZWRQb3NpdGlvbiArIG1pc3NwZWxsZWRMZW5ndGg7CiAgICAgfQog
ICAgIE1vY2tHcmFtbWFyQ2hlY2s6OmNoZWNrR3JhbW1hck9mU3RyaW5nKG1fbGFzdFJlcXVlc3Rl
ZFRleHRDaGVja1N0cmluZywgJnJlc3VsdHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdENvbW1vbi5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdENvbW1vbi5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMTZjNjBjYjJjOWNjOGUwZjlhMmM5NmRlN2QwZGMzZTRlYWQ0
MzI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RDb21tb24uaAorKysg
L2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFRlc3RDb21tb25faAotI2RlZmluZSBU
ZXN0Q29tbW9uX2gKLQotI2luY2x1ZGUgPGJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaD4KLSNpbmNs
dWRlIDxwdWJsaWMvV2ViQ29tbW9uLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLQotI2lmIGRlZmlu
ZWQoV0lOMzIpCi0jZGVmaW5lIHNucHJpbnRmKHN0ciwgc2l6ZSwgZm9ybWF0LCAuLi4pIF92c25w
cmludGZfcyhzdHIsIHNpemUsIHNpemUsIGZvcm1hdCwgX19WQV9BUkdTX18pCi0jZW5kaWYKLQot
aW5saW5lIGJvb2wgaXNBU0NJSUFscGhhKGNoYXIgY2gpIHsgcmV0dXJuIChjaCB8IDB4MjApID49
ICdhJyAmJiAoY2ggfCAweDIwKSA8PSAneic7IH0KLQotaW5saW5lIGJvb2wgaXNOb3RBU0NJSUFs
cGhhKGNoYXIgY2gpIHsgcmV0dXJuICFpc0FTQ0lJQWxwaGEoY2gpOyB9Ci0KLSNlbmRpZiAvLyBU
ZXN0Q29tbW9uX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA0NmQ2YWQwNjVi
YTMwYTJhNjFmY2JlMWVlZTg5Yzg0NTJlZmY1OGJiLi5lM2RjZjgwMjA1MTZjNWMxYmZlMTVjMzJj
NmQyNzQwMWNlNWIxNjA4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCkBAIC00NSwx
MyArNDUsMTMgQEAgdXNpbmcgV2ViS2l0OjpXZWJWaWV3OwogbmFtZXNwYWNlIFdlYlRlc3RSdW5u
ZXIgewogCiBUZXN0SW50ZXJmYWNlczo6VGVzdEludGVyZmFjZXMoKQotICAgIDogbV9hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcihuZXcgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSkKLSAgICAsIG1f
ZXZlbnRTZW5kZXIobmV3IEV2ZW50U2VuZGVyKCkpCi0gICAgLCBtX2dhbWVwYWRDb250cm9sbGVy
KG5ldyBHYW1lcGFkQ29udHJvbGxlcigpKQotICAgICwgbV90ZXh0SW5wdXRDb250cm9sbGVyKG5l
dyBUZXh0SW5wdXRDb250cm9sbGVyKCkpCi0gICAgLCBtX3Rlc3RSdW5uZXIobmV3IFRlc3RSdW5u
ZXIoKSkKLSAgICAsIG1fd2ViVmlldygwKQorICAgIDogbV93ZWJWaWV3KDApCiB7CisgICAgbV9h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcigpKTsKKyAgICBtX2V2ZW50U2VuZGVyID0gYWRvcHRQdHIobmV3IEV2ZW50U2VuZGVyKCkp
OworICAgIG1fZ2FtZXBhZENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgR2FtZXBhZENvbnRyb2xs
ZXIoKSk7CisgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IFRleHRJbnB1
dENvbnRyb2xsZXIoKSk7CisgICAgbV90ZXN0UnVubmVyID0gYWRvcHRQdHIobmV3IFRlc3RSdW5u
ZXIoKSk7CiB9CiAKIFRlc3RJbnRlcmZhY2VzOjp+VGVzdEludGVyZmFjZXMoKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVy
ZmFjZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RJbnRlcmZhY2VzLmgKaW5kZXggODNiMzhkYjY4MTc5YWQzODVlMWYyNTAxMDI1OGViNTBjOWRm
ZDQ5MS4uZDgzNGM0MGIxNjI3NDJhNjQ4NjFhY2Q0Y2JjNzhiNmViYmU3NDkyOSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVy
ZmFjZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0SW50ZXJmYWNlcy5oCkBAIC0zMSw3ICszMSw3IEBACiAjaWZuZGVmIFRlc3RJbnRlcmZh
Y2VzX2gKICNkZWZpbmUgVGVzdEludGVyZmFjZXNfaAogCi0jaW5jbHVkZSA8bWVtb3J5PgorI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFt
ZTsKQEAgLTY1LDExICs2NSwxMSBAQCBwdWJsaWM6CiAKIAogcHJpdmF0ZToKLSAgICBzdGQ6OmF1
dG9fcHRyPEFjY2Vzc2liaWxpdHlDb250cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
OwotICAgIHN0ZDo6YXV0b19wdHI8RXZlbnRTZW5kZXI+IG1fZXZlbnRTZW5kZXI7Ci0gICAgc3Rk
OjphdXRvX3B0cjxHYW1lcGFkQ29udHJvbGxlcj4gbV9nYW1lcGFkQ29udHJvbGxlcjsKLSAgICBz
dGQ6OmF1dG9fcHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1fdGV4dElucHV0Q29udHJvbGxlcjsK
LSAgICBzdGQ6OmF1dG9fcHRyPFRlc3RSdW5uZXI+IG1fdGVzdFJ1bm5lcjsKKyAgICBPd25QdHI8
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI+IG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CisgICAg
T3duUHRyPEV2ZW50U2VuZGVyPiBtX2V2ZW50U2VuZGVyOworICAgIE93blB0cjxHYW1lcGFkQ29u
dHJvbGxlcj4gbV9nYW1lcGFkQ29udHJvbGxlcjsKKyAgICBPd25QdHI8VGV4dElucHV0Q29udHJv
bGxlcj4gbV90ZXh0SW5wdXRDb250cm9sbGVyOworICAgIE93blB0cjxUZXN0UnVubmVyPiBtX3Rl
c3RSdW5uZXI7CiAgICAgV2ViS2l0OjpXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwogCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UGx1
Z2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RQbHVnaW4uY3BwCmluZGV4IGE0ZWQ4YjBmNTkyN2VmOTBmMTgxOWVlOTBmNDI5ZWQyOTJlMjk4
YjIuLjE5ZmQwYjI2NmQzOWNlOWI1NDUwMDNjMDUzNjBlMTEzZGJlMWViZWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RQbHVnaW4u
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RQbHVnaW4uY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiVGVzdFBsdWdpbi5oIgogCi0jaW5jbHVkZSAiVGVzdENvbW1vbi5oIgogI2luY2x1ZGUg
IldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIldlYktp
dC5oIgpAQCAtMzYsOSArMzUsMTIgQEAKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNp
bmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
LXVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIApAQCAt
OTcsNyArOTksNyBAQCBjb25zdCBjaGFyKiBwb2ludFN0YXRlKFdlYlRvdWNoUG9pbnQ6OlN0YXRl
IHN0YXRlKQogICAgICAgICByZXR1cm4gIlVua25vd24iOwogICAgIH0KIAotICAgIFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gMDsKIH0KIApAQCAtMTMyLDkgKzEzNCwxMiBAQCB2b2lkIHByaW50RXZlbnREZXRhaWxzKFdl
YlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUsIGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50KQogCiBX
ZWJQbHVnaW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1ZXN0VHlwZSBwYXJzZVRvdWNoRXZlbnRS
ZXF1ZXN0VHlwZShjb25zdCBXZWJTdHJpbmcmIHN0cmluZykKIHsKLSAgICBpZiAoc3RyaW5nID09
IFdlYlN0cmluZzo6ZnJvbVVURjgoInJhdyIpKQorICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgV2ViU3RyaW5nLCBrUHJpbWl0aXZlUmF3LCAoV2ViU3RyaW5nOjpmcm9tVVRGOCgicmF3Iikp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFdlYlN0cmluZywga1ByaW1pdGl2ZVN5
bnRoZXRpYywgKFdlYlN0cmluZzo6ZnJvbVVURjgoInN5bnRoZXRpYyIpKSk7CisKKyAgICBpZiAo
c3RyaW5nID09IGtQcmltaXRpdmVSYXcpCiAgICAgICAgIHJldHVybiBXZWJQbHVnaW5Db250YWlu
ZXI6OlRvdWNoRXZlbnRSZXF1ZXN0VHlwZVJhdzsKLSAgICBpZiAoc3RyaW5nID09IFdlYlN0cmlu
Zzo6ZnJvbVVURjgoInN5bnRoZXRpYyIpKQorICAgIGlmIChzdHJpbmcgPT0ga1ByaW1pdGl2ZVN5
bnRoZXRpYykKICAgICAgICAgcmV0dXJuIFdlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJl
cXVlc3RUeXBlU3ludGhlc2l6ZWRNb3VzZTsKICAgICByZXR1cm4gV2ViUGx1Z2luQ29udGFpbmVy
OjpUb3VjaEV2ZW50UmVxdWVzdFR5cGVOb25lOwogfQpAQCAtMTYzLDcgKzE2OCw3IEBAIFRlc3RQ
bHVnaW46OlRlc3RQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJQbHVnaW5QYXJhbXMm
IHBhcmFtcywgV2ViVGVzdERlCiAgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrQXR0cmlidXRl
Q2FuUHJvY2Vzc0RyYWcgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJjYW4tcHJvY2Vzcy1kcmFnIik7
CiAgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrQXR0cmlidXRlUHJpbnRVc2VyR2VzdHVyZVN0
YXR1cyA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInByaW50LXVzZXItZ2VzdHVyZS1zdGF0dXMiKTsK
IAotICAgIFdFQktJVF9BU1NFUlQocGFyYW1zLmF0dHJpYnV0ZU5hbWVzLnNpemUoKSA9PSBwYXJh
bXMuYXR0cmlidXRlVmFsdWVzLnNpemUoKSk7CisgICAgQVNTRVJUKHBhcmFtcy5hdHRyaWJ1dGVO
YW1lcy5zaXplKCkgPT0gcGFyYW1zLmF0dHJpYnV0ZVZhbHVlcy5zaXplKCkpOwogICAgIHNpemVf
dCBzaXplID0gcGFyYW1zLmF0dHJpYnV0ZU5hbWVzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGF0dHJpYnV0
ZU5hbWUgPSBwYXJhbXMuYXR0cmlidXRlTmFtZXNbaV07CkBAIC0yMDcsNyArMjEyLDcgQEAgYm9v
bCBUZXN0UGx1Z2luOjppbml0aWFsaXplKFdlYlBsdWdpbkNvbnRhaW5lciogY29udGFpbmVyKQog
ICAgIGlmICghaW5pdFNjZW5lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fbGF5
ZXIgPSBhdXRvX3B0cjxXZWJFeHRlcm5hbFRleHR1cmVMYXllcj4oUGxhdGZvcm06OmN1cnJlbnQo
KS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJlTGF5ZXIodGhpcykp
OworICAgIG1fbGF5ZXIgPSBhZG9wdFB0cihQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9y
U3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0aGlzKSk7CiAgICAgbV9jb250
YWluZXIgPSBjb250YWluZXI7CiAgICAgbV9jb250YWluZXItPnNldFdlYkxheWVyKG1fbGF5ZXIt
PmxheWVyKCkpOwogICAgIGlmIChtX3JlUmVxdWVzdFRvdWNoRXZlbnRzKSB7CkBAIC0yMjMsNyAr
MjI4LDcgQEAgdm9pZCBUZXN0UGx1Z2luOjpkZXN0cm95KCkKIHsKICAgICBpZiAobV9jb250YWlu
ZXIpCiAgICAgICAgIG1fY29udGFpbmVyLT5zZXRXZWJMYXllcigwKTsKLSAgICBtX2xheWVyLnJl
c2V0KCk7CisgICAgbV9sYXllci5jbGVhcigpOwogICAgIGRlc3Ryb3lTY2VuZSgpOwogCiAgICAg
ZGVsZXRlIG1fY29udGV4dDsKQEAgLTI3MCw3ICsyNzUsNyBAQCBUZXN0UGx1Z2luOjpQcmltaXRp
dmUgVGVzdFBsdWdpbjo6cGFyc2VQcmltaXRpdmUoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCiAg
ICAgZWxzZSBpZiAoc3RyaW5nID09IGtQcmltaXRpdmVUcmlhbmdsZSkKICAgICAgICAgcHJpbWl0
aXZlID0gUHJpbWl0aXZlVHJpYW5nbGU7CiAgICAgZWxzZQotICAgICAgICBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBwcmltaXRpdmU7CiB9CiAKQEAgLTI4OSw3ICsyOTQsNyBAQCB2b2lkIFRlc3RQbHVnaW46OnBh
cnNlQ29sb3IoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIGNvbG9yWzNdKQogICAg
IGVsc2UgaWYgKHN0cmluZyA9PSAiYmx1ZSIpCiAgICAgICAgIGNvbG9yWzJdID0gMjU1OwogICAg
IGVsc2UKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogZmxvYXQgVGVzdFBsdWdpbjo6cGFyc2VPcGFjaXR5KGNv
bnN0IFdlYlN0cmluZyYgc3RyaW5nKQpAQCAtMzU2LDE0ICszNjEsMTQgQEAgdm9pZCBUZXN0UGx1
Z2luOjpkZXN0cm95U2NlbmUoKQogCiBib29sIFRlc3RQbHVnaW46OmluaXRQcm9ncmFtKCkKIHsK
LSAgICBjb25zdCBzdHJpbmcgdmVydGV4U291cmNlKAorICAgIGNvbnN0IENTdHJpbmcgdmVydGV4
U291cmNlKAogICAgICAgICAiYXR0cmlidXRlIHZlYzQgcG9zaXRpb247ICBcbiIKICAgICAgICAg
InZvaWQgbWFpbigpIHsgICAgICAgICAgICAgXG4iCiAgICAgICAgICIgIGdsX1Bvc2l0aW9uID0g
cG9zaXRpb247IFxuIgogICAgICAgICAifSAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKICAg
ICApOwogCi0gICAgY29uc3Qgc3RyaW5nIGZyYWdtZW50U291cmNlKAorICAgIGNvbnN0IENTdHJp
bmcgZnJhZ21lbnRTb3VyY2UoCiAgICAgICAgICJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsgXG4i
CiAgICAgICAgICJ1bmlmb3JtIHZlYzQgY29sb3I7ICAgICAgXG4iCiAgICAgICAgICJ2b2lkIG1h
aW4oKSB7ICAgICAgICAgICAgXG4iCkBAIC0zODIsNyArMzg3LDcgQEAgYm9vbCBUZXN0UGx1Z2lu
Ojppbml0UHJvZ3JhbSgpCiAKIGJvb2wgVGVzdFBsdWdpbjo6aW5pdFByaW1pdGl2ZSgpCiB7Ci0g
ICAgV0VCS0lUX0FTU0VSVChtX3NjZW5lLnByaW1pdGl2ZSA9PSBQcmltaXRpdmVUcmlhbmdsZSk7
CisgICAgQVNTRVJUKG1fc2NlbmUucHJpbWl0aXZlID09IFByaW1pdGl2ZVRyaWFuZ2xlKTsKIAog
ICAgIG1fc2NlbmUudmJvID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKTsKICAgICBpZiAoIW1f
c2NlbmUudmJvKQpAQCAtNDAwLDkgKzQwNSw5IEBAIGJvb2wgVGVzdFBsdWdpbjo6aW5pdFByaW1p
dGl2ZSgpCiAKIHZvaWQgVGVzdFBsdWdpbjo6ZHJhd1ByaW1pdGl2ZSgpCiB7Ci0gICAgV0VCS0lU
X0FTU0VSVChtX3NjZW5lLnByaW1pdGl2ZSA9PSBQcmltaXRpdmVUcmlhbmdsZSk7Ci0gICAgV0VC
S0lUX0FTU0VSVChtX3NjZW5lLnZibyk7Ci0gICAgV0VCS0lUX0FTU0VSVChtX3NjZW5lLnByb2dy
YW0pOworICAgIEFTU0VSVChtX3NjZW5lLnByaW1pdGl2ZSA9PSBQcmltaXRpdmVUcmlhbmdsZSk7
CisgICAgQVNTRVJUKG1fc2NlbmUudmJvKTsKKyAgICBBU1NFUlQobV9zY2VuZS5wcm9ncmFtKTsK
IAogICAgIG1fY29udGV4dC0+dXNlUHJvZ3JhbShtX3NjZW5lLnByb2dyYW0pOwogCkBAIC00MTgs
NyArNDIzLDcgQEAgdm9pZCBUZXN0UGx1Z2luOjpkcmF3UHJpbWl0aXZlKCkKICAgICBtX2NvbnRl
eHQtPmRyYXdBcnJheXMoR0xfVFJJQU5HTEVTLCAwLCAzKTsKIH0KIAotdW5zaWduZWQgVGVzdFBs
dWdpbjo6bG9hZFNoYWRlcih1bnNpZ25lZCB0eXBlLCBjb25zdCBzdHJpbmcmIHNvdXJjZSkKK3Vu
c2lnbmVkIFRlc3RQbHVnaW46OmxvYWRTaGFkZXIodW5zaWduZWQgdHlwZSwgY29uc3QgQ1N0cmlu
ZyYgc291cmNlKQogewogICAgIHVuc2lnbmVkIHNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hh
ZGVyKHR5cGUpOwogICAgIGlmIChzaGFkZXIpIHsKQEAgLTQzNSw3ICs0NDAsNyBAQCB1bnNpZ25l
ZCBUZXN0UGx1Z2luOjpsb2FkU2hhZGVyKHVuc2lnbmVkIHR5cGUsIGNvbnN0IHN0cmluZyYgc291
cmNlKQogICAgIHJldHVybiBzaGFkZXI7CiB9CiAKLXVuc2lnbmVkIFRlc3RQbHVnaW46OmxvYWRQ
cm9ncmFtKGNvbnN0IHN0cmluZyYgdmVydGV4U291cmNlLCBjb25zdCBzdHJpbmcmIGZyYWdtZW50
U291cmNlKQordW5zaWduZWQgVGVzdFBsdWdpbjo6bG9hZFByb2dyYW0oY29uc3QgQ1N0cmluZyYg
dmVydGV4U291cmNlLCBjb25zdCBDU3RyaW5nJiBmcmFnbWVudFNvdXJjZSkKIHsKICAgICB1bnNp
Z25lZCB2ZXJ0ZXhTaGFkZXIgPSBsb2FkU2hhZGVyKEdMX1ZFUlRFWF9TSEFERVIsIHZlcnRleFNv
dXJjZSk7CiAgICAgdW5zaWduZWQgZnJhZ21lbnRTaGFkZXIgPSBsb2FkU2hhZGVyKEdMX0ZSQUdN
RU5UX1NIQURFUiwgZnJhZ21lbnRTb3VyY2UpOwpAQCAtNTI3LDcgKzUzMiw3IEBAIGJvb2wgVGVz
dFBsdWdpbjo6aGFuZGxlRHJhZ1N0YXR1c1VwZGF0ZShXZWJEcmFnU3RhdHVzIGRyYWdTdGF0dXMs
IGNvbnN0IFdlYkRyYWdECiAgICAgICAgIGRyYWdTdGF0dXNOYW1lID0gIkRyYWdEcm9wIjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJEcmFnU3RhdHVzVW5rbm93bjoKLSAgICAgICAgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CiAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0ZDo6c3RyaW5nKCJQbHVnaW4g
cmVjZWl2ZWQgZXZlbnQ6ICIpICsgZHJhZ1N0YXR1c05hbWUgKyAiXG4iKTsKICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UGx1Z2luLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UGx1Z2luLmgKaW5kZXggNTNiMjJlMTFiYzY2YmQ1MWZhNTMzMjIzZTI4
ZjNlNTNkZDIwYjg5Yi4uMWUxMDBkYWU5MWZjMDJjMGQxMDk5MmQ1NzZjODQyMGIwYWQ0ZTQ0NiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFBsdWdpbi5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RQbHVnaW4uaApAQCAtMjgsMTAgKzI4LDkgQEAKIAogI2luY2x1ZGUgIldlYlBs
dWdpbi5oIgogI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lci5oIgotI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KICNpbmNsdWRl
IDxwdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJDbGllbnQuaD4KLSNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7
CiAKQEAgLTEyNSw4ICsxMjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5pdFByb2dyYW0oKTsK
ICAgICBib29sIGluaXRQcmltaXRpdmUoKTsKICAgICB2b2lkIGRyYXdQcmltaXRpdmUoKTsKLSAg
ICB1bnNpZ25lZCBsb2FkU2hhZGVyKHVuc2lnbmVkIHR5cGUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBz
b3VyY2UpOwotICAgIHVuc2lnbmVkIGxvYWRQcm9ncmFtKGNvbnN0IHN0ZDo6c3RyaW5nJiB2ZXJ0
ZXhTb3VyY2UsIGNvbnN0IHN0ZDo6c3RyaW5nJiBmcmFnbWVudFNvdXJjZSk7CisgICAgdW5zaWdu
ZWQgbG9hZFNoYWRlcih1bnNpZ25lZCB0eXBlLCBjb25zdCBXVEY6OkNTdHJpbmcmIHNvdXJjZSk7
CisgICAgdW5zaWduZWQgbG9hZFByb2dyYW0oY29uc3QgV1RGOjpDU3RyaW5nJiB2ZXJ0ZXhTb3Vy
Y2UsIGNvbnN0IFdURjo6Q1N0cmluZyYgZnJhZ21lbnRTb3VyY2UpOwogCiAgICAgV2ViS2l0OjpX
ZWJGcmFtZSogbV9mcmFtZTsKICAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CkBAIC0x
MzcsNyArMTM2LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NvbG9yVGV4dHVyZTsKICAg
ICB1bnNpZ25lZCBtX2ZyYW1lYnVmZmVyOwogICAgIFNjZW5lIG1fc2NlbmU7Ci0gICAgc3RkOjph
dXRvX3B0cjxXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyPiBtX2xheWVyOworICAgIE93
blB0cjxXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyPiBtX2xheWVyOwogCiAgICAgV2Vi
S2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1ZXN0VHlwZSBtX3RvdWNoRXZl
bnRSZXF1ZXN0OwogICAgIC8vIFJlcXVlc3RzIHRvdWNoIGV2ZW50cyBmcm9tIHRoZSBXZWJQbHVn
aW5Db250YWluZXJJbXBsIG11bHRpcGxlIHRpbWVzIHRvIHRpY2tsZSB3ZWJraXQub3JnL2IvMTA4
MzgxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGI2OWZkZmI1ZGNlMzRhNmQ2OWM5M2Y5Zjdj
YmI1Zjc0MGQ5MDNiY2YuLjg5OTAxMmIzMmFjMmIxNWFlNWEwNjBkZTdjMmRlYzM1NGQzYzUzODgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC01NSwxMiArNTUsMTIgQEAKICNpbmNsdWRlICJX
ZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViV29ya2VySW5mby5oIgogI2luY2x1ZGUgInY4L2luY2x1
ZGUvdjguaCIKLSNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJEYXRhLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlBvaW50Lmg+CisjaW5jbHVk
ZSA8d3RmL093bkFycmF5UHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
LSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChBTkRST0lEKQorI2lmIE9TKExJTlVY
KSB8fCBPUyhBTkRST0lEKQogI2luY2x1ZGUgImxpbnV4L1dlYkZvbnRSZW5kZXJpbmcuaCIKICNl
bmRpZgogCkBAIC04MywyMCArODMsMjIgQEAgcHVibGljOgogCiBjbGFzcyBJbnZva2VDYWxsYmFj
a1Rhc2sgOiBwdWJsaWMgV2ViTWV0aG9kVGFzazxUZXN0UnVubmVyPiB7CiBwdWJsaWM6Ci0gICAg
SW52b2tlQ2FsbGJhY2tUYXNrKFRlc3RSdW5uZXIqIG9iamVjdCwgYXV0b19wdHI8Q3BwVmFyaWFu
dD4gY2FsbGJhY2tBcmd1bWVudHMpCisgICAgSW52b2tlQ2FsbGJhY2tUYXNrKFRlc3RSdW5uZXIq
IG9iamVjdCwgUGFzc093bkFycmF5UHRyPENwcFZhcmlhbnQ+IGNhbGxiYWNrQXJndW1lbnRzLCB1
aW50MzJfdCBudW1iZXJPZkFyZ3VtZW50cykKICAgICAgICAgOiBXZWJNZXRob2RUYXNrPFRlc3RS
dW5uZXI+KG9iamVjdCkKICAgICAgICAgLCBtX2NhbGxiYWNrQXJndW1lbnRzKGNhbGxiYWNrQXJn
dW1lbnRzKQorICAgICAgICAsIG1fbnVtYmVyT2ZBcmd1bWVudHMobnVtYmVyT2ZBcmd1bWVudHMp
CiAgICAgewogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkKICAgICB7CiAg
ICAgICAgIENwcFZhcmlhbnQgaW52b2tlUmVzdWx0OwotICAgICAgICBtX2NhbGxiYWNrQXJndW1l
bnRzLT5pbnZva2VEZWZhdWx0KG1fY2FsbGJhY2tBcmd1bWVudHMuZ2V0KCksIDEsIGludm9rZVJl
c3VsdCk7CisgICAgICAgIG1fY2FsbGJhY2tBcmd1bWVudHNbMF0uaW52b2tlRGVmYXVsdChtX2Nh
bGxiYWNrQXJndW1lbnRzLmdldCgpLCBtX251bWJlck9mQXJndW1lbnRzLCBpbnZva2VSZXN1bHQp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBhdXRvX3B0cjxDcHBWYXJpYW50PiBtX2NhbGxiYWNr
QXJndW1lbnRzOworICAgIE93bkFycmF5UHRyPENwcFZhcmlhbnQ+IG1fY2FsbGJhY2tBcmd1bWVu
dHM7CisgICAgdWludDMyX3QgbV9udW1iZXJPZkFyZ3VtZW50czsKIH07CiAKIH0KQEAgLTExMSw3
ICsxMTMsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6cHJvY2Vzc1dvcmtTb29uKCkK
ICAgICBpZiAobV9jb250cm9sbGVyLT50b3BMb2FkaW5nRnJhbWUoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFtX3F1ZXVlLmVtcHR5KCkpIHsKKyAgICBpZiAoIW1fcXVldWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIC8vIFdlIGRlbGF5IHByb2Nlc3NpbmcgcXVldWVkIHdvcmsgdG8gYXZv
aWQgcmVjdXJzaW9uIHByb2JsZW1zLgogICAgICAgICBtX2NvbnRyb2xsZXItPm1fZGVsZWdhdGUt
PnBvc3RUYXNrKG5ldyBXb3JrUXVldWVUYXNrKHRoaXMpKTsKICAgICB9IGVsc2UgaWYgKCFtX2Nv
bnRyb2xsZXItPm1fd2FpdFVudGlsRG9uZSkKQEAgLTEyMSwxMCArMTIzLDkgQEAgdm9pZCBUZXN0
UnVubmVyOjpXb3JrUXVldWU6OnByb2Nlc3NXb3JrU29vbigpCiB2b2lkIFRlc3RSdW5uZXI6Oldv
cmtRdWV1ZTo6cHJvY2Vzc1dvcmsoKQogewogICAgIC8vIFF1aXQgZG9pbmcgd29yayBvbmNlIGEg
bG9hZCBpcyBpbiBwcm9ncmVzcy4KLSAgICB3aGlsZSAoIW1fcXVldWUuZW1wdHkoKSkgewotICAg
ICAgICBib29sIHN0YXJ0ZWRMb2FkID0gbV9xdWV1ZS5mcm9udCgpLT5ydW4obV9jb250cm9sbGVy
LT5tX2RlbGVnYXRlLCBtX2NvbnRyb2xsZXItPm1fd2ViVmlldyk7Ci0gICAgICAgIGRlbGV0ZSBt
X3F1ZXVlLmZyb250KCk7Ci0gICAgICAgIG1fcXVldWUucG9wX2Zyb250KCk7CisgICAgd2hpbGUg
KCFtX3F1ZXVlLmlzRW1wdHkoKSkgeworICAgICAgICBib29sIHN0YXJ0ZWRMb2FkID0gbV9xdWV1
ZS5maXJzdCgpLT5ydW4obV9jb250cm9sbGVyLT5tX2RlbGVnYXRlLCBtX2NvbnRyb2xsZXItPm1f
d2ViVmlldyk7CisgICAgICAgIGRlbGV0ZSBtX3F1ZXVlLnRha2VGaXJzdCgpOwogICAgICAgICBp
ZiAoc3RhcnRlZExvYWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTM2LDEwICsx
MzcsOCBAQCB2b2lkIFRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6cHJvY2Vzc1dvcmsoKQogdm9pZCBU
ZXN0UnVubmVyOjpXb3JrUXVldWU6OnJlc2V0KCkKIHsKICAgICBtX2Zyb3plbiA9IGZhbHNlOwot
ICAgIHdoaWxlICghbV9xdWV1ZS5lbXB0eSgpKSB7Ci0gICAgICAgIGRlbGV0ZSBtX3F1ZXVlLmZy
b250KCk7Ci0gICAgICAgIG1fcXVldWUucG9wX2Zyb250KCk7Ci0gICAgfQorICAgIHdoaWxlICgh
bV9xdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgIGRlbGV0ZSBtX3F1ZXVlLnRha2VGaXJzdCgpOwog
fQogCiB2b2lkIFRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6YWRkV29yayhXb3JrSXRlbSogd29yaykK
QEAgLTE0OCw3ICsxNDcsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OldvcmtRdWV1ZTo6YWRkV29yayhX
b3JrSXRlbSogd29yaykKICAgICAgICAgZGVsZXRlIHdvcms7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgbV9xdWV1ZS5wdXNoX2JhY2sod29yayk7CisgICAgbV9xdWV1ZS5hcHBlbmQod29y
ayk7CiB9CiAKIApAQCAtMTU3LDggKzE1Niw4IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQog
ICAgICwgbV93b3JrUXVldWUodGhpcykKICAgICAsIG1fZGVsZWdhdGUoMCkKICAgICAsIG1fd2Vi
VmlldygwKQotICAgICwgbV9pbnRlbnRDbGllbnQobmV3IEVtcHR5V2ViRGVsaXZlcmVkSW50ZW50
Q2xpZW50KQotICAgICwgbV93ZWJQZXJtaXNzaW9ucyhuZXcgV2ViUGVybWlzc2lvbnMpCisgICAg
LCBtX2ludGVudENsaWVudChhZG9wdFB0cihuZXcgRW1wdHlXZWJEZWxpdmVyZWRJbnRlbnRDbGll
bnQpKQorICAgICwgbV93ZWJQZXJtaXNzaW9ucyhhZG9wdFB0cihuZXcgV2ViUGVybWlzc2lvbnMp
KQogewogICAgIC8vIEluaXRpYWxpemUgdGhlIG1hcCB0aGF0IGFzc29jaWF0ZXMgbWV0aG9kcyBv
ZiB0aGlzIGNsYXNzIHdpdGggdGhlIG5hbWVzCiAgICAgLy8gdGhleSB3aWxsIHVzZSB3aGVuIGNh
bGxlZCBieSBKYXZhU2NyaXB0LiBUaGUgYWN0dWFsIGJpbmRpbmcgb2YgdGhvc2UKQEAgLTIxNiwx
MSArMjE1LDEzIEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgIGJpbmRNZXRob2QoInNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9uIiwgJlRlc3RSdW5u
ZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBiaW5kTWV0aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlk
QWNxdWlyZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2si
LCAmVGVzdFJ1bm5lcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRO
b3RBY3F1aXJlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkTm90QWNxdWlyZVBvaW50ZXJM
b2NrKTsKICAgICBiaW5kTWV0aG9kKCJzZXRQb2ludGVyTG9ja1dpbGxSZXNwb25kQXN5bmNocm9u
b3VzbHkiLCAmVGVzdFJ1bm5lcjo6c2V0UG9pbnRlckxvY2tXaWxsUmVzcG9uZEFzeW5jaHJvbm91
c2x5KTsKICAgICBiaW5kTWV0aG9kKCJzZXRQb2ludGVyTG9ja1dpbGxGYWlsU3luY2hyb25vdXNs
eSIsICZUZXN0UnVubmVyOjpzZXRQb2ludGVyTG9ja1dpbGxGYWlsU3luY2hyb25vdXNseSk7Cisj
ZW5kaWYKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbW9kaWZ5IFdlYlByZWZlcmVuY2VzLgogICAg
IGJpbmRNZXRob2QoInNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRV
c2VyU3R5bGVTaGVldEVuYWJsZWQpOwpAQCAtMjcyLDkgKzI3MywxMSBAQCBUZXN0UnVubmVyOjpU
ZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVs
bCIsICZUZXN0UnVubmVyOjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCk7CiAgICAgYmlu
ZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0IiwgJlRlc3RS
dW5uZXI6OnNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCk7CiAKKyNpZiBF
TkFCTEUoV0VCX0lOVEVOVFMpCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGludGVyYWN0
IHdpdGggdGhlIFdlYlRlc3RQcm94eS4KICAgICBiaW5kTWV0aG9kKCJzZW5kV2ViSW50ZW50UmVz
cG9uc2UiLCAmVGVzdFJ1bm5lcjo6c2VuZFdlYkludGVudFJlc3BvbnNlKTsKICAgICBiaW5kTWV0
aG9kKCJkZWxpdmVyV2ViSW50ZW50IiwgJlRlc3RSdW5uZXI6OmRlbGl2ZXJXZWJJbnRlbnQpOwor
I2VuZGlmCiAKICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgaW50ZXJhY3Qgd2l0aCB0aGUg
V2ViVGVzdERlbGVnYXRlLgogICAgIGJpbmRNZXRob2QoInNob3dXZWJJbnNwZWN0b3IiLCAmVGVz
dFJ1bm5lcjo6c2hvd1dlYkluc3BlY3Rvcik7CkBAIC0yOTEsMTMgKzI5NCwxOSBAQCBUZXN0UnVu
bmVyOjpUZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Np
b24iLCAmVGVzdFJ1bm5lcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IiLCAmVGVzdFJ1
bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsICZUZXN0UnVubmVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbik7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAg
YmluZE1ldGhvZCgiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJlRlc3RSdW5uZXI6
OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmluZE1ldGhvZCgic2ltdWxh
dGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayIsICZUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2Fj
eVdlYk5vdGlmaWNhdGlvbkNsaWNrKTsKKyNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gp
CiAgICAgYmluZE1ldGhvZCgiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgJlRlc3RSdW5uZXI6
OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja1NwZWVj
aElucHV0RHVtcFJlY3QiLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja1NwZWVjaElucHV0RHVtcFJlY3Qp
OworI2VuZGlmCisjaWYgRU5BQkxFKFNDUklQVEVEX1NQRUVDSCkKICAgICBiaW5kTWV0aG9kKCJh
ZGRNb2NrU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiLCAmVGVzdFJ1bm5lcjo6YWRkTW9ja1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0KTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrU3BlZWNoUmVjb2du
aXRpb25FcnJvciIsICZUZXN0UnVubmVyOjpzZXRNb2NrU3BlZWNoUmVjb2duaXRpb25FcnJvcik7
CiAgICAgYmluZE1ldGhvZCgid2FzTW9ja1NwZWVjaFJlY29nbml0aW9uQWJvcnRlZCIsICZUZXN0
UnVubmVyOjp3YXNNb2NrU3BlZWNoUmVjb2duaXRpb25BYm9ydGVkKTsKKyNlbmRpZgogICAgIGJp
bmRNZXRob2QoImRpc3BsYXkiLCAmVGVzdFJ1bm5lcjo6ZGlzcGxheSk7CiAgICAgYmluZE1ldGhv
ZCgiZGlzcGxheUludmFsaWRhdGVkUmVnaW9uIiwgJlRlc3RSdW5uZXI6OmRpc3BsYXlJbnZhbGlk
YXRlZFJlZ2lvbik7CiAKQEAgLTMxMiw5ICszMjEsMTEgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5l
cigpCiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBzdHVicy4KICAgICBiaW5kTWV0aG9kKCJk
dW1wRGF0YWJhc2VDYWxsYmFja3MiLCAmVGVzdFJ1bm5lcjo6bm90SW1wbGVtZW50ZWQpOworI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGJpbmRNZXRob2QoImRlbnlXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uIiwgJlRlc3RSdW5uZXI6Om5vdEltcGxlbWVudGVkKTsKICAgICBiaW5kTWV0
aG9kKCJyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyIsICZUZXN0UnVubmVyOjpu
b3RJbXBsZW1lbnRlZCk7CiAgICAgYmluZE1ldGhvZCgic2ltdWxhdGVXZWJOb3RpZmljYXRpb25D
bGljayIsICZUZXN0UnVubmVyOjpub3RJbXBsZW1lbnRlZCk7CisjZW5kaWYKICAgICBiaW5kTWV0
aG9kKCJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgJlRlc3RSdW5uZXI6Om5vdEltcGxlbWVudGVk
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRTY3JvbGxiYXJQb2xpY3kiLCAmVGVzdFJ1bm5lcjo6bm90
SW1wbGVtZW50ZWQpOwogICAgIGJpbmRNZXRob2QoImNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMi
LCAmVGVzdFJ1bm5lcjo6bm90SW1wbGVtZW50ZWQpOwpAQCAtMzU1LDcgKzM2Niw3IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIGlmIChtX3dlYlZpZXcpIHsKICAgICAgICAgbV93ZWJW
aWV3LT5zZXRab29tTGV2ZWwoZmFsc2UsIDApOwogICAgICAgICBtX3dlYlZpZXctPnNldFRhYktl
eUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKTsKLSNpZiAhZGVmaW5lZChfX0FQUExFX18pICYm
ICFkZWZpbmVkKFdJTjMyKSAvLyBBY3R1YWxseSwgVE9PTEtJVF9HVEsKKyNpZiAhT1MoREFSV0lO
KSAmJiAhT1MoV0lORE9XUykgLy8gQWN0dWFsbHksIFRPT0xLSVRfR1RLCiAgICAgICAgIC8vIChD
b25zdGFudHMgY29waWVkIGJlY2F1c2Ugd2UgY2FuJ3QgZGVwZW5kIG9uIHRoZSBoZWFkZXIgdGhh
dCBkZWZpbmVkCiAgICAgICAgIC8vIHRoZW0gZnJvbSB0aGlzIGZpbGUuKQogICAgICAgICBtX3dl
YlZpZXctPnNldFNlbGVjdGlvbkNvbG9ycygweGZmMWU5MGZmLCAweGZmMDAwMDAwLCAweGZmYzhj
OGM4LCAweGZmMzIzMjMyKTsKQEAgLTM3MCw3ICszODEsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnJl
c2V0KCkKICAgICBtX3BvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSA9IGZhbHNlOwogCiAg
ICAgV2ViU2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwotI2lm
IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKEFORFJPSUQpCisjaWYgT1MoTElOVVgpIHx8
IE9TKEFORFJPSUQpCiAgICAgV2ViRm9udFJlbmRlcmluZzo6c2V0U3VicGl4ZWxQb3NpdGlvbmlu
ZyhmYWxzZSk7CiAjZW5kaWYKIApAQCAtNDA5LDcgKzQyMCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
cmVzZXQoKQogICAgIG1fc2hvdWxkQmxvY2tSZWRpcmVjdHMgPSBmYWxzZTsKICAgICBtX3dpbGxT
ZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwgPSBmYWxzZTsKICAgICBtX3NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCA9IHRydWU7Ci0jaWZkZWYgV0lOMzIKKyNpZiBPUyhXSU5ET1dTKQogICAgIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7CiAjZWxzZQogICAgIG1fc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwpAQCAtNjI1LDcgKzYzNiw3IEBA
IFdlYkZyYW1lKiBUZXN0UnVubmVyOjp0b3BMb2FkaW5nRnJhbWUoKSBjb25zdAogCiB2b2lkIFRl
c3RSdW5uZXI6OnBvbGljeURlbGVnYXRlRG9uZSgpCiB7Ci0gICAgV0VCS0lUX0FTU0VSVChtX3dh
aXRVbnRpbERvbmUpOworICAgIEFTU0VSVChtX3dhaXRVbnRpbERvbmUpOwogICAgIG1fZGVsZWdh
dGUtPnRlc3RGaW5pc2hlZCgpOwogICAgIG1fd2FpdFVudGlsRG9uZSA9IGZhbHNlOwogfQpAQCAt
MTMyMCw3ICsxMzMxLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpmaW5kU3RyaW5nKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQKICAgICBXZWJGaW5kT3B0
aW9ucyBmaW5kT3B0aW9uczsKICAgICBib29sIHdyYXBBcm91bmQgPSBmYWxzZTsKICAgICBpZiAo
YXJndW1lbnRzLnNpemUoKSA+PSAyKSB7Ci0gICAgICAgIHZlY3RvcjxzdHJpbmc+IG9wdGlvbnNB
cnJheSA9IGFyZ3VtZW50c1sxXS50b1N0cmluZ1ZlY3RvcigpOworICAgICAgICBWZWN0b3I8c3Rk
OjpzdHJpbmc+IG9wdGlvbnNBcnJheSA9IGFyZ3VtZW50c1sxXS50b1N0cmluZ1ZlY3RvcigpOwog
ICAgICAgICBmaW5kT3B0aW9ucy5tYXRjaENhc2UgPSB0cnVlOwogCiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgb3B0aW9uc0FycmF5LnNpemUoKTsgKytpKSB7CkBAIC0xNDAwLDcgKzE0
MTEsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNlbGVjdGlvbkFzTWFya3VwKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KgogCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRl
eHRTdWJwaXhlbFBvc2l0aW9uaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7Ci0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQo
QU5EUk9JRCkKKyNpZiBPUyhMSU5VWCkgfHwgT1MoQU5EUk9JRCkKICAgICAvLyBTaW5jZSBGb250
Q29uZmlnIGRvZXNuJ3QgcHJvdmlkZSBhIHZhcmlhYmxlIHRvIGNvbnRyb2wgc3VicGl4ZWwgcG9z
aXRpb25pbmcsIHdlJ2xsIGZhbGwgYmFjawogICAgIC8vIHRvIHNldHRpbmcgaXQgZ2xvYmFsbHkg
Zm9yIGFsbCBmb250cy4KICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRz
WzBdLmlzQm9vbCgpKQpAQCAtMTY2OSw3ICsxNjgwLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpvdmVy
cmlkZVByZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uIikKICAgICAgICAgcHJlZnMtPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gY3Bw
VmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRXZWJBdWRp
b0VuYWJsZWQiKQotICAgICAgICBXRUJLSVRfQVNTRVJUKGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUp
KTsKKyAgICAgICAgQVNTRVJUKGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpKTsKICAgICBlbHNlIHsK
ICAgICAgICAgc3RyaW5nIG1lc3NhZ2UoIkludmFsaWQgbmFtZSBmb3IgcHJlZmVyZW5jZTogIik7
CiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kKGtleSk7CkBAIC0xNzE0LDYgKzE3MjUsNyBAQCB2b2lk
IFRlc3RSdW5uZXI6OnNldFRvdWNoRHJhZ0Ryb3BFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQogdm9pZCBUZXN0UnVubmVyOjpzZW5kV2ViSW50ZW50UmVzcG9uc2Uo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsK
ICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CkBAIC0xNzU1LDYgKzE3NjcsNyBAQCB2b2lkIFRl
c3RSdW5uZXI6OmRlbGl2ZXJXZWJJbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbnQqCiAKICAgICBtX3dlYlZpZXctPm1haW5GcmFtZSgpLT5kZWxpdmVySW50
ZW50KGludGVudCwgMCwgbV9pbnRlbnRDbGllbnQuZ2V0KCkpOwogfQorI2VuZGlmCiAKIHZvaWQg
VGVzdFJ1bm5lcjo6c2hvd1dlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50KiByZXN1bHQpCiB7CkBAIC0xODIwLDEwICsxODMzLDEwIEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0QmFja2luZ1NjYWxlRmFjdG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpCiAgICAgZmxvYXQgdmFsdWUgPSBhcmd1bWVudHNbMF0udmFsdWUuZG91YmxlVmFs
dWU7CiAgICAgbV9kZWxlZ2F0ZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IodmFsdWUpOwogCi0gICAg
YXV0b19wdHI8Q3BwVmFyaWFudD4gY2FsbGJhY2tBcmd1bWVudHMobmV3IENwcFZhcmlhbnQoKSk7
Ci0gICAgY2FsbGJhY2tBcmd1bWVudHMtPnNldChhcmd1bWVudHNbMV0pOworICAgIE93bkFycmF5
UHRyPENwcFZhcmlhbnQ+IGNhbGxiYWNrQXJndW1lbnRzID0gYWRvcHRBcnJheVB0cihuZXcgQ3Bw
VmFyaWFudFsxXSk7CisgICAgY2FsbGJhY2tBcmd1bWVudHNbMF0uc2V0KGFyZ3VtZW50c1sxXSk7
CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgbV9kZWxlZ2F0ZS0+cG9zdFRhc2sobmV3IElu
dm9rZUNhbGxiYWNrVGFzayh0aGlzLCBjYWxsYmFja0FyZ3VtZW50cykpOworICAgIG1fZGVsZWdh
dGUtPnBvc3RUYXNrKG5ldyBJbnZva2VDYWxsYmFja1Rhc2sodGhpcywgY2FsbGJhY2tBcmd1bWVu
dHMucmVsZWFzZSgpLCAxKSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UE9TSVhMb2NhbGUo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAg
LTE4NjQsNiArMTg3Nyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb25VbmF2YWlsYWJsZUVycm9yKGNvbnN0IENwcEFyZ3VtZW50TGlzCiAgICAgbV9kZWxlZ2F0
ZS0+c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKGFyZ3VtZW50c1sw
XS50b1N0cmluZygpKTsKIH0KIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogdm9pZCBUZXN0
UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRz
LnNpemUoKSAhPSAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgewpAQCAtMTg4Miw3ICsx
ODk2LDkgQEAgdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNs
aWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW0KICAgICB9CiAgICAgcmVzdWx0LT5zZXQo
bV9kZWxlZ2F0ZS0+c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhhcmd1bWVudHNb
MF0udG9TdHJpbmcoKSkpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQog
dm9pZCBUZXN0UnVubmVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNl
dE51bGwoKTsKQEAgLTE5MDAsNyArMTkxNiw5IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja1Nw
ZWVjaElucHV0RHVtcFJlY3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwCiAK
ICAgICBtX2RlbGVnYXRlLT5zZXRNb2NrU3BlZWNoSW5wdXREdW1wUmVjdChhcmd1bWVudHNbMF0u
dG9Cb29sZWFuKCkpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQog
dm9pZCBUZXN0UnVubmVyOjphZGRNb2NrU3BlZWNoUmVjb2duaXRpb25SZXN1bHQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1
bHQtPnNldE51bGwoKTsKQEAgLTE5MjMsNiArMTk0MSw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6d2Fz
TW9ja1NwZWVjaFJlY29nbml0aW9uQWJvcnRlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpCiB7CiAgICAgcmVzdWx0LT5zZXQobV9kZWxlZ2F0ZS0+d2FzTW9ja1NwZWVjaFJlY29nbml0
aW9uQWJvcnRlZCgpKTsKIH0KKyNlbmRpZgogCiB2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXkoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKQEAg
LTIxMDIsNiArMjEyMSw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6bm90SW1wbGVtZW50ZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIHZvaWQgVGVzdFJ1bm5lcjo6ZGlk
QWNxdWlyZVBvaW50ZXJMb2NrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJl
c3VsdCkKIHsKICAgICBtX2RlbGVnYXRlLT5kaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKQEAgLTIx
MzEsNSArMjE1MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5
bmNocm9ub3VzbHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwCiAgICAgbV9kZWxlZ2F0ZS0+
c2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHkoKTsKICAgICByZXN1bHQtPnNldE51
bGwoKTsKIH0KKyNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggN2MxNjViMDQxZGNj
YzZkMTlhZGFiYTE2MGU3MDNhZWY2MjQyNjEzNC4uMDQyZDUzNTA5Mjk1MWMyYzAwODE3YjE3ZDBi
YmUxZWQxNWFjYTVmNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMzQsMTcgKzM0LDE1IEBACiAj
ZGVmaW5lIFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAiQ3BwQm91bmRDbGFzcy5oIgotI2luY2x1
ZGUgIlRlc3RDb21tb24uaCIKICNpbmNsdWRlICJXZWJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNs
dWRlICJXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJUYXNrLmgiCiAj
aW5jbHVkZSAiV2ViVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUgIldlYlRleHREaXJlY3Rpb24uaCIK
LSNpbmNsdWRlIDxkZXF1ZT4KLSNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlVSTC5oPgogI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQXJyYXlCdWZmZXJWaWV3
OwpAQCAtMTQzLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgYWRkV29yayhXb3Jr
SXRlbSopOwogCiAgICAgICAgIHZvaWQgc2V0RnJvemVuKGJvb2wgZnJvemVuKSB7IG1fZnJvemVu
ID0gZnJvemVuOyB9Ci0gICAgICAgIGJvb2wgaXNFbXB0eSgpIHsgcmV0dXJuIG1fcXVldWUuZW1w
dHkoKTsgfQorICAgICAgICBib29sIGlzRW1wdHkoKSB7IHJldHVybiBtX3F1ZXVlLmlzRW1wdHko
KTsgfQogICAgICAgICBXZWJUYXNrTGlzdCogdGFza0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlz
dDsgfQogCiAgICAgcHJpdmF0ZToKQEAgLTE1NSw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgICAg
ICB9OwogCiAgICAgICAgIFdlYlRhc2tMaXN0IG1fdGFza0xpc3Q7Ci0gICAgICAgIHN0ZDo6ZGVx
dWU8V29ya0l0ZW0qPiBtX3F1ZXVlOworICAgICAgICBEZXF1ZTxXb3JrSXRlbSo+IG1fcXVldWU7
CiAgICAgICAgIGJvb2wgbV9mcm96ZW47CiAgICAgICAgIFRlc3RSdW5uZXIqIG1fY29udHJvbGxl
cjsKICAgICB9OwpAQCAtMjc3LDExICsyNzUsMTMgQEAgcHJpdmF0ZToKICAgICAvLyBEZXZpY2VP
cmllbnRhdGlvbiByZWxhdGVkIGZ1bmN0aW9ucwogICAgIHZvaWQgc2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlkTm90QWNxdWlyZVBvaW50
ZXJMb2NrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRp
ZExvc2VQb2ludGVyTG9jayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAg
ICAgdm9pZCBzZXRQb2ludGVyTG9ja1dpbGxGYWlsU3luY2hyb25vdXNseShjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRQb2ludGVyTG9ja1dpbGxSZXNw
b25kQXN5bmNocm9ub3VzbHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwor
I2VuZGlmCiAKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBNZXRob2RzIG1vZGlmeWlu
ZyBXZWJQcmVmZXJlbmNlcy4KQEAgLTQyMCwxMiArNDIwLDE0IEBAIHByaXZhdGU6CiAgICAgLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAgICAgLy8gTWV0aG9kcyBpbnRlcmFjdGluZyB3aXRoIHRoZSBXZWJU
ZXN0UHJveHkKIAorI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICAvLyBFeHBlY3RzIG9uZSBz
dHJpbmcgYXJndW1lbnQgZm9yIHNlbmRpbmcgc3VjY2Vzc2Z1bCByZXN1bHQsIHplcm8KICAgICAv
LyBhcmd1bWVudHMgZm9yIHNlbmRpbmcgYSBmYWlsdXJlIHJlc3VsdC4KICAgICB2b2lkIHNlbmRX
ZWJJbnRlbnRSZXNwb25zZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAK
ICAgICAvLyBDYXVzZSB0aGUgd2ViIGludGVudCB0byBiZSBkZWxpdmVyZWQgdG8gdGhpcyBjb250
ZXh0LgogICAgIHZvaWQgZGVsaXZlcldlYkludGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CisjZW5kaWYKIAogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIC8vIE1l
dGhvZHMgZm9yd2FyZGluZyB0byB0aGUgV2ViVGVzdERlbGVnYXRlCkBAIC00NjYsMTcgKzQ2OCwy
MyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIC8vIEdyYW50cyBwZXJt
aXNzaW9uIGZvciBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgdG8gYW4gb3JpZ2luCiAgICAgdm9pZCBn
cmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOwogICAgIC8vIFNpbXVsYXRlcyBhIGNsaWNrIG9uIGEgZGVza3RvcCBub3RpZmlj
YXRpb24uCiAgICAgdm9pZCBzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyNlbmRpZgogCiAgICAgLy8gU3BlZWNo
IGlucHV0IHJlbGF0ZWQgZnVuY3Rpb25zLgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAg
dm9pZCBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOwogICAgIHZvaWQgc2V0TW9ja1NwZWVjaElucHV0RHVtcFJlY3QoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworI2VuZGlmCisjaWYgRU5BQkxFKFNDUklQVEVE
X1NQRUVDSCkKICAgICB2b2lkIGFkZE1vY2tTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRNb2NrU3BlZWNoUmVj
b2duaXRpb25FcnJvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAg
dm9pZCB3YXNNb2NrU3BlZWNoUmVjb2duaXRpb25BYm9ydGVkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKKyNlbmRpZgogCiAgICAgdm9pZCBkaXNwbGF5KGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc3BsYXlJbnZhbGlkYXRlZFJl
Z2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC02NzQsMTAgKzY4
MiwxMCBAQCBwcml2YXRlOgogICAgIFdlYktpdDo6V2ViRnJhbWUqIG1fdG9wTG9hZGluZ0ZyYW1l
OwogCiAgICAgLy8gTW9jayBvYmplY3QgZm9yIHRlc3RpbmcgZGVsaXZlcmluZyB3ZWIgaW50ZW50
cy4KLSAgICBzdGQ6OmF1dG9fcHRyPFdlYktpdDo6V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50PiBt
X2ludGVudENsaWVudDsKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJEZWxpdmVyZWRJbnRlbnRDbGll
bnQ+IG1faW50ZW50Q2xpZW50OwogCiAgICAgLy8gV2ViUGVybWlzc2lvbkNsaWVudCBtb2NrIG9i
amVjdC4KLSAgICBzdGQ6OmF1dG9fcHRyPFdlYlBlcm1pc3Npb25zPiBtX3dlYlBlcm1pc3Npb25z
OworICAgIE93blB0cjxXZWJQZXJtaXNzaW9ucz4gbV93ZWJQZXJtaXNzaW9uczsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAKaW5kZXggZjVmOWIyYWU4MDky
YTM3OGMzMjY1MjNhZGYzN2ExOGFhOTQ0MDU1Mi4uMzIyNWNiOTBjNDJhNmVlYmJiYWI1OTQ3MDcy
ZTMyYTRhN2EyMDI4MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0SW5w
dXRDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAiV2Vi
QmluZGluZ3MuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdGlvblVuZGVybGluZS5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCkBAIC00MSw5ICs0MCw5IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlN0
cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4KICNpbmNsdWRlIDxzdHJpbmc+
CisjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCkBA
IC0xNDcsNyArMTQ2LDcgQEAgdm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjptYXJrZWRSYW5nZShj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQKICAgICAgICAgcmV0dXJu
OwogCiAgICAgV2ViUmFuZ2UgcmFuZ2UgPSBtYWluRnJhbWUtPm1hcmtlZFJhbmdlKCk7Ci0gICAg
dmVjdG9yPGludD4gaW50QXJyYXkoMik7CisgICAgVmVjdG9yPGludD4gaW50QXJyYXkoMik7CiAg
ICAgaW50QXJyYXlbMF0gPSByYW5nZS5zdGFydE9mZnNldCgpOwogICAgIGludEFycmF5WzFdID0g
cmFuZ2UuZW5kT2Zmc2V0KCk7CiAgICAgcmVzdWx0LT5zZXQoV2ViQmluZGluZ3M6Om1ha2VJbnRB
cnJheShpbnRBcnJheSkpOwpAQCAtMTYyLDcgKzE2MSw3IEBAIHZvaWQgVGV4dElucHV0Q29udHJv
bGxlcjo6c2VsZWN0ZWRSYW5nZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiBy
ZXN1CiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYlJhbmdlIHJhbmdlID0gbWFpbkZyYW1lLT5z
ZWxlY3Rpb25SYW5nZSgpOwotICAgIHZlY3RvcjxpbnQ+IGludEFycmF5KDIpOworICAgIFZlY3Rv
cjxpbnQ+IGludEFycmF5KDIpOwogICAgIGludEFycmF5WzBdID0gcmFuZ2Uuc3RhcnRPZmZzZXQo
KTsKICAgICBpbnRBcnJheVsxXSA9IHJhbmdlLmVuZE9mZnNldCgpOwogICAgIHJlc3VsdC0+c2V0
KFdlYkJpbmRpbmdzOjptYWtlSW50QXJyYXkoaW50QXJyYXkpKTsKQEAgLTE4Myw3ICsxODIsNyBA
QCB2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndQogICAgIGlmICghZnJhbWUtPmZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlKGFyZ3VtZW50c1swXS50b0ludDMyKCksIGFyZ3VtZW50c1sxXS50b0ludDMy
KCksIHJlY3QpKQogICAgICAgICByZXR1cm47CiAKLSAgICB2ZWN0b3I8aW50PiBpbnRBcnJheSg0
KTsKKyAgICBWZWN0b3I8aW50PiBpbnRBcnJheSg0KTsKICAgICBpbnRBcnJheVswXSA9IHJlY3Qu
eDsKICAgICBpbnRBcnJheVsxXSA9IHJlY3QueTsKICAgICBpbnRBcnJheVsyXSA9IHJlY3Qud2lk
dGg7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMjM5MDkzNTE4NzYxOTFkZDM3
ZmJkZmYwMTcyZjU5MTRkYmZmZmEwYi4uOTkzM2ZhOGM3NjY0ZWYxODBhMGYxNzNiYTIwYWNhZjBj
NzQ2MDZlMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtNDAsNyArNDAsNyBA
QCBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0
KCkKIHsKLSNpZmRlZiBfX0FQUExFX18KKyNpZiBPUyhNQUNfT1NfWCkKICAgICBjdXJzaXZlRm9u
dEZhbWlseSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoIkFwcGxlIENoYW5jZXJ5Iik7CiAgICAgZmFu
dGFzeUZvbnRGYW1pbHkgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJQYXB5cnVzIik7CiAgICAgV2Vi
U3RyaW5nIHNlcmlmID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgiVGltZXMiKTsKQEAgLTEwNiw3ICsx
MDYsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgLy8gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2NhbCwgdG8gYWNjZXNzIGh0dHAgc2VydmVyLgogICAgIGFsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzID0gdHJ1ZTsKIAotI2lmZGVmIF9fQVBQTEVfXworI2lmIE9T
KERBUldJTikKICAgICBlZGl0aW5nQmVoYXZpb3IgPSBXZWJTZXR0aW5nczo6RWRpdGluZ0JlaGF2
aW9yTWFjOwogI2Vsc2UKICAgICBlZGl0aW5nQmVoYXZpb3IgPSBXZWJTZXR0aW5nczo6RWRpdGlu
Z0JlaGF2aW9yV2luOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViVGFzay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9XZWJUYXNrLmNwcAppbmRleCA3NzlmNTNlNThhZTg1NDIyMmVkODU2
ZjNmMTUyMGMxODRlYWFiYTAyLi45NzUzMWM4MGRlMTQ1NDllYzBmYTFjMDUxY2M1ZDA4MTBmMmJk
NGY4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9XZWJUYXNrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUYXNrLmNwcApAQCAtMzIsOSArMzIsNyBAQAogI2luY2x1ZGUgIldlYlRh
c2suaCIKIAogI2luY2x1ZGUgIldlYktpdC5oIgotI2luY2x1ZGUgPGFsZ29yaXRobT4KLQotdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBX
ZWJUZXN0UnVubmVyIHsKIApAQCAtNTAsMzEgKzQ4LDM2IEBAIFdlYlRhc2s6On5XZWJUYXNrKCkK
ICAgICAgICAgbV90YXNrTGlzdC0+dW5yZWdpc3RlclRhc2sodGhpcyk7CiB9CiAKK2NsYXNzIFdl
YlRhc2tMaXN0OjpQcml2YXRlIDogcHVibGljIFZlY3RvcjxXZWJUYXNrKj4geworfTsKKwogV2Vi
VGFza0xpc3Q6OldlYlRhc2tMaXN0KCkKKyAgICA6IG1fcHJpdmF0ZShuZXcgUHJpdmF0ZSkKIHsK
IH0KIAogV2ViVGFza0xpc3Q6On5XZWJUYXNrTGlzdCgpCiB7CiAgICAgcmV2b2tlQWxsKCk7Cisg
ICAgZGVsZXRlIG1fcHJpdmF0ZTsKIH0KIAogdm9pZCBXZWJUYXNrTGlzdDo6cmVnaXN0ZXJUYXNr
KFdlYlRhc2sqIHRhc2spCiB7Ci0gICAgbV90YXNrcy5wdXNoX2JhY2sodGFzayk7CisgICAgbV9w
cml2YXRlLT5hcHBlbmQodGFzayk7CiB9CiAKIHZvaWQgV2ViVGFza0xpc3Q6OnVucmVnaXN0ZXJU
YXNrKFdlYlRhc2sqIHRhc2spCiB7Ci0gICAgdmVjdG9yPFdlYlRhc2sqPjo6aXRlcmF0b3IgaXRl
ciA9IGZpbmQobV90YXNrcy5iZWdpbigpLCBtX3Rhc2tzLmVuZCgpLCB0YXNrKTsKLSAgICBpZiAo
aXRlciAhPSBtX3Rhc2tzLmVuZCgpKQotICAgICAgICBtX3Rhc2tzLmVyYXNlKGl0ZXIpOworICAg
IHNpemVfdCBpbmRleCA9IG1fcHJpdmF0ZS0+ZmluZCh0YXNrKTsKKyAgICBpZiAoaW5kZXggIT0g
bm90Rm91bmQpCisgICAgICAgIG1fcHJpdmF0ZS0+cmVtb3ZlKGluZGV4KTsKIH0KIAogdm9pZCBX
ZWJUYXNrTGlzdDo6cmV2b2tlQWxsKCkKIHsKLSAgICB3aGlsZSAoIW1fdGFza3MuZW1wdHkoKSkK
LSAgICAgICAgbV90YXNrc1swXS0+Y2FuY2VsKCk7CisgICAgd2hpbGUgKCFtX3ByaXZhdGUtPmlz
RW1wdHkoKSkKKyAgICAgICAgKCptX3ByaXZhdGUpWzBdLT5jYW5jZWwoKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCmluZGV4IDdiNTgyOGRmOWI5OWQ2OGQzM2Vh
NDY3NzM5ZWUyMTIzYTUzNzY1NzMuLjg5MjYzYmQ3YmUwMzlmNjRjYmZmYjkxNDFhZTdiMDY4ODRh
MTc3ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTM5LDEyICsz
OSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIg
ewogCiBXZWJUZXN0SW50ZXJmYWNlczo6V2ViVGVzdEludGVyZmFjZXMoKQotICAgIDogbV9pbnRl
cmZhY2VzKG5ldyBUZXN0SW50ZXJmYWNlcygpKQogeworICAgIG1faW50ZXJmYWNlcyA9IG5ldyBU
ZXN0SW50ZXJmYWNlczsKIH0KIAogV2ViVGVzdEludGVyZmFjZXM6On5XZWJUZXN0SW50ZXJmYWNl
cygpCiB7CisgICAgZGVsZXRlIG1faW50ZXJmYWNlczsKIH0KIAogdm9pZCBXZWJUZXN0SW50ZXJm
YWNlczo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtODQsNyArODUsNyBAQCBXZWJU
ZXN0UnVubmVyKiBXZWJUZXN0SW50ZXJmYWNlczo6dGVzdFJ1bm5lcigpCiAKIFRlc3RJbnRlcmZh
Y2VzKiBXZWJUZXN0SW50ZXJmYWNlczo6dGVzdEludGVyZmFjZXMoKQogewotICAgIHJldHVybiBt
X2ludGVyZmFjZXMuZ2V0KCk7CisgICAgcmV0dXJuIG1faW50ZXJmYWNlczsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggYzYxM2U3MTQ4MmFiMTg1OGE4ZGUwMDRjMTk3NGQz
NTkyYjRkZDFlMy4uNjQ3MGYwYTQxMTIyZjljOWZjMzcxZGFjYWJhNTM5MzkzNWFkMjc1OSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgi
CiAjaW5jbHVkZSAiU3BlbGxDaGVja0NsaWVudC5oIgotI2luY2x1ZGUgIlRlc3RDb21tb24uaCIK
ICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUgIlRlc3RQbHVnaW4uaCIKICNp
bmNsdWRlICJUZXN0UnVubmVyLmgiCkBAIC01OSw2ICs1OCw3IEBACiAjaW5jbHVkZSA8cHVibGlj
L1dlYlVSTEVycm9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTFJlcXVlc3QuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAt
MjEyLDcgKzIxMiw3IEBAIHN0cmluZyB1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3Qgc3Ry
aW5nJiB1cmwpCiAKICAgICBzaXplX3QgcG9zID0gdXJsLnJmaW5kKCcvJyk7CiAgICAgaWYgKHBv
cyA9PSBzdHJpbmc6Om5wb3MpIHsKLSNpZmRlZiBXSU4zMgorI2lmIE9TKFdJTkRPV1MpCiAgICAg
ICAgIHBvcyA9IHVybC5yZmluZCgnXFwnKTsKICAgICAgICAgaWYgKHBvcyA9PSBzdHJpbmc6Om5w
b3MpCiAgICAgICAgICAgICBwb3MgPSAwOwpAQCAtMjY3LDYgKzI2Nyw3IEBAIFdlYlRlc3RQcm94
eUJhc2U6OldlYlRlc3RQcm94eUJhc2UoKQogCiBXZWJUZXN0UHJveHlCYXNlOjp+V2ViVGVzdFBy
b3h5QmFzZSgpCiB7CisgICAgZGVsZXRlIG1fc3BlbGxjaGVjazsKIH0KIAogdm9pZCBXZWJUZXN0
UHJveHlCYXNlOjpzZXRJbnRlcmZhY2VzKFdlYlRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2VzKQpA
QCAtMjg5LDcgKzI5MCw3IEBAIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6cmVzZXQoKQogCiBXZWJT
cGVsbENoZWNrQ2xpZW50KiBXZWJUZXN0UHJveHlCYXNlOjpzcGVsbENoZWNrQ2xpZW50KCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9zcGVsbGNoZWNrLmdldCgpOworICAgIHJldHVybiBtX3NwZWxs
Y2hlY2s7CiB9CiAKIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6c2V0UGFpbnRSZWN0KGNvbnN0IFdl
YlJlY3QmIHJlY3QpCkBAIC01NTUsMTEgKzU1NiwxNCBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6
OmRpZEVuZEVkaXRpbmcoKQogCiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OnJlZ2lzdGVySW50ZW50
U2VydmljZShXZWJGcmFtZSosIGNvbnN0IFdlYkludGVudFNlcnZpY2VJbmZvJiBzZXJ2aWNlKQog
eworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uo
c3RyaW5nKCJSZWdpc3RlcmVkIFdlYiBJbnRlbnQgU2VydmljZTogYWN0aW9uPSIpICsgc2Vydmlj
ZS5hY3Rpb24oKS51dGY4KCkuZGF0YSgpICsgIiB0eXBlPSIgKyBzZXJ2aWNlLnR5cGUoKS51dGY4
KCkuZGF0YSgpICsgIiB0aXRsZT0iICsgc2VydmljZS50aXRsZSgpLnV0ZjgoKS5kYXRhKCkgKyAi
IHVybD0iICsgc2VydmljZS51cmwoKS5zcGVjKCkuZGF0YSgpICsgIiBkaXNwb3NpdGlvbj0iICsg
c2VydmljZS5kaXNwb3NpdGlvbigpLnV0ZjgoKS5kYXRhKCkgKyAiXG4iKTsKKyNlbmRpZgogfQog
CiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpc3BhdGNoSW50ZW50KFdlYkZyYW1lKiBzb3VyY2Us
IGNvbnN0IFdlYkludGVudFJlcXVlc3QmIHJlcXVlc3QpCiB7CisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQogICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdHJpbmcoIlJlY2VpdmVkIFdlYiBJ
bnRlbnQ6IGFjdGlvbj0iKSArIHJlcXVlc3QuaW50ZW50KCkuYWN0aW9uKCkudXRmOCgpLmRhdGEo
KSArICIgdHlwZT0iICsgcmVxdWVzdC5pbnRlbnQoKS50eXBlKCkudXRmOCgpLmRhdGEoKSArICJc
biIpOwogICAgIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5KiBwb3J0cyA9IHJlcXVlc3QuaW50
ZW50KCkubWVzc2FnZVBvcnRDaGFubmVsc1JlbGVhc2UoKTsKICAgICBtX2RlbGVnYXRlLT5zZXRD
dXJyZW50V2ViSW50ZW50UmVxdWVzdChyZXF1ZXN0KTsKQEAgLTU4Miw2ICs1ODYsNyBAQCB2b2lk
IFdlYlRlc3RQcm94eUJhc2U6OmRpc3BhdGNoSW50ZW50KFdlYkZyYW1lKiBzb3VyY2UsIGNvbnN0
IFdlYkludGVudFJlcXVlc3QmCiAgICAgV2ViVmVjdG9yPFdlYlVSTD4gc3VnZ2VzdGlvbnMgPSBy
ZXF1ZXN0LmludGVudCgpLnN1Z2dlc3Rpb25zKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzdWdnZXN0aW9ucy5zaXplKCk7ICsraSkKICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNz
YWdlKHN0cmluZygiSGF2ZSBzdWdnZXN0aW9uICIpICsgc3VnZ2VzdGlvbnNbaV0uc3BlYygpLmRh
dGEoKSArICJcbiIpOworI2VuZGlmCiB9CiAKIGJvb2wgV2ViVGVzdFByb3h5QmFzZTo6Y3JlYXRl
VmlldyhXZWJGcmFtZSosIGNvbnN0IFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYldp
bmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViU3RyaW5nJiwgV2ViTmF2aWdhdGlvblBvbGljeSkKQEAg
LTc3Myw3ICs3NzgsNyBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZERldGVjdFhTUyhXZWJG
cmFtZSosIGNvbnN0IFdlYlVSTCYsIGJvb2wpCiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmFzc2ln
bklkZW50aWZpZXJUb1JlcXVlc3QoV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25z
dCBXZWJLaXQ6OldlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKG1fdGVzdEludGVy
ZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKSB7
Ci0gICAgICAgIFdFQktJVF9BU1NFUlQobV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZmluZChpZGVu
dGlmaWVyKSA9PSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQoKSk7CisgICAgICAgIEFTU0VS
VChtX3Jlc291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIpID09IG1fcmVzb3VyY2VJ
ZGVudGlmaWVyTWFwLmVuZCgpKTsKICAgICAgICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXBbaWRl
bnRpZmllcl0gPSBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LnVybCgp
LnNwZWMoKSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvY29uZmlnLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9jb25maWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTJmYzZmNDFjMjY2M2U4ZjE1ZWNiYWVjOWE0N2VmZDc4ZmE5MzQ5Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9jb25maWcuaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAq
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIGNvbmZpZ19oCi0jZGVmaW5lIGNvbmZpZ19oCi0KLSNkZWZpbmUgVVNFKGZl
YXR1cmUpIChkZWZpbmVkIFdURl9VU0VfIyNmZWF0dXJlICYmIFdURl9VU0VfIyNmZWF0dXJlKQot
Ci0jZW5kaWYgLy8gY29uZmlnX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>