<?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>233617</bug_id>
          
          <creation_ts>2021-11-29 21:14:26 -0800</creation_ts>
          <short_desc>[WebXR] Implement ChromeClient API to allow getting explicit consent from user on session features</short_desc>
          <delta_ts>2021-11-30 12:42:25 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          <cc>dino</cc>
    
    <cc>svillar</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1818594</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2021-11-29 21:14:26 -0800</bug_when>
    <thetext>[WebXR] Implement ChromeClient API to allow getting explicit consent from user on session features</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818599</commentid>
    <comment_count>1</comment_count>
      <attachid>445380</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2021-11-29 21:43:39 -0800</bug_when>
    <thetext>Created attachment 445380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818656</commentid>
    <comment_count>2</comment_count>
      <attachid>445380</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-30 02:11:18 -0800</bug_when>
    <thetext>Comment on attachment 445380
Patch

The WebXR spec requires us to use the Permissions API https://immersive-web.github.io/webxr/#permissions. I think Maciej mentioned at some point that there was interest in implementing the Permissions API.

Here you&apos;re using an ad-hoc solution via ChromeClient that should be replaced at some point by the permissions API variant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818758</commentid>
    <comment_count>3</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2021-11-30 08:45:15 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #2)
&gt; Comment on attachment 445380 [details]
&gt; Patch
&gt; 
&gt; The WebXR spec requires us to use the Permissions API
&gt; https://immersive-web.github.io/webxr/#permissions. I think Maciej mentioned
&gt; at some point that there was interest in implementing the Permissions API.
&gt; 
&gt; Here you&apos;re using an ad-hoc solution via ChromeClient that should be
&gt; replaced at some point by the permissions API variant.

I&apos;ll add a FIXME about replacing that with the Permissions API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818830</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-30 10:49:51 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #2)
&gt; Comment on attachment 445380 [details]
&gt; Patch
&gt; 
&gt; The WebXR spec requires us to use the Permissions API
&gt; https://immersive-web.github.io/webxr/#permissions. I think Maciej mentioned
&gt; at some point that there was interest in implementing the Permissions API.
&gt; 
&gt; Here you&apos;re using an ad-hoc solution via ChromeClient that should be
&gt; replaced at some point by the permissions API variant.

Yeah, we&apos;ll use this until we implement Permissions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818841</commentid>
    <comment_count>5</comment_count>
      <attachid>445446</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2021-11-30 11:14:26 -0800</bug_when>
    <thetext>Created attachment 445446
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818883</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-30 12:41:53 -0800</bug_when>
    <thetext>Committed r286318 (244677@main): &lt;https://commits.webkit.org/244677@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445446.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818884</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-30 12:42:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/85881840&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445380</attachid>
            <date>2021-11-29 21:43:39 -0800</date>
            <delta_ts>2021-11-30 10:52:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233617-20211129214338.patch</filename>
            <type>text/plain</type>
            <size>36104</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRmOWI0NWRlOTc2ZmY4
NDRjMDc3ZjQwOTc4OTM4NzNhZDgyNWE5OC4uZmQzY2IxMTlhNDE5MDhkNzYxZGU4MjRhNTk4ZjIy
OTVkM2EwNTg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTExLTI5ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IENo
cm9tZUNsaWVudCBBUEkgdG8gYWxsb3cgZ2V0dGluZyBleHBsaWNpdCBjb25zZW50IGZyb20gdXNl
ciBvbiBzZXNzaW9uIGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM2MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBCZWZvcmUgdGhpcyBjaGFuZ2UsIHdlIGp1c3QgY29sbGVjdCB0aGUgZmVh
dHVyZXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UvbW9kZQorICAgICAgICBhbmQgcmV0dXJuIHRo
ZW0gYXMgcmVzb2x2ZWQgZmVhdHVyZXMuIFdpdGggdGhpcyBjaGFuZ2UsIHdlIGludHJvZHVjZSBh
IENocm9tZUNsaWVudAorICAgICAgICBBUEkgdGhhdCBXZWJYUlN5c3RlbTo6cmVzb2x2ZUZlYXR1
cmVQZXJtaXNzaW9ucygpIGNhbiBjYWxsIHRoYXQgYWxsb3dzIGNsaWVudHMgdG8KKyAgICAgICAg
aW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIGFzayB1c2VyIGZvciBleHBsaWNpdCBjb25zZW50IG9u
IHNlc3Npb24gZmVhdHVyZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjpyZXNvbHZlRmVhdHVyZVBlcm1p
c3Npb25zIGNvbnN0KToKKyAgICAgICAgVXBkYXRlZCB0byBjYWxsIHRoZSBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZCByZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMoKQorICAgICAg
ICB0byBnZXQgdGhlIHJlc29sdmVkIGFuZCB1c2VyIHBlcm1pdHRlZCBYUiBzZXNzaW9uIGZlYXR1
cmVzLiBUaGUgZmVhdHVyZSBsaXN0IGlzCisgICAgICAgIG5vdyByZXR1cm5lZCB2aWEgYSBDb21w
bGV0aW9uSGFuZGxlci4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjpyZXF1ZXN0U2Vz
c2lvbik6CisgICAgICAgIFVwZGF0ZWQgbm93IHRoYXQgV2ViWFJTeXN0ZW06OnJlc29sdmVGZWF0
dXJlUGVybWlzc2lvbnMoKSBpcyBubyBsb25nZXIgc3luY2hyb25vdXMuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uT25YUlNl
c3Npb25GZWF0dXJlcyk6CisgICAgICAgIERlZmF1bHQgaW1wbGVtZW50YXRpb24gcHJlc2VydmVz
IGN1cnJlbnQgYmVoYXZpb3IgYnkgcmV0dXJuaW5nIHRoZSBpbml0aWFsIGxpc3QKKyAgICAgICAg
b2YgZ3JhbnRlZCBmZWF0dXJlcyAoYmFzZWQgb24gd2hhdCB0aGUgZGV2aWNlIGNhbiBzdXBwb3J0
KS4KKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmg6CisgICAgICAgIERlZmluZSBF
bnVtVHJhaXRzIGZvciBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZS4KKwogMjAyMS0xMS0yOSAgQ2hy
aXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBVbmlmeSBz
cGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZWFlODgxMzUyODU4YTc1ZjBkOTJjMTAxNjdmNGViNzU1OWZiMGI2My4uYzMxNmFlMzRmNDdmM2Y0
ZWQ1YjU4ZmYwNjM2MjAzZWM3NDdjN2FkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAy
MS0xMS0yOSAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViWFJd
IEltcGxlbWVudCBDaHJvbWVDbGllbnQgQVBJIHRvIGFsbG93IGdldHRpbmcgZXhwbGljaXQgY29u
c2VudCBmcm9tIHVzZXIgb24gc2Vzc2lvbiBmZWF0dXJlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2V0IHVwIFdLVUlEZWxlZ2F0ZSBtZXRob2QgZm9y
IGFza2luZyB1c2VyIGZvciBwZXJtaXNzaW9uIG9uIFhSIHNlc3Npb24gZmVhdHVyZXMuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpV
SUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgRGVj
bGFyZSBhIFdLIGVudW0gdGhhdCByZXByZXNlbnRzIFhSIHNlc3Npb24gbW9kZSBhbmQgYSBXSyBm
bGFnCisgICAgICAgIHRoYXQgcmVwcmVzZW50cyBYUiBzZXNzaW9uIGZlYXR1cmVzIGZvciB1c2Ug
aW4gdGhlIG5ldyBXS1VJRGVsZWdhdGUgbWV0aG9kLgorICAgICAgICBEZWNsYXJlIGEgbmV3IFdL
VUlEZWxlZ2F0ZSBtZXRob2QgZm9yIHJlcXVlc3RpbmcgdXNlciBwZXJtaXNzaW9uIGZvcgorICAg
ICAgICBYUiBzZXNzaW9uIGZlYXR1cmVzIHRoYXQgdGFrZXMgaW4gdGhlIHNlY3VyaXR5IG9yaWdp
biwgdGhlIHNlc3Npb24gbW9kZSwKKyAgICAgICAgdGhlIGxpc3Qgb2YgZGV2aWNlIHN1cHBvcnRl
ZCBmZWF0dXJlcywgdGhlIGxpc3Qgb2YgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGNvbnNlbnQsCisg
ICAgICAgIGFuZCB0aGUgbGlzdCBvZiBmZWF0dXJlcyB0aGF0IG9wdGlvbmFsbHkgcmVxdWlyZSBj
b25zZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVs
ZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6dG9XS1hSU2Vzc2lvbk1vZGUp
OgorICAgICAgICAoV2ViS2l0Ojp0b1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzKToKKyAgICAgICAg
KFdlYktpdDo6dG9QbGF0Zm9ybVhSRmVhdHVyZXMpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKToKKyAg
ICAgICAgSWYgdGhlIFdLVUlEZWxlZ2F0ZSBtZXRob2QgZm9yIHJlcXVlc3RpbmcgcGVybWlzc2lv
biBpcyBpbXBsZW1lbnRlZCwgY2FsbCBpdCB0byAKKyAgICAgICAgZ2V0IHRoZSBsaXN0IG9mIHVz
ZXIgcGVybWl0dGVkIGZlYXR1cmVzLiBPdGhlcndpc2UsIHByZXNlcnZlIHRoZSBjdXJyZW50IGJl
aGF2aW9yCisgICAgICAgIGJ5IHJldHVybmluZyB0aGUgaW5pdGlhbGx5IGdyYW50ZWQgZmVhdHVy
ZXMgYmFzZWQgb24gZGV2aWNlIHN1cHBvcnQuCisgICAgICAgICogVUlQcm9jZXNzL1hSL1BsYXRm
b3JtWFJDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVhSQ29vcmRpbmF0
b3I6OnJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVyZXMpOgorICAgICAgICBEZWZhdWx0
IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGluaXRpYWxseSBncmFudGVkIGZlYXR1cmVzIGJh
c2VkIG9uIGRldmljZSBzdXBwb3J0LgorICAgICAgICAqIFVJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhS
U3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1YUlN5c3RlbTo6cmVxdWVzdFBl
cm1pc3Npb25PblNlc3Npb25GZWF0dXJlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1hSL1BsYXRm
b3JtWFJTeXN0ZW0uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBl
cm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvWFIvUGxh
dGZvcm1YUlN5c3RlbVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1YUlN5c3Rl
bVByb3h5OjpyZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lvbkZlYXR1cmVzKToKKyAgICAgICAgU2Vu
ZCBhIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3MgdG8gcmVxdWVzdCB1c2VyIGNvbnNlbnQgb24g
c2Vzc2lvbiBmZWF0dXJlcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0
ZW1Qcm94eS5oOgorCiAyMDIxLTExLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFdLQ29udGVudFZpZXcgc2hvdWxkIGFsbG93IC1jYXB0dXJlVGV4
dEZyb21DYW1lcmE6IHdpdGggYSBjYXJldCBzZWxlY3Rpb24gdW5sZXNzIHRoZSBzZW5kZXIgaXMg
dGhlIGNhbGxvdXQgYmFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0
ZW0uY3BwCmluZGV4IDA2YmZlYjYxNDNkYjBmODNmYWFmMTY3ZTdkNjcyY2EwMzQ1N2Q1MTQuLmYw
NGI1ZTQyZWM2Y2Q1MTM3YmIxYWY5M2MwMmE2MjExYzBlODY5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCkBAIC0zMzUsNyArMzM1LDcgQEAgc3Rk
OjpvcHRpb25hbDxXZWJYUlN5c3RlbTo6UmVzb2x2ZWRSZXF1ZXN0ZWRGZWF0dXJlcz4gV2ViWFJT
eXN0ZW06OnJlc29sdmVSZXF1ZXMKIH0KIAogLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1
Yi5pby93ZWJ4ci8jcmVxdWVzdC10aGUteHItcGVybWlzc2lvbgotc3RkOjpvcHRpb25hbDxXZWJY
UlN5c3RlbTo6RmVhdHVyZUxpc3Q+IFdlYlhSU3lzdGVtOjpyZXNvbHZlRmVhdHVyZVBlcm1pc3Np
b25zKFhSU2Vzc2lvbk1vZGUgbW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYgaW5pdCwgUGxhdGZv
cm1YUjo6RGV2aWNlKiBkZXZpY2UsIEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkg
Y29uc3QKK3ZvaWQgV2ViWFJTeXN0ZW06OnJlc29sdmVGZWF0dXJlUGVybWlzc2lvbnMoWFJTZXNz
aW9uTW9kZSBtb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0JiBpbml0LCBQbGF0Zm9ybVhSOjpEZXZp
Y2UqIGRldmljZSwgSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmVhdHVyZUxpc3Q+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBjb25zdAogewogICAgIC8vIDEuIFNldCBzdGF0dXMncyBncmFudGVkIHRvIGFuIGVt
cHR5IEZyb3plbkFycmF5LgogICAgIC8vIDIuIExldCByZXF1aXJlZEZlYXR1cmVzIGJlIGRlc2Ny
aXB0b3IncyByZXF1aXJlZEZlYXR1cmVzLgpAQCAtMzQ4LDggKzM0OCwxMCBAQCBzdGQ6Om9wdGlv
bmFsPFdlYlhSU3lzdGVtOjpGZWF0dXJlTGlzdD4gV2ViWFJTeXN0ZW06OnJlc29sdmVGZWF0dXJl
UGVybWlzc2lvbnMoWAogICAgIC8vIDYuIElmIHJlc3VsdCBpcyBudWxsLCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKICAgICAvLyAgNi4xLiBTZXQgc3RhdHVzJ3Mgc3RhdGUgdG8gImRlbmllZCIu
CiAgICAgLy8gIDYuMi4gQWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFyZXNvbHZlZEZlYXR1
cmVzKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghcmVzb2x2ZWRGZWF0
dXJlcykgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCiAgICAgLy8gNy4gTGV0IChjb25zZW50UmVxdWlyZWQsIGNvbnNl
bnRPcHRpb25hbCwgZ3JhbnRlZCkgYmUgdGhlIGZpZWxkcyBvZiByZXN1bHQuCiAgICAgLy8gOC4g
VGhlIHVzZXIgYWdlbnQgTUFZIGF0IHRoaXMgcG9pbnQgYXNrIHRoZSB1c2VyJ3MgcGVybWlzc2lv
biBmb3IgdGhlIGNhbGxpbmcgYWxnb3JpdGhtIHRvIHVzZSBhbnkgb2YgdGhlIGZlYXR1cmVzCkBA
IC0zNjYsMTIgKzM2OCwyNSBAQCBzdGQ6Om9wdGlvbmFsPFdlYlhSU3lzdGVtOjpGZWF0dXJlTGlz
dD4gV2ViWFJTeXN0ZW06OnJlc29sdmVGZWF0dXJlUGVybWlzc2lvbnMoWAogICAgIC8vICAgICAg
ICBvZiB0aGVzZSBwcm9tcHRzIHNob3VsZCBiZSBpbmNsdWRlZCB3aGVuIGRldGVybWluaW5nIGlm
IHRoZXJlIGlzIGEgY2xlYXIgc2lnbmFsIG9mIHVzZXIgaW50ZW50IHRvIGVuYWJsZSBmZWF0dXJl
LgogICAgIC8vICAxMC4yLiBJZiBhIGNsZWFyIHNpZ25hbCBvZiB1c2VyIGludGVudCB0byBlbmFi
bGUgZmVhdHVyZSBoYXMgbm90IGJlZW4gZGV0ZXJtaW5lZCwgY29udGludWUgdG8gdGhlIG5leHQg
ZW50cnkuCiAgICAgLy8gIDEwLjMuIElmIGZlYXR1cmUgaXMgbm90IGluIGdyYW50ZWQsIGFwcGVu
ZCBmZWF0dXJlIHRvIGdyYW50ZWQuCi0gICAgLy8gMTEuIFNldCBzdGF0dXMncyBncmFudGVkIHRv
IGdyYW50ZWQuCi0gICAgLy8gMTIuIFNldCBkZXZpY2UncyBsaXN0IG9mIGVuYWJsZWQgZmVhdHVy
ZXMgZm9yIG1vZGUgdG8gZ3JhbnRlZC4KLSAgICAvLyAxMy4gU2V0IHN0YXR1cydzIHN0YXRlIHRv
ICJncmFudGVkIi4KLSAgICBkZXZpY2UtPnNldEVuYWJsZWRGZWF0dXJlcyhtb2RlLCByZXNvbHZl
ZEZlYXR1cmVzLT5ncmFudGVkKTsKKyAgICBhdXRvIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1l
bnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9j
dW1lbnQtPnBhZ2UoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGRvY3VtZW50LT5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLnJlcXVlc3RQZXJtaXNzaW9uT25YUlNlc3Npb25GZWF0dXJlcyhkb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCksIG1vZGUsIHJlc29sdmVkRmVhdHVyZXMtPmdy
YW50ZWQsIHJlc29sdmVkRmVhdHVyZXMtPmNvbnNlbnRSZXF1aXJlZCwgcmVzb2x2ZWRGZWF0dXJl
cy0+Y29uc2VudE9wdGlvbmFsLCBbZGV2aWNlLCBtb2RlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtWFI6OkRldmlj
ZTo6RmVhdHVyZUxpc3Q+JiYgdXNlckdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoIXVz
ZXJHcmFudGVkKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICByZXR1cm4gcmVzb2x2ZWRG
ZWF0dXJlcy0+cmVxdWVzdGVkOworICAgICAgICAvLyAxMS4gU2V0IHN0YXR1cydzIGdyYW50ZWQg
dG8gZ3JhbnRlZC4KKyAgICAgICAgLy8gMTIuIFNldCBkZXZpY2UncyBsaXN0IG9mIGVuYWJsZWQg
ZmVhdHVyZXMgZm9yIG1vZGUgdG8gZ3JhbnRlZC4KKyAgICAgICAgLy8gMTMuIFNldCBzdGF0dXMn
cyBzdGF0ZSB0byAiZ3JhbnRlZCIuCisgICAgICAgIGRldmljZS0+c2V0RW5hYmxlZEZlYXR1cmVz
KG1vZGUsICp1c2VyR3JhbnRlZCk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKnVzZXJH
cmFudGVkKTsKKyAgICB9KTsKIH0KIAogCkBAIC00MjYsMzcgKzQ0MSw0MCBAQCB2b2lkIFdlYlhS
U3lzdGVtOjpyZXF1ZXN0U2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFhSU2Vzc2lvbk1vZGUg
bW9kZSwgY29uc3QgWAogICAgICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHJl
dHVybjsKIAorICAgICAgICByZWplY3RQcm9taXNlV2l0aE5vdFN1cHBvcnRlZEVycm9yLnJlbGVh
c2UoKTsKKwogICAgICAgICAvLyBXZWJLaXQgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhl
IFBlcm1pc3Npb25zIEFQSS4gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Blcm1pc3Npb25zLwogICAg
ICAgICAvLyBIb3dldmVyIHdlIGRvIGltcGxlbWVudCBoZXJlIHRoZSBwZXJtaXNzaW9uIHJlcXVl
c3QgYWxnb3JpdGhtIHdpdGhvdXQgdGhlCiAgICAgICAgIC8vIFBlcm1pc3Npb25zIEFQSSBiaXRz
IGFzIGl0IGhhbmRsZXMsIGFtb25nIG90aGVycywgdGhlIHNlc3Npb24gZmVhdHVyZXMgcGFyc2lu
Zy4gV2UgYWxzbwogICAgICAgICAvLyBkbyBpdCBoZXJlIGJlZm9yZSBjcmVhdGluZyB0aGUgc2Vz
c2lvbiBhcyB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGl0IG9uIGFkdmFuY2UuCi0gICAgICAgIC8v
IEZJWE1FOiB3ZSBqdXN0IHBlcmZvcm0gYmFzaWMgY2hlY2tzIHdpdGhvdXQgYXNraW5nIGFueSBw
ZXJtaXNzaW9uIHRvIHRoZSB1c2VyIHNvIGZhci4gTWF5YmUgd2Ugc2hvdWxkIGltcGxlbWVudAot
ICAgICAgICAvLyBhIG1lY2hhbmlzbSBzaW1pbGFyIHRvIHdoYXQgb3RoZXJzIGRvIGludm9sdmlu
ZyBwYXNzaW5nIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vzcy4KIAogICAgICAgICAvLyA1LjQu
NCBMZXQgZGVzY3JpcHRvciBiZSBhbiBYUlBlcm1pc3Npb25EZXNjcmlwdG9yIGluaXRpYWxpemVk
IHdpdGggc2Vzc2lvbiwgcmVxdWlyZWRGZWF0dXJlcywgYW5kIG9wdGlvbmFsRmVhdHVyZXMKICAg
ICAgICAgLy8gNS40LjUgTGV0IHN0YXR1cyBiZSBhbiBYUlBlcm1pc3Npb25TdGF0dXMsIGluaXRp
YWxseSBudWxsCiAgICAgICAgIC8vIDUuNC42IFJlcXVlc3QgdGhlIHhyIHBlcm1pc3Npb24gd2l0
aCBkZXNjcmlwdG9yIGFuZCBzdGF0dXMuCiAgICAgICAgIC8vIDUuNC43IElmIHN0YXR1cycgc3Rh
dGUgaXMgImRlbmllZCIgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6IChzYW1lIGFzIGFib3ZlIGlu
IDUuNC4xKQotICAgICAgICBhdXRvIHJlcXVlc3RlZEZlYXR1cmVzID0gcmVzb2x2ZUZlYXR1cmVQ
ZXJtaXNzaW9ucyhtb2RlLCBpbml0LCBkZXZpY2UsICpnbG9iYWxPYmplY3QpOwotICAgICAgICBp
ZiAoIXJlcXVlc3RlZEZlYXR1cmVzKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByZXNv
bHZlRmVhdHVyZVBlcm1pc3Npb25zKG1vZGUsIGluaXQsIGRldmljZSwgKmdsb2JhbE9iamVjdCwg
W3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb3RlY3RlZERvY3VtZW50LCBk
ZXZpY2UsIGltbWVyc2l2ZSwgbW9kZSwgcHJvbWlzZV0oc3RkOjpvcHRpb25hbDxGZWF0dXJlTGlz
dD4mJiByZXF1ZXN0ZWRGZWF0dXJlcykgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICFyZXF1ZXN0ZWRGZWF0dXJlcykgeworICAgICAgICAgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgICAgICAgICAgICAgIG1f
cGVuZGluZ0ltbWVyc2l2ZVNlc3Npb24gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CiAKLSAgICAgICAgLy8gNS40LjIgTGV0IHNlc3Npb24gYmUgYSBuZXcg
WFJTZXNzaW9uIG9iamVjdC4KLSAgICAgICAgLy8gNS40LjMgSW5pdGlhbGl6ZSB0aGUgc2Vzc2lv
biB3aXRoIHNlc3Npb24sIG1vZGUsIGFuZCBkZXZpY2UuCi0gICAgICAgIGF1dG8gc2Vzc2lvbiA9
IFdlYlhSU2Vzc2lvbjo6Y3JlYXRlKHByb3RlY3RlZERvY3VtZW50LmdldCgpLCAqdGhpcywgbW9k
ZSwgKmRldmljZSwgV1RGTW92ZSgqcmVxdWVzdGVkRmVhdHVyZXMpKTsKKyAgICAgICAgICAgIC8v
IDUuNC4yIExldCBzZXNzaW9uIGJlIGEgbmV3IFhSU2Vzc2lvbiBvYmplY3QuCisgICAgICAgICAg
ICAvLyA1LjQuMyBJbml0aWFsaXplIHRoZSBzZXNzaW9uIHdpdGggc2Vzc2lvbiwgbW9kZSwgYW5k
IGRldmljZS4KKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbiA9IFdlYlhSU2Vzc2lvbjo6Y3JlYXRl
KHByb3RlY3RlZERvY3VtZW50LmdldCgpLCAqdGhpcywgbW9kZSwgKmRldmljZSwgV1RGTW92ZSgq
cmVxdWVzdGVkRmVhdHVyZXMpKTsKIAotICAgICAgICAvLyA1LjQuOCBQb3RlbnRpYWxseSBzZXQg
dGhlIGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBhcyBmb2xsb3dzOgotICAgICAgICBpZiAoaW1t
ZXJzaXZlKSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZUltbWVyc2l2ZVNlc3Npb24gPSBzZXNzaW9u
LmNvcHlSZWYoKTsKLSAgICAgICAgICAgIG1fcGVuZGluZ0ltbWVyc2l2ZVNlc3Npb24gPSBmYWxz
ZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2lubGluZVNlc3Npb25zLmFkZChzZXNz
aW9uLmNvcHlSZWYoKSk7CisgICAgICAgICAgICAvLyA1LjQuOCBQb3RlbnRpYWxseSBzZXQgdGhl
IGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBhcyBmb2xsb3dzOgorICAgICAgICAgICAgaWYgKGlt
bWVyc2l2ZSkgeworICAgICAgICAgICAgICAgIG1fYWN0aXZlSW1tZXJzaXZlU2Vzc2lvbiA9IHNl
c3Npb24uY29weVJlZigpOworICAgICAgICAgICAgICAgIG1fcGVuZGluZ0ltbWVyc2l2ZVNlc3Np
b24gPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIG1faW5saW5l
U2Vzc2lvbnMuYWRkKHNlc3Npb24uY29weVJlZigpKTsKIAotICAgICAgICAvLyA1LjQuOSBSZXNv
bHZlIHByb21pc2Ugd2l0aCBzZXNzaW9uLgotICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RGTW92
ZShzZXNzaW9uKSk7Ci0gICAgICAgIHJlamVjdFByb21pc2VXaXRoTm90U3VwcG9ydGVkRXJyb3Iu
cmVsZWFzZSgpOworICAgICAgICAgICAgLy8gNS40LjkgUmVzb2x2ZSBwcm9taXNlIHdpdGggc2Vz
c2lvbi4KKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShXVEZNb3ZlKHNlc3Npb24pKTsKIAot
ICAgICAgICAvLyA1LjQuMTAgaXMgaGFuZGxlZCBpbiBXZWJYUlNlc3Npb246OnNlc3Npb25EaWRJ
bml0aWFsaXplSW5wdXRTb3VyY2VzLgorICAgICAgICAgICAgLy8gNS40LjEwIGlzIGhhbmRsZWQg
aW4gV2ViWFJTZXNzaW9uOjpzZXNzaW9uRGlkSW5pdGlhbGl6ZUlucHV0U291cmNlcy4KKyAgICAg
ICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
eXN0ZW0uaAppbmRleCBmMDQzMzU5YjA5Mzc1MWNlN2I5MTUxMjE1YmY0MmY4MzViNDFhNzVmLi44
YmVhYjRhODg2ODgyMDVjMDdhOGZmN2M1MjQ5NDY3ZWNmNmUzNWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0cnVjdCBSZXNvbHZlZFJlcXVlc3RlZEZlYXR1cmVzOwogICAgIHN0ZDo6b3B0
aW9uYWw8UmVzb2x2ZWRSZXF1ZXN0ZWRGZWF0dXJlcz4gcmVzb2x2ZVJlcXVlc3RlZEZlYXR1cmVz
KFhSU2Vzc2lvbk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBQbGF0Zm9ybVhSOjpEZXZpY2Uq
LCBKU0M6OkpTR2xvYmFsT2JqZWN0JikgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25hbDxGZWF0dXJl
TGlzdD4gcmVzb2x2ZUZlYXR1cmVQZXJtaXNzaW9ucyhYUlNlc3Npb25Nb2RlLCBjb25zdCBYUlNl
c3Npb25Jbml0JiwgUGxhdGZvcm1YUjo6RGV2aWNlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCYpIGNv
bnN0OworICAgIHZvaWQgcmVzb2x2ZUZlYXR1cmVQZXJtaXNzaW9ucyhYUlNlc3Npb25Nb2RlLCBj
b25zdCBYUlNlc3Npb25Jbml0JiwgUGxhdGZvcm1YUjo6RGV2aWNlKiwgSlNDOjpKU0dsb2JhbE9i
amVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGZWF0dXJlTGlzdD4m
Jik+JiYpIGNvbnN0OwogCiAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93
ZWJ4ci8jZGVmYXVsdC1pbmxpbmUteHItZGV2aWNlCiAgICAgY2xhc3MgRHVtbXlJbmxpbmVEZXZp
Y2UgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1YUjo6RGV2aWNlLCBwcml2YXRlIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDEzNTll
OTlmZjE1MTA5NTVjOTY0NjUyMjI3OGVmNzE0YzI0YWNhYTguLjM1ZDI5MGEyODE0MmUyNzBiODE0
N2E2NTE0ODI2OGI0ODVlNmM1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
MTM1LDYgKzEzNSw3IEBAIHN0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IEdyYXBoaWNzRGV2aWNlQWRhcHRlcjsK
IHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOworc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogc3RydWN0IFRl
eHRJbmRpY2F0b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwpAQCAtNjAzLDYgKzYw
NCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShXRUJYUikKICAgICB2aXJ0dWFsIHZvaWQgZW51
bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUGxh
dGZvcm1YUjo6SW5zdGFuY2U6OkRldmljZUxpc3QmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBQ
bGF0Zm9ybVhSOjpJbnN0YW5jZTo6c2luZ2xldG9uKCkuZW51bWVyYXRlSW1tZXJzaXZlWFJEZXZp
Y2VzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiwgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVh
dHVyZUxpc3QmIGdyYW50ZWQsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Qm
IC8qIGNvbnNlbnRSZXF1aXJlZCAqLywgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJl
TGlzdCYgLyogY29uc2VudE9wdGlvbmFsICovLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0KICNlbmRpZgogCiAjaWYg
RU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3hyL1BsYXRmb3JtWFIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3Jt
WFIuaAppbmRleCA1MGZkNDViMDU5YTBhODEzMTE1ODEwZmRlNmMwMGMxYjIxYjJkNTY0Li5kNWYw
ZGRkY2QwNzc4YjhkNDlkNjFjY2U3NGUyYjJjOTc0NTFiODIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvUGxhdGZvcm1YUi5oCkBAIC02NTAsNiArNjUwLDE1IEBAIGlubGluZSBEZXZpY2U6
OkZyYW1lRGF0YSBEZXZpY2U6OkZyYW1lRGF0YTo6Y29weSgpIGNvbnN0CiAKIG5hbWVzcGFjZSBX
VEYgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFBsYXRmb3JtWFI6OlNlc3Npb25N
b2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgUGxhdGZvcm1Y
Ujo6U2Vzc2lvbk1vZGUsCisgICAgICAgIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlOjpJbmxpbmUs
CisgICAgICAgIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVWciwKKyAgICAgICAg
UGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU6OkltbWVyc2l2ZUFyCisgICAgPjsKK307CisKIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPiB7
CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgUGxhdGZvcm1YUjo6UmVm
ZXJlbmNlU3BhY2VUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggYzVmNWY1MDk3M2M3YjQyNDkwYzVkZTRiYTVhOGExMTBhYTc1MjM5OS4uNzZjMmRlYmFm
ZDkxZDE2ZjhkNzcwODkzZjQ4ODk2OTAwZGZlMjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNzAsNiArMjcwLDggQEAgZGVmIHR5cGVzX3RoYXRfY2Fu
bm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ0lQQzo6U2VtYXBob3JlJywKICAg
ICAgICAgJ01hY2hTZW5kUmlnaHQnLAogICAgICAgICAnTWVkaWFUaW1lJywKKyAgICAgICAgJ1Bs
YXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZScsCisgICAgICAgICdQbGF0Zm9ybVhSOjpTZXNz
aW9uTW9kZScsCiAgICAgICAgICdTdHJpbmcnLAogICAgICAgICAnV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlJywKQEAgLTczOSw2ICs3NDEsOCBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1BBTDo6V2ViR1BVOjpWZXJ0ZXhGb3JtYXQnOiBbJzxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVZlcnRleEZvcm1hdC5oPiddLAogICAgICAgICAnUEFMOjpXZWJHUFU6OlZlcnRleFN0
ZXBNb2RlJzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGVwTW9kZS5oPidd
LAogICAgICAgICAnUGxhdGZvcm1YUjo6RGV2aWNlOjpGcmFtZURhdGEnOiBbJzxXZWJDb3JlL1Bs
YXRmb3JtWFIuaD4nXSwKKyAgICAgICAgJ1BsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZSc6
IFsnPFdlYkNvcmUvUGxhdGZvcm1YUi5oPiddLAorICAgICAgICAnUGxhdGZvcm1YUjo6U2Vzc2lv
bk1vZGUnOiBbJzxXZWJDb3JlL1BsYXRmb3JtWFIuaD4nXSwKICAgICAgICAgJ1NlY29uZHMnOiBb
Jzx3dGYvU2Vjb25kcy5oPiddLAogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+J10sCiAgICAgICAgICdVUkwnOiBbJzx3dGYvVVJMSGFzaC5oPiddLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBkZDA4NGZmZTBiNjA3ZjEzNDM4
N2U4MDM2MzdlNzJmYzE3N2JhYzFlLi42NjJhOGQ1MzQ4MGMyMjhmYzk4NTgyOWMxZjg3MWNjNWQw
M2YyOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAt
NDcsNiArNDcsMTAgQEAgT0JKQ19DTEFTUyBVSVZpZXdDb250cm9sbGVyOwogI2luY2x1ZGUgIldl
YkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQlhSKSAmJiBQ
TEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtWFIuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGNsYXNzIFJl
c291cmNlUmVxdWVzdDsKQEAgLTIxMCw2ICsyMTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25C
eURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsgfQogCiAjaWYgRU5BQkxFKFdFQlhSKSAmJiBQTEFURk9STShDT0NPQSkKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgUGxh
dGZvcm1YUjo6U2Vzc2lvbk1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxp
c3QmIGdyYW50ZWQsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGNv
bnNlbnRSZXF1aXJlZCAqLywgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYg
LyogY29uc2VudE9wdGlvbmFsICovLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0gICAgCiAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0WFJTZXNzaW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXRhaW5QdHI8aWQ+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFu
ZGxlcihuaWwpOyB9CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA0NDM3OGY2NjI2NmRk
YzFhZjU0MWI2ZDliZDc4MmUwYzAyMDI5OWFhLi4zZjM4MzA5MWM5NmZkNzNkODdmZDMxY2Q2NTEy
MjA4OWFkYWJiMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTg4LDYgKzg4LDIxIEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0ZvY3VzRGlyZWN0aW9uKSB7CiAgICAgX1dLRm9jdXNEaXJl
Y3Rpb25Gb3J3YXJkLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTIu
MikpOwogCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tYUlNlc3Npb25Nb2RlKSB7Cisg
ICAgX1dLWFJTZXNzaW9uTW9kZUlubGluZSwKKyAgICBfV0tYUlNlc3Npb25Nb2RlSW1tZXJzaXZl
VnIsCisgICAgX1dLWFJTZXNzaW9uTW9kZUltbWVyc2l2ZUFyLAorfTsKKwordHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFncykgeworICAgIF9XS1hS
U2Vzc2lvbkZlYXR1cmVGbGFnc05vbmUgPSAwLAorICAgIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFn
c1JlZmVyZW5jZVNwYWNlVHlwZVZpZXdlciA9IDEgPDwgMCwKKyAgICBfV0tYUlNlc3Npb25GZWF0
dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVMb2NhbCA9IDEgPDwgMSwKKyAgICBfV0tYUlNlc3Np
b25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVMb2NhbEZsb29yID0gMSA8PCAyLAorICAg
IF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNwYWNlVHlwZUJvdW5kZWRGbG9vciA9
IDEgPDwgMywKKyAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVV
bmJvdW5kZWQgPSAxIDw8IDQsCit9OworCiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlUHJpdmF0ZSA8
V0tVSURlbGVnYXRlPgogCiAjaWZkZWYgRk9VTkRBVElPTl9IQVNfRElSRUNUSU9OQUxfR0VPTUVU
UlkKQEAgLTE1OCw2ICsxNzMsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2Vi
Vmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX3dlYlZp
ZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RQZXJtaXNzaW9uRm9yWFJTZXNzaW9uT3Jp
Z2luOihOU1N0cmluZyAqKW9yaWdpblN0cmluZyBtb2RlOihfV0tYUlNlc3Npb25Nb2RlKW1vZGUg
Z3JhbnRlZEZlYXR1cmVzOihfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpZ3JhbnRlZEZlYXR1cmVz
IGNvbnNlbnRSZXF1aXJlZEZlYXR1cmVzOihfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpY29uc2Vu
dFJlcXVpcmVkRmVhdHVyZXMgY29uc2VudE9wdGlvbmFsRmVhdHVyZXM6KF9XS1hSU2Vzc2lvbkZl
YXR1cmVGbGFncyljb25zZW50T3B0aW9uYWxGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRYUlNlc3Npb25XaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2lu
OihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCAy
NjY2YTkxYjIyODU0M2JhODlkYmIzMWFmMDJjNDcxZGI1NDQ3ZDQ3Li5mZjIyNzU3NTAzNzY4NDFi
YzVmOWEzNmYzMzFkOGE0NzgyYjRmOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5hbDsK
IAogI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHZvaWQgcmVx
dWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlLCBjb25z
dCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBncmFudGVkICovLCBjb25zdCBQ
bGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBjb25zZW50UmVxdWlyZWQgKi8sIGNv
bnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGNvbnNlbnRPcHRpb25hbCAq
LywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtWFI6OkRldmlj
ZTo6RmVhdHVyZUxpc3Q+JiYpPiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCBzdGFydFhSU2Vzc2lv
bihXZWJQYWdlUHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxpZD4pPiYm
KSBmaW5hbDsKICNlbmRpZgogCkBAIC0yNjUsNiArMjY2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
Ym9vbCB3ZWJWaWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbiA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluIDogMTsKICNpZiBF
TkFCTEUoV0VCWFIpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBib29sIHdlYlZpZXdSZXF1
ZXN0UGVybWlzc2lvbkZvclhSU2Vzc2lvbk9yaWdpbk1vZGVBbmRGZWF0dXJlc1dpdGhDb21wbGV0
aW9uSGFuZGxlcjogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3U3RhcnRYUlNlc3Npb25XaXRoQ29t
cGxldGlvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggZmQ5
ZDRhOGIyOWUzOGUwYzZjNWUzMWZlYzJhM2ZmMmFkNjQ5MmM3MC4uMTMxNjA3ODI2NjcyYWFhOTgy
YmJlNDE4ZTVkNTI5NTgyYzJjMmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCkBAIC0xOTMsNiArMTkzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXRE
ZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4gPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93
c2VyRG9tYWluOildOwogCiAjaWYgRU5BQkxFKFdFQlhSKSAmJiBQTEFURk9STShDT0NPQSkKKyAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdFBlcm1pc3Npb25Gb3JYUlNlc3Npb25P
cmlnaW5Nb2RlQW5kRmVhdHVyZXNXaXRoQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0UGVybWlzc2lvbkZvclhS
U2Vzc2lvbk9yaWdpbjptb2RlOmdyYW50ZWRGZWF0dXJlczpjb25zZW50UmVxdWlyZWRGZWF0dXJl
czpjb25zZW50T3B0aW9uYWxGZWF0dXJlczpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3U3RhcnRYUlNlc3Npb25XaXRoQ29tcGxldGlvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpzdGFydFhS
U2Vzc2lvbldpdGhDb21wbGV0aW9uSGFuZGxlcjopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3Jp
Z2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdp
bjpkZWNpc2lvbkhhbmRsZXI6KV07CkBAIC0xNjQwLDYgKzE2NDEsODMgQEAgdm9pZCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6ZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVBy
b3h5JikKIH0KIAogI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMg
X1dLWFJTZXNzaW9uTW9kZSB0b1dLWFJTZXNzaW9uTW9kZShQbGF0Zm9ybVhSOjpTZXNzaW9uTW9k
ZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgUGxhdGZvcm1YUjo6U2Vz
c2lvbk1vZGU6OklubGluZToKKyAgICAgICAgcmV0dXJuIF9XS1hSU2Vzc2lvbk1vZGVJbmxpbmU7
CisgICAgY2FzZSBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZTo6SW1tZXJzaXZlVnI6CisgICAgICAg
IHJldHVybiBfV0tYUlNlc3Npb25Nb2RlSW1tZXJzaXZlVnI7CisgICAgY2FzZSBQbGF0Zm9ybVhS
OjpTZXNzaW9uTW9kZTo6SW1tZXJzaXZlQXI6CisgICAgICAgIHJldHVybiBfV0tYUlNlc3Npb25N
b2RlSW1tZXJzaXZlQXI7CisgICAgfQorfQorCitzdGF0aWMgX1dLWFJTZXNzaW9uRmVhdHVyZUZs
YWdzIHRvV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MoUGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VU
eXBlIGZlYXR1cmUpCit7CisgICAgc3dpdGNoIChmZWF0dXJlKSB7CisgICAgY2FzZSBQbGF0Zm9y
bVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU6OlZpZXdlcjoKKyAgICAgICAgcmV0dXJuIF9XS1hSU2Vz
c2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNwYWNlVHlwZVZpZXdlcjsKKyAgICBjYXNlIFBsYXRm
b3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWw6CisgICAgICAgIHJldHVybiBfV0tYUlNl
c3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVMb2NhbDsKKyAgICBjYXNlIFBsYXRm
b3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWxGbG9vcjoKKyAgICAgICAgcmV0dXJuIF9X
S1hSU2Vzc2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNwYWNlVHlwZUxvY2FsRmxvb3I7CisgICAg
Y2FzZSBQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU6OkJvdW5kZWRGbG9vcjoKKyAgICAg
ICAgcmV0dXJuIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNwYWNlVHlwZUJvdW5k
ZWRGbG9vcjsKKyAgICBjYXNlIFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZTo6VW5ib3Vu
ZGVkOgorICAgICAgICByZXR1cm4gX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzUmVmZXJlbmNlU3Bh
Y2VUeXBlVW5ib3VuZGVkOworICAgIH0KK30KKworc3RhdGljIF9XS1hSU2Vzc2lvbkZlYXR1cmVG
bGFncyB0b1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzKGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6
RmVhdHVyZUxpc3QmIGZlYXR1cmVzKQoreworICAgIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFncyBm
bGFncyA9IF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFnc05vbmU7CisgICAgZm9yIChhdXRvIGZlYXR1
cmUgOiBmZWF0dXJlcykKKyAgICAgICAgZmxhZ3MgfD0gdG9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFn
cyhmZWF0dXJlKTsKKyAgICByZXR1cm4gZmxhZ3M7Cit9CisKK3N0YXRpYyBzdGQ6Om9wdGlvbmFs
PFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Q+IHRvUGxhdGZvcm1YUkZlYXR1cmVzKF9X
S1hSU2Vzc2lvbkZlYXR1cmVGbGFncyBmZWF0dXJlRmxhZ3MpCit7CisgICAgaWYgKGZlYXR1cmVG
bGFncyA9PSBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NOb25lKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCBmZWF0dXJl
czsKKyAgICBpZiAoZmVhdHVyZUZsYWdzICYgX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzUmVmZXJl
bmNlU3BhY2VUeXBlVmlld2VyKQorICAgICAgICBmZWF0dXJlcy5hcHBlbmQoUGxhdGZvcm1YUjo6
UmVmZXJlbmNlU3BhY2VUeXBlOjpWaWV3ZXIpOworICAgIGlmIChmZWF0dXJlRmxhZ3MgJiBfV0tY
UlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVMb2NhbCkKKyAgICAgICAgZmVh
dHVyZXMuYXBwZW5kKFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWwpOworICAg
IGlmIChmZWF0dXJlRmxhZ3MgJiBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFj
ZVR5cGVMb2NhbEZsb29yKQorICAgICAgICBmZWF0dXJlcy5hcHBlbmQoUGxhdGZvcm1YUjo6UmVm
ZXJlbmNlU3BhY2VUeXBlOjpMb2NhbEZsb29yKTsKKyAgICBpZiAoZmVhdHVyZUZsYWdzICYgX1dL
WFJTZXNzaW9uRmVhdHVyZUZsYWdzUmVmZXJlbmNlU3BhY2VUeXBlQm91bmRlZEZsb29yKQorICAg
ICAgICBmZWF0dXJlcy5hcHBlbmQoUGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlOjpCb3Vu
ZGVkRmxvb3IpOworICAgIGlmIChmZWF0dXJlRmxhZ3MgJiBfV0tYUlNlc3Npb25GZWF0dXJlRmxh
Z3NSZWZlcmVuY2VTcGFjZVR5cGVVbmJvdW5kZWQpCisgICAgICAgIGZlYXR1cmVzLmFwcGVuZChQ
bGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU6OlVuYm91bmRlZCk7CisgICAgcmV0dXJuIGZl
YXR1cmVzOworfQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bk9uWFJTZXNzaW9uRmVhdHVyZXMoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEsIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2Rl
IG1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIGdyYW50ZWQsIGNv
bnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIGNvbnNlbnRSZXF1aXJlZCwgY29u
c3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgY29uc2VudE9wdGlvbmFsLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0
dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdh
dGUgfHwgIW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RQZXJt
aXNzaW9uRm9yWFJTZXNzaW9uT3JpZ2luTW9kZUFuZEZlYXR1cmVzV2l0aENvbXBsZXRpb25IYW5k
bGVyKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byBkZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpj
cmVhdGUoZGVsZWdhdGUsIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0UGVybWlzc2lvbkZvclhS
U2Vzc2lvbk9yaWdpbjptb2RlOmdyYW50ZWRGZWF0dXJlczpjb25zZW50UmVxdWlyZWRGZWF0dXJl
czpjb25zZW50T3B0aW9uYWxGZWF0dXJlczpjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICBbZGVs
ZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcmVxdWVz
dFBlcm1pc3Npb25Gb3JYUlNlc3Npb25PcmlnaW46c2VjdXJpdHlPcmlnaW5EYXRhLnRvU3RyaW5n
KCkgbW9kZTp0b1dLWFJTZXNzaW9uTW9kZShtb2RlKSBncmFudGVkRmVhdHVyZXM6dG9XS1hSU2Vz
c2lvbkZlYXR1cmVGbGFncyhncmFudGVkKSBjb25zZW50UmVxdWlyZWRGZWF0dXJlczp0b1dLWFJT
ZXNzaW9uRmVhdHVyZUZsYWdzKGNvbnNlbnRSZXF1aXJlZCkgY29uc2VudE9wdGlvbmFsRmVhdHVy
ZXM6dG9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFncyhjb25zZW50T3B0aW9uYWwpIGNvbXBsZXRpb25I
YW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChfV0tYUlNlc3Npb25GZWF0
dXJlRmxhZ3MgdXNlckdyYW50ZWRGZWF0dXJlcykgbXV0YWJsZSB7CisgICAgICAgIGlmIChjaGVj
a2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHRvUGxhdGZvcm1YUkZlYXR1cmVzKHVzZXJHcmFudGVkRmVhdHVy
ZXMpKTsKKyAgICB9KS5nZXQoKV07Cit9CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnN0
YXJ0WFJTZXNzaW9uKFdlYlBhZ2VQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmV0YWlu
UHRyPGlkPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUg
fHwgIW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1N0YXJ0WFJTZXNzaW9u
V2l0aENvbXBsZXRpb25IYW5kbGVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9YUi9QbGF0Zm9ybVhSQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1hSL1BsYXRmb3JtWFJDb29yZGluYXRvci5oCmluZGV4IDAzMTYxMThmY2Y2ZjcxZTQ1ZDlkYzVl
ZDQ2NmFjNzQ4NzA3YTNjYzAuLjMyMTliMDhiYzYzMTQ3YjUwZGRjMzI0NGYxNzhmMGYxYmZlYjc3
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJDb29y
ZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJDb29y
ZGluYXRvci5oCkBAIC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Y
Ui5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citz
dHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgV2ViUGFnZVByb3h5OwpAQCAtNDYsNiArNTAsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRGV2
aWNlSW5mb0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPFhSRGV2aWNlSW5m
bz4pPjsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJpbWFyeURldmljZUluZm8oRGV2aWNlSW5mb0Nh
bGxiYWNrJiYpID0gMDsKIAorICAgIHVzaW5nIEZlYXR1cmVMaXN0Q2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJl
TGlzdD4mJik+OworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lvbkZl
YXR1cmVzKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1
cmVMaXN0JiBncmFudGVkLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAv
KiBjb25zZW50UmVxdWlyZWQgKi8sIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxp
c3QmIC8qIGNvbnNlbnRPcHRpb25hbCAqLywgRmVhdHVyZUxpc3RDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9CisgICAgCiAgICAgLy8g
U2Vzc2lvbiBjcmVhdGlvbi90ZXJtaW5hdGlvbi4KICAgICB1c2luZyBPblNlc3Npb25FbmRDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoWFJEZXZpY2VJZGVudGlmaWVyKT47CiAgICAgdmlydHVhbCB2
b2lkIHN0YXJ0U2Vzc2lvbihXZWJQYWdlUHJveHkmLCBPblNlc3Npb25FbmRDYWxsYmFjayYmKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lz
dGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0uY3Bw
CmluZGV4IDZlMmIyY2ExY2VmYTZiYjJkNTIyMWNlYThlNjE1MjY5ZThkN2VhZDcuLjcwZWMyNDc2
MDk5NGQzYzBjZDRlYjU1MWM2NTY4ODA0YzI4MmU4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNzMsNiAr
NzQsMTcgQEAgdm9pZCBQbGF0Zm9ybVhSU3lzdGVtOjplbnVtZXJhdGVJbW1lcnNpdmVYUkRldmlj
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3IKICAgICB9KTsKIH0KIAordm9pZCBQbGF0
Zm9ybVhSU3lzdGVtOjpyZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lvbkZlYXR1cmVzKGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhLCBQbGF0Zm9ybVhS
OjpTZXNzaW9uTW9kZSBtb2RlLCBjb25zdCBWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3Bh
Y2VUeXBlPiYgZ3JhbnRlZCwgY29uc3QgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNl
VHlwZT4mIGNvbnNlbnRSZXF1aXJlZCwgY29uc3QgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5j
ZVNwYWNlVHlwZT4mIGNvbnNlbnRPcHRpb25hbCwgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiB4ckNvb3JkaW5hdG9yID0gUGxhdGZvcm1YUlN5c3Rl
bTo6eHJDb29yZGluYXRvcigpOworICAgIGlmICgheHJDb29yZGluYXRvcikgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHhyQ29vcmRpbmF0b3ItPnJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVyZXMobV9wYWdl
LCBzZWN1cml0eU9yaWdpbkRhdGEsIG1vZGUsIGdyYW50ZWQsIGNvbnNlbnRSZXF1aXJlZCwgY29u
c2VudE9wdGlvbmFsLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgUGxh
dGZvcm1YUlN5c3RlbTo6aW5pdGlhbGl6ZVRyYWNraW5nQW5kUmVuZGVyaW5nKCkKIHsKICAgICBh
dXRvKiB4ckNvb3JkaW5hdG9yID0gUGxhdGZvcm1YUlN5c3RlbTo6eHJDb29yZGluYXRvcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5oCmluZGV4IGNk
YWU0NTNkNzJjYzcyNjQxMTVlODg4ZGFjMTM2MGI1NGRjNmRjNDYuLmE3NWY1NmY5NTU1YzA5N2Q0
ZTFjODlmYzIzMmVhMzY0ZGYxMWJkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Y
Ui9QbGF0Zm9ybVhSU3lzdGVtLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+CiAKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBQbGF0Zm9ybVhSQ29vcmRpbmF0b3I7CkBAIC01NCw2ICs1
OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCBlbnVt
ZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8WFJE
ZXZpY2VJbmZvPiYmKT4mJik7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lvbkZl
YXR1cmVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFBsYXRmb3JtWFI6OlNl
c3Npb25Nb2RlLCBjb25zdCBWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPiYs
IGNvbnN0IFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+JiwgY29uc3QgVmVj
dG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4mLCAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Q+JiYpPiYm
KTsKICAgICB2b2lkIGluaXRpYWxpemVUcmFja2luZ0FuZFJlbmRlcmluZygpOwogICAgIHZvaWQg
c2h1dERvd25UcmFja2luZ0FuZFJlbmRlcmluZygpOwogICAgIHZvaWQgcmVxdWVzdEZyYW1lKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUGxhdGZvcm1YUjo6RGV2aWNlOjpGcmFtZURhdGEmJik+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3Rl
bS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0
ZW0ubWVzc2FnZXMuaW4KaW5kZXggNWY0YzhiYjYyNjQ2OTM0YjA2NjJlZjEzYmUxNjFlZDUyZjUy
YmJlZi4uNjAzMmI5YmZkMDhhMTUxZTM5NTQ2M2RmNjQ5Y2U2ZmI5YjFjYjY0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3Nh
Z2VzLmluCkBAIC0yNyw2ICsyNyw3IEBACiAKIG1lc3NhZ2VzIC0+IFBsYXRmb3JtWFJTeXN0ZW0g
Tm90UmVmQ291bnRlZCB7CiAgICAgRW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKCkgLT4gKFZl
Y3RvcjxXZWJLaXQ6OlhSRGV2aWNlSW5mbz4gZGV2aWNlc0luZm9zKSBBc3luYworICAgIFJlcXVl
c3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVyZXMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4sIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlIG1vZGUsIFZlY3RvcjxQbGF0
Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+IGdyYW50ZWQsIFZlY3RvcjxQbGF0Zm9ybVhSOjpS
ZWZlcmVuY2VTcGFjZVR5cGU+IGNvbnNlbnRSZXF1aXJlZCwgVmVjdG9yPFBsYXRmb3JtWFI6OlJl
ZmVyZW5jZVNwYWNlVHlwZT4gY29uc2VudE9wdGlvbmFsKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0
b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPj4gdXNlckdyYW50ZWQpIEFzeW5jCiAg
ICAgSW5pdGlhbGl6ZVRyYWNraW5nQW5kUmVuZGVyaW5nKCkKICAgICBTaHV0RG93blRyYWNraW5n
QW5kUmVuZGVyaW5nKCkKICAgICBSZXF1ZXN0RnJhbWUoKSAtPiAoc3RydWN0IFBsYXRmb3JtWFI6
OkRldmljZTo6RnJhbWVEYXRhIGZyYW1lRGF0YSkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggMzYyNzM4NjJkZjRkYWI4MDVkYzRiMTljZjdjMDZjYjE1OWFiZWQwYS4uM2ExZTA0OWQz
ZDkzZmNhZGM3YjczZTk0OWRjMjgyODE2NmRmNzA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTE1MTksNiArMTUxOSwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW51bWVyYXRlSW1t
ZXJzaXZlWFJEZXZpY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUAogewogICAgIG1f
cGFnZS54clN5c3RlbVByb3h5KCkuZW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQ
ZXJtaXNzaW9uT25YUlNlc3Npb25GZWF0dXJlcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbiwgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUgbW9kZSwgY29uc3QgUGxhdGZvcm1YUjo6RGV2
aWNlOjpGZWF0dXJlTGlzdCYgZ3JhbnRlZCwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0
dXJlTGlzdCYgY29uc2VudFJlcXVpcmVkLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1
cmVMaXN0JiBjb25zZW50T3B0aW9uYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBtX3BhZ2UueHJTeXN0ZW1Qcm94eSgpLnJlcXVlc3RQZXJtaXNzaW9uT25T
ZXNzaW9uRmVhdHVyZXMob3JpZ2luLCBtb2RlLCBncmFudGVkLCBjb25zZW50UmVxdWlyZWQsIGNv
bnNlbnRPcHRpb25hbCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwZWRi
MzJjYWExYmNiZjZhMmI4OWI1NzcxNjdiZWNhNzRiY2ExM2JhLi5jOTFkM2U4MWVlNjE1NDdlZWUz
MWUwY2Y2ODg4NGZhODVjZmU4NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NTMsNiArNDUz
LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShXRUJYUikgJiYgIVVTRShPUEVOWFIpCiAgICAg
dm9pZCBlbnVtZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6RGV2aWNlTGlzdCYpPiYmKSBmaW5hbDsKKyAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uT25YUlNlc3Npb25GZWF0dXJlcyhjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZSwgY29uc3QgUGxhdGZv
cm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogZ3JhbnRlZCAqLywgY29uc3QgUGxhdGZvcm1Y
Ujo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29uc2VudFJlcXVpcmVkICovLCBjb25zdCBQbGF0
Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBjb25zZW50T3B0aW9uYWwgKi8sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1
cmVMaXN0PiYmKT4mJikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1T
X1VJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJT
eXN0ZW1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5
c3RlbVByb3h5LmNwcAppbmRleCBjNTA4NWNiZWZiYjYwZTBiOWJhMmRiMTMwZWQ3Zjg3ZGY4YTE0
YzlmLi4yNTUwY2Q4YjgwZjU2ZTY2MzMwNDg2NWQyNzIzZTUxNTM0ZjE3MDljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmNw
cApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiWFJEZXZpY2VJbmZvLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFBsYXRmb3JtWFI7CkBAIC02OSw2ICs3MCwxMSBAQCB2b2lkIFBsYXRmb3JtWFJTeXN0ZW1Q
cm94eTo6ZW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
YwogICAgIH0pOwogfQogCit2b2lkIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eTo6cmVxdWVzdFBlcm1p
c3Npb25PblNlc3Npb25GZWF0dXJlcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHNlY3VyaXR5T3JpZ2luRGF0YSwgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUgbW9kZSwgY29uc3Qg
UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgZ3JhbnRlZCwgY29uc3QgUGxhdGZvcm1Y
Ujo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgY29uc2VudFJlcXVpcmVkLCBjb25zdCBQbGF0Zm9ybVhS
OjpEZXZpY2U6OkZlYXR1cmVMaXN0JiBjb25zZW50T3B0aW9uYWwsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpQbGF0Zm9ybVhSU3lzdGVtOjpSZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lvbkZlYXR1
cmVzKHNlY3VyaXR5T3JpZ2luRGF0YSwgbW9kZSwgZ3JhbnRlZCwgY29uc2VudFJlcXVpcmVkLCBj
b25zZW50T3B0aW9uYWwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQg
UGxhdGZvcm1YUlN5c3RlbVByb3h5Ojppbml0aWFsaXplVHJhY2tpbmdBbmRSZW5kZXJpbmcoKQog
ewogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpQbGF0Zm9ybVhSU3lzdGVtOjpJbml0aWFsaXpl
VHJhY2tpbmdBbmRSZW5kZXJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmgKaW5kZXggMDEzNGRlNTFhMTI1ODdmMTQzMmNk
MDY1MmU4Y2M3NDQ5NmVkNDA5Mi4uOTE3OGUxZTllYzY3YThjYWVkZGY1NTUwMTQwY2UxNjJhODdh
MzkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJT
eXN0ZW1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9YUi9QbGF0Zm9ybVhS
U3lzdGVtUHJveHkuaApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJYUkRldmljZVByb3h5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJQYWdlOwpAQCAtNDIsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
UGxhdGZvcm1YUlN5c3RlbVByb3h5KCk7CiAKICAgICB2b2lkIGVudW1lcmF0ZUltbWVyc2l2ZVhS
RGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFBsYXRmb3JtWFI6Okluc3RhbmNl
OjpEZXZpY2VMaXN0Jik+JiYpOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25G
ZWF0dXJlcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBQbGF0Zm9ybVhSOjpT
ZXNzaW9uTW9kZSwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogZ3Jh
bnRlZCAqLywgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29uc2Vu
dFJlcXVpcmVkICovLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBj
b25zZW50T3B0aW9uYWwgKi8sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxQ
bGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiYmKT4mJik7CiAgICAgdm9pZCBpbml0aWFs
aXplVHJhY2tpbmdBbmRSZW5kZXJpbmcoKTsKICAgICB2b2lkIHNodXREb3duVHJhY2tpbmdBbmRS
ZW5kZXJpbmcoKTsKICAgICB2b2lkIHJlcXVlc3RGcmFtZShQbGF0Zm9ybVhSOjpEZXZpY2U6OlJl
cXVlc3RGcmFtZUNhbGxiYWNrJiYpOwo=
</data>
<flag name="review"
          id="470538"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445446</attachid>
            <date>2021-11-30 11:14:26 -0800</date>
            <delta_ts>2021-11-30 12:41:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233617-20211130111426.patch</filename>
            <type>text/plain</type>
            <size>36156</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRmOWI0NWRlOTc2ZmY4
NDRjMDc3ZjQwOTc4OTM4NzNhZDgyNWE5OC4uOTA4ODIwOTFjYTI2NTQ2NDdhZjEyNGM5MzM4MjI3
YzliZGM5MmY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTExLTI5ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IENo
cm9tZUNsaWVudCBBUEkgdG8gYWxsb3cgZ2V0dGluZyBleHBsaWNpdCBjb25zZW50IGZyb20gdXNl
ciBvbiBzZXNzaW9uIGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM2MTcKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24u
CisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCB3ZSBqdXN0IGNvbGxlY3QgdGhlIGZlYXR1
cmVzIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlL21vZGUKKyAgICAgICAgYW5kIHJldHVybiB0aGVt
IGFzIHJlc29sdmVkIGZlYXR1cmVzLiBXaXRoIHRoaXMgY2hhbmdlLCB3ZSBpbnRyb2R1Y2UgYSBD
aHJvbWVDbGllbnQKKyAgICAgICAgQVBJIHRoYXQgV2ViWFJTeXN0ZW06OnJlc29sdmVGZWF0dXJl
UGVybWlzc2lvbnMoKSBjYW4gY2FsbCB0aGF0IGFsbG93cyBjbGllbnRzIHRvCisgICAgICAgIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBhc2sgdXNlciBmb3IgZXhwbGljaXQgY29uc2VudCBvbiBz
ZXNzaW9uIGZlYXR1cmVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3RlbTo6cmVzb2x2ZUZlYXR1cmVQZXJtaXNz
aW9ucyBjb25zdCk6CisgICAgICAgIFVwZGF0ZWQgdG8gY2FsbCB0aGUgbmV3IENocm9tZUNsaWVu
dCBtZXRob2QgcmVxdWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKCkKKyAgICAgICAg
dG8gZ2V0IHRoZSByZXNvbHZlZCBhbmQgdXNlciBwZXJtaXR0ZWQgWFIgc2Vzc2lvbiBmZWF0dXJl
cy4gVGhlIGZlYXR1cmUgbGlzdCBpcworICAgICAgICBub3cgcmV0dXJuZWQgdmlhIGEgQ29tcGxl
dGlvbkhhbmRsZXIuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3RlbTo6cmVxdWVzdFNlc3Np
b24pOgorICAgICAgICBVcGRhdGVkIG5vdyB0aGF0IFdlYlhSU3lzdGVtOjpyZXNvbHZlRmVhdHVy
ZVBlcm1pc3Npb25zKCkgaXMgbm8gbG9uZ2VyIHN5bmNocm9ub3VzLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJTeXN0ZW0uaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNz
aW9uRmVhdHVyZXMpOgorICAgICAgICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIHByZXNlcnZlcyBj
dXJyZW50IGJlaGF2aW9yIGJ5IHJldHVybmluZyB0aGUgaW5pdGlhbCBsaXN0CisgICAgICAgIG9m
IGdyYW50ZWQgZmVhdHVyZXMgKGJhc2VkIG9uIHdoYXQgdGhlIGRldmljZSBjYW4gc3VwcG9ydCku
CisgICAgICAgICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOgorICAgICAgICBEZWZpbmUgRW51
bVRyYWl0cyBmb3IgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUuCisKIDIwMjEtMTEtMjkgIENocmlz
IEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogVW5pZnkgc3Bl
ZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdlIGZvciBNYWMvaU9TCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVh
ZTg4MTM1Mjg1OGE3NWYwZDkyYzEwMTY3ZjRlYjc1NTlmYjBiNjMuLjEzYzQ1N2E3YTk1NWQzYzRj
NjgzYjRiOWE0Zjc0NDFkOGI4MTViOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMjEt
MTEtMjkgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJ
bXBsZW1lbnQgQ2hyb21lQ2xpZW50IEFQSSB0byBhbGxvdyBnZXR0aW5nIGV4cGxpY2l0IGNvbnNl
bnQgZnJvbSB1c2VyIG9uIHNlc3Npb24gZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzYxNworCisgICAgICAgIFJldmlld2VkIGJ5IERl
YW4gSmFja3Nvbi4KKworICAgICAgICBTZXQgdXAgV0tVSURlbGVnYXRlIG1ldGhvZCBmb3IgYXNr
aW5nIHVzZXIgZm9yIHBlcm1pc3Npb24gb24gWFIgc2Vzc2lvbiBmZWF0dXJlcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xp
ZW50OjpyZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICBEZWNsYXJl
IGEgV0sgZW51bSB0aGF0IHJlcHJlc2VudHMgWFIgc2Vzc2lvbiBtb2RlIGFuZCBhIFdLIGZsYWcK
KyAgICAgICAgdGhhdCByZXByZXNlbnRzIFhSIHNlc3Npb24gZmVhdHVyZXMgZm9yIHVzZSBpbiB0
aGUgbmV3IFdLVUlEZWxlZ2F0ZSBtZXRob2QuCisgICAgICAgIERlY2xhcmUgYSBuZXcgV0tVSURl
bGVnYXRlIG1ldGhvZCBmb3IgcmVxdWVzdGluZyB1c2VyIHBlcm1pc3Npb24gZm9yCisgICAgICAg
IFhSIHNlc3Npb24gZmVhdHVyZXMgdGhhdCB0YWtlcyBpbiB0aGUgc2VjdXJpdHkgb3JpZ2luLCB0
aGUgc2Vzc2lvbiBtb2RlLAorICAgICAgICB0aGUgbGlzdCBvZiBkZXZpY2Ugc3VwcG9ydGVkIGZl
YXR1cmVzLCB0aGUgbGlzdCBvZiBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgY29uc2VudCwKKyAgICAg
ICAgYW5kIHRoZSBsaXN0IG9mIGZlYXR1cmVzIHRoYXQgb3B0aW9uYWxseSByZXF1aXJlIGNvbnNl
bnQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0
ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0Ojp0b1dLWFJTZXNzaW9uTW9kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OnRvV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpOgorICAgICAgICAoV2Vi
S2l0Ojp0b1BsYXRmb3JtWFJGZWF0dXJlcyk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMpOgorICAgICAg
ICBJZiB0aGUgV0tVSURlbGVnYXRlIG1ldGhvZCBmb3IgcmVxdWVzdGluZyBwZXJtaXNzaW9uIGlz
IGltcGxlbWVudGVkLCBjYWxsIGl0IHRvIAorICAgICAgICBnZXQgdGhlIGxpc3Qgb2YgdXNlciBw
ZXJtaXR0ZWQgZmVhdHVyZXMuIE90aGVyd2lzZSwgcHJlc2VydmUgdGhlIGN1cnJlbnQgYmVoYXZp
b3IKKyAgICAgICAgYnkgcmV0dXJuaW5nIHRoZSBpbml0aWFsbHkgZ3JhbnRlZCBmZWF0dXJlcyBi
YXNlZCBvbiBkZXZpY2Ugc3VwcG9ydC4KKyAgICAgICAgKiBVSVByb2Nlc3MvWFIvUGxhdGZvcm1Y
UkNvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtWFJDb29yZGluYXRvcjo6
cmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25GZWF0dXJlcyk6CisgICAgICAgIERlZmF1bHQgaW1w
bGVtZW50YXRpb24gcmV0dXJucyB0aGUgaW5pdGlhbGx5IGdyYW50ZWQgZmVhdHVyZXMgYmFzZWQg
b24gZGV2aWNlIHN1cHBvcnQuCisgICAgICAgICogVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0
ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVhSU3lzdGVtOjpyZXF1ZXN0UGVybWlz
c2lvbk9uU2Vzc2lvbkZlYXR1cmVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvWFIvUGxhdGZvcm1Y
UlN5c3RlbS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9YUi9QbGF0Zm9y
bVhSU3lzdGVtUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVhSU3lzdGVtUHJv
eHk6OnJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVyZXMpOgorICAgICAgICBTZW5kIGEg
bWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyB0byByZXF1ZXN0IHVzZXIgY29uc2VudCBvbiBzZXNz
aW9uIGZlYXR1cmVzLgorICAgICAgICAqIFdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVBy
b3h5Lmg6CisKIDIwMjEtMTEtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgV0tDb250ZW50VmlldyBzaG91bGQgYWxsb3cgLWNhcHR1cmVUZXh0RnJv
bUNhbWVyYTogd2l0aCBhIGNhcmV0IHNlbGVjdGlvbiB1bmxlc3MgdGhlIHNlbmRlciBpcyB0aGUg
Y2FsbG91dCBiYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5j
cHAKaW5kZXggMDZiZmViNjE0M2RiMGY4M2ZhYWYxNjdlN2Q2NzJjYTAzNDU3ZDUxNC4uYzY0NjFk
YTMzMzBmMGFiNTExZDI0OTRlMzliMDJlZDk4MzhhMTBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCBzdGQ6Om9w
dGlvbmFsPFdlYlhSU3lzdGVtOjpSZXNvbHZlZFJlcXVlc3RlZEZlYXR1cmVzPiBXZWJYUlN5c3Rl
bTo6cmVzb2x2ZVJlcXVlcwogfQogCiAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlv
L3dlYnhyLyNyZXF1ZXN0LXRoZS14ci1wZXJtaXNzaW9uCi1zdGQ6Om9wdGlvbmFsPFdlYlhSU3lz
dGVtOjpGZWF0dXJlTGlzdD4gV2ViWFJTeXN0ZW06OnJlc29sdmVGZWF0dXJlUGVybWlzc2lvbnMo
WFJTZXNzaW9uTW9kZSBtb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0JiBpbml0LCBQbGF0Zm9ybVhS
OjpEZXZpY2UqIGRldmljZSwgSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KSBjb25z
dAordm9pZCBXZWJYUlN5c3RlbTo6cmVzb2x2ZUZlYXR1cmVQZXJtaXNzaW9ucyhYUlNlc3Npb25N
b2RlIG1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmIGluaXQsIFBsYXRmb3JtWFI6OkRldmljZSog
ZGV2aWNlLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGNvbnN0CiB7CiAgICAgLy8gMS4gU2V0IHN0YXR1cydzIGdyYW50ZWQgdG8gYW4gZW1wdHkg
RnJvemVuQXJyYXkuCiAgICAgLy8gMi4gTGV0IHJlcXVpcmVkRmVhdHVyZXMgYmUgZGVzY3JpcHRv
cidzIHJlcXVpcmVkRmVhdHVyZXMuCkBAIC0zNDgsOCArMzQ4LDEwIEBAIHN0ZDo6b3B0aW9uYWw8
V2ViWFJTeXN0ZW06OkZlYXR1cmVMaXN0PiBXZWJYUlN5c3RlbTo6cmVzb2x2ZUZlYXR1cmVQZXJt
aXNzaW9ucyhYCiAgICAgLy8gNi4gSWYgcmVzdWx0IGlzIG51bGwsIHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzOgogICAgIC8vICA2LjEuIFNldCBzdGF0dXMncyBzdGF0ZSB0byAiZGVuaWVkIi4KICAg
ICAvLyAgNi4yLiBBYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIXJlc29sdmVkRmVhdHVyZXMp
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFyZXNvbHZlZEZlYXR1cmVz
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICAvLyA3LiBMZXQgKGNvbnNlbnRSZXF1aXJlZCwgY29uc2VudE9w
dGlvbmFsLCBncmFudGVkKSBiZSB0aGUgZmllbGRzIG9mIHJlc3VsdC4KICAgICAvLyA4LiBUaGUg
dXNlciBhZ2VudCBNQVkgYXQgdGhpcyBwb2ludCBhc2sgdGhlIHVzZXIncyBwZXJtaXNzaW9uIGZv
ciB0aGUgY2FsbGluZyBhbGdvcml0aG0gdG8gdXNlIGFueSBvZiB0aGUgZmVhdHVyZXMKQEAgLTM2
NiwxMiArMzY4LDI2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViWFJTeXN0ZW06OkZlYXR1cmVMaXN0PiBX
ZWJYUlN5c3RlbTo6cmVzb2x2ZUZlYXR1cmVQZXJtaXNzaW9ucyhYCiAgICAgLy8gICAgICAgIG9m
IHRoZXNlIHByb21wdHMgc2hvdWxkIGJlIGluY2x1ZGVkIHdoZW4gZGV0ZXJtaW5pbmcgaWYgdGhl
cmUgaXMgYSBjbGVhciBzaWduYWwgb2YgdXNlciBpbnRlbnQgdG8gZW5hYmxlIGZlYXR1cmUuCiAg
ICAgLy8gIDEwLjIuIElmIGEgY2xlYXIgc2lnbmFsIG9mIHVzZXIgaW50ZW50IHRvIGVuYWJsZSBm
ZWF0dXJlIGhhcyBub3QgYmVlbiBkZXRlcm1pbmVkLCBjb250aW51ZSB0byB0aGUgbmV4dCBlbnRy
eS4KICAgICAvLyAgMTAuMy4gSWYgZmVhdHVyZSBpcyBub3QgaW4gZ3JhbnRlZCwgYXBwZW5kIGZl
YXR1cmUgdG8gZ3JhbnRlZC4KLSAgICAvLyAxMS4gU2V0IHN0YXR1cydzIGdyYW50ZWQgdG8gZ3Jh
bnRlZC4KLSAgICAvLyAxMi4gU2V0IGRldmljZSdzIGxpc3Qgb2YgZW5hYmxlZCBmZWF0dXJlcyBm
b3IgbW9kZSB0byBncmFudGVkLgotICAgIC8vIDEzLiBTZXQgc3RhdHVzJ3Mgc3RhdGUgdG8gImdy
YW50ZWQiLgotICAgIGRldmljZS0+c2V0RW5hYmxlZEZlYXR1cmVzKG1vZGUsIHJlc29sdmVkRmVh
dHVyZXMtPmdyYW50ZWQpOworICAgIGF1dG8gZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+cGFnZSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIFBlcm1p
c3Npb25zIEFQSSBpbXBsZW1lbnRhdGlvbi4KKyAgICBkb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5yZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMoZG9jdW1lbnQt
PnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpLCBtb2RlLCByZXNvbHZlZEZlYXR1cmVzLT5ncmFudGVk
LCByZXNvbHZlZEZlYXR1cmVzLT5jb25zZW50UmVxdWlyZWQsIHJlc29sdmVkRmVhdHVyZXMtPmNv
bnNlbnRPcHRpb25hbCwgW2RldmljZSwgbW9kZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZl
YXR1cmVMaXN0PiYmIHVzZXJHcmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF1c2VyR3Jh
bnRlZCkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgcmV0dXJuIHJlc29sdmVkRmVhdHVy
ZXMtPnJlcXVlc3RlZDsKKyAgICAgICAgLy8gMTEuIFNldCBzdGF0dXMncyBncmFudGVkIHRvIGdy
YW50ZWQuCisgICAgICAgIC8vIDEyLiBTZXQgZGV2aWNlJ3MgbGlzdCBvZiBlbmFibGVkIGZlYXR1
cmVzIGZvciBtb2RlIHRvIGdyYW50ZWQuCisgICAgICAgIC8vIDEzLiBTZXQgc3RhdHVzJ3Mgc3Rh
dGUgdG8gImdyYW50ZWQiLgorICAgICAgICBkZXZpY2UtPnNldEVuYWJsZWRGZWF0dXJlcyhtb2Rl
LCAqdXNlckdyYW50ZWQpOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCp1c2VyR3JhbnRl
ZCk7CisgICAgfSk7CiB9CiAKIApAQCAtNDI2LDM3ICs0NDIsNDAgQEAgdm9pZCBXZWJYUlN5c3Rl
bTo6cmVxdWVzdFNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBYUlNlc3Npb25Nb2RlIG1vZGUs
IGNvbnN0IFgKICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICByZXR1cm47
CiAKKyAgICAgICAgcmVqZWN0UHJvbWlzZVdpdGhOb3RTdXBwb3J0ZWRFcnJvci5yZWxlYXNlKCk7
CisKICAgICAgICAgLy8gV2ViS2l0IGRvZXMgbm90IGN1cnJlbnRseSBzdXBwb3J0IHRoZSBQZXJt
aXNzaW9ucyBBUEkuIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wZXJtaXNzaW9ucy8KICAgICAgICAg
Ly8gSG93ZXZlciB3ZSBkbyBpbXBsZW1lbnQgaGVyZSB0aGUgcGVybWlzc2lvbiByZXF1ZXN0IGFs
Z29yaXRobSB3aXRob3V0IHRoZQogICAgICAgICAvLyBQZXJtaXNzaW9ucyBBUEkgYml0cyBhcyBp
dCBoYW5kbGVzLCBhbW9uZyBvdGhlcnMsIHRoZSBzZXNzaW9uIGZlYXR1cmVzIHBhcnNpbmcuIFdl
IGFsc28KICAgICAgICAgLy8gZG8gaXQgaGVyZSBiZWZvcmUgY3JlYXRpbmcgdGhlIHNlc3Npb24g
YXMgdGhlcmUgaXMgbm8gbmVlZCB0byBkbyBpdCBvbiBhZHZhbmNlLgotICAgICAgICAvLyBGSVhN
RTogd2UganVzdCBwZXJmb3JtIGJhc2ljIGNoZWNrcyB3aXRob3V0IGFza2luZyBhbnkgcGVybWlz
c2lvbiB0byB0aGUgdXNlciBzbyBmYXIuIE1heWJlIHdlIHNob3VsZCBpbXBsZW1lbnQKLSAgICAg
ICAgLy8gYSBtZWNoYW5pc20gc2ltaWxhciB0byB3aGF0IG90aGVycyBkbyBpbnZvbHZpbmcgcGFz
c2luZyBhIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3MuCiAKICAgICAgICAgLy8gNS40LjQgTGV0
IGRlc2NyaXB0b3IgYmUgYW4gWFJQZXJtaXNzaW9uRGVzY3JpcHRvciBpbml0aWFsaXplZCB3aXRo
IHNlc3Npb24sIHJlcXVpcmVkRmVhdHVyZXMsIGFuZCBvcHRpb25hbEZlYXR1cmVzCiAgICAgICAg
IC8vIDUuNC41IExldCBzdGF0dXMgYmUgYW4gWFJQZXJtaXNzaW9uU3RhdHVzLCBpbml0aWFsbHkg
bnVsbAogICAgICAgICAvLyA1LjQuNiBSZXF1ZXN0IHRoZSB4ciBwZXJtaXNzaW9uIHdpdGggZGVz
Y3JpcHRvciBhbmQgc3RhdHVzLgogICAgICAgICAvLyA1LjQuNyBJZiBzdGF0dXMnIHN0YXRlIGlz
ICJkZW5pZWQiIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOiAoc2FtZSBhcyBhYm92ZSBpbiA1LjQu
MSkKLSAgICAgICAgYXV0byByZXF1ZXN0ZWRGZWF0dXJlcyA9IHJlc29sdmVGZWF0dXJlUGVybWlz
c2lvbnMobW9kZSwgaW5pdCwgZGV2aWNlLCAqZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgaWYgKCFy
ZXF1ZXN0ZWRGZWF0dXJlcykKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcmVzb2x2ZUZl
YXR1cmVQZXJtaXNzaW9ucyhtb2RlLCBpbml0LCBkZXZpY2UsICpnbG9iYWxPYmplY3QsIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcm90ZWN0ZWREb2N1bWVudCwgZGV2aWNl
LCBpbW1lcnNpdmUsIG1vZGUsIHByb21pc2VdKHN0ZDo6b3B0aW9uYWw8RmVhdHVyZUxpc3Q+JiYg
cmVxdWVzdGVkRmVhdHVyZXMpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhcmVxdWVzdGVkRmVhdHVyZXMpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAgICAgICAgICAgICBtX3BlbmRp
bmdJbW1lcnNpdmVTZXNzaW9uID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQogCi0gICAgICAgIC8vIDUuNC4yIExldCBzZXNzaW9uIGJlIGEgbmV3IFhSU2Vz
c2lvbiBvYmplY3QuCi0gICAgICAgIC8vIDUuNC4zIEluaXRpYWxpemUgdGhlIHNlc3Npb24gd2l0
aCBzZXNzaW9uLCBtb2RlLCBhbmQgZGV2aWNlLgotICAgICAgICBhdXRvIHNlc3Npb24gPSBXZWJY
UlNlc3Npb246OmNyZWF0ZShwcm90ZWN0ZWREb2N1bWVudC5nZXQoKSwgKnRoaXMsIG1vZGUsICpk
ZXZpY2UsIFdURk1vdmUoKnJlcXVlc3RlZEZlYXR1cmVzKSk7CisgICAgICAgICAgICAvLyA1LjQu
MiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBYUlNlc3Npb24gb2JqZWN0LgorICAgICAgICAgICAgLy8g
NS40LjMgSW5pdGlhbGl6ZSB0aGUgc2Vzc2lvbiB3aXRoIHNlc3Npb24sIG1vZGUsIGFuZCBkZXZp
Y2UuCisgICAgICAgICAgICBhdXRvIHNlc3Npb24gPSBXZWJYUlNlc3Npb246OmNyZWF0ZShwcm90
ZWN0ZWREb2N1bWVudC5nZXQoKSwgKnRoaXMsIG1vZGUsICpkZXZpY2UsIFdURk1vdmUoKnJlcXVl
c3RlZEZlYXR1cmVzKSk7CiAKLSAgICAgICAgLy8gNS40LjggUG90ZW50aWFsbHkgc2V0IHRoZSBh
Y3RpdmUgaW1tZXJzaXZlIHNlc3Npb24gYXMgZm9sbG93czoKLSAgICAgICAgaWYgKGltbWVyc2l2
ZSkgewotICAgICAgICAgICAgbV9hY3RpdmVJbW1lcnNpdmVTZXNzaW9uID0gc2Vzc2lvbi5jb3B5
UmVmKCk7Ci0gICAgICAgICAgICBtX3BlbmRpbmdJbW1lcnNpdmVTZXNzaW9uID0gZmFsc2U7Ci0g
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9pbmxpbmVTZXNzaW9ucy5hZGQoc2Vzc2lvbi5j
b3B5UmVmKCkpOworICAgICAgICAgICAgLy8gNS40LjggUG90ZW50aWFsbHkgc2V0IHRoZSBhY3Rp
dmUgaW1tZXJzaXZlIHNlc3Npb24gYXMgZm9sbG93czoKKyAgICAgICAgICAgIGlmIChpbW1lcnNp
dmUpIHsKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZUltbWVyc2l2ZVNlc3Npb24gPSBzZXNzaW9u
LmNvcHlSZWYoKTsKKyAgICAgICAgICAgICAgICBtX3BlbmRpbmdJbW1lcnNpdmVTZXNzaW9uID0g
ZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX2lubGluZVNlc3Np
b25zLmFkZChzZXNzaW9uLmNvcHlSZWYoKSk7CiAKLSAgICAgICAgLy8gNS40LjkgUmVzb2x2ZSBw
cm9taXNlIHdpdGggc2Vzc2lvbi4KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURk1vdmUoc2Vz
c2lvbikpOwotICAgICAgICByZWplY3RQcm9taXNlV2l0aE5vdFN1cHBvcnRlZEVycm9yLnJlbGVh
c2UoKTsKKyAgICAgICAgICAgIC8vIDUuNC45IFJlc29sdmUgcHJvbWlzZSB3aXRoIHNlc3Npb24u
CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RGTW92ZShzZXNzaW9uKSk7CiAKLSAgICAg
ICAgLy8gNS40LjEwIGlzIGhhbmRsZWQgaW4gV2ViWFJTZXNzaW9uOjpzZXNzaW9uRGlkSW5pdGlh
bGl6ZUlucHV0U291cmNlcy4KKyAgICAgICAgICAgIC8vIDUuNC4xMCBpcyBoYW5kbGVkIGluIFdl
YlhSU2Vzc2lvbjo6c2Vzc2lvbkRpZEluaXRpYWxpemVJbnB1dFNvdXJjZXMuCisgICAgICAgIH0p
OwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVt
LmgKaW5kZXggZjA0MzM1OWIwOTM3NTFjZTdiOTE1MTIxNWJmNDJmODM1YjQxYTc1Zi4uOGJlYWI0
YTg4Njg4MjA1YzA3YThmZjdjNTI0OTQ2N2VjZjZlMzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaApAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdHJ1Y3QgUmVzb2x2ZWRSZXF1ZXN0ZWRGZWF0dXJlczsKICAgICBzdGQ6Om9wdGlvbmFs
PFJlc29sdmVkUmVxdWVzdGVkRmVhdHVyZXM+IHJlc29sdmVSZXF1ZXN0ZWRGZWF0dXJlcyhYUlNl
c3Npb25Nb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0JiwgUGxhdGZvcm1YUjo6RGV2aWNlKiwgSlND
OjpKU0dsb2JhbE9iamVjdCYpIGNvbnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8RmVhdHVyZUxpc3Q+
IHJlc29sdmVGZWF0dXJlUGVybWlzc2lvbnMoWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9u
SW5pdCYsIFBsYXRmb3JtWFI6OkRldmljZSosIEpTQzo6SlNHbG9iYWxPYmplY3QmKSBjb25zdDsK
KyAgICB2b2lkIHJlc29sdmVGZWF0dXJlUGVybWlzc2lvbnMoWFJTZXNzaW9uTW9kZSwgY29uc3Qg
WFJTZXNzaW9uSW5pdCYsIFBsYXRmb3JtWFI6OkRldmljZSosIEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmVhdHVyZUxpc3Q+JiYpPiYm
KSBjb25zdDsKIAogICAgIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIv
I2RlZmF1bHQtaW5saW5lLXhyLWRldmljZQogICAgIGNsYXNzIER1bW15SW5saW5lRGV2aWNlIGZp
bmFsIDogcHVibGljIFBsYXRmb3JtWFI6OkRldmljZSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAxMzU5ZTk5ZmYx
NTEwOTU1Yzk2NDY1MjIyNzhlZjcxNGMyNGFjYWE4Li4zNWQyOTBhMjgxNDJlMjcwYjgxNDdhNjUx
NDgyNjhiNDg1ZTZjNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEzNSw2
ICsxMzUsNyBAQCBzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGF0ZVRp
bWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1
Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBTZWN1cml0eU9y
aWdpbkRhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIHN0cnVjdCBUZXh0SW5k
aWNhdG9yRGF0YTsKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKQEAgLTYwMyw2ICs2MDQsNyBA
QCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0
ZUltbWVyc2l2ZVhSRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFBsYXRmb3Jt
WFI6Okluc3RhbmNlOjpEZXZpY2VMaXN0Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgUGxhdGZv
cm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbigpLmVudW1lcmF0ZUltbWVyc2l2ZVhSRGV2aWNlcyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIFBs
YXRmb3JtWFI6OlNlc3Npb25Nb2RlLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVM
aXN0JiBncmFudGVkLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBj
b25zZW50UmVxdWlyZWQgKi8sIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Qm
IC8qIGNvbnNlbnRPcHRpb25hbCAqLywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94
ci9QbGF0Zm9ybVhSLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgK
aW5kZXggNTBmZDQ1YjA1OWEwYTgxMzExNTgxMGZkZTZjMDBjMWIyMWIyZDU2NC4uZDVmMGRkZGNk
MDc3OGI4ZDQ5ZDYxY2NlNzRlMmIyYzk3NDUxYjgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3hyL1BsYXRmb3JtWFIuaApAQCAtNjUwLDYgKzY1MCwxNSBAQCBpbmxpbmUgRGV2aWNlOjpGcmFt
ZURhdGEgRGV2aWNlOjpGcmFtZURhdGE6OmNvcHkoKSBjb25zdAogCiBuYW1lc3BhY2UgV1RGIHsK
IAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFBsYXRmb3JtWFI6OlNl
c3Npb25Nb2RlLAorICAgICAgICBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZTo6SW5saW5lLAorICAg
ICAgICBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZTo6SW1tZXJzaXZlVnIsCisgICAgICAgIFBsYXRm
b3JtWFI6OlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVBcgorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4gewogICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFBsYXRmb3JtWFI6OlJlZmVyZW5j
ZVNwYWNlVHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4
IGM1ZjVmNTA5NzNjN2I0MjQ5MGM1ZGU0YmE1YThhMTEwYWE3NTIzOTkuLjc2YzJkZWJhZmQ5MWQx
NmY4ZDc3MDg5M2Y0ODg5NjkwMGRmZTI2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQpAQCAtMjcwLDYgKzI3MCw4IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9i
ZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdJUEM6OlNlbWFwaG9yZScsCiAgICAgICAg
ICdNYWNoU2VuZFJpZ2h0JywKICAgICAgICAgJ01lZGlhVGltZScsCisgICAgICAgICdQbGF0Zm9y
bVhSOjpSZWZlcmVuY2VTcGFjZVR5cGUnLAorICAgICAgICAnUGxhdGZvcm1YUjo6U2Vzc2lvbk1v
ZGUnLAogICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZScs
CkBAIC03MzksNiArNzQxLDggQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAg
ICdQQUw6OldlYkdQVTo6VmVydGV4Rm9ybWF0JzogWyc8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVWZXJ0ZXhGb3JtYXQuaD4nXSwKICAgICAgICAgJ1BBTDo6V2ViR1BVOjpWZXJ0ZXhTdGVwTW9k
ZSc6IFsnPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4U3RlcE1vZGUuaD4nXSwKICAg
ICAgICAgJ1BsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9y
bVhSLmg+J10sCisgICAgICAgICdQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGUnOiBbJzxX
ZWJDb3JlL1BsYXRmb3JtWFIuaD4nXSwKKyAgICAgICAgJ1BsYXRmb3JtWFI6OlNlc3Npb25Nb2Rl
JzogWyc8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+J10sCiAgICAgICAgICdTZWNvbmRzJzogWyc8d3Rm
L1NlY29uZHMuaD4nXSwKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5o
PiddLAogICAgICAgICAnVVJMJzogWyc8d3RmL1VSTEhhc2guaD4nXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggZGQwODRmZmUwYjYwN2YxMzQzODdlODAz
NjM3ZTcyZmMxNzdiYWMxZS4uNjYyYThkNTM0ODBjMjI4ZmM5ODU4MjljMWY4NzFjYzVkMDNmMjk2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTQ3LDYg
KzQ3LDEwIEBAIE9CSkNfQ0xBU1MgVUlWaWV3Q29udHJvbGxlcjsKICNpbmNsdWRlICJXZWJBdXRo
ZW50aWNhdGlvbkZsYWdzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVhSLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7CkBAIC0yMTAsNiArMjE0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFdURjo6
U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZh
dWx0QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7IH0KIAogI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uT25YUlNlc3Npb25GZWF0dXJlcyhXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFBsYXRmb3Jt
WFI6OlNlc3Npb25Nb2RlLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiBn
cmFudGVkLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBjb25zZW50
UmVxdWlyZWQgKi8sIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGNv
bnNlbnRPcHRpb25hbCAqLywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFBs
YXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9ICAgIAogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFhSU2Vzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmV0YWluUHRyPGlkPik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
bmlsKTsgfQogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggNDQzNzhmNjYyNjZkZGMxYWY1
NDFiNmQ5YmQ3ODJlMGMwMjAyOTlhYS4uM2YzODMwOTFjOTZmZDczZDg3ZmQzMWNkNjUxMjIwODlh
ZGFiYjI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC04OCw2ICs4OCwyMSBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tGb2N1c0RpcmVjdGlvbikgewogICAgIF9XS0ZvY3VzRGlyZWN0aW9u
Rm9yd2FyZCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEyLjIpKTsK
IAordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLWFJTZXNzaW9uTW9kZSkgeworICAgIF9X
S1hSU2Vzc2lvbk1vZGVJbmxpbmUsCisgICAgX1dLWFJTZXNzaW9uTW9kZUltbWVyc2l2ZVZyLAor
ICAgIF9XS1hSU2Vzc2lvbk1vZGVJbW1lcnNpdmVBciwKK307CisKK3R5cGVkZWYgTlNfT1BUSU9O
UyhOU1VJbnRlZ2VyLCBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpIHsKKyAgICBfV0tYUlNlc3Np
b25GZWF0dXJlRmxhZ3NOb25lID0gMCwKKyAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZl
cmVuY2VTcGFjZVR5cGVWaWV3ZXIgPSAxIDw8IDAsCisgICAgX1dLWFJTZXNzaW9uRmVhdHVyZUZs
YWdzUmVmZXJlbmNlU3BhY2VUeXBlTG9jYWwgPSAxIDw8IDEsCisgICAgX1dLWFJTZXNzaW9uRmVh
dHVyZUZsYWdzUmVmZXJlbmNlU3BhY2VUeXBlTG9jYWxGbG9vciA9IDEgPDwgMiwKKyAgICBfV0tY
UlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVCb3VuZGVkRmxvb3IgPSAxIDw8
IDMsCisgICAgX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzUmVmZXJlbmNlU3BhY2VUeXBlVW5ib3Vu
ZGVkID0gMSA8PCA0LAorfTsKKwogQHByb3RvY29sIFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdLVUlE
ZWxlZ2F0ZT4KIAogI2lmZGVmIEZPVU5EQVRJT05fSEFTX0RJUkVDVElPTkFMX0dFT01FVFJZCkBA
IC0xNTgsNiArMTczLDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXdE
aWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3RGlk
RGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0UGVybWlzc2lvbkZvclhSU2Vzc2lvbk9yaWdpbjoo
TlNTdHJpbmcgKilvcmlnaW5TdHJpbmcgbW9kZTooX1dLWFJTZXNzaW9uTW9kZSltb2RlIGdyYW50
ZWRGZWF0dXJlczooX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzKWdyYW50ZWRGZWF0dXJlcyBjb25z
ZW50UmVxdWlyZWRGZWF0dXJlczooX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzKWNvbnNlbnRSZXF1
aXJlZEZlYXR1cmVzIGNvbnNlbnRPcHRpb25hbEZlYXR1cmVzOihfV0tYUlNlc3Npb25GZWF0dXJl
RmxhZ3MpY29uc2VudE9wdGlvbmFsRmVhdHVyZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFncykpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0WFJTZXNzaW9uV2l0aENvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShpZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjooV0tT
ZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMjY2NmE5
MWIyMjg1NDNiYTg5ZGJiMzFhZjAyYzQ3MWRiNTQ0N2Q0Ny4uZmYyMjc1NzUwMzc2ODQxYmM1Zjlh
MzZmMzMxZDhhNDc4MmI0ZjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGlk
RGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVByb3h5JikgZmluYWw7CiAKICNp
ZiBFTkFCTEUoV0VCWFIpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICB2b2lkIHJlcXVlc3RQ
ZXJtaXNzaW9uT25YUlNlc3Npb25GZWF0dXJlcyhXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZSwgY29uc3QgUGxh
dGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogZ3JhbnRlZCAqLywgY29uc3QgUGxhdGZv
cm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29uc2VudFJlcXVpcmVkICovLCBjb25zdCBQ
bGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAvKiBjb25zZW50T3B0aW9uYWwgKi8sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZl
YXR1cmVMaXN0PiYmKT4mJikgZmluYWw7CiAgICAgICAgIHZvaWQgc3RhcnRYUlNlc3Npb24oV2Vi
UGFnZVByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXRhaW5QdHI8aWQ+KT4mJikgZmlu
YWw7CiAjZW5kaWYKIApAQCAtMjY1LDYgKzI2Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wg
d2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4gOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbiA6IDE7CiAjaWYgRU5BQkxF
KFdFQlhSKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdFBl
cm1pc3Npb25Gb3JYUlNlc3Npb25PcmlnaW5Nb2RlQW5kRmVhdHVyZXNXaXRoQ29tcGxldGlvbkhh
bmRsZXI6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1N0YXJ0WFJTZXNzaW9uV2l0aENvbXBsZXRp
b25IYW5kbGVyIDogMTsKICNlbmRpZgogICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGZkOWQ0YThi
MjllMzhlMGM2YzVlMzFmZWMyYTNmZjJhZDY0OTJjNzAuLjEzMTYwNzgyNjY3MmFhYTk4MmJiZTQx
OGU1ZDUyOTU4MmMyYzJkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbQpAQCAtMTkzLDYgKzE5Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRv
bWFpbjopXTsKIAogI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RQZXJtaXNzaW9uRm9yWFJTZXNzaW9uT3JpZ2lu
TW9kZUFuZEZlYXR1cmVzV2l0aENvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFBlcm1pc3Npb25Gb3JYUlNlc3Np
b25PcmlnaW46bW9kZTpncmFudGVkRmVhdHVyZXM6Y29uc2VudFJlcXVpcmVkRmVhdHVyZXM6Y29u
c2VudE9wdGlvbmFsRmVhdHVyZXM6Y29tcGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld1N0YXJ0WFJTZXNzaW9uV2l0aENvbXBsZXRpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c3RhcnRYUlNlc3Np
b25XaXRoQ29tcGxldGlvbkhhbmRsZXI6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRl
Y2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVj
aXNpb25IYW5kbGVyOildOwpAQCAtMTY0MCw2ICsxNjQxLDgzIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKFdlYlBhZ2VQcm94eSYp
CiB9CiAKICNpZiBFTkFCTEUoV0VCWFIpICYmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIF9XS1hS
U2Vzc2lvbk1vZGUgdG9XS1hSU2Vzc2lvbk1vZGUoUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUgbW9k
ZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIFBsYXRmb3JtWFI6OlNlc3Npb25N
b2RlOjpJbmxpbmU6CisgICAgICAgIHJldHVybiBfV0tYUlNlc3Npb25Nb2RlSW5saW5lOworICAg
IGNhc2UgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU6OkltbWVyc2l2ZVZyOgorICAgICAgICByZXR1
cm4gX1dLWFJTZXNzaW9uTW9kZUltbWVyc2l2ZVZyOworICAgIGNhc2UgUGxhdGZvcm1YUjo6U2Vz
c2lvbk1vZGU6OkltbWVyc2l2ZUFyOgorICAgICAgICByZXR1cm4gX1dLWFJTZXNzaW9uTW9kZUlt
bWVyc2l2ZUFyOworICAgIH0KK30KKworc3RhdGljIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFncyB0
b1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzKFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZSBm
ZWF0dXJlKQoreworICAgIHN3aXRjaCAoZmVhdHVyZSkgeworICAgIGNhc2UgUGxhdGZvcm1YUjo6
UmVmZXJlbmNlU3BhY2VUeXBlOjpWaWV3ZXI6CisgICAgICAgIHJldHVybiBfV0tYUlNlc3Npb25G
ZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVWaWV3ZXI7CisgICAgY2FzZSBQbGF0Zm9ybVhS
OjpSZWZlcmVuY2VTcGFjZVR5cGU6OkxvY2FsOgorICAgICAgICByZXR1cm4gX1dLWFJTZXNzaW9u
RmVhdHVyZUZsYWdzUmVmZXJlbmNlU3BhY2VUeXBlTG9jYWw7CisgICAgY2FzZSBQbGF0Zm9ybVhS
OjpSZWZlcmVuY2VTcGFjZVR5cGU6OkxvY2FsRmxvb3I6CisgICAgICAgIHJldHVybiBfV0tYUlNl
c3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVMb2NhbEZsb29yOworICAgIGNhc2Ug
UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlOjpCb3VuZGVkRmxvb3I6CisgICAgICAgIHJl
dHVybiBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVCb3VuZGVkRmxv
b3I7CisgICAgY2FzZSBQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU6OlVuYm91bmRlZDoK
KyAgICAgICAgcmV0dXJuIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNwYWNlVHlw
ZVVuYm91bmRlZDsKKyAgICB9Cit9CisKK3N0YXRpYyBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3Mg
dG9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFncyhjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1
cmVMaXN0JiBmZWF0dXJlcykKK3sKKyAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MgZmxhZ3Mg
PSBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NOb25lOworICAgIGZvciAoYXV0byBmZWF0dXJlIDog
ZmVhdHVyZXMpCisgICAgICAgIGZsYWdzIHw9IHRvV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MoZmVh
dHVyZSk7CisgICAgcmV0dXJuIGZsYWdzOworfQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxQbGF0
Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiB0b1BsYXRmb3JtWFJGZWF0dXJlcyhfV0tYUlNl
c3Npb25GZWF0dXJlRmxhZ3MgZmVhdHVyZUZsYWdzKQoreworICAgIGlmIChmZWF0dXJlRmxhZ3Mg
PT0gX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzTm9uZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QgZmVhdHVyZXM7Cisg
ICAgaWYgKGZlYXR1cmVGbGFncyAmIF9XS1hSU2Vzc2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNw
YWNlVHlwZVZpZXdlcikKKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKFBsYXRmb3JtWFI6OlJlZmVy
ZW5jZVNwYWNlVHlwZTo6Vmlld2VyKTsKKyAgICBpZiAoZmVhdHVyZUZsYWdzICYgX1dLWFJTZXNz
aW9uRmVhdHVyZUZsYWdzUmVmZXJlbmNlU3BhY2VUeXBlTG9jYWwpCisgICAgICAgIGZlYXR1cmVz
LmFwcGVuZChQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU6OkxvY2FsKTsKKyAgICBpZiAo
ZmVhdHVyZUZsYWdzICYgX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzUmVmZXJlbmNlU3BhY2VUeXBl
TG9jYWxGbG9vcikKKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKFBsYXRmb3JtWFI6OlJlZmVyZW5j
ZVNwYWNlVHlwZTo6TG9jYWxGbG9vcik7CisgICAgaWYgKGZlYXR1cmVGbGFncyAmIF9XS1hSU2Vz
c2lvbkZlYXR1cmVGbGFnc1JlZmVyZW5jZVNwYWNlVHlwZUJvdW5kZWRGbG9vcikKKyAgICAgICAg
ZmVhdHVyZXMuYXBwZW5kKFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZTo6Qm91bmRlZEZs
b29yKTsKKyAgICBpZiAoZmVhdHVyZUZsYWdzICYgX1dLWFJTZXNzaW9uRmVhdHVyZUZsYWdzUmVm
ZXJlbmNlU3BhY2VUeXBlVW5ib3VuZGVkKQorICAgICAgICBmZWF0dXJlcy5hcHBlbmQoUGxhdGZv
cm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlOjpVbmJvdW5kZWQpOworICAgIHJldHVybiBmZWF0dXJl
czsKK30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb25PblhS
U2Vzc2lvbkZlYXR1cmVzKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhLCBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZSBtb2Rl
LCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiBncmFudGVkLCBjb25zdCBQ
bGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiBjb25zZW50UmVxdWlyZWQsIGNvbnN0IFBs
YXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIGNvbnNlbnRPcHRpb25hbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxp
c3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV91aURlbGVnYXRlIHx8
ICFtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0UGVybWlzc2lv
bkZvclhSU2Vzc2lvbk9yaWdpbk1vZGVBbmRGZWF0dXJlc1dpdGhDb21wbGV0aW9uSGFuZGxlcikg
eworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gZGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1f
dWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFBlcm1pc3Npb25Gb3JYUlNlc3Np
b25PcmlnaW46bW9kZTpncmFudGVkRmVhdHVyZXM6Y29uc2VudFJlcXVpcmVkRmVhdHVyZXM6Y29u
c2VudE9wdGlvbmFsRmVhdHVyZXM6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgW2RlbGVnYXRl
IF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHJlcXVlc3RQZXJt
aXNzaW9uRm9yWFJTZXNzaW9uT3JpZ2luOnNlY3VyaXR5T3JpZ2luRGF0YS50b1N0cmluZygpIG1v
ZGU6dG9XS1hSU2Vzc2lvbk1vZGUobW9kZSkgZ3JhbnRlZEZlYXR1cmVzOnRvV0tYUlNlc3Npb25G
ZWF0dXJlRmxhZ3MoZ3JhbnRlZCkgY29uc2VudFJlcXVpcmVkRmVhdHVyZXM6dG9XS1hSU2Vzc2lv
bkZlYXR1cmVGbGFncyhjb25zZW50UmVxdWlyZWQpIGNvbnNlbnRPcHRpb25hbEZlYXR1cmVzOnRv
V0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MoY29uc2VudE9wdGlvbmFsKSBjb21wbGV0aW9uSGFuZGxl
cjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoX1dLWFJTZXNzaW9uRmVhdHVyZUZs
YWdzIHVzZXJHcmFudGVkRmVhdHVyZXMpIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+
Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih0b1BsYXRmb3JtWFJGZWF0dXJlcyh1c2VyR3JhbnRlZEZlYXR1cmVzKSk7
CisgICAgfSkuZ2V0KCldOworfQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzdGFydFhS
U2Vzc2lvbihXZWJQYWdlUHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxp
ZD4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV91aURlbGVnYXRlIHx8ICFt
X3VpRGVsZWdhdGUtPm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTdGFydFhSU2Vzc2lvbldpdGhD
b21wbGV0aW9uSGFuZGxlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
WFIvUGxhdGZvcm1YUkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9Q
bGF0Zm9ybVhSQ29vcmRpbmF0b3IuaAppbmRleCAwMzE2MTE4ZmNmNmY3MWU0NWQ5ZGM1ZWQ0NjZh
Yzc0ODcwN2EzY2MwLi4zMjE5YjA4YmM2MzE0N2I1MGRkYzMyNDRmMTc4ZjBmMWJmZWI3N2VmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSQ29vcmRpbmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSQ29vcmRpbmF0
b3IuaApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtWFIuaD4K
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
YlBhZ2VQcm94eTsKQEAgLTQ2LDYgKzUwLDkgQEAgcHVibGljOgogICAgIHVzaW5nIERldmljZUlu
Zm9DYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxYUkRldmljZUluZm8+KT47
CiAgICAgdmlydHVhbCB2b2lkIGdldFByaW1hcnlEZXZpY2VJbmZvKERldmljZUluZm9DYWxsYmFj
ayYmKSA9IDA7CiAKKyAgICB1c2luZyBGZWF0dXJlTGlzdENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Q+
JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25GZWF0dXJl
cyhXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBQbGF0
Zm9ybVhSOjpTZXNzaW9uTW9kZSwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlz
dCYgZ3JhbnRlZCwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29u
c2VudFJlcXVpcmVkICovLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAv
KiBjb25zZW50T3B0aW9uYWwgKi8sIEZlYXR1cmVMaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsgfQorICAgIAogICAgIC8vIFNlc3Np
b24gY3JlYXRpb24vdGVybWluYXRpb24uCiAgICAgdXNpbmcgT25TZXNzaW9uRW5kQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKFhSRGV2aWNlSWRlbnRpZmllcik+OwogICAgIHZpcnR1YWwgdm9pZCBz
dGFydFNlc3Npb24oV2ViUGFnZVByb3h5JiwgT25TZXNzaW9uRW5kQ2FsbGJhY2smJikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLmNwcAppbmRl
eCA2ZTJiMmNhMWNlZmE2YmIyZDUyMjFjZWE4ZTYxNTI2OWU4ZDdlYWQ3Li43MGVjMjQ3NjA5OTRk
M2MwY2Q0ZWI1NTFjNjU2ODgwNGMyODJlODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkRhdGEuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTczLDYgKzc0LDE3
IEBAIHZvaWQgUGxhdGZvcm1YUlN5c3RlbTo6ZW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yCiAgICAgfSk7CiB9CiAKK3ZvaWQgUGxhdGZvcm1Y
UlN5c3RlbTo6cmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25GZWF0dXJlcyhjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgUGxhdGZvcm1YUjo6U2Vz
c2lvbk1vZGUgbW9kZSwgY29uc3QgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlw
ZT4mIGdyYW50ZWQsIGNvbnN0IFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+
JiBjb25zZW50UmVxdWlyZWQsIGNvbnN0IFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFj
ZVR5cGU+JiBjb25zZW50T3B0aW9uYWwsICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgYXV0byogeHJDb29yZGluYXRvciA9IFBsYXRmb3JtWFJTeXN0ZW06Onhy
Q29vcmRpbmF0b3IoKTsKKyAgICBpZiAoIXhyQ29vcmRpbmF0b3IpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB4ckNv
b3JkaW5hdG9yLT5yZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lvbkZlYXR1cmVzKG1fcGFnZSwgc2Vj
dXJpdHlPcmlnaW5EYXRhLCBtb2RlLCBncmFudGVkLCBjb25zZW50UmVxdWlyZWQsIGNvbnNlbnRP
cHRpb25hbCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFBsYXRmb3Jt
WFJTeXN0ZW06OmluaXRpYWxpemVUcmFja2luZ0FuZFJlbmRlcmluZygpCiB7CiAgICAgYXV0byog
eHJDb29yZGluYXRvciA9IFBsYXRmb3JtWFJTeXN0ZW06OnhyQ29vcmRpbmF0b3IoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0uaAppbmRleCBjZGFlNDUz
ZDcyY2M3MjY0MTE1ZTg4OGRhYzEzNjBiNTRkYzZkYzQ2Li5hNzVmNTZmOTU1NWMwOTdkNGUxYzg5
ZmMyMzJlYTM2NGRmMTFiZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Y
Ui9QbGF0Zm9ybVhSU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxh
dGZvcm1YUlN5c3RlbS5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1YUi5oPgogCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgUGxhdGZvcm1YUkNvb3JkaW5hdG9yOwpAQCAtNTQsNiArNTgsNyBA
QCBwcml2YXRlOgogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZW51bWVyYXRl
SW1tZXJzaXZlWFJEZXZpY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFhSRGV2aWNl
SW5mbz4mJik+JiYpOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25GZWF0dXJl
cyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBQbGF0Zm9ybVhSOjpTZXNzaW9u
TW9kZSwgY29uc3QgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4mLCBjb25z
dCBWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPiYsIGNvbnN0IFZlY3RvcjxQ
bGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+JiwgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiYmKT4mJik7CiAg
ICAgdm9pZCBpbml0aWFsaXplVHJhY2tpbmdBbmRSZW5kZXJpbmcoKTsKICAgICB2b2lkIHNodXRE
b3duVHJhY2tpbmdBbmRSZW5kZXJpbmcoKTsKICAgICB2b2lkIHJlcXVlc3RGcmFtZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhJiYpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1l
c3NhZ2VzLmluCmluZGV4IDVmNGM4YmI2MjY0NjkzNGIwNjYyZWYxM2JlMTYxZWQ1MmY1MmJiZWYu
LjYwMzJiOWJmZDA4YTE1MWUzOTU0NjNkZjY0OWNlNmZiOWIxY2I2NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0ubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5tZXNzYWdlcy5p
bgpAQCAtMjcsNiArMjcsNyBAQAogCiBtZXNzYWdlcyAtPiBQbGF0Zm9ybVhSU3lzdGVtIE5vdFJl
ZkNvdW50ZWQgewogICAgIEVudW1lcmF0ZUltbWVyc2l2ZVhSRGV2aWNlcygpIC0+IChWZWN0b3I8
V2ViS2l0OjpYUkRldmljZUluZm8+IGRldmljZXNJbmZvcykgQXN5bmMKKyAgICBSZXF1ZXN0UGVy
bWlzc2lvbk9uU2Vzc2lvbkZlYXR1cmVzKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgb3JpZ2luLCBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZSBtb2RlLCBWZWN0b3I8UGxhdGZvcm1Y
Ujo6UmVmZXJlbmNlU3BhY2VUeXBlPiBncmFudGVkLCBWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJl
bmNlU3BhY2VUeXBlPiBjb25zZW50UmVxdWlyZWQsIFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVu
Y2VTcGFjZVR5cGU+IGNvbnNlbnRPcHRpb25hbCkgLT4gKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFBs
YXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4+IHVzZXJHcmFudGVkKSBBc3luYwogICAgIElu
aXRpYWxpemVUcmFja2luZ0FuZFJlbmRlcmluZygpCiAgICAgU2h1dERvd25UcmFja2luZ0FuZFJl
bmRlcmluZygpCiAgICAgUmVxdWVzdEZyYW1lKCkgLT4gKHN0cnVjdCBQbGF0Zm9ybVhSOjpEZXZp
Y2U6OkZyYW1lRGF0YSBmcmFtZURhdGEpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IDM2MjczODYyZGY0ZGFiODA1ZGM0YjE5Y2Y3YzA2Y2IxNTlhYmVkMGEuLjNhMWUwNDlkM2Q5M2Zj
YWRjN2I3M2U5NDlkYzI4MjgxNjZkZjcwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0x
NTE5LDYgKzE1MTksMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudW1lcmF0ZUltbWVyc2l2
ZVhSRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFAKIHsKICAgICBtX3BhZ2Uu
eHJTeXN0ZW1Qcm94eSgpLmVudW1lcmF0ZUltbWVyc2l2ZVhSRGV2aWNlcyhXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4s
IFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlIG1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6
RmVhdHVyZUxpc3QmIGdyYW50ZWQsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxp
c3QmIGNvbnNlbnRSZXF1aXJlZCwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlz
dCYgY29uc2VudE9wdGlvbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgbV9wYWdlLnhyU3lzdGVtUHJveHkoKS5yZXF1ZXN0UGVybWlzc2lvbk9uU2Vzc2lv
bkZlYXR1cmVzKG9yaWdpbiwgbW9kZSwgZ3JhbnRlZCwgY29uc2VudFJlcXVpcmVkLCBjb25zZW50
T3B0aW9uYWwsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KICNlbmRpZgogCiAjaWYg
RU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMGVkYjMyY2Fh
MWJjYmY2YTJiODliNTc3MTY3YmVjYTc0YmNhMTNiYS4uYzkxZDNlODFlZTYxNTQ3ZWVlMzFlMGNm
Njg4ODRmYTg1Y2ZlODY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDUzLDYgKzQ1Myw3IEBA
IHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0VCWFIpICYmICFVU0UoT1BFTlhSKQogICAgIHZvaWQg
ZW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
UGxhdGZvcm1YUjo6SW5zdGFuY2U6OkRldmljZUxpc3QmKT4mJikgZmluYWw7CisgICAgdm9pZCBy
ZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNzaW9uRmVhdHVyZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6
OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGdyYW50ZWQgKi8sIGNvbnN0IFBsYXRmb3JtWFI6OkRl
dmljZTo6RmVhdHVyZUxpc3QmIC8qIGNvbnNlbnRSZXF1aXJlZCAqLywgY29uc3QgUGxhdGZvcm1Y
Ujo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29uc2VudE9wdGlvbmFsICovLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlz
dD4mJik+JiYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVt
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW1Q
cm94eS5jcHAKaW5kZXggYzUwODVjYmVmYmI2MGUwYjliYTJkYjEzMGVkN2Y4N2RmOGExNGM5Zi4u
MjU1MGNkOGI4MGY1NmU2NjMzMDQ4NjVkMjcyM2U1MTUzNGYxNzA5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW1Qcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW1Qcm94eS5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgIlhSRGV2aWNlSW5mby5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBQ
bGF0Zm9ybVhSOwpAQCAtNjksNiArNzAsMTEgQEAgdm9pZCBQbGF0Zm9ybVhSU3lzdGVtUHJveHk6
OmVudW1lcmF0ZUltbWVyc2l2ZVhSRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGMKICAg
ICB9KTsKIH0KIAordm9pZCBQbGF0Zm9ybVhSU3lzdGVtUHJveHk6OnJlcXVlc3RQZXJtaXNzaW9u
T25TZXNzaW9uRmVhdHVyZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1
cml0eU9yaWdpbkRhdGEsIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlIG1vZGUsIGNvbnN0IFBsYXRm
b3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIGdyYW50ZWQsIGNvbnN0IFBsYXRmb3JtWFI6OkRl
dmljZTo6RmVhdHVyZUxpc3QmIGNvbnNlbnRSZXF1aXJlZCwgY29uc3QgUGxhdGZvcm1YUjo6RGV2
aWNlOjpGZWF0dXJlTGlzdCYgY29uc2VudE9wdGlvbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UGxhdGZvcm1YUlN5c3RlbTo6UmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25GZWF0dXJlcyhz
ZWN1cml0eU9yaWdpbkRhdGEsIG1vZGUsIGdyYW50ZWQsIGNvbnNlbnRSZXF1aXJlZCwgY29uc2Vu
dE9wdGlvbmFsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFBsYXRm
b3JtWFJTeXN0ZW1Qcm94eTo6aW5pdGlhbGl6ZVRyYWNraW5nQW5kUmVuZGVyaW5nKCkKIHsKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6UGxhdGZvcm1YUlN5c3RlbTo6SW5pdGlhbGl6ZVRyYWNr
aW5nQW5kUmVuZGVyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1hSL1BsYXRmb3JtWFJTeXN0ZW1Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1hS
L1BsYXRmb3JtWFJTeXN0ZW1Qcm94eS5oCmluZGV4IDAxMzRkZTUxYTEyNTg3ZjE0MzJjZDA2NTJl
OGNjNzQ0OTZlZDQwOTIuLjkxNzhlMWU5ZWM2N2E4Y2FlZGRmNTU1MDE0MGNlMTYyYTg3YTM5MmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVt
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3Rl
bVByb3h5LmgKQEAgLTMyLDYgKzMyLDEwIEBACiAjaW5jbHVkZSAiWFJEZXZpY2VQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1YUi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citz
dHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgV2ViUGFnZTsKQEAgLTQyLDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRm
b3JtWFJTeXN0ZW1Qcm94eSgpOwogCiAgICAgdm9pZCBlbnVtZXJhdGVJbW1lcnNpdmVYUkRldmlj
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6RGV2
aWNlTGlzdCYpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVy
ZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgUGxhdGZvcm1YUjo6U2Vzc2lv
bk1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGdyYW50ZWQg
Ki8sIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGNvbnNlbnRSZXF1
aXJlZCAqLywgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29uc2Vu
dE9wdGlvbmFsICovLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGxhdGZv
cm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVRy
YWNraW5nQW5kUmVuZGVyaW5nKCk7CiAgICAgdm9pZCBzaHV0RG93blRyYWNraW5nQW5kUmVuZGVy
aW5nKCk7CiAgICAgdm9pZCByZXF1ZXN0RnJhbWUoUGxhdGZvcm1YUjo6RGV2aWNlOjpSZXF1ZXN0
RnJhbWVDYWxsYmFjayYmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>