<?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>127216</bug_id>
          
          <creation_ts>2014-01-17 22:21:39 -0800</creation_ts>
          <short_desc>REGRESSION(r162237): Broke lots of API tests (Requested by ap on #webkit).</short_desc>
          <delta_ts>2014-01-17 22:23:36 -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>126918</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969397</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-17 22:21:39 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/162237 broke the build:
Broke lots of API tests (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969399</commentid>
    <comment_count>1</comment_count>
      <attachid>221537</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-17 22:22:04 -0800</bug_when>
    <thetext>Created attachment 221537
ROLLOUT of r162237

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>969400</commentid>
    <comment_count>2</comment_count>
      <attachid>221537</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-17 22:23:35 -0800</bug_when>
    <thetext>Comment on attachment 221537
ROLLOUT of r162237

Clearing flags on attachment: 221537

Committed r162245: &lt;http://trac.webkit.org/changeset/162245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969401</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-17 22:23:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221537</attachid>
            <date>2014-01-17 22:22:04 -0800</date>
            <delta_ts>2014-01-17 22:23:35 -0800</delta_ts>
            <desc>ROLLOUT of r162237</desc>
            <filename>bug-127216-20140117222203.patch</filename>
            <type>text/plain</type>
            <size>66472</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWRiY2E2ZTQ3M2M5NjMy
ZWRkMGU0YWY0YTZiN2IyNDM4Y2NlMzQ3YS4uNzZmZWQ1MGI0NmFjYmE5MGFhYzM5MzVhNWQzNjRh
YWI2NTdkNjEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE0LTAxLTE3ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTYyMjM3IGFuZCByMTYyMjQxLgorICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8xNjIyMzcKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTYyMjQxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjcyMTYKKworICAgICAgICBCcm9rZSBsb3RzIG9mIEFQSSB0ZXN0cyAoUmVx
dWVzdGVkIGJ5IGFwIG9uICN3ZWJraXQpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN0b3Jh
Z2VTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnN0YXJ0RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6cHJp
dmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6cHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OnByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nU3Rv
cmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0U291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpz
ZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJv
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6cHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICogU2hhcmVkL1Nl
c3Npb25UcmFja2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNr
ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChBUEk6OlNlc3Npb246OlNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpjcmVh
dGUpOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjppc0VwaGVtZXJhbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSVNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVh
dGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlV2Vi
UGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNy
ZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0Q29va2llc0Zyb21ET00p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNFbmFibGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdl
YktpdDo6cHJpdmF0ZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjppZGVudGlmaWVyQmFzZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVC
cm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZh
dGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OnByaXZhdGVTZXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ry
b3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KwogMjAxNC0wMS0xNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggb24gRUZMIHBvcnQgYWZ0ZXIgcjE2MjIzNwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dAppbmRleCA0OTliYzc4NmFlY2I5ZTEwYWM0Yzk1ZDQ0OTVlMDkxZWRhNGEw
ZTJmLi42MTE0ZGZmNjE5YTBiYjBlYzNlOTFkYzEzM2FjODQzZDRkMzM3YTA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjA0LDcgKzIwNCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBT
aGFyZWQvUHJpbnRJbmZvLmNwcAogICAgIFNoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCiAg
ICAgU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKLSAgICBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3Bw
CiAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKICAgICBTaGFyZWQvU2hhcmVhYmxlUmVz
b3VyY2UuY3BwCiAgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcApAQCAtMjk0LDcgKzI5Myw2
IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVn
aW5JbmZvcm1hdGlvbi5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUElOYXZpZ2F0aW9uRGF0YS5jcHAK
LSAgICBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQmFja2luZ1N0b3Jl
LmNwcAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9G
aW5kSW5kaWNhdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOGEzMGI1
MmFlNGM0YTU2OGUwN2ZhMmExODIwNWMzZjhkNmZhMTc5My4uOTljMTE4ZmI1MTMyNGYzNjQzZDQ1
NmE4ZDlhNzlkZGRmYTc2ODRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00
NDIsOCArNDQyLDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Np
b25TdGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaCBcCi0J
U291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBcCi0JU291cmNlL1dlYktp
dDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0
aXN0aWNzRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9Tb3VwQ29va2llUGVyc2lzdGVudFN0b3Jh
Z2VUeXBlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIxZGQ1NmE4ZmE5
OWE0ODg2YjhhODkzZGZiNDRmMDk0YTlmODM0OTAuLmY1OTk0NDY1MDUyYzFjM2M3Y2NiOTJiODgy
ZGIxMTliZWE1NTQyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM3LDcg
KzM3LDYgQEAKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0Jsb2JEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CkBAIC0xNDgsMTAgKzE0
NywxMCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2Fk
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXJpYWxMb2FkaW5nRW5hYmxlZCA9IGVu
YWJsZWQ7CiB9CiAKLXN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9u
KHVpbnQ2NF90IHNlc3Npb25JRCkKK3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3Jh
Z2VTZXNzaW9uKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKLSAgICBpZiAoU2Vzc2lv
blRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgewotICAgICAgICBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24qIHByaXZhdGVTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vz
c2lvbklEKS5nZXQoKTsKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkgeworICAgICAg
ICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVTZXNzaW9uID0gUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICAgICAgICAgaWYgKHByaXZhdGVT
ZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKICAgICAgICAgLy8g
U29tZSByZXF1ZXN0cyB3aXRoIHByaXZhdGUgYnJvd3NpbmcgbW9kZSByZXF1ZXN0ZWQgbWF5IHN0
aWxsIGJlIGNvbWluZyBzaG9ydGx5IGFmdGVyIE5ldHdvcmtQcm9jZXNzIHdhcyB0b2xkIHRvIGRl
c3Ryb3kgaXRzIHNlc3Npb24uCkBAIC0xNjEsOSArMTYwLDkgQEAgc3RhdGljIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogICAgIHJldHVy
biBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCi12
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKHVpbnQ2NF90
IHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9h
ZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5n
IHdpdGggdGhlIHNlc3Npb24gSUQuCisgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIHRo
ZSBwcml2YXRlIGJyb3dzaW5nIGZsYWcuCiAgICAgTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmRv
d25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCk7CiB9CiAK
QEAgLTE4MywzNCArMTgyLDM0IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCh1aW50NjRfdCBtCiAgICAgbG9hZGVy
LT5kaWRDb252ZXJ0SGFuZGxlVG9Eb3dubG9hZCgpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKGJvb2wgcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3Ry
aW5nJiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOworICAgIHJlc3VsdCA9IFdl
YkNvcmU6OmNvb2tpZXNGb3JET00oc3RvcmFnZVNlc3Npb24ocHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCit2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShib29s
IHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIFdlYkNvcmU6OnNldENv
b2tpZXNGcm9tRE9NKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCwg
Y29va2llU3RyaW5nKTsKKyAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzdG9yYWdlU2Vz
c2lvbihwcml2YXRlQnJvd3NpbmdFbmFibGVkKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJp
bmcpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5h
YmxlZCh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JiB1cmwsIGJvb2wmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZXNFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgYm9vbCYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9
IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0
UGFydHksIHVybCk7CisgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0VuYWJsZWQoc3RvcmFn
ZVNlc3Npb24ocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAK
LXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKHVpbnQ2NF90IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShib29sIHByaXZhdGVCcm93c2lu
Z0VuYWJsZWQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmluZyYg
cmVzdWx0KQogewotICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7CisgICAg
cmVzdWx0ID0gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNl
c3Npb24ocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXModWludDY0X3Qg
c2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8
Q29va2llPiYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
UmF3Q29va2llcyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQpCiB7Ci0gICAgV2Vi
Q29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5
LCB1cmwsIHJlc3VsdCk7CisgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lv
bihwcml2YXRlQnJvd3NpbmdFbmFibGVkKSwgZmlyc3RQYXJ0eSwgdXJsLCByZXN1bHQpOwogfQog
Ci12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUodWludDY0
X3Qgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSkKIHsKLSAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lv
bklEKSwgdXJsLCBjb29raWVOYW1lKTsKKyAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoc3RvcmFn
ZVNlc3Npb24ocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCksIHVybCwgY29va2llTmFtZSk7CiB9CiAK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTChjb25z
dCBVUkwmIHVybCwgY29uc3QgQmxvYlJlZ2lzdHJhdGlvbkRhdGEmIGRhdGEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAppbmRleCAzOTgxZmE1ZWI0YzMxMzE5MDYwZTBkOTZmNGZmZTNjYjg5OTNi
NDQ2Li45NDU3Mzc1M2UzZTcxZTE2OTEzOWNlMDM0NjA0NTFjNjBhZjI3OTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTc2LDE1ICs3NiwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpOwogICAgIHZvaWQgc2VydmVQZW5kaW5nUmVxdWVz
dHModWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHkpOwogICAgIHZvaWQgc2V0U2VyaWFsTG9h
ZGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzdGFydERvd25sb2FkKHVpbnQ2NF90IHNlc3Np
b25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgdm9pZCBzdGFydERvd25sb2FkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwg
dWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAg
ICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAot
ICAgIHZvaWQgY29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOwot
ICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00odWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYp
OwotICAgIHZvaWQgY29va2llc0VuYWJsZWQodWludDY0X3Qgc2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wmIHJlc3VsdCk7
Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSh1aW50NjRfdCBzZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwg
U3RyaW5nJiByZXN1bHQpOwotICAgIHZvaWQgZ2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZSh1aW50NjRf
dCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFt
ZSk7CisgICAgdm9pZCBjb29raWVzRm9yRE9NKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJp
bmcmIHJlc3VsdCk7CisgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShib29sIHByaXZhdGVCcm93
c2luZ0VuYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjb29raWVzRW5hYmxlZChib29sIHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsKKyAgICB2b2lkIGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7
CisgICAgdm9pZCBnZXRSYXdDb29raWVzKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgY29u
c3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKGJvb2wgcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNv
bnN0IEJsb2JSZWdpc3RyYXRpb25EYXRhJik7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGcm9t
VVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgc3JjVVJMKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYTQ1OTdmY2Qy
NDM4MzAzY2M1OGFkODU1YzEyOWUzYTllZTA5NDIxNy4uN2U4OTAzNWJjY2EzZWI3NDc1ZDMwZjg0
ODRkMWE0NGNmZTdiMGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTMyLDE1ICszMiwxNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgCiAgICAgU2V0U2VyaWFsTG9hZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKSAtPiAoKQogCi0gICAgU3RhcnREb3dubG9hZCh1aW50NjRf
dCBzZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KQorICAgIFN0YXJ0RG93bmxvYWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVk
LCB1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkK
ICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0X3QgbWFpblJlc291
cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0g
ICAgQ29va2llc0ZvckRPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBh
cnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBTZXRDb29raWVz
RnJvbURPTSh1aW50NjRfdCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJD
b3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKHVp
bnQ2NF90IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1
cmwpIC0+IChib29sIGVuYWJsZWQpCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
dWludDY0X3Qgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJM
IHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgR2V0UmF3Q29va2llcyh1aW50NjRfdCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKLSAgICBEZWxldGVDb29raWUodWludDY0X3Qg
c2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKKyAgICBDb29r
aWVzRm9yRE9NKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6VVJMIGZpcnN0
UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQorICAgIFNldENvb2tp
ZXNGcm9tRE9NKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6VVJMIGZpcnN0
UGFydHksIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVTdHJpbmcpCisgICAgQ29va2ll
c0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBXZWJDb3JlOjpVUkwgZmlyc3RQ
YXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkKKyAgICBDb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIFdlYkNvcmU6
OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAg
ICBHZXRSYXdDb29raWVzKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6VVJM
IGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiBjb29raWVzKQorICAgIERlbGV0ZUNvb2tpZShib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQs
IFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJCbG9i
VVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdlYktpdDo6QmxvYlJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkK
ICAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVS
TCBzcmNVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggOWMxYzFjYzFlOWUyMjdlM2Q5ZWNmMDkzNTliYjEwZGMxMGY4ZGYwYi4u
ZTUwMDBmNWIxMTkzYWJhNWIyMGE5ZGI5ZWU3NjJkNmYwMjJjY2RiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMzksNyArMzks
NiBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNz
RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXIuaCIKQEAgLTE1OCwxMiArMTU3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1lCiAgICAgc2V0Q2FjaGVNb2RlbChzdGF0aWNfY2FzdDx1aW50MzJfdD4ocGFyYW1ldGVycy5j
YWNoZU1vZGVsKSk7CiAKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCi0gICAg
U2Vzc2lvblRyYWNrZXI6OnNldElkZW50aWZpZXJCYXNlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVu
ZGxlSWRlbnRpZmllcik7CisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVC
cm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UocGFyYW1ldGVycy51aVByb2Nlc3NC
dW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgogCi0gICAgLy8gRklYTUU6IGluc3RlYWQgb2YgaGFu
ZGxpbmcgdGhpcyBoZXJlLCBhIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgbGF0ZXIgKHNjYWxlcyB0
byBtdWx0aXBsZSBzZXNzaW9ucykKICAgICBpZiAocGFyYW1ldGVycy5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKQotICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7Cisg
ICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCk7CiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Np
b24pCiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vz
c2lvbigpOwpAQCAtMjE0LDE0ICsyMTIsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklE
KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7
Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oc2Vzc2lvbklEKTsKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95UHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7Ci0gICAgU2Vzc2lvblRyYWNr
ZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiB9CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAppbmRleCBhZDVhOGMxMWIzZTQyNjY5ZWJkYWQ4OWY4Njg0YjdiYzMzZGU4
NDJjLi41NDg0ZDQ5MTkwM2E5ZDdlYWJlNzA0ZjY4NGI5N2ZiNTBlYjM0Y2YzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTEwNCw4ICsx
MDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBpbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKTsKICAgICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7Ci0g
ICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7
Ci0gICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9u
SUQpOworICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOworICAgIHZvaWQg
ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVz
dCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
ICAgICB2b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwogICAgIHZvaWQg
c2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGM0YTcxNDM2ZGM5
YzNjOGJlMmM5NGY1NjkyOWE5MzczNjIyNmVlZDkuLjZhZDZjMjU3NDIyMGVhNzA2NWMwMWM5MTNk
NjQ4OTU1ZmJkYTBkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCw4ICszNCw4IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzQ2hhbmdlZChWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMpCiAjZW5kaWYKIAotICAg
IEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQotICAgIERl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICBFbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKKyAgICBEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpCiAKICAgICBEb3dubG9hZFJlcXVlc3QodWludDY0X3QgZG93bmxvYWRJRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAgQ2FuY2VsRG93bmxvYWQodWludDY0X3Qg
ZG93bmxvYWRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDVmM2JmNzBmZjUyMGFmMDJhM2UyOGY3YzJh
NmZlYjJiNmY1MmI0Y2QuLmVmMjVmMzAxODIwZDhmYTNlYzBhYzJjZTVlOWU3MjEyZmE1NjhhMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaApAQCAtMzksOCArMzksMTEgQEAgcHVibGljOgogICAgIH0KICAgICB2
aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCi0gICAgLy8gRklYTUU6IHJlbW92
ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCB1c2UgU2Vzc2lvblRyYWNrZXIKLSAgICBzdGF0
aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7
CisgICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlm
aWVyQmFzZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKTsKKworICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9z
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbQppbmRleCAxMDU5Yjg4ZmNiZjYyYTFlZjQ0NWNhYzdmZjJjZTg2NDhlYjg1YWYw
Li5hMzgyOWU4YzNkZDZmNTA2NWY3Mjg5ZGYxNDZiNzMxZGZkODIxZDU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCkBAIC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKLSNpbXBvcnQgIlNlc3Npb25UcmFja2Vy
LmgiCiAjaW1wb3J0ICJXZWJFcnJvcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CkBAIC0zNyw2ICszNiwxMiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiYgcHJpdmF0ZUJyb3dzaW5n
U3RvcmFnZVNlc3Npb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
PiBzZXNzaW9uOworICAgIHJldHVybiBzZXNzaW9uOworfQogCiBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6flJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCkKIHsKQEAgLTYwLDcgKzY1LDcgQEAgYm9v
bCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCgpIGNvbnN0CiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAgICAgaWYgKG1fcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCkgewotICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVTZXNzaW9uID0g
U2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQpLmdldCgpOworICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHByaXZhdGVTZXNz
aW9uID0gcHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb24oKS5nZXQoKTsKICAgICAgICAgaWYg
KHByaXZhdGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKICAg
ICAgICAgLy8gU29tZSByZXF1ZXN0cyB3aXRoIHByaXZhdGUgYnJvd3NpbmcgbW9kZSByZXF1ZXN0
ZWQgbWF5IHN0aWxsIGJlIGNvbWluZyBzaG9ydGx5IGFmdGVyIE5ldHdvcmtQcm9jZXNzIHdhcyB0
b2xkIHRvIGRlc3Ryb3kgaXRzIHNlc3Npb24uCkBAIC03MSw2ICs3NiwxMSBAQCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNv
bnN0CiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiB9CiAKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbiogUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIHJldHVybiBwcml2YXRlQnJvd3Np
bmdTdG9yYWdlU2Vzc2lvbigpLmdldCgpOworfQorCiBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25BdWRpdERhdGEoKSBjb25zdAog
ewogICAgIHJldHVybiBuaWw7CkBAIC04MSwxMyArOTEsMzIgQEAgUmVzb3VyY2VFcnJvciBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWUKICAgICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKLXZv
aWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
dWludDY0X3Qgc2Vzc2lvbklEKQorc3RhdGljIFN0cmluZyYgcHJpdmF0ZUJyb3dzaW5nU3RvcmFn
ZVNlc3Npb25JZGVudGlmaWVyQmFzZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBiYXNlOworICAgIHJldHVybiBiYXNl
OworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRQcml2YXRlQnJvd3NpbmdT
dG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIHsK
LSAgICBpZiAoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKKyAgICBwcml2YXRl
QnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKCkgPSBpZGVudGlmaWVyOworfQor
Cit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCkKK3sKKyAgICBpZiAocHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb24oKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCFTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJh
c2UoKS5pc051bGwoKSk7Ci0gICAgU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSA9
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNz
aW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2UoKSArICcuJyArIFN0cmluZzo6bnVtYmVyKHNl
c3Npb25JRCkpOworICAgIEFTU0VSVCghcHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVu
dGlmaWVyQmFzZSgpLmlzTnVsbCgpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmSWRl
bnRpZmllciA9IFN0cmluZyhwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJC
YXNlKCkgKyAiLlByaXZhdGVCcm93c2luZyIpLmNyZWF0ZUNGU3RyaW5nKCk7CisKKyAgICBwcml2
YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptb3ZlKE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihwcml2YXRlQnJvd3NpbmdTdG9yYWdl
U2Vzc2lvbklkZW50aWZpZXJCYXNlKCkpKTsKK30KKwordm9pZCBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIHByaXZhdGVCcm93
c2luZ1N0b3JhZ2VTZXNzaW9uKCkgPSBudWxscHRyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0U291cC5jcHAKaW5kZXggZDdmOGQyYjVlOGVlYWZmYWIxNTdlYjQ1MzliYTlhYmRj
ZjBiMmJmZi4uM2JlZjU2NGJlZWUyZWE0YjJkZGUzZjAzY2NlMDMzZmE2YzYzZDUwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtNTIsMTYgKzUyLDMxIEBAIHVpbnQ2
NF90IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKCkgY29uc3QKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpzZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJC
YXNlKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworfQorCiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiB9CiAKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbiogUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuICZOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNlYzNhYTMzM2UzNmJiNjYzMWM2NGYyMjRjNzAxODlmNGJiYTBjZWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Nlc3Npb25UcmFja2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIK
LQotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotc3RhdGljIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFn
ZVNlc3Npb24+PiYgc2Vzc2lvbk1hcCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LQotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4+IG1hcDsKLSAgICByZXR1cm4gbWFwLmdldCgp
OwotfQotCi1zdGF0aWMgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSgpCi17Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLQotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGJhc2U7
Ci0gICAgcmV0dXJuIGJhc2U7Ci19Ci0KLWNvbnN0IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgU2Vzc2lvblRyYWNrZXI6OmdldFNlc3Np
b25NYXAoKQotewotICAgIHJldHVybiBzZXNzaW9uTWFwKCk7Ci19Ci0KLWNvbnN0IFN0cmluZyYg
U2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCkKLXsKLSAgICByZXR1cm4gaWRlbnRp
ZmllckJhc2UoKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4m
IFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKLXsKLSAgICByZXR1
cm4gc2Vzc2lvbk1hcCgpLmFkZChzZXNzaW9uSUQsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsK
LX0KLQotdm9pZCBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBzZXNzaW9uTWFwKCku
cmVtb3ZlKHNlc3Npb25JRCk7Ci19Ci0KLXZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldElkZW50aWZp
ZXJCYXNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotCi0gICAgaWRlbnRpZmllckJhc2UoKSA9IGlkZW50aWZpZXI7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Np
b25UcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTJjNmUyMDUyMjViYWFhMjEyYzQyNWRlZDc4Yzgx
ZGE3ODc5ZmFlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAorKysgL2Rldi9udWxsCkBA
IC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNlc3Npb25UcmFja2VyX2gKLSNk
ZWZpbmUgU2Vzc2lvblRyYWNrZXJfaAotCi0jaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLWNsYXNzIFNlc3Npb25UcmFja2VyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTZXNzaW9uVHJhY2tlcik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRl
ZmF1bHRTZXNzaW9uSUQgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBsZWdhY3lQcml2
YXRlU2Vzc2lvbklEID0gMjsKLSAgICBzdGF0aWMgYm9vbCBpc0VwaGVtZXJhbElEKHVpbnQ2NF90
IHNlc3Npb25JRCkgeyByZXR1cm4gc2Vzc2lvbklEICE9IFNlc3Npb25UcmFja2VyOjpkZWZhdWx0
U2Vzc2lvbklEOyB9Ci0gICAgc3RhdGljIGNvbnN0IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgZ2V0U2Vzc2lvbk1hcCgp
OwotICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGdldElkZW50aWZpZXJCYXNlKCk7Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBzZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24o
dWludDY0X3Qgc2Vzc2lvbklEKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRJZGVudGlmaWVyQmFzZShj
b25zdCBTdHJpbmcmKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
U2Vzc2lvblRyYWNrZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwCmlu
ZGV4IGMyYTI2MTVmZjI5ZjZkZmRkZDE1NjA3M2U3ODUzMDZjMmRlOGUwYWEuLjQyMzEyYmJkNDFi
ODdhMDM5NTVhMTU4NDYzZmUxOTM4ZDUwYzQ0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJU2Vzc2lvbi5jcHAKQEAgLTI2LDYzICsyNiwyMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkFQSVNlc3Npb24uaCIKIAotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0K
IG5hbWVzcGFjZSBBUEkgewogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJRChib29sIGlzRXBo
ZW1lcmFsKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBzdGF0aWMgdWlu
dDY0X3QgdW5pcXVlU2Vzc2lvbklEID0gV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRDsKLSAgICBBU1NFUlQoaXNFcGhlbWVyYWwpOwotICAgIHJldHVybiArK3Vu
aXF1ZVNlc3Npb25JRDsKLX0KLQotU2Vzc2lvbiYgU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBzdGF0aWMgU2Vzc2lvbiogZGVm
YXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lvbihmYWxzZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6
ZGVmYXVsdFNlc3Npb25JRCk7Ci0gICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lvbjsKLX0KLQotU2Vz
c2lvbiYgU2Vzc2lvbjo6bGVnYWN5UHJpdmF0ZVNlc3Npb24oKQotewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0KLSAgICBzdGF0aWMgU2Vzc2lvbiogbGVnYWN5UHJpdmF0ZVNlc3Npb24g
PSBuZXcgU2Vzc2lvbih0cnVlLCBXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKTsKLSAgICByZXR1cm4gKmxlZ2FjeVByaXZhdGVTZXNzaW9uOwotfQotCiBTZXNz
aW9uOjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpCiAgICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBo
ZW1lcmFsKQotICAgICwgbV9zZXNzaW9uSUQoZ2VuZXJhdGVJRChpc0VwaGVtZXJhbCkpCi17Ci19
Ci0KLVNlc3Npb246OlNlc3Npb24oYm9vbCBpc0VwaGVtZXJhbCwgdWludDY0X3Qgc2Vzc2lvbklE
KQotICAgIDogbV9pc0VwaGVtZXJhbChpc0VwaGVtZXJhbCkKLSAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKIHsKIH0KIAogUGFzc1JlZlB0cjxTZXNzaW9uPiBTZXNzaW9uOjpjcmVhdGUoYm9v
bCBpc0VwaGVtZXJhbCkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9ydCBjcmVhdGlvbiBvZiBub24t
ZGVmYXVsdCwgbm9uLWVwaGVtZXJhbCBzZXNzaW9ucwogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U2Vzc2lvbihpc0VwaGVtZXJhbCkpOwogfQogCi1ib29sIFNlc3Npb246OmlzRXBoZW1lcmFsKCkg
Y29uc3QKK2Jvb2wgU2Vzc2lvbjo6aXNFcGhlbWVyYWwoKQogewogICAgIHJldHVybiBtX2lzRXBo
ZW1lcmFsOwogfQogCi11aW50NjRfdCBTZXNzaW9uOjpnZXRJRCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fc2Vzc2lvbklEOwotfQotCiBTZXNzaW9uOjp+U2Vzc2lvbigpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uaAppbmRleCBkZjcxNmU1MTQyZTBiMDViNGI2MjgyNzQ2
OWMxNDhkYzNhYTUxYzI0Li4zZmI1ZjY3ZDlhMDJlNjRmZmNlMzBjMGYwN2ZhNTE3M2QzODU5YWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDYgQEAK
ICNkZWZpbmUgQVBJU2Vzc2lvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRl
ICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBBUEkgewpAQCAtMzUsMTcgKzM0LDEyIEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgU2Vz
c2lvbiA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlNlc3Npb24+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXNzaW9uPiBjcmVhdGUoYm9vbCBp
c0VwaGVtZXJhbCk7Ci0gICAgc3RhdGljIFNlc3Npb24mIGRlZmF1bHRTZXNzaW9uKCk7Ci0gICAg
c3RhdGljIFNlc3Npb24mIGxlZ2FjeVByaXZhdGVTZXNzaW9uKCk7Ci0gICAgYm9vbCBpc0VwaGVt
ZXJhbCgpIGNvbnN0OwotICAgIHVpbnQ2NF90IGdldElEKCkgY29uc3Q7CisgICAgYm9vbCBpc0Vw
aGVtZXJhbCgpOwogICAgIHZpcnR1YWwgflNlc3Npb24oKTsKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpOwotICAgIFNlc3Npb24oYm9vbCBpc0VwaGVt
ZXJhbCwgdWludDY0X3Qgc2Vzc2lvbklEKTsKICAgICBib29sIG1faXNFcGhlbWVyYWw7Ci0gICAg
dWludDY0X3QgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCA1NGVmYjQ4NGZlYmFmMjc3NjU0ZmMz
ZDFhYWUwNmUzMDFlYTc4ZDk2Li5lMTA1MTViMWFlNjg1NTU5MjhhNTJjZTQ5M2NhMjZjZDE4ZGUz
MTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMiw3ICsz
Miw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFj
a2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tl
ci5oIgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKQEAgLTQ2OCwxNiArNDY3LDE2IEBA
IHZvaWQgV2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChib29sIHByaXZhdGVCcm93CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAg
ICBpZiAodXNlc05ldHdvcmtQcm9jZXNzKCkgJiYgbmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAg
ICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CisgICAg
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAwKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSwgMCk7
CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRUQoTkVUV09SS19QUk9DRVNTKQogCiAgICAgaWYgKHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdl
czo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tl
cjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSk7CiAg
ICAgZWxzZQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSk7CiB9CiAKIHZvaWQgKCpz
X2ludmFsaWRNZXNzYWdlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lKTsKQEAgLTU5
OCw3ICs1OTcsNyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlBy
b2Nlc3MoKQogICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkluaXRpYWxp
emVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoaW5q
ZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhLmdldCgpLCAqcHJvY2VzcykpLCAwKTsK
IAogICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZUdyb3Vwc0FyZVVzaW5nUHJpdmF0ZUJy
b3dzaW5nKCkpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAwKTsKIAogICAgIG1fcHJvY2Vzc2Vz
LmFwcGVuZChwcm9jZXNzKTsKIApAQCAtNzQxLDcgKzc0MCw3IEBAIFdlYlByb2Nlc3NQcm94eSYg
V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1p
dCgpCiAgICAgcmV0dXJuICpyZXN1bHQ7CiB9CiAKLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBX
ZWJDb250ZXh0OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlBhZ2VH
cm91cCogcGFnZUdyb3VwLCBBUEk6OlNlc3Npb24mIHNlc3Npb24sIFdlYlBhZ2VQcm94eSogcmVs
YXRlZFBhZ2UpCitQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViQ29udGV4dDo6Y3JlYXRlV2Vi
UGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgV2Vi
UGFnZVByb3h5KiByZWxhdGVkUGFnZSkKIHsKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBw
cm9jZXNzOwogICAgIGlmIChtX3Byb2Nlc3NNb2RlbCA9PSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNv
bmRhcnlQcm9jZXNzKSB7CkBAIC03NTcsMTIgKzc1Niw3IEBAIFBhc3NSZWZQdHI8V2ViUGFnZVBy
b3h5PiBXZWJDb250ZXh0OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdl
YlBhCiAgICAgICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5n
UHJvY2Vzc0NvdW50TGltaXQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRl
V2ViUGFnZShwYWdlQ2xpZW50LCBwYWdlR3JvdXAgPyAqcGFnZUdyb3VwIDogbV9kZWZhdWx0UGFn
ZUdyb3VwLmdldCgpLCBzZXNzaW9uKTsKLX0KLQotUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdl
YkNvbnRleHQ6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUGFnZUdy
b3VwKiBwYWdlR3JvdXAsIFdlYlBhZ2VQcm94eSogcmVsYXRlZFBhZ2UpCi17Ci0gICAgcmV0dXJu
IGNyZWF0ZVdlYlBhZ2UocGFnZUNsaWVudCwgcGFnZUdyb3VwLCBwYWdlR3JvdXAtPnByZWZlcmVu
Y2VzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IEFQSTo6U2Vzc2lvbjo6bGVnYWN5UHJp
dmF0ZVNlc3Npb24oKSA6IEFQSTo6U2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKSwgcmVsYXRlZFBh
Z2UpOworICAgIHJldHVybiBwcm9jZXNzLT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIHBhZ2VH
cm91cCA/ICpwYWdlR3JvdXAgOiBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCkpOwogfQogCiBEb3du
bG9hZFByb3h5KiBXZWJDb250ZXh0Ojpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQ
YWdlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuaAppbmRleCBmNmI5ZjNjZjQyMmJkNmJiMTE3Y2IxNjZlYmE2NzNmNDg3N2Rh
NWNjLi5iOThjNDg2NDRiNDkzYjk2NjIzYzIzMjFiNzdmNGU3Yjg5YjM5NTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTE0OSw3ICsxNDksNiBAQCBwdWJsaWM6CiAK
ICAgICBTdG9yYWdlTWFuYWdlciYgc3RvcmFnZU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiAqbV9z
dG9yYWdlTWFuYWdlcjsgfQogCi0gICAgUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdl
YlBhZ2UoUGFnZUNsaWVudCYsIFdlYlBhZ2VHcm91cCosIEFQSTo6U2Vzc2lvbiYsIFdlYlBhZ2VQ
cm94eSogcmVsYXRlZFBhZ2UgPSAwKTsKICAgICBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3Jl
YXRlV2ViUGFnZShQYWdlQ2xpZW50JiwgV2ViUGFnZUdyb3VwKiwgV2ViUGFnZVByb3h5KiByZWxh
dGVkUGFnZSA9IDApOwogCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBj
b25zdCB7IHJldHVybiBtX2luamVjdGVkQnVuZGxlUGF0aDsgfQpAQCAtMjkzLDggKzI5Miw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB3aWxsU3RhcnRVc2luZ1ByaXZhdGVCcm93c2luZygp
OwogICAgIHN0YXRpYyB2b2lkIHdpbGxTdG9wVXNpbmdQcml2YXRlQnJvd3NpbmcoKTsKIAotICAg
IHN0YXRpYyBib29sIGlzRXBoZW1lcmFsU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpOwotCiAj
aWYgVVNFKFNPVVApCiAgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCk7CiAgICAgYm9v
bCBpZ25vcmVUTFNFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZVRMU0Vycm9yczsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0MWJiNzRjYWIx
OGMzNDFkMzgwZjNhZWVmN2M4MzdjMGRlNmI0MmZkLi43NDRjMWM1YzcwMGFkYWM1ODRjOTA5YTcz
NzBmOTc5ZmNjNGRmY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMjI4LDEyICsyMjgsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHdlYktleWJvYXJk
RXZlbnRUeXBlU3RyaW5nKFdlYkV2ZW50OjpUeXBlIHR5cGUpCiB9CiAjZW5kaWYgLy8gIUxPR19E
SVNBQkxFRAogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUGFnZVByb3h5OjpjcmVhdGUo
UGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJQYWdl
R3JvdXAmIHBhZ2VHcm91cCwgQVBJOjpTZXNzaW9uJiBzZXNzaW9uLCB1aW50NjRfdCBwYWdlSUQp
CitQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUGFnZVByb3h5OjpjcmVhdGUoUGFnZUNsaWVu
dCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJQYWdlR3JvdXAmIHBh
Z2VHcm91cCwgdWludDY0X3QgcGFnZUlEKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
UGFnZVByb3h5KHBhZ2VDbGllbnQsIHByb2Nlc3MsIHBhZ2VHcm91cCwgc2Vzc2lvbiwgcGFnZUlE
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQYWdlUHJveHkocGFnZUNsaWVudCwgcHJv
Y2VzcywgcGFnZUdyb3VwLCBwYWdlSUQpKTsKIH0KIAotV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJv
eHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJQ
YWdlR3JvdXAmIHBhZ2VHcm91cCwgQVBJOjpTZXNzaW9uJiBzZXNzaW9uLCB1aW50NjRfdCBwYWdl
SUQpCitXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYlBhZ2VHcm91cCYgcGFnZUdyb3VwLCB1aW50NjRf
dCBwYWdlSUQpCiAgICAgOiBtX3BhZ2VDbGllbnQocGFnZUNsaWVudCkKICAgICAsIG1fcHJvY2Vz
cyhwcm9jZXNzKQogICAgICwgbV9wYWdlR3JvdXAocGFnZUdyb3VwKQpAQCAtMjc5LDcgKzI3OSw2
IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcywgV2ViCiAgICAgLCBtX25lZWRUb3VjaEV2ZW50cyhmYWxz
ZSkKICNlbmRpZgogICAgICwgbV9wYWdlSUQocGFnZUlEKQotICAgICwgbV9zZXNzaW9uKHNlc3Np
b24pCiAgICAgLCBtX2lzUGFnZVN1c3BlbmRlZChmYWxzZSkKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgLCBtX2lzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKFRleHRDaGVja2VyOjppc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDgzYTJhZTVmMDlkYjRiZTEzMWI2MGRjZTYxNjg5MzRiNmY1MTNhYWIuLmRiMDBhZTQ0
M2QxOTA1NGRmNzg1Yzc4ODQzNTc5Y2FmMDE5Mjk4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgV2ViUGFnZVByb3h5
X2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkFQSVNlc3Npb24uaCIKICNp
bmNsdWRlICJBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCkBAIC03NSw3ICs3NCw2IEBACiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTMyOSwxMSArMzI3LDEwIEBAIGNsYXNzIFdlYlBhZ2VQcm94eSA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U+CiAgICAgLCBw
dWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlKFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBX
ZWJQYWdlR3JvdXAmLCBBUEk6OlNlc3Npb24mLCB1aW50NjRfdCBwYWdlSUQpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlKFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNz
UHJveHkmLCBXZWJQYWdlR3JvdXAmLCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZpcnR1YWwgfldl
YlBhZ2VQcm94eSgpOwogCiAgICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlSUQ7IH0KLSAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b24tPmdldElEKCk7IH0KIAogICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAgV2ViRnJhbWVQcm94eSogZm9jdXNlZEZy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KQEAgLTg1OCw3ICs4
NTUsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNjcm9s
bFBpbm5pbmdCZWhhdmlvcigpIHsgcmV0dXJuIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOyB9CiAg
ICAgICAgIAogcHJpdmF0ZToKLSAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nl
c3NQcm94eSYsIFdlYlBhZ2VHcm91cCYsIEFQSTo6U2Vzc2lvbiYsIHVpbnQ2NF90IHBhZ2VJRCk7
CisgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJQYWdl
R3JvdXAmLCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7
CiAKICAgICB2b2lkIHVwZGF0ZVZpZXdTdGF0ZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGZs
YWdzVG9VcGRhdGUgPSBXZWJDb3JlOjpWaWV3U3RhdGU6OkFsbEZsYWdzKTsKQEAgLTEzMTUsNyAr
MTMxMiw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwotICAg
IFJlZjxBUEk6OlNlc3Npb24+IG1fc2Vzc2lvbjsKIAogICAgIGJvb2wgbV9pc1BhZ2VTdXNwZW5k
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNDc2NmI5ZjZkNDNjYjhiNDQzYzc1YjI4YzgxYWM0M2EyNTRjNTkwMC4uMTBmMWFiMGY4NTU5
MzY1NzZiNjYyYzI1NmM0ZDMwOGNkNGQ2NzM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE2NywxMCArMTY3LDEwIEBAIFdlYlBhZ2VQcm94
eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkKICAgICByZXR1cm4g
Z2xvYmFsUGFnZU1hcCgpLmdldChwYWdlSUQpOwogfQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94
eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQs
IFdlYlBhZ2VHcm91cCYgcGFnZUdyb3VwLCBBUEk6OlNlc3Npb24mIHNlc3Npb24pCitQYXNzUmVm
UHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFdlYlBhZ2VHcm91cCYgcGFnZUdyb3VwKQogewogICAgIHVpbnQ2NF90
IHBhZ2VJRCA9IGdlbmVyYXRlUGFnZUlEKCk7Ci0gICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gd2Vi
UGFnZSA9IFdlYlBhZ2VQcm94eTo6Y3JlYXRlKHBhZ2VDbGllbnQsICp0aGlzLCBwYWdlR3JvdXAs
IHNlc3Npb24sIHBhZ2VJRCk7CisgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gd2ViUGFnZSA9IFdl
YlBhZ2VQcm94eTo6Y3JlYXRlKHBhZ2VDbGllbnQsICp0aGlzLCBwYWdlR3JvdXAsIHBhZ2VJRCk7
CiAgICAgbV9wYWdlTWFwLnNldChwYWdlSUQsIHdlYlBhZ2UuZ2V0KCkpOwogICAgIGdsb2JhbFBh
Z2VNYXAoKS5zZXQocGFnZUlELCB3ZWJQYWdlLmdldCgpKTsKICNpZiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzU0NTI3MmFj
NDYwMTNhZGU3NDRlOGE2ZjlhNDY3MGNkOTg0ZWNkYy4uYTNjOTI5YzA1N2VjOWE0NTg1MjRmMDIz
YTg0ZGExMjhjOWFlOWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBXZWJQcm9jZXNzUHJveHlfaAogI2Rl
ZmluZSBXZWJQcm9jZXNzUHJveHlfaAogCi0jaW5jbHVkZSAiQVBJU2Vzc2lvbi5oIgogI2luY2x1
ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgpAQCAtNzgsNyArNzcsNyBA
QCBwdWJsaWM6CiAgICAgV2ViQ29udGV4dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5n
ZXQoKTsgfQogCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQpOwotICAgIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGll
bnQmLCBXZWJQYWdlR3JvdXAmLCBBUEk6OlNlc3Npb24mKTsKKyAgICBQYXNzUmVmUHRyPFdlYlBh
Z2VQcm94eT4gY3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiwgV2ViUGFnZUdyb3VwJik7CiAgICAg
dm9pZCBhZGRFeGlzdGluZ1dlYlBhZ2UoV2ViUGFnZVByb3h5KiwgdWludDY0X3QgcGFnZUlEKTsK
ICAgICB2b2lkIHJlbW92ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlEKTsKICAgICBWZWN0b3I8V2Vi
UGFnZVByb3h5Kj4gcGFnZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyODhhZTM3YWEzYjQwNTA5MGU5NTg1ZDVm
OGJkMzlhMDExYWM3N2UxLi5jYjcyNzRlYTU0MTU2MTFkZWNlZDBjY2FiZTEzNjc5MzM5MzE2NDQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC03ODUsOCArNzg1LDYgQEAKIAkJNkVFODQ5QzgxMzY4RDkzOTAwMzhENDgxIC8qIFdL
SW5zcGVjdG9yUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0
ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcyOEU4NkYxMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4RTg2RUYxNzk1MTg4QzAw
ODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi87IH07CiAJCTcyOEU4NkYyMTc5NTE4OEMw
MDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xv
clBpY2tlck1hYy5tbSAqLzsgfTsKLQkJNzUzRTNFMEQxODg3Mzk4NTAwMTg4NDk2IC8qIFNlc3Np
b25UcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1M0UzRTBCMTg4NzM5NzMwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAgKi87IH07
Ci0JCTc1M0UzRTBFMTg4NzM5ODkwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzRTNFMDkxODg3Mzk0QjAw
MTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggKi87IH07CiAJCTc1NTQyMkJEMTgwNjJCQjIwMDQ2
RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdp
bkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkuY3BwICovOyB9OwogCQk3NTU0MjJDQjE4MDY1MDAyMDA0NkY2QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyLmNwcCAqLzsgfTsKQEAgLTI0NjYsOCArMjQ2NCw2IEBACiAJCTZFRTg0OUM2MTM2OEQ5
MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHBhdGggPSBtYWMvV0tJbnNw
ZWN0b3JQcml2YXRlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkVG
MTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb2xvclBpY2tl
ck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzUzRTNFMDkxODg3Mzk0QjAw
MTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlc3Npb25UcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1M0Uz
RTBCMTg4NzM5NzMwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXNzaW9uVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTU0MjJCQTE4
MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzcyOCw4ICszNzI0LDYgQEAKIAkJCQkzMzE1Mjk3NDEzMEQwQ0IyMDBFRDI0ODMgLyogU2VjdXJp
dHlPcmlnaW5EYXRhLmggKi8sCiAJCQkJNTE4RDJDQzgxMkQ1MURGQjAwM0JCOTNCIC8qIFNlc3Np
b25TdGF0ZS5jcHAgKi8sCiAJCQkJNTE4RDJDQzkxMkQ1MURGQjAwM0JCOTNCIC8qIFNlc3Npb25T
dGF0ZS5oICovLAotCQkJCTc1M0UzRTBCMTg4NzM5NzMwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tl
ci5jcHAgKi8sCi0JCQkJNzUzRTNFMDkxODg3Mzk0QjAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2Vy
LmggKi8sCiAJCQkJMUE2NDIwRTIxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5j
cHAgKi8sCiAJCQkJMUE2NDIwRTMxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5o
ICovLAogCQkJCTUxMjE3NDVFMTY0QzIwRTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5j
cHAgKi8sCkBAIC02NjUxLDcgKzY2NDUsNiBAQAogCQkJCUJDNDA3NjFDMTI0RkYwMzcwMDY4RjIw
QSAvKiBXS1VSTENGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwQzEyNEZGMDI3MDA2OEYy
MEEgLyogV0tVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyOTEyNEZGMDQw
MDA2OEYyMEEgLyogV0tVUkxSZXF1ZXN0TlMuaCBpbiBIZWFkZXJzICovLAotCQkJCTc1M0UzRTBF
MTg4NzM5ODkwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyQjEyNEZGMDQwMDA2OEYyMEEgLyogV0tV
UkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLywKQEAgLTc5MTAsNyArNzkwMyw2IEBACiAJCQkJ
QkNEMjVGMTgxMUQ2QkRFMTAwMTY5QjBFIC8qIFdLQnVuZGxlRnJhbWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM0OTg2MzAxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTAxQkQxQTEyRjEyNDM0MDBFOUYyNDggLyogV0tC
dW5kbGVJbnNwZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzUzRTNFMEQxODg3Mzk4NTAw
MTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNzA0M0NE
MTJGNzVFRTAwMDY0NzJCOSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM0QkVGRTIxMjBBMUE0QzAwRkJBMEM3IC8qIFdLQnVuZGxlTm9kZUhhbmRs
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNTI4MjExQzk0Mjg0MDA4RjMzNzUgLyogV0tC
dW5kbGVQYWdlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBk
YmYwY2YwYWU4YzVhMGJhN2JjZTk1ZDA4MDFlYzA0NjMyODQzYjg4Li4xNjUwYjU1YTBlY2QxZDU2
NTRiOTY5MDhlNWI1OTkxYmRhNWI5M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzIs
NyArMzIsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIK
ICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRl
ICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgpAQCAtMzAwLDkgKzI5OSw5IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJv
eHkqIHBhZ2VHcm91cCwgYm9vCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVGhpcyB0
ZXN0LW9ubHkgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggTmV0d29ya1Byb2Nlc3MsIDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Mjc0Pi4KICNpZiBQTEFURk9S
TShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAgIGlmIChlbmFibGVkKQot
ICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
OwogICAgIGVsc2UKLSAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Np
b25UcmFja2VyOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKICNlbmRpZgog
ICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBh
Z2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+
OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytp
dGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDQ1ZjY4ZGM1NmE0
YjFlMjZmZDM4NGZlMjIxMDgyYmM5MmZhZjdkMGUuLjU1YzFlNTA4MmM5YTBjNzVmZTdlMGYzZTE4
MTY4OTM3OWNmNDJjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAg
LTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvU3RvcmUu
aCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlci5oIgpAQCAtNzMsMTMgKzcyLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
LXN0YXRpYyB1aW50NjRfdCBsZWdhY3lTZXNzaW9uSUQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uICZzZXNzaW9uKQotewotICAgIHJldHVybiBzZXNzaW9uLmlzUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpID8gU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9u
VHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKLX0KLSNlbmRpZgotCiB2b2lkIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdl
YlBsYXRmb3JtU3RyYXRlZ2llcz4gcGxhdGZvcm1TdHJhdGVnaWVzOwpAQCAtMTQxLDcgKzEzMyw3
IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ICAgICBpZiAoV2ViUHJvY2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKICAg
ICAgICAgU3RyaW5nIHJlc3VsdDsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5u
ZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShsZWdhY3lTZXNzaW9uSUQo
c2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgICAgIGlm
ICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZXNGb3JET00oc2Vzc2lvbi5pc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSwgZmlyc3RQYXJ0eSwg
dXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9y
RE9NOjpSZXBseShyZXN1bHQpLCAwKSkKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0xNTQsNyArMTQ2LDcgQEAgdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2kKIHsKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGlmIChX
ZWJQcm9jZXNzOjpzaGFyZWQoKS51c2VzTmV0d29ya1Byb2Nlc3MoKSkgewotICAgICAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDb29raWVzRnJvbURP
TShsZWdhY3lTZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5n
KSwgMCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlNldENvb2tpZXNGcm9tRE9NKHNlc3Npb24uaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCks
IGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKSwgMCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAjZW5kaWYKQEAgLTE2Nyw3ICsxNTksNyBAQCBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLAog
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGJvb2wgcmVzdWx0OwotICAgICAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29r
aWVzRW5hYmxlZChsZWdhY3lTZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQ6OlJl
cGx5KHJlc3VsdCksIDApKQorICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdv
cmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZChzZXNzaW9uLmlzUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkOjpSZXBseShyZXN1bHQpLCAwKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBA
IC0xODEsNyArMTczLDcgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2UKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogICAgIGlmIChXZWJQcm9jZXNzOjpzaGFyZWQoKS51c2VzTmV0d29ya1By
b2Nlc3MoKSkgewogICAgICAgICBTdHJpbmcgcmVzdWx0OwotICAgICAgICBpZiAoIVdlYlByb2Nl
c3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShsZWdhY3lTZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCks
IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWU6OlJlcGx5KHJlc3VsdCksIDApKQorICAgICAgICBpZiAoIVdlYlByb2Nl
c3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShzZXNzaW9uLmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCBmaXJzdFBh
cnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlOjpSZXBseShyZXN1bHQpLCAwKSkKICAgICAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0xOTQs
NyArMTg2LDcgQEAgYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFJhd0Nvb2tpZXMoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLAogewogI2lmIEVOQUJMRShORVRXT1JL
X1BST0NFU1MpCiAgICAgaWYgKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJvY2Vz
cygpKSB7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdldFJhd0Nvb2tpZXMobGVnYWN5U2Vzc2lvbklEKHNlc3Npb24pLCBmaXJz
dFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okdl
dFJhd0Nvb2tpZXM6OlJlcGx5KHJhd0Nvb2tpZXMpLCAwKSkKKyAgICAgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R2V0UmF3Q29va2llcyhz
ZXNzaW9uLmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldFJhd0Nvb2tpZXM6OlJlcGx5
KHJhd0Nvb2tpZXMpLCAwKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpAQCAtMjA3LDcgKzE5OSw3IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9u
LCBjCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAoV2ViUHJvY2Vzczo6
c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RGVsZXRlQ29va2llKGxlZ2FjeVNlc3Npb25J
RChzZXNzaW9uKSwgdXJsLCBjb29raWVOYW1lKSwgMCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkRlbGV0ZUNvb2tpZShzZXNzaW9uLmlzUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCB1cmwsIGNvb2tpZU5hbWUpLCAwKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IDg2MjlmYThkOThiYTE5MzMxN2FiOWIxNmUxZjUxMzZmNjkwZjE1YTEu
Ljk1OTZjNTdhMTUxN2MxNjdhYTg0OGFhZWM4M2RhOGE3NTU3MjYxMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTM5LDkgKzM5LDkgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQoZnJhbWUpKTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogcmVtb3ZlIHBsYXRmb3JtLXNwZWNp
ZmljIGNvZGUgYW5kIHVzZSBTZXNzaW9uVHJhY2tlcgotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKLQorICAgIHN0YXRpYyB2
b2lkIHNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3Qg
U3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
OworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAgICAg
c3RhdGljIHZvaWQgc2V0Q29va2llQWNjZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7CiAKICAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2Fk
ZXJDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCmluZGV4IDQ3NjJkZTRkYTlmM2FjMGY2M2Q1OTcwZTcwOTY1OTEyNmU3NTM3NjMu
LmY4MDg2N2M0MGQ3ZmQ5NGMxNGRiYmZmNDIyY2NkNWFkYWQ1MmExNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMjQsOCArMjQsNiBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgi
CiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNiwyMyArMzQs
NTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+JiBwcml2YXRlU2Vzc2lvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiBzZXNzaW9uOworICAg
IHJldHVybiBzZXNzaW9uOworfQorCitzdGF0aWMgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYmFzZTsKKyAgICByZXR1cm4gYmFz
ZTsKK30KICAgICAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCit2b2lkIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJh
c2UoY29uc3QgU3RyaW5nJiBiYXNlKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZGVudGlmaWVyQmFzZSgpID0gYmFzZTsKK30KKwordm9pZCBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKLSAgICBpZiAoU2Vz
c2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgaWYgKHByaXZhdGVTZXNzaW9uKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFN0cmluZyBiYXNlOwotICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJhc2Uo
KS5pc051bGwoKSkKKyAgICBpZiAoaWRlbnRpZmllckJhc2UoKS5pc051bGwoKSkKICAgICAgICAg
YmFzZSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07CiAgICAgZWxz
ZQotICAgICAgICBiYXNlID0gU2Vzc2lvblRyYWNrZXI6OmdldElkZW50aWZpZXJCYXNlKCk7Cisg
ICAgICAgIGJhc2UgPSBpZGVudGlmaWVyQmFzZSgpOworCisgICAgcHJpdmF0ZVNlc3Npb24oKSA9
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihiYXNl
KTsKK30KIAotICAgIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkgPSBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oYmFzZSArICcuJyAr
IFN0cmluZzo6bnVtYmVyKHNlc3Npb25JRCkpOwordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKworICAgIHByaXZhdGVTZXNzaW9uKCkgPSBudWxscHRyOwogfQogCiB2b2lk
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENv
bnRleHRzKEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQpAQCAtNjIsMTAgKzg5LDggQEAg
dm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JB
bGxDb250ZXh0cyhIVFRQQ29va2llQWMKICAgICBpZiAoUmV0YWluUHRyPENGSFRUUENvb2tpZVN0
b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2UgPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2UoKSkKICAgICAgICAgV0tTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiAKLSAgICBmb3IgKGNv
bnN0IGF1dG8mIHNlc3Npb24gOiBTZXNzaW9uVHJhY2tlcjo6Z2V0U2Vzc2lvbk1hcCgpLnZhbHVl
cygpKSB7Ci0gICAgICAgIGlmIChzZXNzaW9uKQotICAgICAgICAgICAgV0tTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KHNlc3Npb24tPmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgcG9saWN5KTsKLSAg
ICB9CisgICAgaWYgKHByaXZhdGVTZXNzaW9uKCkpCisgICAgICAgIFdLU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShwcml2YXRlU2Vzc2lvbigpLT5jb29raWVTdG9yYWdlKCkuZ2V0KCksIHBvbGlj
eSk7CiB9CiAgICAgCiBib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKCkgY29uc3QKQEAgLTEwMCwxMCArMTI1LDExIEBAIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25z
dAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFt
ZSgpLT5zZXR0aW5ncygpLnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJu
ICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25JRCk7CisgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb24oKTsKIAogICAgIHJldHVy
biBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQorICAg
IAogV2ViRnJhbWVMb2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZy
YW1lTG9hZGVyQ2xpZW50KCkgY29uc3QKIHsKICAgICBpZiAoIWZyYW1lKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggNGFhOTZjYTk3
MjcyODMyNDU4YTJlNWQ1ZTlkZWFiODE1NzQwODcyMS4uZjk3NDM0YTgwZmVjMTczZWMyMWZlZjRj
N2ZmYWUyOTQ4M2I4MzI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIlNlc3Np
b25UcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMzcsMTQgKzM2LDI3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90
IHNlc3Npb25JRCkKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9u
PiYgcHJpdmF0ZVNlc3Npb24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4gc2Vzc2lvbjsKKyAgICByZXR1cm4gc2Vz
c2lvbjsKK30KKwordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAg
aWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCisgICAgaWYgKHByaXZhdGVT
ZXNzaW9uKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNlc3Npb25UcmFja2VyOjpzZXNzaW9u
KHNlc3Npb25JRCkgPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oU3RyaW5nOjpudW1iZXIoc2Vzc2lvbklEKSk7CisgICAgcHJpdmF0ZVNlc3Npb24o
KSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
OworfQorCit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgcHJp
dmF0ZVNlc3Npb24oKSA9IG51bGxwdHI7CiB9CiAKIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQpAQCAtNTgsNyArNzAs
NyBAQCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
KFdlYkZyYW1lKiBmcmFtZSkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIGlmIChmcmFtZSgpICYm
IGZyYW1lKCktPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICBy
ZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25UcmFja2VyOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbigpOwogCiAgICAg
cmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCAy
MDRjY2I5ZDdmOTJlMmZjODIwY2M4MTcwZmVhZGVmNzM2ZjZmYWI2Li4wZTAzNTUyMWNiY2Q0ODI0
OGZlZDVhNzI3NTUwNWNlYzdlMzIyMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTQyLDcgKzQyLDggQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2
NF90IHNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7
CiAKICAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQoKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMTIyYzQ3
NjNkMGZmZDRlYjgzOTMxNzkwOWYyYzBlNzU5ZTBiNzIwMi4uMjkxYWI0YTRhZjNlNmIwODU2MGI3
ZThjNjhjZmZlMTg0ZTJlOTk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKLSNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2lu
Y2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRl
ICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgpAQCAtMzM2LDcgKzMzNSw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1lCiAgICAgICAgIHNldFNob3VsZFVzZUZvbnRTbW9vdGhpbmcodHJ1
ZSk7CiAKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCi0gICAgU2Vzc2lvblRy
YWNrZXI6OnNldElkZW50aWZpZXJCYXNlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRp
Zmllcik7CisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5n
U3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5n
TmV0d29ya1Nlc3Npb24pCkBAIC00NTMsMTcgKzQ1MiwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZ1
bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCkKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBmdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24odWludDY0X3Qgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkKIHsKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8
IFVTRShTT1VQKQotICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQp
Cit2b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKICNp
ZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQotICAgIFNlc3Np
b25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpOworICAgIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAyYTg2ZjczYjA3ZjJm
Y2NkZWEwYTNhNGE4OWQ5MTE0Mzk0MDJkN2M1Li5jZDk5YmExMWY3YzZjNDI1MjgyMmQ4YWZjNTdk
Njc5OTBlMDNjYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAt
MTY1LDkgKzE2NSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJf
dCk7CiAKLSAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vz
c2lvbklEKTsKLSAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHVpbnQ2NF90
IHNlc3Npb25JRCk7Ci0KKyAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsK
KyAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgCiAgICAgdm9p
ZCBwYWdlRGlkRW50ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBhZ2VXaWxs
TGVhdmVXaW5kb3codWludDY0X3QgcGFnZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDJhMDc4ZThkNmI1OGY2MmUxZDA5
NGZhNTIxZWU4NzYzNDhkNzNjNzAuLjFjOGY4Y2JmZjIyYTdmZGZmYTMzYjA2ZGJiYjY2NmQ3YmMw
MjAwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTUxLDkgKzUxLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgU2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3JzKQog
I2VuZGlmCiAKLSAgICAvLyBMZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uIGlzIHBlciBw
cm9jZXNzLiBJbmRpdmlkdWFsIHBhZ2VzIG9yIHBhZ2UgZ3JvdXBzIG1heSB1c2UgdGhlIHByaXZh
dGUgc2Vzc2lvbiBvciB0aGUgZGVmYXVsdCBvbmUgYXMgYXBwcm9wcmlhdGUuCi0gICAgRW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCi0gICAgRGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQorICAgIC8vIFByaXZhdGUg
YnJvd3Npbmcgc2Vzc2lvbiBpcyBwZXIgcHJvY2Vzcy4gSW5kaXZpZHVhbCBwYWdlcyBvciBwYWdl
IGdyb3VwcyBtYXkgdXNlIHRoZSBwcml2YXRlIHNlc3Npb24gb3IgdGhlIGRlZmF1bHQgb25lIGFz
IGFwcHJvcHJpYXRlLgorICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQorICAgIERl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIAogICAgICMgUGx1Zy1pbnMuCiAgICAgRGlk
QWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBkb3VibGUgZXhwaXJh
dGlvblRpbWUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>