<?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>213497</bug_id>
          
          <creation_ts>2020-06-22 17:10:54 -0700</creation_ts>
          <short_desc>Use AVRoutePickerView when available for choosing AirPlay devices</short_desc>
          <delta_ts>2020-07-21 10:46:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1665239</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-06-22 17:10:54 -0700</bug_when>
    <thetext>Use AVRoutePickerView when available for choosing AirPlay devices</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665443</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-06-23 10:48:38 -0700</bug_when>
    <thetext>*** Bug 213496 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665521</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-06-23 13:37:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/58610662&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671987</commentid>
    <comment_count>3</comment_count>
      <attachid>404405</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-15 16:51:17 -0700</bug_when>
    <thetext>Created attachment 404405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672132</commentid>
    <comment_count>4</comment_count>
      <attachid>404405</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-16 09:16:04 -0700</bug_when>
    <thetext>Comment on attachment 404405
Patch

r=me once the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672142</commentid>
    <comment_count>5</comment_count>
      <attachid>404449</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 09:29:12 -0700</bug_when>
    <thetext>Created attachment 404449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672183</commentid>
    <comment_count>6</comment_count>
      <attachid>404464</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 10:49:12 -0700</bug_when>
    <thetext>Created attachment 404464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672229</commentid>
    <comment_count>7</comment_count>
      <attachid>404464</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 13:47:42 -0700</bug_when>
    <thetext>Comment on attachment 404464
Patch

The WK1 audio and accessibility test failures are unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672233</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-16 13:52:40 -0700</bug_when>
    <thetext>Committed r264477: &lt;https://trac.webkit.org/changeset/264477&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404464.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672255</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 14:35:30 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672256</commentid>
    <comment_count>10</comment_count>
      <attachid>404485</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 14:35:30 -0700</bug_when>
    <thetext>Created attachment 404485
Build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672268</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-16 15:25:33 -0700</bug_when>
    <thetext>Committed r264482: &lt;https://trac.webkit.org/changeset/264482&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404485.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672322</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 17:43:06 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672323</commentid>
    <comment_count>13</comment_count>
      <attachid>404503</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-16 17:43:07 -0700</bug_when>
    <thetext>Created attachment 404503
Another build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672351</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-16 18:37:24 -0700</bug_when>
    <thetext>Committed r264493: &lt;https://trac.webkit.org/changeset/264493&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404503.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672500</commentid>
    <comment_count>15</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-07-17 09:05:58 -0700</bug_when>
    <thetext>Reverted r264493 for reason:

Part of an attempted fix for the build

Committed r264513: &lt;https://trac.webkit.org/changeset/264513&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672502</commentid>
    <comment_count>16</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-07-17 09:07:20 -0700</bug_when>
    <thetext>Reverted r264482 for reason:

Part of an attempted fix for the build

Committed r264514: &lt;https://trac.webkit.org/changeset/264514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672504</commentid>
    <comment_count>17</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-07-17 09:10:40 -0700</bug_when>
    <thetext>Reverted r264477 for reason:

Broke the internal build

Committed r264515: &lt;https://trac.webkit.org/changeset/264515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673184</commentid>
    <comment_count>18</comment_count>
      <attachid>404745</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-20 12:44:31 -0700</bug_when>
    <thetext>Created attachment 404745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673277</commentid>
    <comment_count>19</comment_count>
      <attachid>404771</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-20 15:46:49 -0700</bug_when>
    <thetext>Created attachment 404771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673505</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-21 10:46:34 -0700</bug_when>
    <thetext>Committed r264663: &lt;https://trac.webkit.org/changeset/264663&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404771.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404405</attachid>
            <date>2020-07-15 16:51:17 -0700</date>
            <delta_ts>2020-07-16 09:29:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213497-20200715165117.patch</filename>
            <type>text/plain</type>
            <size>75894</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyOTg3NzZjOWZjMDYx
YTg4NjAyOTI2ZWQ3ODIwY2I1OGE5NDIxMy4uMzk2ZWI0MTExY2UxNzlmN2Q5ZjJjZDE2MDQyMmE1
NmZmYWEwNzJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNy0xNSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0
ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYW4gQVZSb3V0ZVBpY2tlclZpZXcsIHRoZSBy
ZXBsYWNlbWVudCBmb3IgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciwgd2hlbgorICAgICAg
ICBpdCBpcyBhdmFpbGFibGUgdG8gYWxsb3cgYSB1c2VyIHRvIHBpY2sgYW4gQWlyUGxheSBkZXZp
Y2UuIFRvIGRvIHRoaXMsIGNyZWF0ZSBhbiAKKyAgICAgICAgQVZQbGF5YmFja1RhcmdldFBpY2tl
ciBhYnN0cmFjdCBiYXNlIGFuZCBjcmVhdGUgYSBjb25jcmV0ZSBjbGFzcyBmcm9tIHRoZSAKKyAg
ICAgICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci1zcGVjaWZpYyBjb2RlIGZyb20gTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYywgYW5kCisgICAgICAgIGNyZWF0ZSBhIG5ldyBjb25j
cmV0ZSBjbGFzcyB1c2luZyBBVlJvdXRlUGlja2VyVmlldy4KKworICAgICAgICBUZXN0ZWQgbWFu
dWFsbHkgYmVjYXVzZSB0aGVzZSBjaGFuZ2VzIHJlcXVpcmUgYW4gQWlyUGxheSBkZXZpY2UuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcik6IFBhc3MgdGhlIHZpZXcgdG8gdGhlCisgICAgICAgIHRhcmdldCBwaWNr
ZXIuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudC5oOgorCisgICAgICAgICogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5
YmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6cGxheWJhY2tUYXJn
ZXRQaWNrZXJXYXNEaXNtaXNzZWQpOiBEcml2ZS1ieSBmaXg6IHJldHVybgorICAgICAgICBlYXJs
eSBpZiB0aGVyZSBhcmUgbm8gcGVuZGluZyBwcm9taXNlcy4KKworICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6IEFkZCBuZXcgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKTogQWRkIG5ldyBwYXJhbWV0
ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5oOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTWFjLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6
OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6fkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlcjo6ZGV2aWNlUGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmF2YWlsYWJsZURldmlj
ZXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlclRhcmdldFBpY2tlcjo6Y3VycmVudERldmljZURpZENoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlcjo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNr
ZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmludmFsaWRhdGVQbGF5YmFj
a1RhcmdldHMpOgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
clRhcmdldFBpY2tlcjo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6b3V0cHV0
Q29udGV4dCk6CisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxw
ZXIgaW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKC1bV2ViQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckhlbHBlciBjbGVhckNhbGxiYWNrXSk6CisgICAgICAgICgtW1dlYkFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVj
dDpjaGFuZ2U6Y29udGV4dDpdKToKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpBVlBsYXliYWNrVGFyZ2V0UGlja2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OmNsaWVudCBjb25zdCk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXI6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjp+QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6
Om91dHB1dENvbnRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlcjo6ZGV2aWNlUGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpyb3V0ZURldGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0
YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMp
OgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpvdXRwdXRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFW
Um91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjphdmFpbGFi
bGVEZXZpY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyOjpjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpkZXZpY2VQaWNrZXJXYXNEaXNtaXNzZWQp
OgorICAgICAgICAoLVtXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBpbml0V2l0aENhbGxiYWNr
Ol0pOgorICAgICAgICAoLVtXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBkZWFsbG9jXSk6Cisg
ICAgICAgICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIGNsZWFyQ2FsbGJhY2tdKToKKyAg
ICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgcm91dGVQaWNrZXJWaWV3RGlkRW5k
UHJlc2VudGluZ1JvdXRlczpdKToKKyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxw
ZXIgbm90aWZpY2F0aW9uSGFuZGxlcjpdKToKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYzo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjp+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpl
eHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjOjpwbGF5YmFja1RhcmdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpyb3V0ZVBpY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6
c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmludmFs
aWRhdGVQbGF5YmFja1RhcmdldHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYzo6cGlja2VyV2FzRGlzbWlzc2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmF2YWlsYWJsZURldmljZXNDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmN1cnJlbnREZXZp
Y2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OmRldmljZVBpY2tlcik6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJIZWxwZXIgaW5pdFdpdGhDYWxsYmFjazpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciBjbGVhckNhbGxiYWNr
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJI
ZWxwZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
b2NrOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaDoKKwogMjAyMC0wNy0xNCAgUGVyIEFybmUg
Vm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQXZvaWQgbG9hZGlu
ZyBtZWRpYSBsaWJyYXJpZXMgaW4gRG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKSBp
ZiBub3QgbmVlZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjYmE5MTRlMWUzOGRiM2RjYzg2MTI2
N2Y5YTUwODZlNWQyMGFkNGVhLi4zZjk1YjJjMjZhYjRjYWNiZTRmYzU2YzQxYWZjYTFmMzc4NTgy
MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0xNSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0
ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbTogU29mdCBs
aW5rIEFWUm91dGVQaWNrZXJWaWV3LgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVZLaXRTUEku
aDogRGVjbGFyZSBBVlJvdXRlUGlja2VyVmlldy4KKwogMjAyMC0wNy0xMiAgUm9iIEJ1aXMgIDxy
YnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEJ1aWxkaW5nIENGTmV0d29ya1NQSSB3aXRoIHRo
ZSBtYWNPUyBCaWcgU3VyIHB1YmxpYyBTREsgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGMxZDM2NjllMmIz
OTZkYmI5Y2FjNTFhNmQ1MzBiMTNlODk2NTFiMy4uOGVlNmNjNzlhZTI3MTY2OWFkOWY5MTdlODFm
YzNjY2NkMGZlOTljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0xNSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0
ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVZpZXcgY29uc3QpOiBBZGQgbmV3IG92ZXJyaWRlLgor
CiAyMDIwLTA3LTE0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgog
CiAgICAgICAgIFsgbWFjT1MgaU9TIF0gaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3RlbGVtZXRyeS1nZW5lcmF0aW9uLWJhc2ljLWZ1bmN0aW9uYWxpdHktZGF0YWJhc2UuaHRtbCBp
cyBhIHJhcmUgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGUz
MjRlZjQyNWI1ZTI2YjcxYTQ4Y2RjNGFiYzYzNmI2NWY1MmI2ZTAuLmZiZjljZThhYWQwN2Q5ZTA1
MzU4MjIwMmQ2OTA0ZTlhODJjM2NmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAyMC0wNy0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUg
Zm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYx
MDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oOgorICAgICAgICAoV2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcjo6fldlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5t
bToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyKToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxhdGZvcm1WaWV3
IGNvbnN0KTogTmV3IG92ZXJyaWRlLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9kZXZpY2VQaWNrZXJdKTogUGFzcyB2aWV3IHRvIFdlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIgZmFjdG9yeS4KKwogMjAyMC0wNy0xMyAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92
aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDg3NTZmZWIxNDhlOTc5N2NhY2E5Y2YzNzNkOTA5
ZjBlYWUxZDg4YTkuLjBkNTY3NDkxNTRjZjk0OTNiNDAwNTVlZTkxOWZhMjZlNTE0ODA1OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vz
c2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWUKICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5j
X18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsKIAogICAgIGJvb2wgaGFzQWN0aXZlUm91
dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpOwotICAgIHRhcmdldFBpY2tlcigpLnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJvdXRlLCB1c2VE
YXJrQXBwZWFyYW5jZSk7CisgICAgdGFyZ2V0UGlja2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKGNsaWVudC5wbGF0Zm9ybVZpZXcoKSwgRmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0
ZSwgdXNlRGFya0FwcGVhcmFuY2UpOwogfQogCiB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6
OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVu
dCwgUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdGbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
aAppbmRleCA2MmJmMmFhMDlhYTk1NjljMWI3NzRmNDljZDE4NTZkMzBiOGQwNjM2Li5kN2YyOGNj
Yjc1ZTVkNzU1ZGFmNDMzNGVmNjU2Y2IxNDE5MGZhYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlldy5oIgogI2luY2x1ZGUg
IlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudC5oCmluZGV4IDIyMWM0YzMwNWY0YWU2ZTQzYjNjZmY2MDRlMDA1YTBlY2RkNmI4MmMu
LmQ3MGNhYzgzM2U1ZDVlNTEzYzFhMzRiMWNkMjU3ZmZiYzMxMGVjNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRp
YVNlc3Npb25NYW5hZ2VyQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1l
ZGlhUGxheWJhY2tUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1WaWV3LmgiCiAjaW5jbHVkZSAiUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNDMsNiArNDQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3JtVmll
dyogcGxhdGZvcm1WaWV3KCkgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1v
dGVQbGF5YmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1Jl
bW90ZVBsYXliYWNrLmNwcAppbmRleCBhZmJjNzlkYjBiN2IzMWJmNTIzOGRiYTc0ODZmZjA5OTY0
MzZjOTdkLi45NmRkMmI3ZDNlNzVlNDNjNzRmOWRjOTBkNjY3NTdiNTU4M2VmYjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBs
YXliYWNrLmNwcApAQCAtMzI0LDYgKzMyNCw5IEBAIHZvaWQgUmVtb3RlUGxheWJhY2s6OmRpc2Nv
bm5lY3QoKQogCiB2b2lkIFJlbW90ZVBsYXliYWNrOjpwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rp
c21pc3NlZCgpCiB7CisgICAgaWYgKG1fcHJvbXB0UHJvbWlzZXMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKICAgICAvLyA2LjIuMiBQcm9tcHQgdXNlciBmb3IgY2hhbmdpbmcgcmVtb3Rl
IHBsYXliYWNrIHN0YXRlIFtDdGRdCiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3JlbW90
ZS1wbGF5YmFjay8jc3RvcC1vYnNlcnZpbmctcmVtb3RlLXBsYXliYWNrLWRldmljZXMtYXZhaWxh
YmlsaXR5CiAgICAgLy8gVzNDIEVkaXRvcidzIERyYWZ0IDE1IEp1bHkgMjAxNgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4
IDEyNzgzNTM3YzRmMWYxZmM3OGY5OGVhYTEzNjg3MTA3ZTNjYTQ4ZmYuLjExMmJlZGM3OTBjZDk2
YzZmYmVlN2VkNjkzMThhZGI4ZjE4MjczNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKQEAgLTg0LDYgKzg0LDcgQEAgU09G
VF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlvUm91dGluZ0FyYml0ZXIpCiAKICNp
ZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZS
b3V0ZURldGVjdG9yKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlJvdXRlUGlj
a2VyVmlldykKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZWaWRlb1BlcmZvcm1h
bmNlTWV0cmljcykKICNlbmRpZgogCkBAIC0zMDYsNCArMzA3LDExIEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uU2V0QXV0
aG9yaXplZFRvCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG9Vc2VDYW1l
cmFJbk11bHRpcGxlRm9yZWdyb3VuZEFwcExheW91dCBzb2Z0TGlua19BVkZvdW5kYXRpb25fQVZD
YXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5k
QXBwTGF5b3V0CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKFdB
VENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZSb3V0ZURl
dGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENo
YW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVs
dGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250ZXh0T3V0cHV0
RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZPdXRw
dXRDb250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZv
dW5kYXRpb25fQVZPdXRwdXRDb250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlv
bigpCisjZW5kaWYgLy8gUExBVEZPUk0oV0FUQ0hPUykKKwogI2VuZGlmIC8vIFVTRShBVkZPVU5E
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbQppbmRleCBhMmNmYjdlNGM1OTQ0ODgwYWYyNDU3YWM0YjY3NDE1MTMzMzQ4
MjJjLi41ODQ3OGZiYTNjNzQ5NzdlNDgwNGMyMmIyODM0MGVmOTViODMyMzUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0K
QEAgLTExMSw2ICsxMTEsNyBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLAogI2lmICFQTEFURk9S
TShXQVRDSE9TKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3RvciwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFT
U19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZp
ZGVvUGVyZm9ybWFuY2VNZXRyaWNzLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUm91dGVQaWNr
ZXJWaWV3LCBQQUxfRVhQT1JUKQogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYg
IVBMQVRGT1JNKEFQUExFVFYpCkBAIC0yMjgsNCArMjI5LDkgQEAgU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91
bmRBcHBMYXlvdXQsIHZvaWQsIChBVkNhcHR1cmVTZXNzaW9uICpzZXNzaW9uKSwgKHNlc3Npb24p
KQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAm
JiAhUExBVEZPUk0oQVBQTEVUVikKIAorI2lmICFQTEFURk9STShXQVRDSE9TKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUm91
dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5T
U3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250ZXh0T3V0cHV0RGV2aWNlc0Rp
ZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKKyNlbmRpZiAvLyAh
UExBVEZPUk0oV0FUQ0hPUykKKwogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCmluZGV4
IDI3YzNjODA3ZjE5ZTFhNzVlZTU3YzA5NjNhZDJmZDFjZWU4YzQxZGQuLjg3MWM4Y2YyZjg0OTg5
OGY1N2E1YjFkNGZhMWJjMTg1NTU3ZmE4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC03NCw2ICs3NCw3IEBAIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiBAaW50ZXJmYWNlIEFWT3V0cHV0Q29udGV4dCA6IE5TT2JqZWN0
IDxOU1NlY3VyZUNvZGluZz4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJp
bmcgKmRldmljZU5hbWU7CiArIChpbnN0YW5jZXR5cGUpb3V0cHV0Q29udGV4dDsKKysgKGluc3Rh
bmNldHlwZSlpVHVuZXNBdWRpb0NvbnRleHQ7CiArIChudWxsYWJsZSBBVk91dHB1dENvbnRleHQg
KilzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7CiArIChudWxsYWJsZSBBVk91
dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0Rm9ySUQ6KE5TU3RyaW5nICopSUQ7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBCT09MIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKaW5kZXggZjc3ZjYwMjU0YTE1
MjgzNWE1MDk1Y2M2NDdmOTNiNmIwYjRmMDYzYy4uYzRiM2Q0ZDRkMTZkOWQ1OGQ0MGNjZmExOGJi
ZWUwNWVhMDdjZjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktp
dFNQSS5oCkBAIC0yMzIsNiArMjMyLDggQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QVZLaXQvQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlci5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfUHJpdmF0ZS5o
PgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfV2ViS2l0T25seS5oPgogCiAjZWxz
ZQogCkBAIC0yNTMsNiArMjU1LDIxIEBAIE5TX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfMTEpCiAK
IEBlbmQKIAorQGludGVyZmFjZSBBVlJvdXRlUGlja2VyVmlldyA6IE5TVmlldworCistICh2b2lk
KXNob3dSb3V0ZVBpY2tpbmdDb250cm9sc0Zvck91dHB1dENvbnRleHQ6KEFWT3V0cHV0Q29udGV4
dCAqKW91dHB1dENvbnRleHQgcmVsYXRpdmVUb1JlY3Q6KE5TUmVjdClwb3NpdGlvbmluZ1JlY3Qg
b2ZWaWV3OihOU1ZpZXcgKilwb3NpdGlvbmluZ1ZpZXc7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgd2VhaykgaWQ8QVZSb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZT4gZGVsZWdhdGU7
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByb3V0ZUxpc3RBbHdheXNIYXNEYXJrQXBwZWFy
YW5jZTsKKworQGVuZAorCitAcHJvdG9jb2wgQVZSb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZSA8TlNP
YmplY3Q+CitAb3B0aW9uYWwKKy0gKHZvaWQpcm91dGVQaWNrZXJWaWV3V2lsbEJlZ2luUHJlc2Vu
dGluZ1JvdXRlczooQVZSb3V0ZVBpY2tlclZpZXcgKilyb3V0ZVBpY2tlclZpZXc7CistICh2b2lk
KXJvdXRlUGlja2VyVmlld0RpZEVuZFByZXNlbnRpbmdSb3V0ZXM6KEFWUm91dGVQaWNrZXJWaWV3
ICopcm91dGVQaWNrZXJWaWV3OworQGVuZAorCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2Vu
ZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRl
eCA0NGVhMDhmNjQyMTIzNjJkYzMxMTMxZDg0NjdhZWUyNzUxNzRhZjdlLi45MjcxYWE2NmQ3Zjll
NWRmNTg1ZmY0NTVmNjZlMTE0ZDE1NmQ2NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAg
LTI3Myw2ICsyNzMsOCBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0gQG5vLXVuaWZ5CiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gQG5v
LXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gQG5v
LXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQ
YXJzZXJNSU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1YzY1MDBhZmVmNWFmOTlhMTY5NjJmN2YwMWRl
OTk3MDBkNjc4NDQuLmE2OGQ0M2QyZDJhYmJmMGUyMmZhY2ViOGEyMzY0NzhjNTUzNjc5OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTExOCw2ICsxMTgsNyBAQAogCQkwNzM3OTRFQzE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJ
Y2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3Mzc5NEVBMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oICovOyB9OwogCQkw
NzM3OTRGQTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1
ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDcz
Nzk0RkUxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0
NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi87IH07CisJCTA3MzhFNUVDMjQ5OTgzOTAwMERBMTAx
QyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEyNDk5NjhBRDAw
REExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi87
IH07CiAJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3
QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8q
IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVm
ZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1w
bGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmgg
Ki87IH07CkBAIC0yMDQsNiArMjA1LDcgQEAKIAkJMDdDMDQ2Q0IxRTQyNjQxMzAwNzIwMUU3IC8q
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdDMUMwRTAxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oICovOyB9OwogCQkwN0MxQzBFNTFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwN0MxQzBFNDFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8qIEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwN0NFNzdENTE2NzEyQTZBMDBDNTVBNDcg
LyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDRTc3RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwN0QxMkY1QzIzREU1NDNGMDA4MDk5N0QgLyogSVNPVlRUQ3Vl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDg3MUM2
NTFGQjUyQjY3MDBGMEI5NjUgLyogSVNPVlRUQ3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdENjM3NDAxQkIwQjExMzAwMjU2Q0U5IC8qIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNTU2OSw2ICs1NTcxLDkgQEAKIAkJMDczNzk0RjQxOUY1ODY0RTAw
RTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzM3OTRGNzE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJz
TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENOb3RpZmll
cnNNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RjgxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDTm90aWZpZXJzTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwNzM4RTVFODI0OTk2OEFDMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
clRhcmdldFBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzhFNUVB
MjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlj
a2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
clRhcmdldFBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczOEU1RUIy
NDk5NjkwOTAwREExMDFDIC8qIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVZQbGF5YmFja1RhcmdldFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9TYW1wbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9TYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDczQjg3NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTY4Myw2ICs1Njg4LDgg
QEAKIAkJMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFs
dGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNh
Y2hlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QzhBRDEyMUQw
NzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBVkFzc2V0TUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZp
ZXdUYXJnZXRQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVlJvdXRlUGlja2VyVmll
d1RhcmdldFBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdDQjlFNzEy
NDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RDYzNzNGMUJCMEIx
MTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjczMzksNiArMjczNDYsMTEg
QEAKIAkJCQkwN0M4QUQxMTFEMDczRDYzMDA4N0M1Q0UgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUu
bW0gKi8sCiAJCQkJQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5oICovLAogCQkJCUNERUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tV
dGlsaXRpZXMubW0gKi8sCisJCQkJMDczOEU1RTgyNDk5NjhBQzAwREExMDFDIC8qIEFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaCAqLywKKwkJCQkwNzM4RTVFQTI0OTk2
OEFEMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5t
bSAqLywKKwkJCQkwNzM4RTVFQjI0OTk2OTA5MDBEQTEwMUMgLyogQVZQbGF5YmFja1RhcmdldFBp
Y2tlci5oICovLAorCQkJCTA3Q0I5RTcxMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlci5oICovLAorCQkJCTA3Q0I5RTZGMjQ5QzIyNkMwMEE2OTQ4OSAvKiBB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbSAqLywKIAkJCQlDRDExQjNERjIyN0NBQUE5
MDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCUNE
MTFCM0UwMjI3Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
Lm1tICovLAogCQkJCUNENzhBMkVFMUY3NTY0ODYwMERFMzcxQiAvKiBDRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQy5oICovLApAQCAtMzQ0NzEsNiArMzQ0ODMsOCBAQAogCQkJCUNE
RUNBODlBMUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDREM2NzUyMjFFQUVBOUI3MDA3MjdDODQgLyogQVZBdWRpb1Nlc3Npb25D
YXB0dXJlRGV2aWNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDM2M0UzMTgxQTFD
REMwMEMwNzRBNSAvKiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMDczOEU1RUMyNDk5ODM5MDAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQkwN0NCOUU3MjI0OUMzNkIyMDBB
Njk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRDExQjNFMTIyN0NFNkYzMDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5
cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzM2RjYxMTdGOUY2NDcwMERERENEMCAv
KiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcwMzYz
RTcxODFBMUNEQzAwQzA3NEE1IC8qIEFWVmlkZW9DYXB0dXJlU291cmNlLm1tIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCmluZGV4IGEyMjI4Y2YyOTQxNzIwYzdmZmNm
YzU5MjVkMzdjYjkxMmViY2UyZDguLmYyMzJiNjhiYmMyN2QwMDk0NDU1ZWYwYTc0NjAwNDZiYWM0
NjA2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZv
aWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6YWRkUGVuZGluZ0FjdGlvbihQZW5kaW5nQWN0
aW9uRmxhZ3MgYWN0aW9uKQogICAgIG1fcGVuZGluZ0FjdGlvblRpbWVyLnN0YXJ0T25lU2hvdChw
ZW5kaW5nQWN0aW9uSW50ZXJ2YWwpOwogfQogCi12b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sLCBib29s
KQordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCwgYm9vbCkKIHsKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRleCA0OTc0
ODRhOTEwODEzNWIyNzNjMTVjZTIwMDc0ZmEwZmJmMmVmZmE3Li5iMzA3NTYwZWVkOTEwYzViNTYx
NzU1ZDM2NjdmMDQxODg4NTc5YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogCisjaW5j
bHVkZSAiUGxhdGZvcm1WaWV3LmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAKQEAgLTUyLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUs
IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpOworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0Fj
dGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BN
b25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZTE4NmEyN2FmMzMxMDBkZWJkOTU1YjUxYTU4ZjkzMTU2MTMzNmU4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5oCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSAiQVZQ
bGF5YmFja1RhcmdldFBpY2tlci5oIgorCitPQkpDX0NMQVNTIEFWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXI7CitPQkpDX0NMQVNTIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxw
ZXI7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlciBmaW5hbCA6IHB1YmxpYyBBVlBsYXliYWNrVGFyZ2V0UGlja2Vy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKTsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKEFWUGxh
eWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYpOworICAgIHZpcnR1YWwgfkFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIoKTsKKworICAgIHZvaWQgYXZhaWxhYmxlRGV2aWNl
c0RpZENoYW5nZSgpOworICAgIHZvaWQgY3VycmVudERldmljZURpZENoYW5nZSgpOworCitwcml2
YXRlOgorICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqLCBjb25zdCBG
bG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2Up
IGZpbmFsOworICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmlu
YWw7CisgICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAg
IHZvaWQgaW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIGJvb2wgZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGUoKSBmaW5hbDsKKyAgICBBVk91dHB1dENvbnRleHQqIG91
dHB1dENvbnRleHQoKSBmaW5hbDsKKworICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIg
KmRldmljZVBpY2tlcigpOworCisgICAgUmV0YWluUHRyPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXI+IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdlYkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXI+IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJEZWxlZ2F0ZTsKKyAgICBib29sIG1fc2hvd2luZ01lbnUgeyBmYWxzZSB9OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNr
ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY1YThkMDZjMGEzZmJjNmRiNGNlOTBiMmIxY2UyNmYxNzk3OTgyNmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
Vk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tCkBAIC0wLDAgKzEsMjAw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmgiCisKKyNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiTG9n
Z2luZy5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPG9iamMvcnVu
dGltZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CisKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK1NPRlRMSU5LX0FWS0lUX0ZSQU1FV09SSygp
CitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXIpCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgTlNTdHJpbmcgKmV4
dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZp
Y2VBdmFpbGFibGUiOworc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1dERldmljZVBpY2tl
ZEtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsKKworQGludGVyZmFjZSBX
ZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIDogTlNPYmplY3QgeworICAgIFdl
YWtQdHI8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcj4gbV9jYWxsYmFj
azsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcj4mJiljYWxsYmFjazsKKy0gKHZvaWQp
Y2xlYXJDYWxsYmFjazsKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0
aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRl
eHQ6KHZvaWQgKiljb250ZXh0OworQGVuZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXJUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGll
bnQpCisgICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKKyAgICAsIG1fb3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazptYWtlV2Vha1B0cigq
dGhpcyldKSkKK3sKK30KKworQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tl
cjo6fkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIoKQoreworICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUgY2xlYXJDYWxsYmFja107Cit9CisK
K0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgKkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcigpCit7CisgICAgaWYgKCFnZXRBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyQ2xhc3MoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAoIW1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIpIHsKKyAgICAgICAgUmV0YWluUHRy
PEFWT3V0cHV0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVk91dHB1dENv
bnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgbV9vdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlciA9IGFkb3B0TlMoW2FsbG9jQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckluc3RhbmNl
KCkgaW5pdFdpdGhPdXRwdXRDb250ZXh0OmNvbnRleHQuZ2V0KCldKTsKKworICAgICAgICBbbV9v
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBhZGRPYnNlcnZlcjptX291dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9yS2V5UGF0aDpleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZUtleU5hbWUgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3
IGNvbnRleHQ6bnVsbHB0cl07CisgICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVy
LmdldCgpIGFkZE9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5n
ZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZSBvcHRpb25z
Ok5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKKworICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICBpZiAobV9vdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKS5leHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJs
ZSkKKyAgICAgICAgICAgIGF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisgICAgfQorCisgICAgcmV0dXJuIG1fb3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCk7Cit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpCit7
CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+YXZhaWxhYmxlRGV2aWNlc0No
YW5nZWQoKTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlj
a2VyOjpjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAoY2xpZW50KCkpCisgICAg
ICAgIGNsaWVudCgpLT5jdXJyZW50RGV2aWNlQ2hhbmdlZCgpOworfQorCit2b2lkIEFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cihOU1ZpZXcgKiwgY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwgYm9vbCBoYXNBY3RpdmVSb3V0
ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkKK3sKKyAgICBpZiAoIWNsaWVudCgpIHx8IG1fc2hv
d2luZ01lbnUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2hvd2luZ01lbnUgPSB0cnVlOwor
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBib29sIHRhcmdl
dFNlbGVjdGVkID0gW2RldmljZVBpY2tlcigpIHNob3dNZW51Rm9yUmVjdDpsb2NhdGlvbiBhcHBl
YXJhbmNlTmFtZToodXNlRGFya0FwcGVhcmFuY2UgPyBOU0FwcGVhcmFuY2VOYW1lVmlicmFudERh
cmsgOiBOU0FwcGVhcmFuY2VOYW1lVmlicmFudExpZ2h0KSBhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxl
Y3RlZE91dHB1dERldmljZTohaGFzQWN0aXZlUm91dGVdOworICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAorCisgICAgaWYgKCFjbGllbnQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKHRhcmdldFNlbGVjdGVkICE9IGhhc0FjdGl2ZVJvdXRlKQorICAgICAgICBjdXJy
ZW50RGV2aWNlRGlkQ2hhbmdlKCk7CisgICAgZWxzZSBpZiAoIXRhcmdldFNlbGVjdGVkICYmICFo
YXNBY3RpdmVSb3V0ZSkKKyAgICAgICAgY2xpZW50KCktPnBpY2tlcldhc0Rpc21pc3NlZCgpOwor
CisgICAgbV9zaG93aW5nTWVudSA9IGZhbHNlOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0
cygpCit7CisgICAgZGV2aWNlUGlja2VyKCk7Cit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlcjo6c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQor
eworICAgIC8vIE5vdGhpbmcgdG8gZG8sIEFpclBsYXkgdGFrZXMgY2FyZSBvZiB0aGlzIGF1dG9t
YXRpY2FsbHkuCit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBp
Y2tlcjo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpCit7CisgICAgaWYgKG1fb3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIpIHsKKyAgICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXIgcmVtb3ZlT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdl
dCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1lXTsKKyAg
ICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgcmVtb3ZlT2JzZXJ2ZXI6bV9vdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxP
dXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXTsKKyAgICAgICAgbV9vdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlciA9IG51bGxwdHI7CisgICAgfQorICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsK
K30KKworYm9vbCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpleHRl
cm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgpCit7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KKyAgICByZXR1cm4gZGV2aWNlUGlja2VyKCkuZXh0ZXJuYWxPdXRwdXRE
ZXZpY2VBdmFpbGFibGU7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECit9
CisKK0FWT3V0cHV0Q29udGV4dCAqIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQ
aWNrZXI6Om91dHB1dENvbnRleHQoKQoreworICAgIHJldHVybiBtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyID8gW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgb3V0cHV0Q29u
dGV4dF0gOiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0BpbXBsZW1l
bnRhdGlvbiBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDYWxsYmFjazooV2Vha1B0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyPiYmKWNhbGxiYWNrCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBp
bml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCljbGVhckNhbGxiYWNr
Cit7CisgICAgbV9jYWxsYmFjayA9IG5pbDsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25h
cnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBVTlVTRURfUEFSQU0o
b2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0oY2hhbmdlKTsKKyAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7CisKKyAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxl
S2V5TmFtZV0gJiYgIVtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmlj
ZVBpY2tlZEtleU5hbWVdKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBrZXlQYXRoID0gcmV0YWlu
UHRyKGtleVBhdGgpXSB7CisgICAgICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0
cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV0pCisgICAgICAgICAgICBtX2NhbGxiYWNrLT5hdmFp
bGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1
YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWVdKQorICAgICAgICAg
ICAgbV9jYWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5nZSgpOworICAgIH0pOworfQorQGVu
ZAorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
UGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Y2Q5YWI5NmIzNDFjYTdiNjg5YTJlNzc4NzFiNDdlNTA5ZDFiM2Y0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZQ
bGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworT0JKQ19DTEFT
UyBBVk91dHB1dENvbnRleHQ7CitPQkpDX0NMQVNTIE5TVmlldzsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBGbG9hdFJlY3Q7CisKK2NsYXNzIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QVZQbGF5YmFja1RhcmdldFBpY2tlcj4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFWUGxheWJh
Y2tUYXJnZXRQaWNrZXIpOworcHVibGljOgorICAgIGNsYXNzIENsaWVudCA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxDbGllbnQ+IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgfkNs
aWVudCgpID0gZGVmYXVsdDsKKworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lkIHBp
Y2tlcldhc0Rpc21pc3NlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGF2YWlsYWJsZURl
dmljZXNDaGFuZ2VkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgY3VycmVudERldmljZUNo
YW5nZWQoKSA9IDA7CisgICAgfTsKKworICAgIGV4cGxpY2l0IEFWUGxheWJhY2tUYXJnZXRQaWNr
ZXIoQ2xpZW50JiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoJmNsaWVu
dCkpCisgICAgeworICAgIH0KKyAgICB2aXJ0dWFsIH5BVlBsYXliYWNrVGFyZ2V0UGlja2VyKCkg
PSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihO
U1ZpZXcgKiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVz
ZURhcmtBcHBlYXJhbmNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0aW5nTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcE1vbml0b3JpbmdQ
bGF5YmFja1RhcmdldHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQbGF5YmFj
a1RhcmdldHMoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlKCkgPSAwOworCisgICAgdmlydHVhbCBBVk91dHB1dENvbnRleHQqIG91dHB1dENvbnRl
eHQoKSA9IDA7CisKKyAgICBXZWFrUHRyPEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudD4g
Y2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWFr
UHRyPEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudD4gbV9jbGllbnQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJW
aWV3VGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg3OGRkN2Y3NTNmNWRjNDMwNjcyM2E1Y2Yx
MTE0YTAwOThjMmZlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisK
KyNpbmNsdWRlICJBVlBsYXliYWNrVGFyZ2V0UGlja2VyLmgiCisKK09CSkNfQ0xBU1MgQVZSb3V0
ZURldGVjdG9yOworT0JKQ19DTEFTUyBBVlJvdXRlUGlja2VyVmlldzsKK09CSkNfQ0xBU1MgV2Vi
QVZSb3V0ZVBpY2tlclZpZXdIZWxwZXI7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIgZmluYWwgOiBwdWJsaWMgQVZQbGF5YmFja1Rh
cmdldFBpY2tlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIpOworcHVibGljOgorICAg
IGV4cGxpY2l0IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKEFWUGxheWJhY2tUYXJnZXRQ
aWNrZXI6OkNsaWVudCYpOworICAgIHZpcnR1YWwgfkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlj
a2VyKCk7CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKKworICAgIHZvaWQg
YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOworICAgIHZvaWQgY3VycmVudERldmljZURpZENo
YW5nZSgpOworICAgIHZvaWQgZGV2aWNlUGlja2VyV2FzRGlzbWlzc2VkKCk7CisKK3ByaXZhdGU6
CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICosIGNvbnN0IEZsb2F0
UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgZmlu
YWw7CisgICAgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsK
KyAgICB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9p
ZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgYm9vbCBleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZSgpIGZpbmFsOworICAgIEFWT3V0cHV0Q29udGV4dCAqb3V0cHV0
Q29udGV4dCgpIGZpbmFsOworCisgICAgQVZSb3V0ZVBpY2tlclZpZXcgKmRldmljZVBpY2tlcigp
OworICAgIEFWUm91dGVEZXRlY3RvciAqcm91dGVEZXRlY3RvcigpOworICAgIEFWT3V0cHV0Q29u
dGV4dCAqIG91dHB1dENvbnRleHRJbnRlcm5hbCgpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUo
KSBjb25zdDsKKworICAgIFJldGFpblB0cjxBVlJvdXRlRGV0ZWN0b3I+IG1fcm91dGVEZXRlY3Rv
cjsKKyAgICBSZXRhaW5QdHI8QVZSb3V0ZVBpY2tlclZpZXc+IG1fcm91dGVQaWNrZXJWaWV3Owor
ICAgIFJldGFpblB0cjxBVk91dHB1dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKKyAgICBSZXRh
aW5QdHI8V2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXI+IG1fcm91dGVQaWNrZXJWaWV3RGVsZWdh
dGU7CisgICAgYm9vbCBtX2hhZEFjdGl2ZVJvdXRlIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllYzY3NDE0MjcxM2JmMDdmZjhmYmY2NjViNzRj
MmNjNjY0MjU5NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5t
bQpAQCAtMCwwICsxLDI3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaCIKKworI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0
ICJMb2dnaW5nLmgiCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZSb3V0ZURldGVjdG9yLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZv
dW5kYXRpb25TUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KKyNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CisKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgorI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK1NPRlRM
SU5LX0FWS0lUX0ZSQU1FV09SSygpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFW
Um91dGVQaWNrZXJWaWV3KQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGludGVyZmFj
ZSBXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciA6IE5TT2JqZWN0IDxBVlJvdXRlUGlja2VyVmll
d0RlbGVnYXRlPiB7CisgICAgV2Vha1B0cjxBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcj4g
bV9jYWxsYmFjazsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KFdlYWtQ
dHI8QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI+JiYpY2FsbGJhY2s7CistICh2b2lkKWNs
ZWFyQ2FsbGJhY2s7CistICh2b2lkKW5vdGlmaWNhdGlvbkhhbmRsZXI6KE5TTm90aWZpY2F0aW9u
ICopbm90aWZpY2F0aW9uOworLSAodm9pZClyb3V0ZVBpY2tlclZpZXdEaWRFbmRQcmVzZW50aW5n
Um91dGVzOihBVlJvdXRlUGlja2VyVmlldyAqKXJvdXRlUGlja2VyVmlldzsKK0BlbmQKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitib29sIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpp
c0F2YWlsYWJsZSgpCit7CisgICAgc3RhdGljIGJvb2wgYXZhaWxhYmxlOworICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBmbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdICgpIHsKKyAg
ICAgICAgaWYgKCFQQUw6OmdldEFWUm91dGVQaWNrZXJWaWV3Q2xhc3MoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBpZiAoYXV0byBwaWNrZXIgPSBhZG9wdE5TKFthbGxvY0FWUm91
dGVQaWNrZXJWaWV3SW5zdGFuY2UoKSBpbml0XSkpCisgICAgICAgICAgICBhdmFpbGFibGUgPSBb
cGlja2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hvd1JvdXRlUGlja2luZ0NvbnRy
b2xzRm9yT3V0cHV0Q29udGV4dDpyZWxhdGl2ZVRvUmVjdDpvZlZpZXc6KV07CisgICAgfSk7CisK
KyAgICByZXR1cm4gYXZhaWxhYmxlOworfQorCitBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tl
cjo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6
Q2xpZW50JiBjbGllbnQpCisgICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKKyAg
ICAsIG1fcm91dGVQaWNrZXJWaWV3RGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWUm91dGVQaWNrZXJW
aWV3SGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQor
eworICAgIEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKK30KKworQVZSb3V0ZVBpY2tlclZpZXdUYXJn
ZXRQaWNrZXI6On5BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcigpCit7CisgICAgW21fcm91
dGVQaWNrZXJWaWV3RGVsZWdhdGUgY2xlYXJDYWxsYmFja107Cit9CisKK0FWT3V0cHV0Q29udGV4
dCAqIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpvdXRwdXRDb250ZXh0SW50ZXJuYWwo
KQoreworICAgIGlmICghbV9vdXRwdXRDb250ZXh0KSB7CisgICAgICAgIG1fb3V0cHV0Q29udGV4
dCA9IFtQQUw6OmdldEFWT3V0cHV0Q29udGV4dENsYXNzKCkgaVR1bmVzQXVkaW9Db250ZXh0XTsK
KyAgICAgICAgQVNTRVJUKG1fb3V0cHV0Q29udGV4dCk7CisgICAgICAgIGlmIChtX291dHB1dENv
bnRleHQpCisgICAgICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IGFkZE9ic2VydmVyOm1fcm91dGVQaWNrZXJWaWV3RGVsZWdhdGUuZ2V0KCkgc2VsZWN0b3I6QHNl
bGVjdG9yKG5vdGlmaWNhdGlvbkhhbmRsZXI6KSBuYW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9B
Vk91dHB1dENvbnRleHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2JqZWN0
Om1fb3V0cHV0Q29udGV4dC5nZXQoKV07CisgICAgfQorCisgICAgcmV0dXJuIG1fb3V0cHV0Q29u
dGV4dC5nZXQoKTsKK30KKworQVZSb3V0ZVBpY2tlclZpZXcgKkFWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyOjpkZXZpY2VQaWNrZXIoKQoreworICAgIGlmICghbV9yb3V0ZVBpY2tlclZpZXcp
IHsKKyAgICAgICAgbV9yb3V0ZVBpY2tlclZpZXcgPSBhZG9wdE5TKFthbGxvY0FWUm91dGVQaWNr
ZXJWaWV3SW5zdGFuY2UoKSBpbml0XSk7CisgICAgICAgIFttX3JvdXRlUGlja2VyVmlldyBzZXRE
ZWxlZ2F0ZTptX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlLmdldCgpXTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gbV9yb3V0ZVBpY2tlclZpZXcuZ2V0KCk7Cit9CisKK0FWUm91dGVEZXRlY3RvciAqQVZS
b3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OnJvdXRlRGV0ZWN0b3IoKQoreworICAgIGlmICgh
bV9yb3V0ZURldGVjdG9yKSB7CisgICAgICAgIG1fcm91dGVEZXRlY3RvciA9IGFkb3B0TlMoW1BB
TDo6YWxsb2NBVlJvdXRlRGV0ZWN0b3JJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjptX3JvdXRlUGlja2Vy
Vmlld0RlbGVnYXRlLmdldCgpIHNlbGVjdG9yOkBzZWxlY3Rvcihub3RpZmljYXRpb25IYW5kbGVy
OikgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0
ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX3JvdXRlRGV0ZWN0b3Iu
Z2V0KCldOworICAgICAgICBpZiAoW21fcm91dGVEZXRlY3RvciBtdWx0aXBsZVJvdXRlc0RldGVj
dGVkXSkKKyAgICAgICAgICAgIGF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gbV9yb3V0ZURldGVjdG9yLmdldCgpOworfQorCit2b2lkIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICp2aWV3
LCBjb25zdCBGbG9hdFJlY3QmIHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBib29sIGhhc0FjdGl2
ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKQoreworICAgIGlmICghY2xpZW50KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gKnBpY2tlciA9IGRldmljZVBpY2tlcigpOworICAg
IGlmICh1c2VEYXJrQXBwZWFyYW5jZSkKKyAgICAgICAgcGlja2VyLnJvdXRlTGlzdEFsd2F5c0hh
c0RhcmtBcHBlYXJhbmNlID0gWUVTOworCisgICAgbV9oYWRBY3RpdmVSb3V0ZSA9IGhhc0FjdGl2
ZVJvdXRlOworCisgICAgYXV0byByZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9IFt2aWV3LndpbmRv
dyBjb252ZXJ0UmVjdEZyb21TY3JlZW46TlNNYWtlUmVjdChyZWN0SW5TY3JlZW5Db29yZGluYXRl
cy54KCksIHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLnkoKSwgMS4wLCAxLjApXTsKKyAgICBhdXRv
IHJlY3RJblZpZXdDb29yZGluYXRlcyA9IFt2aWV3IGNvbnZlcnRSZWN0OnJlY3RJbldpbmRvd0Nv
b3JkaW5hdGVzIGZyb21WaWV3OnZpZXddOworICAgIFtwaWNrZXIgc2hvd1JvdXRlUGlja2luZ0Nv
bnRyb2xzRm9yT3V0cHV0Q29udGV4dDpvdXRwdXRDb250ZXh0SW50ZXJuYWwoKSByZWxhdGl2ZVRv
UmVjdDpyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgb2ZWaWV3OnZpZXddOworfQorCit2b2lkIEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1Rhcmdl
dHMoKQoreworICAgIHJvdXRlRGV0ZWN0b3IoKS5yb3V0ZURldGVjdGlvbkVuYWJsZWQgPSBZRVM7
Cit9CisKK3ZvaWQgQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5n
UGxheWJhY2tUYXJnZXRzKCkKK3sKKyAgICBpZiAobV9yb3V0ZURldGVjdG9yKQorICAgICAgICBb
bV9yb3V0ZURldGVjdG9yIHNldFJvdXRlRGV0ZWN0aW9uRW5hYmxlZDpOT107Cit9CisKK2Jvb2wg
QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlKCkKK3sKKyAgICByZXR1cm4gcm91dGVEZXRlY3RvcigpLm11bHRpcGxlUm91dGVzRGV0ZWN0
ZWQ7Cit9CisKK0FWT3V0cHV0Q29udGV4dCAqIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
OjpvdXRwdXRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9vdXRwdXRDb250ZXh0LmdldCgpOwor
fQorCit2b2lkIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlUGxheWJh
Y2tUYXJnZXRzKCkKK3sKKyAgICBpZiAobV9yb3V0ZURldGVjdG9yKSB7CisgICAgICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9yb3V0ZVBp
Y2tlclZpZXdEZWxlZ2F0ZS5nZXQoKSBuYW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlJvdXRl
RGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2Jq
ZWN0Om1fcm91dGVEZXRlY3Rvci5nZXQoKV07CisgICAgICAgIFttX3JvdXRlRGV0ZWN0b3Igc2V0
Um91dGVEZXRlY3Rpb25FbmFibGVkOk5PXTsKKyAgICAgICAgbV9yb3V0ZVBpY2tlclZpZXcgPSBu
dWxscHRyOworICAgIH0KKworICAgIGlmIChtX291dHB1dENvbnRleHQpIHsKKyAgICAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX3JvdXRl
UGlja2VyVmlld0RlbGVnYXRlLmdldCgpIG5hbWU6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWT3V0
cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bV9v
dXRwdXRDb250ZXh0LmdldCgpXTsKKyAgICAgICAgbV9vdXRwdXRDb250ZXh0ID0gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBpZiAobV9yb3V0ZVBpY2tlclZpZXcpIHsKKyAgICAgICAgW21fcm91dGVQ
aWNrZXJWaWV3IHNldERlbGVnYXRlOm5pbF07CisgICAgICAgIG1fcm91dGVQaWNrZXJWaWV3ID0g
bnVsbHB0cjsKKyAgICB9CisgICAgY3VycmVudERldmljZURpZENoYW5nZSgpOworfQordm9pZCBB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgp
Cit7CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+YXZhaWxhYmxlRGV2aWNl
c0NoYW5nZWQoKTsKK30KKworYm9vbCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aGFz
QWN0aXZlUm91dGUoKSBjb25zdAoreworICAgIGlmICghbV9vdXRwdXRDb250ZXh0KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKV0gJiYgW21fb3V0
cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZXMpXSYm
IFttX291dHB1dENvbnRleHQgc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXNdKSB7CisgICAg
ICAgIGZvciAoQVZPdXRwdXREZXZpY2UgKm91dHB1dERldmljZSBpbiBbbV9vdXRwdXRDb250ZXh0
IG91dHB1dERldmljZXNdKSB7CisgICAgICAgICAgICBpZiAob3V0cHV0RGV2aWNlLmRldmljZUZl
YXR1cmVzICYgKEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0
dXJlQXVkaW8pKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChbbV9vdXRwdXRDb250ZXh0IHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iob3V0cHV0RGV2aWNlKV0pIHsKKyAgICAgICAgaWYg
KGF1dG8gKm91dHB1dERldmljZSA9IFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlXSkKKyAg
ICAgICAgICAgIHJldHVybiBvdXRwdXREZXZpY2UuZGV2aWNlRmVhdHVyZXMgJiAoQVZPdXRwdXRE
ZXZpY2VGZWF0dXJlVmlkZW8gfCBBVk91dHB1dERldmljZUZlYXR1cmVBdWRpbyk7CisgICAgfQor
CisgICAgcmV0dXJuIFttX291dHB1dENvbnRleHQgZGV2aWNlTmFtZV07Cit9CisKK3ZvaWQgQVZS
b3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKQorewor
ICAgIGF1dG8gaGF2ZUFjdGl2ZVJvdXRlID0gaGFzQWN0aXZlUm91dGUoKTsKKyAgICBpZiAoIWNs
aWVudCgpIHx8IG1faGFkQWN0aXZlUm91dGUgPT0gaGF2ZUFjdGl2ZVJvdXRlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2hhZEFjdGl2ZVJvdXRlID0gaGF2ZUFjdGl2ZVJvdXRlOworICAgIGNs
aWVudCgpLT5jdXJyZW50RGV2aWNlQ2hhbmdlZCgpOworfQorCit2b2lkIEFWUm91dGVQaWNrZXJW
aWV3VGFyZ2V0UGlja2VyOjpkZXZpY2VQaWNrZXJXYXNEaXNtaXNzZWQoKQoreworICAgIGlmICgh
Y2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjbGllbnQoKS0+cGlja2VyV2Fz
RGlzbWlzc2VkKCk7CisgICAgY3VycmVudERldmljZURpZENoYW5nZSgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJBVlJvdXRlUGlja2VyVmlld0hl
bHBlcgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXI+JiYpY2FsbGJhY2sKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIG1fY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWNsZWFyQ2Fs
bGJhY2sKK3sKKyAgICBtX2NhbGxiYWNrID0gbmlsOworfQorCistICh2b2lkKXJvdXRlUGlja2Vy
Vmlld0RpZEVuZFByZXNlbnRpbmdSb3V0ZXM6KEFWUm91dGVQaWNrZXJWaWV3ICopcm91dGVQaWNr
ZXJWaWV3Cit7CisgICAgVU5VU0VEX1BBUkFNKHJvdXRlUGlja2VyVmlldyk7CisKKyAgICBpZiAo
IW1fY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nl
bGYsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildIHsKKyAgICAgICAgaWYgKCFtX2Nh
bGxiYWNrKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY2FsbGJhY2stPmRldmlj
ZVBpY2tlcldhc0Rpc21pc3NlZCgpOworICAgIH0pOworfQorCistICh2b2lkKW5vdGlmaWNhdGlv
bkhhbmRsZXI6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgVU5VU0VEX1BB
UkFNKG5vdGlmaWNhdGlvbik7CisKKyAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgIHJldHVy
bjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3NlbGYsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5Q
dHIoc2VsZiksIG5vdGlmaWNhdGlvbiA9IHJldGFpblB0cihub3RpZmljYXRpb24pXSB7CisgICAg
ICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
W1tub3RpZmljYXRpb24gbmFtZV0gaXNFcXVhbFRvU3RyaW5nOlBBTDo6Z2V0X0FWRm91bmRhdGlv
bl9BVk91dHB1dENvbnRleHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCldKQor
ICAgICAgICAgICAgbV9jYWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5nZSgpOworICAgICAg
ICBlbHNlIGlmIChbW25vdGlmaWNhdGlvbiBuYW1lXSBpc0VxdWFsVG9TdHJpbmc6UEFMOjpnZXRf
QVZGb3VuZGF0aW9uX0FWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFu
Z2VOb3RpZmljYXRpb24oKV0pCisgICAgICAgICAgICBtX2NhbGxiYWNrLT5hdmFpbGFibGVEZXZp
Y2VzRGlkQ2hhbmdlKCk7CisgICAgfSk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKaW5kZXggNjQyZGY2NWRmYzg3NzcwNGIz
YjA1ZjJlODM2OGZlYzNjNzhjODFlZi4uZmQ4MTVhMDBkYTNmMGMxNzc0ZmY1NTZmMGY0ZTg5YzAz
YmQ5OGE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOCwzNiArMjgsMzYgQEAKIAogI2lmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW5jbHVkZSAi
QVZQbGF5YmFja1RhcmdldFBpY2tlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlcjsKLU9CSkNfQ0xBU1MgV2ViQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckhlbHBlcjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjIGZpbmFsIDogcHVibGljIE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIgeworY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyBmaW5hbCA6IHB1Ymxp
YyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLCBwdWJsaWMgQVZQbGF5YmFja1RhcmdldFBpY2tl
cjo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKTsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXI6OkNsaWVudCYpOwotCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1hYygpOwogCi0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRS
ZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJy
aWRlOwotICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsK
LSAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF0Zm9ybVZpZXcqLCBjb25zdCBGbG9hdFJlY3Qm
LCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIGZpbmFsOwor
ICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAg
dm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgaW52
YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIGJvb2wgZXh0
ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUoKSBvdmVycmlkZTsKLSAgICBSZWY8TWVkaWFQbGF5
YmFja1RhcmdldD4gcGxheWJhY2tUYXJnZXQoKSBvdmVycmlkZTsKKyAgICBib29sIGV4dGVybmFs
T3V0cHV0RGV2aWNlQXZhaWxhYmxlKCkgZmluYWw7CisgICAgUmVmPE1lZGlhUGxheWJhY2tUYXJn
ZXQ+IHBsYXliYWNrVGFyZ2V0KCkgZmluYWw7CisKKyAgICAvLyBBVlBsYXliYWNrVGFyZ2V0UGlj
a2VyOjpDbGllbnQKKyAgICB2b2lkIHBpY2tlcldhc0Rpc21pc3NlZCgpIGZpbmFsOworICAgIHZv
aWQgYXZhaWxhYmxlRGV2aWNlc0NoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIGN1cnJlbnREZXZp
Y2VDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpk
ZXZpY2VQaWNrZXIoKTsKKyAgICBBVlBsYXliYWNrVGFyZ2V0UGlja2VyJiByb3V0ZVBpY2tlcigp
OwogCi0gICAgUmV0YWluUHRyPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXI+IG1fb3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPFdlYkFWT3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXJIZWxwZXI+IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZTsK
LSAgICBib29sIG1fc2hvd2luZ01lbnUgeyBmYWxzZSB9OworICAgIHN0ZDo6dW5pcXVlX3B0cjxB
VlBsYXliYWNrVGFyZ2V0UGlja2VyPiBtX3JvdXRlUGlja2VyOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWMubW0KaW5kZXggMmI1ZTU0MTNmOGY4M2ZkMDNlN2RlODIzNThlODRi
OTllMTI3M2M5Ny4uMWUyMDE0MzJjYzhjYzkzMTY5MjhhMmE3OTAyYzMwMTVkZWRkMmM0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW1wb3J0ICJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmgiCisjaW1wb3J0ICJBVlJvdXRlUGlja2VyVmll
d1RhcmdldFBpY2tlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+
CkBAIC00NCwxNjIgKzQ2LDg0IEBAIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwgQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlcikKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LXN0YXRpYyBOU1N0cmluZyAqZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1lID0g
QCJleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSI7Ci1zdGF0aWMgTlNTdHJpbmcgKmV4dGVy
bmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNr
ZWQiOwotCi1AaW50ZXJmYWNlIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIg
OiBOU09iamVjdCB7Ci0gICAgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyogbV9jYWxsYmFj
azsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWMqKWNhbGxiYWNrOwotLSAodm9pZCljbGVhckNhbGxiYWNrOwotLSAodm9p
ZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3Qg
Y2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQ7Ci1A
ZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yzo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyhNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpDbGllbnQmIGNsaWVudCkKICAgICA6IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIoY2xpZW50
KQotICAgICwgbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlKGFkb3B0TlMoW1tX
ZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxi
YWNrOnRoaXNdKSkKIHsKIH0KIAogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoKQogewogICAgIHNldENsaWVudChudWxscHRyKTsKLSAg
ICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOwog
fQogCiBib29sIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmV4dGVybmFsT3V0cHV0RGV2
aWNlQXZhaWxhYmxlKCkKIHsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0g
ICAgcmV0dXJuIGRldmljZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlOwot
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisgICAgcmV0dXJuIHJvdXRlUGlja2Vy
KCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUoKTsKIH0KIAogUmVmPE1lZGlhUGxheWJh
Y2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnBsYXliYWNrVGFyZ2V0KCkK
IHsKLSAgICBBVk91dHB1dENvbnRleHQqIGNvbnRleHQgPSBtX291dHB1dERldmljZU1lbnVDb250
cm9sbGVyID8gW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgb3V0cHV0Q29udGV4
dF0gOiBudWxscHRyOwotCi0gICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b2NvYTo6Y3JlYXRlKGNvbnRleHQpOworICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2E6OmNyZWF0ZShyb3V0ZVBpY2tlcigpLm91dHB1dENvbnRleHQoKSk7CiB9CiAK
LUFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgKk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OmRldmljZVBpY2tlcigpCitBVlBsYXliYWNrVGFyZ2V0UGlja2VyJiBNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjOjpyb3V0ZVBpY2tlcigpCiB7Ci0gICAgaWYgKCFnZXRBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyQ2xhc3MoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBpZiAoIW1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIpIHsKLSAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6ZGV2aWNlUGlja2VyIC0gYWxsb2NhdGlu
ZyBwaWNrZXIiKTsKLQotICAgICAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiBjb250ZXh0
ID0gYWRvcHROUyhbUEFMOjphbGxvY0FWT3V0cHV0Q29udGV4dEluc3RhbmNlKCkgaW5pdF0pOwot
ICAgICAgICBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbYWxsb2NBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVySW5zdGFuY2UoKSBpbml0V2l0aE91dHB1dENvbnRleHQ6
Y29udGV4dC5nZXQoKV0pOwotCi0gICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVy
LmdldCgpIGFkZE9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5n
ZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKLSAgICAg
ICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxP
dXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bk5ldyBjb250ZXh0Om51bGxwdHJdOwotCi0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWM6OmRldmljZVBpY2tlciAtIGFsbG9jYXRlZCBtZW51IGNvbnRyb2xs
ZXIgJXAiLCBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpKTsKLQotQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICAgICAgaWYgKG1fb3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXIuZ2V0KCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpCi0gICAgICAg
ICAgICBhdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlci5nZXQoKTsKKyAgICBpZiAobV9yb3V0ZVBpY2tlcikKKyAgICAgICAgcmV0dXJuICptX3Jv
dXRlUGlja2VyOworCisgICAgaWYgKEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppc0F2
YWlsYWJsZSgpKQorICAgICAgICBtX3JvdXRlUGlja2VyID0gbWFrZVVuaXF1ZTxBVlJvdXRlUGlj
a2VyVmlld1RhcmdldFBpY2tlcj4oKnRoaXMpOworICAgIGVsc2UKKyAgICAgICAgbV9yb3V0ZVBp
Y2tlciA9IG1ha2VVbmlxdWU8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tl
cj4oKnRoaXMpOworICAgIAorICAgIHJldHVybiAqbV9yb3V0ZVBpY2tlcjsKIH0KIAotdm9pZCBN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29u
c3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwgYm9vbCBoYXNBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJr
QXBwZWFyYW5jZSkKK3ZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFBsYXRmb3JtVmlldyogdmlldywgY29uc3QgRmxvYXRSZWN0JiBsb2Nh
dGlvbiwgYm9vbCBoYXNBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkKIHsKLSAg
ICBpZiAoIWNsaWVudCgpIHx8IG1fc2hvd2luZ01lbnUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlciAtIGhhc0FjdGl2ZVJvdXRlID0gJWkiLCAoaW50KWhhc0FjdGl2ZVJvdXRlKTsK
LQotICAgIG1fc2hvd2luZ01lbnUgPSB0cnVlOwotCi1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgotICAgIGJvb2wgdGFyZ2V0U2VsZWN0ZWQgPSBbZGV2aWNlUGlja2VyKCkgc2hv
d01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOih1c2VEYXJrQXBwZWFyYW5jZSA/
IE5TQXBwZWFyYW5jZU5hbWVWaWJyYW50RGFyayA6IE5TQXBwZWFyYW5jZU5hbWVWaWJyYW50TGln
aHQpIGFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOiFoYXNBY3RpdmVSb3V0
ZV07Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLQotICAgIGlmICh0YXJnZXRT
ZWxlY3RlZCAhPSBoYXNBY3RpdmVSb3V0ZSkKLSAgICAgICAgY3VycmVudERldmljZURpZENoYW5n
ZSgpOwotICAgIGVsc2UgaWYgKCF0YXJnZXRTZWxlY3RlZCAmJiAhaGFzQWN0aXZlUm91dGUpCi0g
ICAgICAgIHBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCk7Ci0KLSAgICBtX3Nob3dp
bmdNZW51ID0gZmFsc2U7CisgICAgcm91dGVQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIodmlldywgbG9jYXRpb24sIGhhc0FjdGl2ZVJvdXRlLCB1c2VEYXJrQXBwZWFyYW5jZSk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3RhcnRpbmdNb25pdG9yaW5n
UGxheWJhY2tUYXJnZXRzKCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMiKTsKIAotICAgIGRl
dmljZVBpY2tlcigpOworICAgIHJvdXRlUGlja2VyKCkuc3RhcnRpbmdNb25pdG9yaW5nUGxheWJh
Y2tUYXJnZXRzKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3Rv
cE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzIik7Ci0g
ICAgLy8gTm90aGluZyB0byBkbywgQWlyUGxheSB0YWtlcyBjYXJlIG9mIHRoaXMgYXV0b21hdGlj
YWxseS4KKyAgICByb3V0ZVBpY2tlcigpLnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7
CiB9CiAKIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6aW52YWxpZGF0ZVBsYXli
YWNrVGFyZ2V0cygpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1hYzo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cyIpOwogCi0gICAgaWYgKG1fb3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIpIHsKLSAgICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXIgcmVtb3ZlT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdl
dCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1lXTsKLSAg
ICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgcmVtb3ZlT2JzZXJ2ZXI6bV9vdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxP
dXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXTsKLSAgICAgICAgbV9vdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlciA9IG51bGxwdHI7Ci0gICAgfQorICAgIG1fcm91dGVQaWNrZXIgPSBudWxscHRyOwog
ICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi1AaW1wbGVtZW50YXRpb24gV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBl
cgotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNYWMqKWNhbGxiYWNrCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnBp
Y2tlcldhc0Rpc21pc3NlZCgpCiB7Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0g
ICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBtX2NhbGxiYWNrID0gY2FsbGJhY2s7Ci0KLSAgICBy
ZXR1cm4gc2VsZjsKKyAgICBwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpOwogfQog
Ci0tICh2b2lkKWNsZWFyQ2FsbGJhY2sKK3ZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yzo6YXZhaWxhYmxlRGV2aWNlc0NoYW5nZWQoKQogewotICAgIG1fY2FsbGJhY2sgPSBuaWw7Cisg
ICAgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOwogfQogCi0tICh2b2lkKW9ic2VydmVWYWx1
ZUZvcktleVBhdGg6KGlkKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGlj
dGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAordm9pZCBNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTWFjOjpjdXJyZW50RGV2aWNlQ2hhbmdlZCgpCiB7Ci0gICAgVU5VU0VE
X1BBUkFNKG9iamVjdCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNoYW5nZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGNvbnRleHQpOwotCi0gICAgaWYgKCFtX2NhbGxiYWNrKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpvYnNlcnZlVmFs
dWVGb3JLZXlQYXRoIC0ga2V5ID0gJXMiLCBba2V5UGF0aCBVVEY4U3RyaW5nXSk7Ci0KLSAgICBp
ZiAoIVtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJs
ZUtleU5hbWVdICYmICFba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZp
Y2VQaWNrZWRLZXlOYW1lXSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmV0YWluUHRyPFdlYkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXI+IHByb3RlY3RlZFNlbGYgPSBzZWxmOwot
ICAgIFJldGFpblB0cjxOU1N0cmluZz4gcHJvdGVjdGVkS2V5UGF0aCA9IGtleVBhdGg7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZiks
IHByb3RlY3RlZEtleVBhdGggPSBXVEZNb3ZlKHByb3RlY3RlZEtleVBhdGgpXSB7Ci0gICAgICAg
IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMqIGNhbGxiYWNrID0gcHJvdGVjdGVkU2VsZi0+
bV9jYWxsYmFjazsKLSAgICAgICAgaWYgKCFjYWxsYmFjaykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoW3Byb3RlY3RlZEtleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFs
T3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV0pCi0gICAgICAgICAgICBjYWxsYmFjay0+YXZh
aWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOwotICAgICAgICBlbHNlIGlmIChbcHJvdGVjdGVkS2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXSkK
LSAgICAgICAgICAgIGNhbGxiYWNrLT5jdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7Ci0gICAgfSk7
CisgICAgY3VycmVudERldmljZURpZENoYW5nZSgpOwogfQotQGVuZAorCisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKwogCiAjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAKaW5kZXggYjZhODljN2M1MmZjMDVjMTliMGU1
MjY1MDA4ZmU5NDljMDY1N2JmZS4uN2MwZmEyNmRlMjFkZTY2NjM0NjQ2MjAzYjczMzlhNjVlMTZj
NjVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgUmVm
PE1lZGlhUGxheWJhY2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpwbGF5
YmFja1RhcmdldCgpCiAgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
OjpjcmVhdGUobV9kZXZpY2VOYW1lLCBtX3N0YXRlKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVj
dCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkKK3ZvaWQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQ
bGF0Zm9ybVZpZXcqLCBjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJv
b2wgdXNlRGFya0FwcGVhcmFuY2UpCiB7CiAgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdN
ZW51KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKaW5kZXggYjhjYmFj
MDMwMTQyYTg5YTA4YzQxZWJiZDMyZDFhMjBkYTM0MjFmMC4uMGRhNzA0YjE1MTRiZWJjOTNjZGRi
MGJlNDI1ZDUzZWRmMzRlNTE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaApAQCAtNDMsNyAr
NDMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TW9jaygpOwogCi0gICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRS
ZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF0Zm9ybVZpZXcqLCBj
b25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVh
cmFuY2UpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJn
ZXRzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygp
IG92ZXJyaWRlOwogICAgIHZvaWQgaW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjOWMzMGQ1MzRjYWY1
ZTI1NjQxMDE0NzFlYjAwNzQ0MDM0MTEwM2MzLi44OTQzNDdiZGI0YTZlMDdhMzU1MzEzYTMxZDY2
YzBkMjM1MGFlZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTUzNCw2ICsxNTM0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJh
Y2tUYXJnZXQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwg
Ym9vbCkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZChX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAg
ICBib29sIGFsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBmaW5hbCB7IHJldHVybiBpc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKTsgfQorICAgIFBsYXRmb3JtVmlldyogcGxhdGZvcm1WaWV3KCkgY29u
c3QgZmluYWw7CiAjZW5kaWYKIAogICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRl
eCBhM2U3NDAwMDU0ZThkZDg1Y2E1YzU2MGVjMmVhM2M4YmU4MGNjNzI3Li5kNTU4ZWQyZDY3YmM5
MzFlYjI2YzhlYjY0MmI3NTY2ZGIwZGZiYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTY3Myw2ICs2NzMsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKCkKICAgICBncmFudEFjY2Vzc1RvQ3Vy
cmVudFBhc3RlYm9hcmREYXRhKE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKIH0KIAorUGxhdGZv
cm1WaWV3KiBXZWJQYWdlUHJveHk6OnBsYXRmb3JtVmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFtwYWdlQ2xpZW50KCkucGxhdGZvcm1XaW5kb3coKSBjb250ZW50Vmlld107Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuaAppbmRleCAzNDYzODZjMDgwMjRkOTkwNWE3ZjIwZmEwZDUxYmVhZjY1ZDZm
ZDI2Li4wYjkyMzgzNWU5ZTE1YjZiODA0NWI0OWFmZTI5ZTZhYWIwM2VjZmNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAor
T0JKQ19DTEFTUyBXZWJWaWV3OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFJl
Y3Q7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwpAQCAtNDEsMTAgKzQzLDEwIEBAIGNsYXNz
IFBhZ2U7CiBjbGFzcyBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyIDogcHVibGljIFdlYkNv
cmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlcj4gY3JlYXRlKFdlYkNvcmU6OlBhZ2UmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI+IGNyZWF0ZShXZWJWaWV3
ICosIFdlYkNvcmU6OlBhZ2UmKTsKIAotICAgIGV4cGxpY2l0IFdlYk1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXIoV2ViQ29yZTo6UGFnZSYpOwotICAgIHZpcnR1YWwgfldlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIoKSB7IH0KKyAgICBleHBsaWNpdCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyKFdlYlZpZXcgKiwgV2ViQ29yZTo6UGFnZSYpOworICAgIHZpcnR1YWwgfldlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGFkZFBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29y
ZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CkBAIC01NCwxNiArNTYs
MTggQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJT
dGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
U3RhdGUpOwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9w
dXAoKTsKIAotICAgIC8vIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQKLSAgICB2b2lkIHNl
dFBsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF5
YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyKSBvdmVycmlkZTsKLQogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwog
CiBwcml2YXRlOgorICAgIC8vIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQKKyAgICB2b2lk
IHNldFBsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBmaW5hbDsKKyAg
ICB2b2lkIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIGZpbmFsOworICAgIHZv
aWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCkgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1Rh
cmdldFBpY2tlcldhc0Rpc21pc3NlZChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQbGF0Zm9ybVZpZXcqIHBsYXRmb3JtVmlldygpIGNv
bnN0IGZpbmFsOworCiAgICAgV2ViQ29yZTo6UGFnZSogbV9wYWdlOworICAgIFdlYlZpZXcgKm1f
d2ViVmlldzsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCmluZGV4
IGJiODE1YzVkMjQ4NzIzMzAxMzAyMDkzMzZlN2NjNmNlODNiMWFjZTkuLjczNDQzNTY3NWFiODA5
YjUwZWM1ZWYzOGFiOWY3N2NhMTQ4YjMxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
bW0KQEAgLTI3LDE3ICsyNywxOSBAQAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIldlYlZpZXcuaCIKICNp
bXBvcnQgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KIAotc3Rk
Ojp1bmlxdWVfcHRyPFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI+IFdlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXI6OmNyZWF0ZShXZWJDb3JlOjpQYWdlJiBwYWdlKQorc3RkOjp1bmlxdWVf
cHRyPFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI+IFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXI6OmNyZWF0ZShXZWJWaWV3ICp3ZWJWaWV3LCBXZWJDb3JlOjpQYWdlJiBwYWdlKQogewot
ICAgIHJldHVybiBtYWtlVW5pcXVlPFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI+KHBhZ2Up
OworICAgIHJldHVybiBtYWtlVW5pcXVlPFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI+KHdl
YlZpZXcsIHBhZ2UpOwogfQogCi1XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpXZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBhZ2UmIHBhZ2UpCitXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKFdlYlZpZXcgKndl
YlZpZXcsIFdlYkNvcmU6OlBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UoJnBhZ2UpCisgICAgLCBt
X3dlYlZpZXcod2ViVmlldykKIHsKIH0KIApAQCAtMTA5LDcgKzExMSwxNCBAQCB2b2lkIFdlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2Vk
KFdlYkNvcmU6OlBsYQogdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjppbnZhbGlk
YXRlKCkKIHsKICAgICBtX3BhZ2UgPSBudWxscHRyOworICAgIG1fd2ViVmlldyA9IG5pbDsKICAg
ICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5yZW1vdmVBbGxQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudHMoKnRoaXMpOwogfQogCitQbGF0Zm9ybVZpZXcqIFdlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXRmb3JtVmlldygpIGNvbnN0Cit7CisgICAgQVNT
RVJUKG1fd2ViVmlldyk7CisgICAgcmV0dXJuIG1fd2ViVmlldzsKK30KKwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODVkNjk0M2UzNmJh
ZTYzN2EwZTA5YjU0NzlkYWIzNWIzOWFhN2NjYy4uMTY0N2Q2NDczMWQ1NzQxNGM1Y2I1ZjU4N2I5
ZGI1YTQ5NmM4MzY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtOTc0Myw3ICs5NzQzLDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1
c2hMYXllcnMoKQogLSAoV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlciAqKSBfZGV2aWNlUGlj
a2VyCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+bV9wbGF5YmFja1RhcmdldFBpY2tlcikKLSAgICAg
ICAgX3ByaXZhdGUtPm1fcGxheWJhY2tUYXJnZXRQaWNrZXIgPSBXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyOjpjcmVhdGUoKl9wcml2YXRlLT5wYWdlKTsKKyAgICAgICAgX3ByaXZhdGUtPm1f
cGxheWJhY2tUYXJnZXRQaWNrZXIgPSBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpjcmVh
dGUoc2VsZiwgKl9wcml2YXRlLT5wYWdlKTsKIAogICAgIHJldHVybiBfcHJpdmF0ZS0+bV9wbGF5
YmFja1RhcmdldFBpY2tlci5nZXQoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404449</attachid>
            <date>2020-07-16 09:29:12 -0700</date>
            <delta_ts>2020-07-16 10:49:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213497-20200716092912.patch</filename>
            <type>text/plain</type>
            <size>77938</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyOTg3NzZjOWZjMDYx
YTg4NjAyOTI2ZWQ3ODIwY2I1OGE5NDIxMy4uNzk3NzRjNjdmYTJhNzc0NmVkMWYxN2ViYWVjMTk1
MWM4MjM0ZjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNy0xNSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0
ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBK
ZXIgTm9ibGUuCisKKyAgICAgICAgVXNlIGFuIEFWUm91dGVQaWNrZXJWaWV3LCB0aGUgcmVwbGFj
ZW1lbnQgZm9yIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIsIHdoZW4KKyAgICAgICAgaXQg
aXMgYXZhaWxhYmxlIHRvIGFsbG93IGEgdXNlciB0byBwaWNrIGFuIEFpclBsYXkgZGV2aWNlLiBU
byBkbyB0aGlzLCBjcmVhdGUgYW4gCisgICAgICAgIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIgYWJz
dHJhY3QgYmFzZSBhbmQgY3JlYXRlIGEgY29uY3JldGUgY2xhc3MgZnJvbSB0aGUgCisgICAgICAg
IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXItc3BlY2lmaWMgY29kZSBmcm9tIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMsIGFuZAorICAgICAgICBjcmVhdGUgYSBuZXcgY29uY3JldGUg
Y2xhc3MgdXNpbmcgQVZSb3V0ZVBpY2tlclZpZXcuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5
IGJlY2F1c2UgdGhlc2UgY2hhbmdlcyByZXF1aXJlIGFuIEFpclBsYXkgZGV2aWNlLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOiBQYXNzIHRoZSB2aWV3IHRvIHRoZQorICAgICAgICB0YXJnZXQgcGlja2VyLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnBsYXliYWNrVGFyZ2V0UGlj
a2VyV2FzRGlzbWlzc2VkKTogRHJpdmUtYnkgZml4OiByZXR1cm4KKyAgICAgICAgZWFybHkgaWYg
dGhlcmUgYXJlIG5vIHBlbmRpbmcgcHJvbWlzZXMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OiBBZGQgbmV3IGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6IEFkZCBuZXcgcGFyYW1ldGVyLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYy5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW06IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpBVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVyVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjphdmFpbGFibGVEZXZpY2VzRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXI6OmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpz
dG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlUGxheWJhY2tUYXJn
ZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXI6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6Om91dHB1dENvbnRl
eHQpOgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIGlu
aXRXaXRoQ2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJIZWxwZXIgY2xlYXJDYWxsYmFja10pOgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVySGVscGVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hh
bmdlOmNvbnRleHQ6XSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZQbGF5YmFja1RhcmdldFBpY2tlcjo6QVZQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpjbGllbnQgY29uc3QpOgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tl
clZpZXdUYXJnZXRQaWNrZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmlzQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
OjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6fkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpvdXRw
dXRDb250ZXh0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlj
a2VyVmlld1RhcmdldFBpY2tlcjo6cm91dGVEZXRlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpzdGFydGlu
Z01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmll
d1RhcmdldFBpY2tlcjo6b3V0cHV0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6YXZhaWxhYmxlRGV2
aWNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlcjo6Y3VycmVudERldmljZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6ZGV2aWNlUGlja2VyV2FzRGlzbWlzc2VkKToKKyAg
ICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgaW5pdFdpdGhDYWxsYmFjazpdKToK
KyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgZGVhbGxvY10pOgorICAgICAg
ICAoLVtXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBjbGVhckNhbGxiYWNrXSk6CisgICAgICAg
ICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIHJvdXRlUGlja2VyVmlld0RpZEVuZFByZXNl
bnRpbmdSb3V0ZXM6XSk6CisgICAgICAgICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIG5v
dGlmaWNhdGlvbkhhbmRsZXI6XSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6ZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1hYzo6cGxheWJhY2tUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cm91dGVQaWNrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0
aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjppbnZhbGlkYXRl
UGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNYWM6OnBpY2tlcldhc0Rpc21pc3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjOjphdmFpbGFibGVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpjdXJyZW50RGV2aWNlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpk
ZXZpY2VQaWNrZXIpOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVySGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6IERlbGV0ZWQuCisgICAgICAgICgt
W1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgY2xlYXJDYWxsYmFja10pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVy
IG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmg6CisKIDIwMjAtMDctMTQgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEF2b2lkIGxvYWRpbmcgbWVk
aWEgbGlicmFyaWVzIGluIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkgaWYgbm90
IG5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggY2JhOTE0ZTFlMzhkYjNkY2M4NjEyNjdmOWE1
MDg2ZTVkMjBhZDRlYS4uZTBjY2FiZDkzYzg3NmVlNzZjZGY3MDMzNDc4YmE0NTMxNTBlMzgxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDctMTUgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEFWUm91dGVQaWNr
ZXJWaWV3IHdoZW4gYXZhaWxhYmxlIGZvciBjaG9vc2luZyBBaXJQbGF5IGRldmljZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ5NworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTg2MTA2NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5v
YmxlLgorCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAg
ICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOiBTb2Z0IGxpbmsgQVZSb3V0
ZVBpY2tlclZpZXcuCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oOiBEZWNsYXJl
IEFWUm91dGVQaWNrZXJWaWV3LgorCiAyMDIwLTA3LTEyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgQnVpbGRpbmcgQ0ZOZXR3b3JrU1BJIHdpdGggdGhlIG1hY09TIEJp
ZyBTdXIgcHVibGljIFNESyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0YzFkMzY2OWUyYjM5NmRiYjljYWM1
MWE2ZDUzMGIxM2U4OTY1MWIzLi43NGUwYjRkMDEwZWJhNTBhNThiMzExZTY1M2UzNmQ1OTdlNzgw
YTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTE1ICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBVlJvdXRlUGlja2VyVmll
dyB3aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWlyUGxheSBkZXZpY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0OTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpwbGF0Zm9ybVZpZXcgY29uc3QpOiBBZGQgbmV3IG92ZXJyaWRlLgorCiAyMDIwLTA3LTE0ICBL
YXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFj
T1MgaU9TIF0gaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5l
cmF0aW9uLWJhc2ljLWZ1bmN0aW9uYWxpdHktZGF0YWJhc2UuaHRtbCBpcyBhIHJhcmUgZmxha3kg
ZmFpbHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGUzMjRlZjQyNWI1ZTI2Yjcx
YTQ4Y2RjNGFiYzYzNmI2NWY1MmI2ZTAuLjQ2MDNlNjVhN2I0OWI5YTRiNjE3ZjhlYzA1MjA5NDhi
MWYyYzIwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAyMC0wNy0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFp
clBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6On5XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChX
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXRmb3JtVmlldyBjb25zdCk6IE5ldyBvdmVycmlk
ZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBf
ZGV2aWNlUGlja2VyXSk6IFBhc3MgdmlldyB0byBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
IGZhY3RvcnkuCisKIDIwMjAtMDctMTMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIg
cmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cAppbmRleCA4NzU2ZmViMTQ4ZTk3OTdjYWNhOWNmMzczZDkwOWYwZWFlMWQ4OGE5Li4wZDU2NzQ5
MTU0Y2Y5NDkzYjQwMDU1ZWU5MTlmYTI2ZTUxNDgwNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAgICAg
QUxXQVlTX0xPR19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBtX2NsaWVudFN0YXRlW2lu
ZGV4XS5nZXQoKSk7CiAKICAgICBib29sIGhhc0FjdGl2ZVJvdXRlID0gZmxhZ3NBcmVTZXQobV9j
bGllbnRTdGF0ZVtpbmRleF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKTsKLSAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
RmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0ZSwgdXNlRGFya0FwcGVhcmFuY2UpOworICAg
IHRhcmdldFBpY2tlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnQucGxhdGZvcm1W
aWV3KCksIEZsb2F0UmVjdChyZWN0KSwgaGFzQWN0aXZlUm91dGUsIHVzZURhcmtBcHBlYXJhbmNl
KTsKIH0KIAogdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggNjJiZjJhYTA5YWE5
NTY5YzFiNzc0ZjQ5Y2QxODU2ZDMwYjhkMDYzNi4uZDdmMjhjY2I3NWU1ZDc1NWRhZjQzMzRlZjY1
NmNiMTQxOTBmYWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCIKICNpbmNsdWRlICJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVZpZXcuaCIKICNpbmNsdWRlICJQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaAppbmRleCAyMjFj
NGMzMDVmNGFlNmU0M2IzY2ZmNjA0ZTAwNWEwZWNkZDZiODJjLi5kNzBjYWM4MzNlNWQ1ZTUxM2Mx
YTM0YjFjZDI1N2ZmYmMzMTBlYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVu
dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlldy5oIgog
I2luY2x1ZGUgIlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAKQEAgLTQzLDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyLCBib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyV2FzRGlzbWlzc2VkKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQbGF0Zm9ybVZpZXcqIHBsYXRmb3JtVmlldygpIGNv
bnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5k
ZXggYWZiYzc5ZGIwYjdiMzFiZjUyMzhkYmE3NDg2ZmYwOTk2NDM2Yzk3ZC4uOTZkZDJiN2QzZTc1
ZTQzYzc0ZjlkYzkwZDY2NzU3YjU1ODNlZmIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKQEAgLTMyNCw2
ICszMjQsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpkaXNjb25uZWN0KCkKIAogdm9pZCBSZW1v
dGVQbGF5YmFjazo6cGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKQogeworICAgIGlm
IChtX3Byb21wdFByb21pc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8g
Ni4yLjIgUHJvbXB0IHVzZXIgZm9yIGNoYW5naW5nIHJlbW90ZSBwbGF5YmFjayBzdGF0ZSBbQ3Rk
XQogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9yZW1vdGUtcGxheWJhY2svI3N0b3Atb2Jz
ZXJ2aW5nLXJlbW90ZS1wbGF5YmFjay1kZXZpY2VzLWF2YWlsYWJpbGl0eQogICAgIC8vIFczQyBF
ZGl0b3IncyBEcmFmdCAxNSBKdWx5IDIwMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCAxMjc4MzUzN2M0ZjFmMWZjNzhm
OThlYWExMzY4NzEwN2UzY2E0OGZmLi42ODU4M2MzMTU0OWFiODQ1ZjRjZjM1NzAwYmNjNzZjNGRk
MzcwN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oCkBAIC04NCw2ICs4NCw3IEBAIFNPRlRfTElOS19DTEFTU19GT1JfSEVB
REVSKFBBTCwgQVZBdWRpb1JvdXRpbmdBcmJpdGVyKQogCiAjaWYgIVBMQVRGT1JNKFdBVENIT1Mp
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikKK1NPRlRf
TElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZSb3V0ZVBpY2tlclZpZXcpCiBTT0ZUX0xJTktf
Q0xBU1NfRk9SX0hFQURFUihQQUwsIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MpCiAjZW5kaWYK
IApAQCAtMjkxLDggKzI5Miw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVLCiAjZGVmaW5lIEFW
QXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uVHlwZUtleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZB
dWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25UeXBlS2V5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbk9wdGlv
bktleSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25PcHRp
b25LZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uT3B0
aW9uS2V5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0
aW9uLCBOU1N0cmluZyAqKQotI2RlZmluZSBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0Rl
dGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlJvdXRl
RGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vz
c2lvbk1lZGlhU2VydmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVm
aW5lIEFWQXVkaW9TZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5vdGlmaWNhdGlvbiBQQUw6
OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0Tm90
aWZpY2F0aW9uKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQpA
QCAtMzA2LDQgKzMwNSwxMSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEFW
Rm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUbwogI2RlZmluZSBBVkNh
cHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRB
cHBMYXlvdXQgc29mdExpbmtfQVZGb3VuZGF0aW9uX0FWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3Jp
emVkVG9Vc2VDYW1lcmFJbk11bHRpcGxlRm9yZWdyb3VuZEFwcExheW91dAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQ
TEVUVikKIAorI2lmICFQTEFURk9STShXQVRDSE9TKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0
ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCisjZGVmaW5lIEFWUm91dGVE
ZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gUEFMOjpn
ZXRfQVZGb3VuZGF0aW9uX0FWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRD
aGFuZ2VOb3RpZmljYXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmlj
YXRpb24sIE5TU3RyaW5nICopCisjZGVmaW5lIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNE
aWRDaGFuZ2VOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWT3V0cHV0Q29udGV4
dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKQorI2VuZGlmIC8vIFBMQVRGT1JN
KFdBVENIT1MpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggYTJj
ZmI3ZTRjNTk0NDg4MGFmMjQ1N2FjNGI2NzQxNTEzMzM0ODIyYy4uZmYzZWU1M2I5ZGI2YzU3NmYx
NmJkY2ZjYjRlNjEwYmE5ZWEyMmU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMTEsNiArMTExLDcgQEAgU09G
VF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
QXVkaW9Sb3V0aW5nQXJiaXRlciwKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElOS19D
TEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0
ZWN0b3IsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcywg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlUGlja2VyVmlldywgUEFMX0VYUE9SVCkKICNl
bmRpZgogCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQpAQCAt
MjE0LDcgKzIxNSw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uSW50CiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vz
c2lvbkludGVycnVwdGlvblJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VkNhcHR1cmVTZXNzaW9uUnVudGltZUVycm9yTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXNJbnRlcnJ1cHRlZE5vdGlmaWNhdGlvbiwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRl
c0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VOb3RpZmljYXRp
b24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCkBAIC0yMjgsNCArMjI4LDkgQEAgU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBs
ZUZvcmVncm91bmRBcHBMYXlvdXQsIHZvaWQsIChBVkNhcHR1cmVTZXNzaW9uICpzZXNzaW9uKSwg
KHNlc3Npb24pKQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShX
QVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIAorI2lmICFQTEFURk9STShXQVRDSE9TKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmlj
YXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250ZXh0T3V0cHV0
RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKKyNl
bmRpZiAvLyAhUExBVEZPUk0oV0FUQ0hPUykKKwogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRp
b25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQ
SS5oCmluZGV4IDI3YzNjODA3ZjE5ZTFhNzVlZTU3YzA5NjNhZDJmZDFjZWU4YzQxZGQuLjg3MWM4
Y2YyZjg0OTg5OGY1N2E1YjFkNGZhMWJjMTg1NTU3ZmE4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC03NCw2ICs3NCw3
IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAaW50ZXJmYWNlIEFWT3V0cHV0Q29udGV4dCA6
IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNTdHJpbmcgKmRldmljZU5hbWU7CiArIChpbnN0YW5jZXR5cGUpb3V0cHV0Q29udGV4dDsK
KysgKGluc3RhbmNldHlwZSlpVHVuZXNBdWRpb0NvbnRleHQ7CiArIChudWxsYWJsZSBBVk91dHB1
dENvbnRleHQgKilzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7CiArIChudWxs
YWJsZSBBVk91dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0Rm9ySUQ6KE5TU3RyaW5nICopSUQ7
CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2Vz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEku
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKaW5kZXggZjc3
ZjYwMjU0YTE1MjgzNWE1MDk1Y2M2NDdmOTNiNmIwYjRmMDYzYy4uYzc4NmExYzBmZGVlNDAwM2Qw
NjdhMmQ2YTFlMWQ3MzI2NmQ3NDEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9BVktpdFNQSS5oCkBAIC0yMzIsNiArMjMyLDggQEAgTlNfQVNTVU1FX05PTk5VTExfRU5E
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QVZLaXQvQVZPdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlci5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdf
UHJpdmF0ZS5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfV2ViS2l0T25seS5o
PgogCiAjZWxzZQogCkBAIC0yNTMsNiArMjU1LDIzIEBAIE5TX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfMTEpCiAKIEBlbmQKIAorQHByb3RvY29sIEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGU7CisK
K0BpbnRlcmZhY2UgQVZSb3V0ZVBpY2tlclZpZXcgOiBOU1ZpZXcKKworLSAodm9pZClzaG93Um91
dGVQaWNraW5nQ29udHJvbHNGb3JPdXRwdXRDb250ZXh0OihBVk91dHB1dENvbnRleHQgKilvdXRw
dXRDb250ZXh0IHJlbGF0aXZlVG9SZWN0OihOU1JlY3QpcG9zaXRpb25pbmdSZWN0IG9mVmlldzoo
TlNWaWV3ICopcG9zaXRpb25pbmdWaWV3OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIHdlYWspIGlkPEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGU+IGRlbGVnYXRlOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgcm91dGVMaXN0QWx3YXlzSGFzRGFya0FwcGVhcmFuY2U7CisK
K0BlbmQKKworQHByb3RvY29sIEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGUgPE5TT2JqZWN0Pgor
QG9wdGlvbmFsCistICh2b2lkKXJvdXRlUGlja2VyVmlld1dpbGxCZWdpblByZXNlbnRpbmdSb3V0
ZXM6KEFWUm91dGVQaWNrZXJWaWV3ICopcm91dGVQaWNrZXJWaWV3OworLSAodm9pZClyb3V0ZVBp
Y2tlclZpZXdEaWRFbmRQcmVzZW50aW5nUm91dGVzOihBVlJvdXRlUGlja2VyVmlldyAqKXJvdXRl
UGlja2VyVmlldzsKK0BlbmQKKwogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNDRlYTA4
ZjY0MjEyMzYyZGMzMTEzMWQ4NDY3YWVlMjc1MTc0YWY3ZS4uOTI3MWFhNjZkN2Y5ZTVkZjU4NWZm
NDU1ZjY2ZTExNGQxNTZkNjRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNzMsNiAr
MjczLDggQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIEBuby11bmlmeQor
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlci5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIEBuby11bmlmeQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZS5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3NWM2NTAwYWZlZjVhZjk5YTE2OTYyZjdmMDFkZTk5NzAwZDY3
ODQ0Li5hNjhkNDNkMmQyYWJiZjBlMjJmYWNlYjhhMjM2NDc4YzU1MzY3OThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgs
NiArMTE4LDcgQEAKIAkJMDczNzk0RUMxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRF
QTE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKIAkJMDczNzk0RkEx
OUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2NEUwMEU1
QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5NEZFMTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRD
Tm90aWZpZXJzTW9jay5oICovOyB9OworCQkwNzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAv
KiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkw
NzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVB
MDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1Nh
bXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
aCAqLzsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OwpA
QCAtMjA0LDYgKzIwNSw3IEBACiAJCTA3QzA0NkNCMUU0MjY0MTMwMDcyMDFFNyAvKiBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc1NjFFNDBEQ0U1MDA3MUMwRUMgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzFDMEUw
MUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLzsg
fTsKIAkJMDdDMUMwRTUxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA3Q0I5RTcyMjQ5QzM2QjIwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Q0I5RTZGMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1Rh
cmdldFBpY2tlci5tbSAqLzsgfTsKIAkJMDdDRTc3RDUxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDdEMTJGNUMyM0RFNTQzRjAwODA5OTdEIC8qIElTT1ZUVEN1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4NzFDNjUxRkI1MkI2
NzAwRjBCOTY1IC8qIElTT1ZUVEN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA3RDYzNzQwMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTU1NjksNiArNTU3MSw5IEBACiAJCTA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDczNzk0RjcxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTm90aWZpZXJzTW9jay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0
NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczOEU1
RTgyNDk5NjhBQzAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQ
aWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM4RTVFQTI0OTk2OEFE
MDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQ
aWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzhFNUVCMjQ5OTY5MDkw
MERBMTAxQyAvKiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQTE1
NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2ODMsNiArNTY4OCw4IEBACiAJCTA3
QzFDMEU0MUJGQjYwRUQwMEJEMjI1NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29u
c3RyYWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRNSU1FVHlwZUNh
Y2hlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0M4QUQxMjFEMDczRDYzMDA4
N0M1Q0UgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVZBc3NldE1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0
UGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3Q0I5RTcxMjQ5QzIyNkMw
MEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0NFNzdENDE2NzEyQTZBMDBDNTVBNDcgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RDYzNzNF
MUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZD
RTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MzM5LDYgKzI3MzQ2LDExIEBACiAJCQkJ
MDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tICovLAog
CQkJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCAq
LywKIAkJCQlDREVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVz
Lm1tICovLAorCQkJCTA3MzhFNUU4MjQ5OTY4QUMwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmggKi8sCisJCQkJMDczOEU1RUEyNDk5NjhBRDAwREEx
MDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi8sCisJ
CQkJMDczOEU1RUIyNDk5NjkwOTAwREExMDFDIC8qIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIuaCAq
LywKKwkJCQkwN0NCOUU3MTI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJn
ZXRQaWNrZXIuaCAqLywKKwkJCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXIubW0gKi8sCiAJCQkJQ0QxMUIzREYyMjdDQUFBOTAwMjNBRkM3
IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCAqLywKIAkJCQlDRDExQjNFMDIy
N0NBQUE5MDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbSAqLywK
IAkJCQlDRDc4QTJFRTFGNzU2NDg2MDBERTM3MUIgLyogQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMuaCAqLywKQEAgLTM0NDcxLDYgKzM0NDgzLDggQEAKIAkJCQlDREVDQTg5QTFF
REY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RDNjc1MjIxRUFFQTlCNzAwNzI3Qzg0IC8qIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURl
dmljZU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzAzNjNFMzE4MUExQ0RDMDBDMDc0
QTUgLyogQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3MzhF
NUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0
UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8q
IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Qx
MUIzRTEyMjdDRTZGMzAwMjNBRkM3IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2MTE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDM2M0U3MTgxQTFD
REMwMEMwNzRBNSAvKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLmNwcAppbmRleCBhMjIyOGNmMjk0MTcyMGM3ZmZjZmM1OTI1ZDM3
Y2I5MTJlYmNlMmQ4Li5mMjMyYjY4YmJjMjdkMDA5NDQ1NWVmMGE3NDYwMDQ2YmFjNDYwNjg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIE1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXI6OmFkZFBlbmRpbmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZsYWdz
IGFjdGlvbikKICAgICBtX3BlbmRpbmdBY3Rpb25UaW1lci5zdGFydE9uZVNob3QocGVuZGluZ0Fj
dGlvbkludGVydmFsKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCwgYm9vbCkKK3ZvaWQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRm
b3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wsIGJvb2wpCiB7CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggNDk3NDg0YTkxMDgx
MzViMjczYzE1Y2UyMDA3NGZhMGZiZjJlZmZhNy4uYjMwNzU2MGVlZDkxMGM1YjU2MTc1NWQzNjY3
ZjA0MTg4ODU3OWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAorI2luY2x1ZGUgIlBs
YXRmb3JtVmlldy5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVz
ZURhcmtBcHBlYXJhbmNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKFBsYXRmb3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0
ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0aW5nTW9u
aXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tU
YXJnZXRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
Vk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUx
ODZhMjdhZjMzMTAwZGViZDk1NWI1MWE1OGY5MzE1NjEzMzZlOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaApAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgIkFWUGxheWJhY2tU
YXJnZXRQaWNrZXIuaCIKKworT0JKQ19DTEFTUyBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
OworT0JKQ19DTEFTUyBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXIgZmluYWwgOiBwdWJsaWMgQVZQbGF5YmFja1RhcmdldFBpY2tlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcik7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcihBVlBsYXliYWNrVGFy
Z2V0UGlja2VyOjpDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVyVGFyZ2V0UGlja2VyKCk7CisKKyAgICB2b2lkIGF2YWlsYWJsZURldmljZXNEaWRDaGFu
Z2UoKTsKKyAgICB2b2lkIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKworcHJpdmF0ZToKKyAg
ICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihOU1ZpZXcgKiwgY29uc3QgRmxvYXRSZWN0
JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBmaW5hbDsK
KyAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAg
IHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2b2lkIGlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICBib29sIGV4dGVybmFsT3V0cHV0
RGV2aWNlQXZhaWxhYmxlKCkgZmluYWw7CisgICAgQVZPdXRwdXRDb250ZXh0KiBvdXRwdXRDb250
ZXh0KCkgZmluYWw7CisKKyAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpkZXZpY2VQ
aWNrZXIoKTsKKworICAgIFJldGFpblB0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyPiBt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyOworICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVySGVscGVyPiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVs
ZWdhdGU7CisgICAgYm9vbCBtX3Nob3dpbmdNZW51IHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWE4ZDA2
YzBhM2ZiYzZkYjRjZTkwYjJiMWNlMjZmMTc5Nzk4MjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpAQCAtMCwwICsxLDIwMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlci5oIgorCisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+CisjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL0FWS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorCisjaW1w
b3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oPgorCitTT0ZUTElOS19BVktJVF9GUkFNRVdPUksoKQorU09GVF9M
SU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyKQor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlIjsKK3N0YXRpYyBOU1N0cmluZyAqZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1l
ID0gQCJleHRlcm5hbE91dHB1dERldmljZVBpY2tlZCI7CisKK0BpbnRlcmZhY2UgV2ViQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsKKyAgICBXZWFrUHRyPEFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+IG1fY2FsbGJhY2s7Cit9CisK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+JiYpY2FsbGJhY2s7CistICh2b2lkKWNsZWFyQ2Fs
bGJhY2s7CistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KGlkKWtleVBhdGggb2ZPYmpl
Y3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lk
ICopY29udGV4dDsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyKEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYgY2xpZW50KQorICAg
IDogQVZQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnQpCisgICAgLCBtX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJIZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6bWFrZVdlYWtQdHIoKnRoaXMpXSkp
Cit7Cit9CisKK0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKCkKK3sKKyAgICBbbV9vdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOworfQorCitBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyICpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0
UGlja2VyOjpkZXZpY2VQaWNrZXIoKQoreworICAgIGlmICghZ2V0QVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckNsYXNzKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyKSB7CisgICAgICAgIFJldGFpblB0cjxBVk91dHB1
dENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZPdXRwdXRDb250ZXh0SW5z
dGFuY2UoKSBpbml0XSk7CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBh
ZG9wdE5TKFthbGxvY0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJJbnN0YW5jZSgpIGluaXRX
aXRoT3V0cHV0Q29udGV4dDpjb250ZXh0LmdldCgpXSk7CisKKyAgICAgICAgW21fb3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFp
bGFibGVLZXlOYW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0
Om51bGxwdHJdOworICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBh
ZGRPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9y
S2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWUgb3B0aW9uczpOU0tleVZh
bHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07CisKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgaWYgKG1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXIuZ2V0KCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpCisgICAg
ICAgICAgICBhdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAorICAgIH0KKworICAgIHJldHVybiBtX291dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyLmdldCgpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXI6OmF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKQoreworICAgIGlm
IChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPmF2YWlsYWJsZURldmljZXNDaGFuZ2VkKCk7
Cit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6Y3Vy
cmVudERldmljZURpZENoYW5nZSgpCit7CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGll
bnQoKS0+Y3VycmVudERldmljZUNoYW5nZWQoKTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3
ICosIGNvbnN0IEZsb2F0UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUsIGJvb2wg
dXNlRGFya0FwcGVhcmFuY2UpCit7CisgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Nob3dpbmdNZW51ID0gdHJ1ZTsKKworICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgYm9vbCB0YXJnZXRTZWxlY3Rl
ZCA9IFtkZXZpY2VQaWNrZXIoKSBzaG93TWVudUZvclJlY3Q6bG9jYXRpb24gYXBwZWFyYW5jZU5h
bWU6KHVzZURhcmtBcHBlYXJhbmNlID8gTlNBcHBlYXJhbmNlTmFtZVZpYnJhbnREYXJrIDogTlNB
cHBlYXJhbmNlTmFtZVZpYnJhbnRMaWdodCkgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRw
dXREZXZpY2U6IWhhc0FjdGl2ZVJvdXRlXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKKworICAgIGlmICghY2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICh0YXJnZXRTZWxlY3RlZCAhPSBoYXNBY3RpdmVSb3V0ZSkKKyAgICAgICAgY3VycmVudERldmlj
ZURpZENoYW5nZSgpOworICAgIGVsc2UgaWYgKCF0YXJnZXRTZWxlY3RlZCAmJiAhaGFzQWN0aXZl
Um91dGUpCisgICAgICAgIGNsaWVudCgpLT5waWNrZXJXYXNEaXNtaXNzZWQoKTsKKworICAgIG1f
c2hvd2luZ01lbnUgPSBmYWxzZTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQorewor
ICAgIGRldmljZVBpY2tlcigpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkKK3sKKyAgICAv
LyBOb3RoaW5nIHRvIGRvLCBBaXJQbGF5IHRha2VzIGNhcmUgb2YgdGhpcyBhdXRvbWF0aWNhbGx5
LgorfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6Omlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKQoreworICAgIGlmIChtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyKSB7CisgICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92
ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JL
ZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07CisgICAgICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZV07CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIg
PSBudWxscHRyOworICAgIH0KKyAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7Cit9CisKK2Jv
b2wgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6ZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGUoKQoreworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCisgICAgcmV0dXJuIGRldmljZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorfQorCitBVk91
dHB1dENvbnRleHQgKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpv
dXRwdXRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ciA/IFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIG91dHB1dENvbnRleHRdIDog
bnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitAaW1wbGVtZW50YXRpb24g
V2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlcgorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlcj4mJiljYWxsYmFjaworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY2xlYXJDYWxsYmFjaworeworICAg
IG1fY2FsbGJhY2sgPSBuaWw7Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDoo
aWQpa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hh
bmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKGNoYW5nZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwor
CisgICAgaWYgKCFtX2NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWVd
ICYmICFba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRL
ZXlOYW1lXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblRocmVhZChbc2VsZiwg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwga2V5UGF0aCA9IHJldGFpblB0cihrZXlQ
YXRoKV0geworICAgICAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZUtleU5hbWVdKQorICAgICAgICAgICAgbV9jYWxsYmFjay0+YXZhaWxhYmxlRGV2
aWNlc0RpZENoYW5nZSgpOworICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJp
bmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXSkKKyAgICAgICAgICAgIG1fY2Fs
bGJhY2stPmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICB9KTsKK30KK0BlbmQKKworI2Vu
ZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNr
VGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkOWFiOTZi
MzQxY2E3YjY4OWEyZTc3ODcxYjQ3ZTUwOWQxYjNmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tU
YXJnZXRQaWNrZXIuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK09CSkNfQ0xBU1MgQVZPdXRw
dXRDb250ZXh0OworT0JKQ19DTEFTUyBOU1ZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRmxvYXRSZWN0OworCitjbGFzcyBBVlBsYXliYWNrVGFyZ2V0UGlja2VyIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPEFWUGxheWJhY2tUYXJnZXRQaWNrZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBVlBsYXliYWNrVGFyZ2V0
UGlja2VyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8Q2xpZW50PiB7CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKSA9
IGRlZmF1bHQ7CisKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgdm9pZCBwaWNrZXJXYXNE
aXNtaXNzZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdmFpbGFibGVEZXZpY2VzQ2hh
bmdlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnREZXZpY2VDaGFuZ2VkKCkg
PSAwOworICAgIH07CisKKyAgICBleHBsaWNpdCBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKENsaWVu
dCYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKCZjbGllbnQpKQorICAg
IHsKKyAgICB9CisgICAgdmlydHVhbCB+QVZQbGF5YmFja1RhcmdldFBpY2tlcigpID0gZGVmYXVs
dDsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICos
IGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFj
a1RhcmdldHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tU
YXJnZXRzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRz
KCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgp
ID0gMDsKKworICAgIHZpcnR1YWwgQVZPdXRwdXRDb250ZXh0KiBvdXRwdXRDb250ZXh0KCkgPSAw
OworCisgICAgV2Vha1B0cjxBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ+IGNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxBVlBs
YXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ+IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4NzhkZDdmNzUzZjVkYzQzMDY3MjNhNWNmMTExNGEwMDk4
YzJmZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVk
ZSAiQVZQbGF5YmFja1RhcmdldFBpY2tlci5oIgorCitPQkpDX0NMQVNTIEFWUm91dGVEZXRlY3Rv
cjsKK09CSkNfQ0xBU1MgQVZSb3V0ZVBpY2tlclZpZXc7CitPQkpDX0NMQVNTIFdlYkFWUm91dGVQ
aWNrZXJWaWV3SGVscGVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyIGZpbmFsIDogcHVibGljIEFWUGxheWJhY2tUYXJnZXRQaWNr
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcihBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpD
bGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcigpOwor
ICAgIAorICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CisKKyAgICB2b2lkIGF2YWlsYWJs
ZURldmljZXNEaWRDaGFuZ2UoKTsKKyAgICB2b2lkIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsK
KyAgICB2b2lkIGRldmljZVBpY2tlcldhc0Rpc21pc3NlZCgpOworCitwcml2YXRlOgorICAgIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqLCBjb25zdCBGbG9hdFJlY3QmLCBi
b29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIGZpbmFsOworICAg
IHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9p
ZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgaW52YWxp
ZGF0ZVBsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIGJvb2wgZXh0ZXJuYWxPdXRwdXREZXZp
Y2VBdmFpbGFibGUoKSBmaW5hbDsKKyAgICBBVk91dHB1dENvbnRleHQgKm91dHB1dENvbnRleHQo
KSBmaW5hbDsKKworICAgIEFWUm91dGVQaWNrZXJWaWV3ICpkZXZpY2VQaWNrZXIoKTsKKyAgICBB
VlJvdXRlRGV0ZWN0b3IgKnJvdXRlRGV0ZWN0b3IoKTsKKyAgICBBVk91dHB1dENvbnRleHQgKiBv
dXRwdXRDb250ZXh0SW50ZXJuYWwoKTsKKyAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3Q7
CisKKyAgICBSZXRhaW5QdHI8QVZSb3V0ZURldGVjdG9yPiBtX3JvdXRlRGV0ZWN0b3I7CisgICAg
UmV0YWluUHRyPEFWUm91dGVQaWNrZXJWaWV3PiBtX3JvdXRlUGlja2VyVmlldzsKKyAgICBSZXRh
aW5QdHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRleHQ7CisgICAgUmV0YWluUHRyPFdl
YkFWUm91dGVQaWNrZXJWaWV3SGVscGVyPiBtX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlOworICAg
IGJvb2wgbV9oYWRBY3RpdmVSb3V0ZSB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBp
Y2tlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZWM2NzQxNDI3MTNiZjA3ZmY4ZmJmNjY1Yjc0YzJjYzY2NDI1
OTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KQEAgLTAs
MCArMSwyNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFW
Um91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmgiCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiTG9nZ2lu
Zy5oIgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUm91dGVEZXRlY3Rvci5oPgorI2ltcG9ydCA8
V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9u
U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYv
TWFpblRocmVhZC5oPgorCisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNp
bXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgorCitTT0ZUTElOS19BVktJ
VF9GUkFNRVdPUksoKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlJvdXRlUGlj
a2VyVmlldykKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRlcmZhY2UgV2ViQVZS
b3V0ZVBpY2tlclZpZXdIZWxwZXIgOiBOU09iamVjdCA8QVZSb3V0ZVBpY2tlclZpZXdEZWxlZ2F0
ZT4geworICAgIFdlYWtQdHI8QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI+IG1fY2FsbGJh
Y2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyPiYmKWNhbGxiYWNrOworLSAodm9pZCljbGVhckNhbGxi
YWNrOworLSAodm9pZClub3RpZmljYXRpb25IYW5kbGVyOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbjsKKy0gKHZvaWQpcm91dGVQaWNrZXJWaWV3RGlkRW5kUHJlc2VudGluZ1JvdXRlczoo
QVZSb3V0ZVBpY2tlclZpZXcgKilyb3V0ZVBpY2tlclZpZXc7CitAZW5kCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworYm9vbCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aXNBdmFpbGFi
bGUoKQoreworICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShmbGFnLCBbXSAoKSB7CisgICAgICAgIGlm
ICghUEFMOjpnZXRBVlJvdXRlUGlja2VyVmlld0NsYXNzKCkpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKGF1dG8gcGlja2VyID0gYWRvcHROUyhbYWxsb2NBVlJvdXRlUGlja2Vy
Vmlld0luc3RhbmNlKCkgaW5pdF0pKQorICAgICAgICAgICAgYXZhaWxhYmxlID0gW3BpY2tlciBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dSb3V0ZVBpY2tpbmdDb250cm9sc0Zvck91
dHB1dENvbnRleHQ6cmVsYXRpdmVUb1JlY3Q6b2ZWaWV3OildOworICAgIH0pOworCisgICAgcmV0
dXJuIGF2YWlsYWJsZTsKK30KKworQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OkFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYg
Y2xpZW50KQorICAgIDogQVZQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnQpCisgICAgLCBtX3Jv
dXRlUGlja2VyVmlld0RlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBl
ciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazptYWtlV2Vha1B0cigqdGhpcyldKSkKK3sKKyAgICBB
U1NFUlQoaXNBdmFpbGFibGUoKSk7Cit9CisKK0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
Ojp+QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIoKQoreworICAgIFttX3JvdXRlUGlja2Vy
Vmlld0RlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOworfQorCitBVk91dHB1dENvbnRleHQgKiBBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6b3V0cHV0Q29udGV4dEludGVybmFsKCkKK3sKKyAg
ICBpZiAoIW1fb3V0cHV0Q29udGV4dCkgeworICAgICAgICBtX291dHB1dENvbnRleHQgPSBbUEFM
OjpnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIGlUdW5lc0F1ZGlvQ29udGV4dF07CisgICAgICAg
IEFTU0VSVChtX291dHB1dENvbnRleHQpOworICAgICAgICBpZiAobV9vdXRwdXRDb250ZXh0KQor
ICAgICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjptX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlLmdldCgpIHNlbGVjdG9yOkBzZWxlY3Rvcihu
b3RpZmljYXRpb25IYW5kbGVyOikgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZPdXRwdXRD
b250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX291dHB1
dENvbnRleHQuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiBtX291dHB1dENvbnRleHQuZ2V0
KCk7Cit9CisKK0FWUm91dGVQaWNrZXJWaWV3ICpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tl
cjo6ZGV2aWNlUGlja2VyKCkKK3sKKyAgICBpZiAoIW1fcm91dGVQaWNrZXJWaWV3KSB7CisgICAg
ICAgIG1fcm91dGVQaWNrZXJWaWV3ID0gYWRvcHROUyhbYWxsb2NBVlJvdXRlUGlja2VyVmlld0lu
c3RhbmNlKCkgaW5pdF0pOworICAgICAgICBbbV9yb3V0ZVBpY2tlclZpZXcgc2V0RGVsZWdhdGU6
bV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZS5nZXQoKV07CisgICAgfQorCisgICAgcmV0dXJuIG1f
cm91dGVQaWNrZXJWaWV3LmdldCgpOworfQorCitBVlJvdXRlRGV0ZWN0b3IgKkFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpyb3V0ZURldGVjdG9yKCkKK3sKKyAgICBpZiAoIW1fcm91dGVE
ZXRlY3RvcikgeworICAgICAgICBtX3JvdXRlRGV0ZWN0b3IgPSBhZG9wdE5TKFtQQUw6OmFsbG9j
QVZSb3V0ZURldGVjdG9ySW5zdGFuY2UoKSBpbml0XSk7CisgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6bV9yb3V0ZVBpY2tlclZpZXdEZWxl
Z2F0ZS5nZXQoKSBzZWxlY3RvcjpAc2VsZWN0b3Iobm90aWZpY2F0aW9uSGFuZGxlcjopIG5hbWU6
UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0
ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bV9yb3V0ZURldGVjdG9yLmdldCgpXTsK
KyAgICAgICAgaWYgKFttX3JvdXRlRGV0ZWN0b3IgbXVsdGlwbGVSb3V0ZXNEZXRlY3RlZF0pCisg
ICAgICAgICAgICBhdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgcmV0
dXJuIG1fcm91dGVEZXRlY3Rvci5nZXQoKTsKK30KKwordm9pZCBBVlJvdXRlUGlja2VyVmlld1Rh
cmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqdmlldywgY29uc3Qg
RmxvYXRSZWN0JiByZWN0SW5TY3JlZW5Db29yZGluYXRlcywgYm9vbCBoYXNBY3RpdmVSb3V0ZSwg
Ym9vbCB1c2VEYXJrQXBwZWFyYW5jZSkKK3sKKyAgICBpZiAoIWNsaWVudCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvICpwaWNrZXIgPSBkZXZpY2VQaWNrZXIoKTsKKyAgICBpZiAodXNl
RGFya0FwcGVhcmFuY2UpCisgICAgICAgIHBpY2tlci5yb3V0ZUxpc3RBbHdheXNIYXNEYXJrQXBw
ZWFyYW5jZSA9IFlFUzsKKworICAgIG1faGFkQWN0aXZlUm91dGUgPSBoYXNBY3RpdmVSb3V0ZTsK
KworICAgIGF1dG8gcmVjdEluV2luZG93Q29vcmRpbmF0ZXMgPSBbdmlldy53aW5kb3cgY29udmVy
dFJlY3RGcm9tU2NyZWVuOk5TTWFrZVJlY3QocmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMueCgpLCBy
ZWN0SW5TY3JlZW5Db29yZGluYXRlcy55KCksIDEuMCwgMS4wKV07CisgICAgYXV0byByZWN0SW5W
aWV3Q29vcmRpbmF0ZXMgPSBbdmlldyBjb252ZXJ0UmVjdDpyZWN0SW5XaW5kb3dDb29yZGluYXRl
cyBmcm9tVmlldzp2aWV3XTsKKyAgICBbcGlja2VyIHNob3dSb3V0ZVBpY2tpbmdDb250cm9sc0Zv
ck91dHB1dENvbnRleHQ6b3V0cHV0Q29udGV4dEludGVybmFsKCkgcmVsYXRpdmVUb1JlY3Q6cmVj
dEluVmlld0Nvb3JkaW5hdGVzIG9mVmlldzp2aWV3XTsKK30KKwordm9pZCBBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlcjo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkKK3sK
KyAgICByb3V0ZURldGVjdG9yKCkucm91dGVEZXRlY3Rpb25FbmFibGVkID0gWUVTOworfQorCit2
b2lkIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNr
VGFyZ2V0cygpCit7CisgICAgaWYgKG1fcm91dGVEZXRlY3RvcikKKyAgICAgICAgW21fcm91dGVE
ZXRlY3RvciBzZXRSb3V0ZURldGVjdGlvbkVuYWJsZWQ6Tk9dOworfQorCitib29sIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgpCit7
CisgICAgcmV0dXJuIHJvdXRlRGV0ZWN0b3IoKS5tdWx0aXBsZVJvdXRlc0RldGVjdGVkOworfQor
CitBVk91dHB1dENvbnRleHQgKiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6b3V0cHV0
Q29udGV4dCgpCit7CisgICAgcmV0dXJuIG1fb3V0cHV0Q29udGV4dC5nZXQoKTsKK30KKwordm9p
ZCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0
cygpCit7CisgICAgaWYgKG1fcm91dGVEZXRlY3RvcikgeworICAgICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fcm91dGVQaWNrZXJWaWV3
RGVsZWdhdGUuZ2V0KCkgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9y
TXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX3Jv
dXRlRGV0ZWN0b3IuZ2V0KCldOworICAgICAgICBbbV9yb3V0ZURldGVjdG9yIHNldFJvdXRlRGV0
ZWN0aW9uRW5hYmxlZDpOT107CisgICAgICAgIG1fcm91dGVQaWNrZXJWaWV3ID0gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBpZiAobV9vdXRwdXRDb250ZXh0KSB7CisgICAgICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9yb3V0ZVBpY2tlclZp
ZXdEZWxlZ2F0ZS5nZXQoKSBuYW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk91dHB1dENvbnRl
eHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2JqZWN0Om1fb3V0cHV0Q29u
dGV4dC5nZXQoKV07CisgICAgICAgIG1fb3V0cHV0Q29udGV4dCA9IG51bGxwdHI7CisgICAgfQor
CisgICAgaWYgKG1fcm91dGVQaWNrZXJWaWV3KSB7CisgICAgICAgIFttX3JvdXRlUGlja2VyVmll
dyBzZXREZWxlZ2F0ZTpuaWxdOworICAgICAgICBtX3JvdXRlUGlja2VyVmlldyA9IG51bGxwdHI7
CisgICAgfQorICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKK30KK3ZvaWQgQVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXI6OmF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKQoreworICAg
IGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPmF2YWlsYWJsZURldmljZXNDaGFuZ2Vk
KCk7Cit9CisKK2Jvb2wgQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6Omhhc0FjdGl2ZVJv
dXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fb3V0cHV0Q29udGV4dCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKFttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcyldICYmIFttX291dHB1dENvbnRl
eHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2VzKV0mJiBbbV9vdXRw
dXRDb250ZXh0IHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzXSkgeworICAgICAgICBmb3Ig
KEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21fb3V0cHV0Q29udGV4dCBvdXRwdXRE
ZXZpY2VzXSkgeworICAgICAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAm
IChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8IEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlv
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZSldKSB7CisgICAgICAgIGlmIChhdXRvICpv
dXRwdXREZXZpY2UgPSBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZV0pCisgICAgICAgICAg
ICByZXR1cm4gb3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgKEFWT3V0cHV0RGV2aWNlRmVh
dHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8pOworICAgIH0KKworICAgIHJl
dHVybiBbbV9vdXRwdXRDb250ZXh0IGRldmljZU5hbWVdOworfQorCit2b2lkIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCkKK3sKKyAgICBhdXRv
IGhhdmVBY3RpdmVSb3V0ZSA9IGhhc0FjdGl2ZVJvdXRlKCk7CisgICAgaWYgKCFjbGllbnQoKSB8
fCBtX2hhZEFjdGl2ZVJvdXRlID09IGhhdmVBY3RpdmVSb3V0ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9oYWRBY3RpdmVSb3V0ZSA9IGhhdmVBY3RpdmVSb3V0ZTsKKyAgICBjbGllbnQoKS0+
Y3VycmVudERldmljZUNoYW5nZWQoKTsKK30KKwordm9pZCBBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlcjo6ZGV2aWNlUGlja2VyV2FzRGlzbWlzc2VkKCkKK3sKKyAgICBpZiAoIWNsaWVudCgp
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY2xpZW50KCktPnBpY2tlcldhc0Rpc21pc3Nl
ZCgpOworICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitAaW1wbGVtZW50YXRpb24gV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyPiYmKWNhbGxiYWNrCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCljbGVhckNhbGxiYWNrCit7
CisgICAgbV9jYWxsYmFjayA9IG5pbDsKK30KKworLSAodm9pZClyb3V0ZVBpY2tlclZpZXdEaWRF
bmRQcmVzZW50aW5nUm91dGVzOihBVlJvdXRlUGlja2VyVmlldyAqKXJvdXRlUGlja2VyVmlldwor
eworICAgIFVOVVNFRF9QQVJBTShyb3V0ZVBpY2tlclZpZXcpOworCisgICAgaWYgKCFtX2NhbGxi
YWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtzZWxmLCBwcm90
ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSB7CisgICAgICAgIGlmICghbV9jYWxsYmFjaykK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2NhbGxiYWNrLT5kZXZpY2VQaWNrZXJX
YXNEaXNtaXNzZWQoKTsKKyAgICB9KTsKK30KKworLSAodm9pZClub3RpZmljYXRpb25IYW5kbGVy
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOworCisgICAgaWYgKCFtX2NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYp
LCBub3RpZmljYXRpb24gPSByZXRhaW5QdHIobm90aWZpY2F0aW9uKV0geworICAgICAgICBpZiAo
IW1fY2FsbGJhY2spCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFtbbm90aWZp
Y2F0aW9uIG5hbWVdIGlzRXF1YWxUb1N0cmluZzpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZPdXRw
dXRDb250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbigpXSkKKyAgICAgICAg
ICAgIG1fY2FsbGJhY2stPmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICAgICAgZWxzZSBp
ZiAoW1tub3RpZmljYXRpb24gbmFtZV0gaXNFcXVhbFRvU3RyaW5nOlBBTDo6Z2V0X0FWRm91bmRh
dGlvbl9BVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uKCldKQorICAgICAgICAgICAgbV9jYWxsYmFjay0+YXZhaWxhYmxlRGV2aWNlc0RpZENo
YW5nZSgpOworICAgIH0pOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYy5oCmluZGV4IDY0MmRmNjVkZmM4Nzc3MDRiM2IwNWYyZTgz
NjhmZWMzYzc4YzgxZWYuLmZkODE1YTAwZGEzZjBjMTc3NGZmNTU2ZjBmNGU4OWMwM2JkOThhNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjgsMzYgKzI4LDM2IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2luY2x1ZGUgIkFWUGxheWJh
Y2tUYXJnZXRQaWNrZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgi
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi1PQkpDX0NMQVNTIEFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXI7Ci1PQkpDX0NMQVNTIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJIZWxwZXI7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYyBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyIHsK
K2NsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMgZmluYWwgOiBwdWJsaWMgTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlciwgcHVibGljIEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyk7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyhNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpD
bGllbnQmKTsKLQogICAgIHZpcnR1YWwgfk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoKTsK
IAotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJv
b2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBj
aGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBmaW5hbDsKKyAgICB2b2lk
IHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgc3Rv
cE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBib29sIGV4dGVybmFsT3V0
cHV0RGV2aWNlQXZhaWxhYmxlKCkgb3ZlcnJpZGU7Ci0gICAgUmVmPE1lZGlhUGxheWJhY2tUYXJn
ZXQ+IHBsYXliYWNrVGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgYm9vbCBleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZSgpIGZpbmFsOworICAgIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBwbGF5
YmFja1RhcmdldCgpIGZpbmFsOworCisgICAgLy8gQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xp
ZW50CisgICAgdm9pZCBwaWNrZXJXYXNEaXNtaXNzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGF2YWls
YWJsZURldmljZXNDaGFuZ2VkKCkgZmluYWw7CisgICAgdm9pZCBjdXJyZW50RGV2aWNlQ2hhbmdl
ZCgpIGZpbmFsOwogCi0gICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciAqZGV2aWNlUGlj
a2VyKCk7CisgICAgQVZQbGF5YmFja1RhcmdldFBpY2tlciYgcm91dGVQaWNrZXIoKTsKIAotICAg
IFJldGFpblB0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyPiBtX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVySGVscGVyPiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGU7Ci0gICAgYm9v
bCBtX3Nob3dpbmdNZW51IHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZQbGF5YmFj
a1RhcmdldFBpY2tlcj4gbV9yb3V0ZVBpY2tlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjLm1tCmluZGV4IDJiNWU1NDEzZjhmODNmZDAzZTdkZTgyMzU4ZTg0Yjk5ZTEyNzNj
OTcuLjFlMjAxNDMyY2M4Y2M5MzE2OTI4YTJhNzkwMmMzMDE1ZGVkZDJjNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2ltcG9ydCAiQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlci5oIgorI2ltcG9ydCAiQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5oPgpAQCAtNDQs
MTYyICs0Niw4NCBAQCBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMg
TlNTdHJpbmcgKmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGUiOwotc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1
dERldmljZVBpY2tlZEtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsKLQot
QGludGVyZmFjZSBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIDogTlNPYmpl
Y3QgewotICAgIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMqIG1fY2FsbGJhY2s7Ci19Ci0K
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjKiljYWxsYmFjazsKLS0gKHZvaWQpY2xlYXJDYWxsYmFjazsKLS0gKHZvaWQpb2JzZXJ2
ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZToo
TlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0OwotQGVuZAotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Ok1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50
JiBjbGllbnQpCiAgICAgOiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKLSAgICAs
IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlz
XSkpCiB7CiB9CiAKIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6On5NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjKCkKIHsKICAgICBzZXRDbGllbnQobnVsbHB0cik7Ci0gICAgW21fb3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZSBjbGVhckNhbGxiYWNrXTsKIH0KIAogYm9v
bCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpleHRlcm5hbE91dHB1dERldmljZUF2YWls
YWJsZSgpCiB7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHJldHVy
biBkZXZpY2VQaWNrZXIoKS5leHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZTsKLUFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorICAgIHJldHVybiByb3V0ZVBpY2tlcigpLmV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKCk7CiB9CiAKIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0
PiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpwbGF5YmFja1RhcmdldCgpCiB7Ci0gICAg
QVZPdXRwdXRDb250ZXh0KiBjb250ZXh0ID0gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA/
IFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIG91dHB1dENvbnRleHRdIDogbnVs
bHB0cjsKLQotICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNy
ZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpjcmVhdGUocm91dGVQaWNrZXIoKS5vdXRwdXRDb250ZXh0KCkpOwogfQogCi1BVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyICpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZp
Y2VQaWNrZXIoKQorQVZQbGF5YmFja1RhcmdldFBpY2tlciYgTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYzo6cm91dGVQaWNrZXIoKQogewotICAgIGlmICghZ2V0QVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckNsYXNzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmRldmljZVBpY2tlciAtIGFsbG9jYXRpbmcgcGlja2Vy
Iik7Ci0KLSAgICAgICAgUmV0YWluUHRyPEFWT3V0cHV0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NBVk91dHB1dENvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKLSAgICAgICAg
bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA9IGFkb3B0TlMoW2FsbG9jQVZPdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdFdpdGhPdXRwdXRDb250ZXh0OmNvbnRleHQu
Z2V0KCldKTsKLQotICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBh
ZGRPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9y
S2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWUgb3B0aW9uczpOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07Ci0gICAgICAgIFttX291
dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIGFkZE9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZSBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29u
dGV4dDpudWxscHRyXTsKLQotICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIgLSBhbGxvY2F0ZWQgbWVudSBjb250cm9sbGVyICVwIiwg
bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSk7Ci0KLUFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgIGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9s
bGVyLmdldCgpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKQotICAgICAgICAgICAgYXZh
aWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECi0gICAgfQotCi0gICAgcmV0dXJuIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0
KCk7CisgICAgaWYgKG1fcm91dGVQaWNrZXIpCisgICAgICAgIHJldHVybiAqbV9yb3V0ZVBpY2tl
cjsKKworICAgIGlmIChBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aXNBdmFpbGFibGUo
KSkKKyAgICAgICAgbV9yb3V0ZVBpY2tlciA9IG1ha2VVbmlxdWU8QVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI+KCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1fcm91dGVQaWNrZXIgPSBt
YWtlVW5pcXVlPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+KCp0aGlz
KTsKKyAgICAKKyAgICByZXR1cm4gKm1fcm91dGVQaWNrZXI7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0
UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2UpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihQbGF0Zm9ybVZpZXcqIHZpZXcsIGNvbnN0IEZsb2F0UmVjdCYgbG9jYXRpb24sIGJv
b2wgaGFzQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCiB7Ci0gICAgaWYgKCFj
bGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIgLSBoYXNBY3RpdmVSb3V0ZSA9ICVpIiwgKGludCloYXNBY3RpdmVSb3V0ZSk7Ci0KLSAgICBt
X3Nob3dpbmdNZW51ID0gdHJ1ZTsKLQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KLSAgICBib29sIHRhcmdldFNlbGVjdGVkID0gW2RldmljZVBpY2tlcigpIHNob3dNZW51Rm9y
UmVjdDpsb2NhdGlvbiBhcHBlYXJhbmNlTmFtZToodXNlRGFya0FwcGVhcmFuY2UgPyBOU0FwcGVh
cmFuY2VOYW1lVmlicmFudERhcmsgOiBOU0FwcGVhcmFuY2VOYW1lVmlicmFudExpZ2h0KSBhbGxv
d1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTohaGFzQWN0aXZlUm91dGVdOwotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0KLSAgICBpZiAodGFyZ2V0U2VsZWN0ZWQg
IT0gaGFzQWN0aXZlUm91dGUpCi0gICAgICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKLSAg
ICBlbHNlIGlmICghdGFyZ2V0U2VsZWN0ZWQgJiYgIWhhc0FjdGl2ZVJvdXRlKQotICAgICAgICBw
bGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpOwotCi0gICAgbV9zaG93aW5nTWVudSA9
IGZhbHNlOworICAgIHJvdXRlUGlja2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHZpZXcs
IGxvY2F0aW9uLCBoYXNBY3RpdmVSb3V0ZSwgdXNlRGFya0FwcGVhcmFuY2UpOwogfQogCiB2b2lk
IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNr
VGFyZ2V0cygpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yzo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzIik7CiAKLSAgICBkZXZpY2VQaWNr
ZXIoKTsKKyAgICByb3V0ZVBpY2tlcigpLnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0
cygpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0b3BNb25pdG9y
aW5nUGxheWJhY2tUYXJnZXRzKCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyIpOwotICAgIC8vIE5v
dGhpbmcgdG8gZG8sIEFpclBsYXkgdGFrZXMgY2FyZSBvZiB0aGlzIGF1dG9tYXRpY2FsbHkuCisg
ICAgcm91dGVQaWNrZXIoKS5zdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogfQogCiB2
b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmludmFsaWRhdGVQbGF5YmFja1Rhcmdl
dHMoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Omlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMiKTsKIAotICAgIGlmIChtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyKSB7Ci0gICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92
ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JL
ZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07Ci0gICAgICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZV07Ci0gICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIg
PSBudWxscHRyOwotICAgIH0KKyAgICBtX3JvdXRlUGlja2VyID0gbnVsbHB0cjsKICAgICBjdXJy
ZW50RGV2aWNlRGlkQ2hhbmdlKCk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotQGlt
cGxlbWVudGF0aW9uIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
KiljYWxsYmFjawordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpwaWNrZXJXYXNE
aXNtaXNzZWQoKQogewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgbV9jYWxsYmFjayA9IGNhbGxiYWNrOwotCi0gICAgcmV0dXJuIHNl
bGY7CisgICAgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKTsKIH0KIAotLSAodm9p
ZCljbGVhckNhbGxiYWNrCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmF2YWls
YWJsZURldmljZXNDaGFuZ2VkKCkKIHsKLSAgICBtX2NhbGxiYWNrID0gbmlsOworICAgIGF2YWls
YWJsZURldmljZXNEaWRDaGFuZ2UoKTsKIH0KIAotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkg
KiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3ZvaWQgTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1hYzo6Y3VycmVudERldmljZUNoYW5nZWQoKQogewotICAgIFVOVVNFRF9QQVJBTShv
YmplY3QpOwotICAgIFVOVVNFRF9QQVJBTShjaGFuZ2UpOwotICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKLQotICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6b2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aCAtIGtleSA9ICVzIiwgW2tleVBhdGggVVRGOFN0cmluZ10pOwotCi0gICAgaWYgKCFba2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1l
XSAmJiAhW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2Vk
S2V5TmFtZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVySGVscGVyPiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKLSAgICBSZXRh
aW5QdHI8TlNTdHJpbmc+IHByb3RlY3RlZEtleVBhdGggPSBrZXlQYXRoOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpLCBwcm90ZWN0
ZWRLZXlQYXRoID0gV1RGTW92ZShwcm90ZWN0ZWRLZXlQYXRoKV0gewotICAgICAgICBNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPm1fY2FsbGJh
Y2s7Ci0gICAgICAgIGlmICghY2FsbGJhY2spCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKFtwcm90ZWN0ZWRLZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZUtleU5hbWVdKQotICAgICAgICAgICAgY2FsbGJhY2stPmF2YWlsYWJsZURl
dmljZXNEaWRDaGFuZ2UoKTsKLSAgICAgICAgZWxzZSBpZiAoW3Byb3RlY3RlZEtleVBhdGggaXNF
cXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZV0pCi0gICAgICAg
ICAgICBjYWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5nZSgpOwotICAgIH0pOworICAgIGN1
cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKIH0KLUBlbmQKKworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKIAogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2suY3BwCmluZGV4IGI2YTg5YzdjNTJmYzA1YzE5YjBlNTI2NTAwOGZl
OTQ5YzA2NTdiZmUuLjdjMGZhMjZkZTIxZGU2NjYzNDY0NjIwM2I3MzM5YTY1ZTE2YzY1ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlZjxNZWRpYVBs
YXliYWNrVGFyZ2V0PiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6cGxheWJhY2tUYXJn
ZXQoKQogICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0TW9jazo6Y3JlYXRl
KG1fZGV2aWNlTmFtZSwgbV9zdGF0ZSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29s
IGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCit2b2lkIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1W
aWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURh
cmtBcHBlYXJhbmNlKQogewogICAgIGlmICghY2xpZW50KCkgfHwgbV9zaG93aW5nTWVudSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCmluZGV4IGI4Y2JhYzAzMDE0MmE4
OWEwOGM0MWViYmQzMmQxYTIwZGEzNDIxZjAuLjBkYTcwNGIxNTE0YmViYzkzY2RkYjBiZTQyNWQ1
M2VkZjM0ZTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKQEAgLTQzLDcgKzQzLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2soKTsK
IAotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJv
b2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxv
YXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBv
dmVycmlkZTsKICAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzljMzBkNTM0Y2FmNWUyNTY0MTAx
NDcxZWIwMDc0NDAzNDExMDNjMy4uODk0MzQ3YmRiNGE2ZTA3YTM1NTMxM2EzMWQ2NmMwZDIzNTBh
ZWVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1MzQsNiAr
MTUzNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIGZp
bmFsOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgYm9vbCBh
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgZmluYWwgeyByZXR1cm4gaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCk7IH0KKyAgICBQbGF0Zm9ybVZpZXcqIHBsYXRmb3JtVmlldygpIGNvbnN0IGZpbmFs
OwogI2VuZGlmCiAKICAgICB2b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggYTNlNzQw
MDA1NGU4ZGQ4NWNhNWM1NjBlYzJlYTNjOGJlODBjYzcyNy4uZDU1OGVkMmQ2N2JjOTMxZWIyNmM4
ZWI2NDJiNzU2NmRiMGRmYmFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tCkBAIC02NzMsNiArNjczLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCgpCiAgICAgZ3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0
ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7CiB9CiAKK1BsYXRmb3JtVmlldyog
V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVZpZXcoKSBjb25zdAoreworICAgIHJldHVybiBbcGFnZUNs
aWVudCgpLnBsYXRmb3JtV2luZG93KCkgY29udGVudFZpZXddOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLmgKaW5kZXggMzQ2Mzg2YzA4MDI0ZDk5MDVhN2YyMGZhMGQ1MWJlYWY2NWQ2ZmQyNi4uMGI5
MjM4MzVlOWUxNWI2YjgwNDViNDlhZmUyOWU2YWFiMDNlY2ZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKK09CSkNfQ0xB
U1MgV2ViVmlldzsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmxvYXRSZWN0OwogY2xh
c3MgTWVkaWFQbGF5YmFja1RhcmdldDsKQEAgLTQxLDEwICs0MywxMCBAQCBjbGFzcyBQYWdlOwog
Y2xhc3MgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlciA6IHB1YmxpYyBXZWJDb3JlOjpXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYk1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXI+IGNyZWF0ZShXZWJDb3JlOjpQYWdlJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBjcmVhdGUoV2ViVmlldyAqLCBXZWJD
b3JlOjpQYWdlJik7CiAKLSAgICBleHBsaWNpdCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
KFdlYkNvcmU6OlBhZ2UmKTsKLSAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyKCkgeyB9CisgICAgZXhwbGljaXQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihXZWJW
aWV3ICosIFdlYkNvcmU6OlBhZ2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwpAQCAtNTQsMTYgKzU2LDE4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKTsK
ICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CiAK
LSAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ci0gICAgdm9pZCBzZXRQbGF5YmFj
a1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBS
ZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBl
eHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllcikgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0
ZToKKyAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50CisgICAgdm9pZCBzZXRQbGF5
YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CisgICAgdm9pZCBl
eHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBmaW5hbDsKKyAgICB2b2lkIHNldFNo
b3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNr
ZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllcikgZmluYWw7CisgICAgUGxhdGZvcm1WaWV3KiBwbGF0Zm9ybVZpZXcoKSBjb25zdCBmaW5h
bDsKKwogICAgIFdlYkNvcmU6OlBhZ2UqIG1fcGFnZTsKKyAgICBXZWJWaWV3ICptX3dlYlZpZXc7
CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQppbmRleCBiYjgxNWM1
ZDI0ODcyMzMwMTMwMjA5MzM2ZTdjYzZjZTgzYjFhY2U5Li43MzQ0MzU2NzVhYjgwOWI1MGVjNWVm
MzhhYjlmNzdjYTE0OGIzMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCkBAIC0y
NywxNyArMjcsMTkgQEAKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW1wb3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAKLXN0ZDo6dW5pcXVl
X3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjpjcmVhdGUoV2ViQ29yZTo6UGFnZSYgcGFnZSkKK3N0ZDo6dW5pcXVlX3B0cjxXZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpj
cmVhdGUoV2ViVmlldyAqd2ViVmlldywgV2ViQ29yZTo6UGFnZSYgcGFnZSkKIHsKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPihwYWdlKTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPih3ZWJWaWV3LCBw
YWdlKTsKIH0KIAotV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcihXZWJDb3JlOjpQYWdlJiBwYWdlKQorV2ViTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihXZWJWaWV3ICp3ZWJWaWV3LCBX
ZWJDb3JlOjpQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKCZwYWdlKQorICAgICwgbV93ZWJWaWV3
KHdlYlZpZXcpCiB7CiB9CiAKQEAgLTEwOSw3ICsxMTEsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZChXZWJDb3Jl
OjpQbGEKIHZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZSgpCiB7
CiAgICAgbV9wYWdlID0gbnVsbHB0cjsKKyAgICBtX3dlYlZpZXcgPSBuaWw7CiAgICAgV2ViQ29y
ZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkucmVtb3ZlQWxsUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRzKCp0aGlzKTsKIH0KIAorUGxhdGZvcm1WaWV3KiBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpwbGF0Zm9ybVZpZXcoKSBjb25zdAoreworICAgIEFTU0VSVChtX3dl
YlZpZXcpOworICAgIHJldHVybiBtX3dlYlZpZXc7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDg1ZDY5NDNlMzZiYWU2MzdhMGUw
OWI1NDc5ZGFiMzViMzlhYTdjY2MuLjE2NDdkNjQ3MzFkNTc0MTRjNWNiNWY1ODdiOWRiNWE0OTZj
ODM2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTk3NDMsNyArOTc0Myw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJz
KCkKIC0gKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIgKikgX2RldmljZVBpY2tlcgogewog
ICAgIGlmICghX3ByaXZhdGUtPm1fcGxheWJhY2tUYXJnZXRQaWNrZXIpCi0gICAgICAgIF9wcml2
YXRlLT5tX3BsYXliYWNrVGFyZ2V0UGlja2VyID0gV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
cjo6Y3JlYXRlKCpfcHJpdmF0ZS0+cGFnZSk7CisgICAgICAgIF9wcml2YXRlLT5tX3BsYXliYWNr
VGFyZ2V0UGlja2VyID0gV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Y3JlYXRlKHNlbGYs
ICpfcHJpdmF0ZS0+cGFnZSk7CiAKICAgICByZXR1cm4gX3ByaXZhdGUtPm1fcGxheWJhY2tUYXJn
ZXRQaWNrZXIuZ2V0KCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404464</attachid>
            <date>2020-07-16 10:49:12 -0700</date>
            <delta_ts>2020-07-20 12:44:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213497-20200716104912.patch</filename>
            <type>text/plain</type>
            <size>80488</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyOTg3NzZjOWZjMDYx
YTg4NjAyOTI2ZWQ3ODIwY2I1OGE5NDIxMy4uNzk3NzRjNjdmYTJhNzc0NmVkMWYxN2ViYWVjMTk1
MWM4MjM0ZjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAyMC0wNy0xNSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0
ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBK
ZXIgTm9ibGUuCisKKyAgICAgICAgVXNlIGFuIEFWUm91dGVQaWNrZXJWaWV3LCB0aGUgcmVwbGFj
ZW1lbnQgZm9yIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIsIHdoZW4KKyAgICAgICAgaXQg
aXMgYXZhaWxhYmxlIHRvIGFsbG93IGEgdXNlciB0byBwaWNrIGFuIEFpclBsYXkgZGV2aWNlLiBU
byBkbyB0aGlzLCBjcmVhdGUgYW4gCisgICAgICAgIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIgYWJz
dHJhY3QgYmFzZSBhbmQgY3JlYXRlIGEgY29uY3JldGUgY2xhc3MgZnJvbSB0aGUgCisgICAgICAg
IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXItc3BlY2lmaWMgY29kZSBmcm9tIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMsIGFuZAorICAgICAgICBjcmVhdGUgYSBuZXcgY29uY3JldGUg
Y2xhc3MgdXNpbmcgQVZSb3V0ZVBpY2tlclZpZXcuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5
IGJlY2F1c2UgdGhlc2UgY2hhbmdlcyByZXF1aXJlIGFuIEFpclBsYXkgZGV2aWNlLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOiBQYXNzIHRoZSB2aWV3IHRvIHRoZQorICAgICAgICB0YXJnZXQgcGlja2VyLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OnBsYXliYWNrVGFyZ2V0UGlj
a2VyV2FzRGlzbWlzc2VkKTogRHJpdmUtYnkgZml4OiByZXR1cm4KKyAgICAgICAgZWFybHkgaWYg
dGhlcmUgYXJlIG5vIHBlbmRpbmcgcHJvbWlzZXMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OiBBZGQgbmV3IGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6IEFkZCBuZXcgcGFyYW1ldGVyLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYy5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW06IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpBVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVyVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjphdmFpbGFibGVEZXZpY2VzRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXI6OmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpz
dG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlUGxheWJhY2tUYXJn
ZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXI6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6Om91dHB1dENvbnRl
eHQpOgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIGlu
aXRXaXRoQ2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJIZWxwZXIgY2xlYXJDYWxsYmFja10pOgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVySGVscGVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hh
bmdlOmNvbnRleHQ6XSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZQbGF5YmFja1RhcmdldFBpY2tlcjo6QVZQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpjbGllbnQgY29uc3QpOgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tl
clZpZXdUYXJnZXRQaWNrZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmlzQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
OjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6fkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpvdXRw
dXRDb250ZXh0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlj
a2VyVmlld1RhcmdldFBpY2tlcjo6cm91dGVEZXRlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpzdGFydGlu
Z01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMpOgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmll
d1RhcmdldFBpY2tlcjo6b3V0cHV0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6YXZhaWxhYmxlRGV2
aWNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlcjo6Y3VycmVudERldmljZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6ZGV2aWNlUGlja2VyV2FzRGlzbWlzc2VkKToKKyAg
ICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgaW5pdFdpdGhDYWxsYmFjazpdKToK
KyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIgZGVhbGxvY10pOgorICAgICAg
ICAoLVtXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBjbGVhckNhbGxiYWNrXSk6CisgICAgICAg
ICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIHJvdXRlUGlja2VyVmlld0RpZEVuZFByZXNl
bnRpbmdSb3V0ZXM6XSk6CisgICAgICAgICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIG5v
dGlmaWNhdGlvbkhhbmRsZXI6XSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6ZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1hYzo6cGxheWJhY2tUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cm91dGVQaWNrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0
aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjppbnZhbGlkYXRl
UGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNYWM6OnBpY2tlcldhc0Rpc21pc3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjOjphdmFpbGFibGVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpjdXJyZW50RGV2aWNlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpk
ZXZpY2VQaWNrZXIpOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVySGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6IERlbGV0ZWQuCisgICAgICAgICgt
W1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgY2xlYXJDYWxsYmFja10pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVy
IG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmg6CisKIDIwMjAtMDctMTQgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEF2b2lkIGxvYWRpbmcgbWVk
aWEgbGlicmFyaWVzIGluIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkgaWYgbm90
IG5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggY2JhOTE0ZTFlMzhkYjNkY2M4NjEyNjdmOWE1
MDg2ZTVkMjBhZDRlYS4uZTBjY2FiZDkzYzg3NmVlNzZjZGY3MDMzNDc4YmE0NTMxNTBlMzgxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDctMTUgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEFWUm91dGVQaWNr
ZXJWaWV3IHdoZW4gYXZhaWxhYmxlIGZvciBjaG9vc2luZyBBaXJQbGF5IGRldmljZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ5NworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTg2MTA2NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5v
YmxlLgorCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAg
ICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOiBTb2Z0IGxpbmsgQVZSb3V0
ZVBpY2tlclZpZXcuCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oOiBEZWNsYXJl
IEFWUm91dGVQaWNrZXJWaWV3LgorCiAyMDIwLTA3LTEyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgQnVpbGRpbmcgQ0ZOZXR3b3JrU1BJIHdpdGggdGhlIG1hY09TIEJp
ZyBTdXIgcHVibGljIFNESyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0YzFkMzY2OWUyYjM5NmRiYjljYWM1
MWE2ZDUzMGIxM2U4OTY1MWIzLi43NGUwYjRkMDEwZWJhNTBhNThiMzExZTY1M2UzNmQ1OTdlNzgw
YTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTE1ICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBVlJvdXRlUGlja2VyVmll
dyB3aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWlyUGxheSBkZXZpY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0OTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpwbGF0Zm9ybVZpZXcgY29uc3QpOiBBZGQgbmV3IG92ZXJyaWRlLgorCiAyMDIwLTA3LTE0ICBL
YXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFj
T1MgaU9TIF0gaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5l
cmF0aW9uLWJhc2ljLWZ1bmN0aW9uYWxpdHktZGF0YWJhc2UuaHRtbCBpcyBhIHJhcmUgZmxha3kg
ZmFpbHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGUzMjRlZjQyNWI1ZTI2Yjcx
YTQ4Y2RjNGFiYzYzNmI2NWY1MmI2ZTAuLjQ2MDNlNjVhN2I0OWI5YTRiNjE3ZjhlYzA1MjA5NDhi
MWYyYzIwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAyMC0wNy0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFp
clBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6On5XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChX
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXRmb3JtVmlldyBjb25zdCk6IE5ldyBvdmVycmlk
ZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBf
ZGV2aWNlUGlja2VyXSk6IFBhc3MgdmlldyB0byBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
IGZhY3RvcnkuCisKIDIwMjAtMDctMTMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIg
cmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cAppbmRleCA4NzU2ZmViMTQ4ZTk3OTdjYWNhOWNmMzczZDkwOWYwZWFlMWQ4OGE5Li4wZDU2NzQ5
MTU0Y2Y5NDkzYjQwMDU1ZWU5MTlmYTI2ZTUxNDgwNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAgICAg
QUxXQVlTX0xPR19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBtX2NsaWVudFN0YXRlW2lu
ZGV4XS5nZXQoKSk7CiAKICAgICBib29sIGhhc0FjdGl2ZVJvdXRlID0gZmxhZ3NBcmVTZXQobV9j
bGllbnRTdGF0ZVtpbmRleF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKTsKLSAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
RmxvYXRSZWN0KHJlY3QpLCBoYXNBY3RpdmVSb3V0ZSwgdXNlRGFya0FwcGVhcmFuY2UpOworICAg
IHRhcmdldFBpY2tlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnQucGxhdGZvcm1W
aWV3KCksIEZsb2F0UmVjdChyZWN0KSwgaGFzQWN0aXZlUm91dGUsIHVzZURhcmtBcHBlYXJhbmNl
KTsKIH0KIAogdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggNjJiZjJhYTA5YWE5
NTY5YzFiNzc0ZjQ5Y2QxODU2ZDMwYjhkMDYzNi4uZDdmMjhjY2I3NWU1ZDc1NWRhZjQzMzRlZjY1
NmNiMTQxOTBmYWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCIKICNpbmNsdWRlICJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVZpZXcuaCIKICNpbmNsdWRlICJQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaAppbmRleCAyMjFj
NGMzMDVmNGFlNmU0M2IzY2ZmNjA0ZTAwNWEwZWNkZDZiODJjLi5kNzBjYWM4MzNlNWQ1ZTUxM2Mx
YTM0YjFjZDI1N2ZmYmMzMTBlYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVu
dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlldy5oIgog
I2luY2x1ZGUgIlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAKQEAgLTQzLDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyLCBib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyV2FzRGlzbWlzc2VkKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQbGF0Zm9ybVZpZXcqIHBsYXRmb3JtVmlldygpIGNv
bnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5k
ZXggYWZiYzc5ZGIwYjdiMzFiZjUyMzhkYmE3NDg2ZmYwOTk2NDM2Yzk3ZC4uOTZkZDJiN2QzZTc1
ZTQzYzc0ZjlkYzkwZDY2NzU3YjU1ODNlZmIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKQEAgLTMyNCw2
ICszMjQsOSBAQCB2b2lkIFJlbW90ZVBsYXliYWNrOjpkaXNjb25uZWN0KCkKIAogdm9pZCBSZW1v
dGVQbGF5YmFjazo6cGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKQogeworICAgIGlm
IChtX3Byb21wdFByb21pc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8g
Ni4yLjIgUHJvbXB0IHVzZXIgZm9yIGNoYW5naW5nIHJlbW90ZSBwbGF5YmFjayBzdGF0ZSBbQ3Rk
XQogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9yZW1vdGUtcGxheWJhY2svI3N0b3Atb2Jz
ZXJ2aW5nLXJlbW90ZS1wbGF5YmFjay1kZXZpY2VzLWF2YWlsYWJpbGl0eQogICAgIC8vIFczQyBF
ZGl0b3IncyBEcmFmdCAxNSBKdWx5IDIwMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCAxMjc4MzUzN2M0ZjFmMWZjNzhm
OThlYWExMzY4NzEwN2UzY2E0OGZmLi42ODU4M2MzMTU0OWFiODQ1ZjRjZjM1NzAwYmNjNzZjNGRk
MzcwN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oCkBAIC04NCw2ICs4NCw3IEBAIFNPRlRfTElOS19DTEFTU19GT1JfSEVB
REVSKFBBTCwgQVZBdWRpb1JvdXRpbmdBcmJpdGVyKQogCiAjaWYgIVBMQVRGT1JNKFdBVENIT1Mp
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikKK1NPRlRf
TElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZSb3V0ZVBpY2tlclZpZXcpCiBTT0ZUX0xJTktf
Q0xBU1NfRk9SX0hFQURFUihQQUwsIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MpCiAjZW5kaWYK
IApAQCAtMjkxLDggKzI5Miw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVLCiAjZGVmaW5lIEFW
QXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uVHlwZUtleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZB
dWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25UeXBlS2V5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbk9wdGlv
bktleSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25PcHRp
b25LZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uT3B0
aW9uS2V5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0
aW9uLCBOU1N0cmluZyAqKQotI2RlZmluZSBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0Rl
dGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlJvdXRl
RGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vz
c2lvbk1lZGlhU2VydmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVm
aW5lIEFWQXVkaW9TZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5vdGlmaWNhdGlvbiBQQUw6
OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0Tm90
aWZpY2F0aW9uKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQpA
QCAtMzA2LDQgKzMwNSwxMSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEFW
Rm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUbwogI2RlZmluZSBBVkNh
cHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRB
cHBMYXlvdXQgc29mdExpbmtfQVZGb3VuZGF0aW9uX0FWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3Jp
emVkVG9Vc2VDYW1lcmFJbk11bHRpcGxlRm9yZWdyb3VuZEFwcExheW91dAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQ
TEVUVikKIAorI2lmICFQTEFURk9STShXQVRDSE9TKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0
ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCisjZGVmaW5lIEFWUm91dGVE
ZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gUEFMOjpn
ZXRfQVZGb3VuZGF0aW9uX0FWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRD
aGFuZ2VOb3RpZmljYXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmlj
YXRpb24sIE5TU3RyaW5nICopCisjZGVmaW5lIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNE
aWRDaGFuZ2VOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWT3V0cHV0Q29udGV4
dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKQorI2VuZGlmIC8vIFBMQVRGT1JN
KFdBVENIT1MpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggYTJj
ZmI3ZTRjNTk0NDg4MGFmMjQ1N2FjNGI2NzQxNTEzMzM0ODIyYy4uZmYzZWU1M2I5ZGI2YzU3NmYx
NmJkY2ZjYjRlNjEwYmE5ZWEyMmU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMTEsNiArMTExLDcgQEAgU09G
VF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
QXVkaW9Sb3V0aW5nQXJiaXRlciwKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElOS19D
TEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0
ZWN0b3IsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcywg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlUGlja2VyVmlldywgUEFMX0VYUE9SVCkKICNl
bmRpZgogCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQpAQCAt
MjE0LDcgKzIxNSw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uSW50CiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vz
c2lvbkludGVycnVwdGlvblJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VkNhcHR1cmVTZXNzaW9uUnVudGltZUVycm9yTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXNJbnRlcnJ1cHRlZE5vdGlmaWNhdGlvbiwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRl
c0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VOb3RpZmljYXRp
b24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCkBAIC0yMjgsNCArMjI4LDkgQEAgU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBs
ZUZvcmVncm91bmRBcHBMYXlvdXQsIHZvaWQsIChBVkNhcHR1cmVTZXNzaW9uICpzZXNzaW9uKSwg
KHNlc3Npb24pKQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShX
QVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIAorI2lmICFQTEFURk9STShXQVRDSE9TKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmlj
YXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250ZXh0T3V0cHV0
RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKKyNl
bmRpZiAvLyAhUExBVEZPUk0oV0FUQ0hPUykKKwogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRp
b25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQ
SS5oCmluZGV4IDI3YzNjODA3ZjE5ZTFhNzVlZTU3YzA5NjNhZDJmZDFjZWU4YzQxZGQuLjg3MWM4
Y2YyZjg0OTg5OGY1N2E1YjFkNGZhMWJjMTg1NTU3ZmE4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC03NCw2ICs3NCw3
IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAaW50ZXJmYWNlIEFWT3V0cHV0Q29udGV4dCA6
IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNTdHJpbmcgKmRldmljZU5hbWU7CiArIChpbnN0YW5jZXR5cGUpb3V0cHV0Q29udGV4dDsK
KysgKGluc3RhbmNldHlwZSlpVHVuZXNBdWRpb0NvbnRleHQ7CiArIChudWxsYWJsZSBBVk91dHB1
dENvbnRleHQgKilzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7CiArIChudWxs
YWJsZSBBVk91dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0Rm9ySUQ6KE5TU3RyaW5nICopSUQ7
CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2Vz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEku
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKaW5kZXggZjc3
ZjYwMjU0YTE1MjgzNWE1MDk1Y2M2NDdmOTNiNmIwYjRmMDYzYy4uYzc4NmExYzBmZGVlNDAwM2Qw
NjdhMmQ2YTFlMWQ3MzI2NmQ3NDEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9BVktpdFNQSS5oCkBAIC0yMzIsNiArMjMyLDggQEAgTlNfQVNTVU1FX05PTk5VTExfRU5E
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QVZLaXQvQVZPdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlci5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdf
UHJpdmF0ZS5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfV2ViS2l0T25seS5o
PgogCiAjZWxzZQogCkBAIC0yNTMsNiArMjU1LDIzIEBAIE5TX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfMTEpCiAKIEBlbmQKIAorQHByb3RvY29sIEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGU7CisK
K0BpbnRlcmZhY2UgQVZSb3V0ZVBpY2tlclZpZXcgOiBOU1ZpZXcKKworLSAodm9pZClzaG93Um91
dGVQaWNraW5nQ29udHJvbHNGb3JPdXRwdXRDb250ZXh0OihBVk91dHB1dENvbnRleHQgKilvdXRw
dXRDb250ZXh0IHJlbGF0aXZlVG9SZWN0OihOU1JlY3QpcG9zaXRpb25pbmdSZWN0IG9mVmlldzoo
TlNWaWV3ICopcG9zaXRpb25pbmdWaWV3OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIHdlYWspIGlkPEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGU+IGRlbGVnYXRlOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgcm91dGVMaXN0QWx3YXlzSGFzRGFya0FwcGVhcmFuY2U7CisK
K0BlbmQKKworQHByb3RvY29sIEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGUgPE5TT2JqZWN0Pgor
QG9wdGlvbmFsCistICh2b2lkKXJvdXRlUGlja2VyVmlld1dpbGxCZWdpblByZXNlbnRpbmdSb3V0
ZXM6KEFWUm91dGVQaWNrZXJWaWV3ICopcm91dGVQaWNrZXJWaWV3OworLSAodm9pZClyb3V0ZVBp
Y2tlclZpZXdEaWRFbmRQcmVzZW50aW5nUm91dGVzOihBVlJvdXRlUGlja2VyVmlldyAqKXJvdXRl
UGlja2VyVmlldzsKK0BlbmQKKwogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNDRlYTA4
ZjY0MjEyMzYyZGMzMTEzMWQ4NDY3YWVlMjc1MTc0YWY3ZS4uOTI3MWFhNjZkN2Y5ZTVkZjU4NWZm
NDU1ZjY2ZTExNGQxNTZkNjRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNzMsNiAr
MjczLDggQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIEBuby11bmlmeQor
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlci5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIEBuby11bmlmeQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZS5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3NWM2NTAwYWZlZjVhZjk5YTE2OTYyZjdmMDFkZTk5NzAwZDY3
ODQ0Li5hNjhkNDNkMmQyYWJiZjBlMjJmYWNlYjhhMjM2NDc4YzU1MzY3OThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgs
NiArMTE4LDcgQEAKIAkJMDczNzk0RUMxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRF
QTE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKIAkJMDczNzk0RkEx
OUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2NEUwMEU1
QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5NEZFMTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRD
Tm90aWZpZXJzTW9jay5oICovOyB9OworCQkwNzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAv
KiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkw
NzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVB
MDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1Nh
bXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
aCAqLzsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OwpA
QCAtMjA0LDYgKzIwNSw3IEBACiAJCTA3QzA0NkNCMUU0MjY0MTMwMDcyMDFFNyAvKiBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc1NjFFNDBEQ0U1MDA3MUMwRUMgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzFDMEUw
MUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLzsg
fTsKIAkJMDdDMUMwRTUxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA3Q0I5RTcyMjQ5QzM2QjIwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Q0I5RTZGMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1Rh
cmdldFBpY2tlci5tbSAqLzsgfTsKIAkJMDdDRTc3RDUxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDdEMTJGNUMyM0RFNTQzRjAwODA5OTdEIC8qIElTT1ZUVEN1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4NzFDNjUxRkI1MkI2
NzAwRjBCOTY1IC8qIElTT1ZUVEN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA3RDYzNzQwMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTU1NjksNiArNTU3MSw5IEBACiAJCTA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDczNzk0RjcxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTm90aWZpZXJzTW9jay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0
NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczOEU1
RTgyNDk5NjhBQzAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQ
aWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM4RTVFQTI0OTk2OEFE
MDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQ
aWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzhFNUVCMjQ5OTY5MDkw
MERBMTAxQyAvKiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQTE1
NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2ODMsNiArNTY4OCw4IEBACiAJCTA3
QzFDMEU0MUJGQjYwRUQwMEJEMjI1NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29u
c3RyYWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRNSU1FVHlwZUNh
Y2hlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0M4QUQxMjFEMDczRDYzMDA4
N0M1Q0UgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVZBc3NldE1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0
UGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3Q0I5RTcxMjQ5QzIyNkMw
MEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0NFNzdENDE2NzEyQTZBMDBDNTVBNDcgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RDYzNzNF
MUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZD
RTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MzM5LDYgKzI3MzQ2LDExIEBACiAJCQkJ
MDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tICovLAog
CQkJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCAq
LywKIAkJCQlDREVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVz
Lm1tICovLAorCQkJCTA3MzhFNUU4MjQ5OTY4QUMwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmggKi8sCisJCQkJMDczOEU1RUEyNDk5NjhBRDAwREEx
MDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi8sCisJ
CQkJMDczOEU1RUIyNDk5NjkwOTAwREExMDFDIC8qIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIuaCAq
LywKKwkJCQkwN0NCOUU3MTI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJn
ZXRQaWNrZXIuaCAqLywKKwkJCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXIubW0gKi8sCiAJCQkJQ0QxMUIzREYyMjdDQUFBOTAwMjNBRkM3
IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCAqLywKIAkJCQlDRDExQjNFMDIy
N0NBQUE5MDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbSAqLywK
IAkJCQlDRDc4QTJFRTFGNzU2NDg2MDBERTM3MUIgLyogQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMuaCAqLywKQEAgLTM0NDcxLDYgKzM0NDgzLDggQEAKIAkJCQlDREVDQTg5QTFF
REY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RDNjc1MjIxRUFFQTlCNzAwNzI3Qzg0IC8qIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURl
dmljZU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzAzNjNFMzE4MUExQ0RDMDBDMDc0
QTUgLyogQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3MzhF
NUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0
UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8q
IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Qx
MUIzRTEyMjdDRTZGMzAwMjNBRkM3IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2MTE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDM2M0U3MTgxQTFD
REMwMEMwNzRBNSAvKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLmNwcAppbmRleCBhMjIyOGNmMjk0MTcyMGM3ZmZjZmM1OTI1ZDM3
Y2I5MTJlYmNlMmQ4Li5mMjMyYjY4YmJjMjdkMDA5NDQ1NWVmMGE3NDYwMDQ2YmFjNDYwNjg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIE1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXI6OmFkZFBlbmRpbmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZsYWdz
IGFjdGlvbikKICAgICBtX3BlbmRpbmdBY3Rpb25UaW1lci5zdGFydE9uZVNob3QocGVuZGluZ0Fj
dGlvbkludGVydmFsKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCwgYm9vbCkKK3ZvaWQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRm
b3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wsIGJvb2wpCiB7CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggNDk3NDg0YTkxMDgx
MzViMjczYzE1Y2UyMDA3NGZhMGZiZjJlZmZhNy4uYjMwNzU2MGVlZDkxMGM1YjU2MTc1NWQzNjY3
ZjA0MTg4ODU3OWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAorI2luY2x1ZGUgIlBs
YXRmb3JtVmlldy5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVz
ZURhcmtBcHBlYXJhbmNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKFBsYXRmb3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0
ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0aW5nTW9u
aXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tU
YXJnZXRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
Vk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUx
ODZhMjdhZjMzMTAwZGViZDk1NWI1MWE1OGY5MzE1NjEzMzZlOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaApAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgIkFWUGxheWJhY2tU
YXJnZXRQaWNrZXIuaCIKKworT0JKQ19DTEFTUyBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
OworT0JKQ19DTEFTUyBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXIgZmluYWwgOiBwdWJsaWMgQVZQbGF5YmFja1RhcmdldFBpY2tlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcik7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcihBVlBsYXliYWNrVGFy
Z2V0UGlja2VyOjpDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVyVGFyZ2V0UGlja2VyKCk7CisKKyAgICB2b2lkIGF2YWlsYWJsZURldmljZXNEaWRDaGFu
Z2UoKTsKKyAgICB2b2lkIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKworcHJpdmF0ZToKKyAg
ICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihOU1ZpZXcgKiwgY29uc3QgRmxvYXRSZWN0
JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBmaW5hbDsK
KyAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAg
IHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2b2lkIGlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICBib29sIGV4dGVybmFsT3V0cHV0
RGV2aWNlQXZhaWxhYmxlKCkgZmluYWw7CisgICAgQVZPdXRwdXRDb250ZXh0KiBvdXRwdXRDb250
ZXh0KCkgZmluYWw7CisKKyAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpkZXZpY2VQ
aWNrZXIoKTsKKworICAgIFJldGFpblB0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyPiBt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyOworICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVySGVscGVyPiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVs
ZWdhdGU7CisgICAgYm9vbCBtX3Nob3dpbmdNZW51IHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWE4ZDA2
YzBhM2ZiYzZkYjRjZTkwYjJiMWNlMjZmMTc5Nzk4MjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpAQCAtMCwwICsxLDIwMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlci5oIgorCisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+CisjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL0FWS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorCisjaW1w
b3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oPgorCitTT0ZUTElOS19BVktJVF9GUkFNRVdPUksoKQorU09GVF9M
SU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyKQor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlIjsKK3N0YXRpYyBOU1N0cmluZyAqZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1l
ID0gQCJleHRlcm5hbE91dHB1dERldmljZVBpY2tlZCI7CisKK0BpbnRlcmZhY2UgV2ViQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsKKyAgICBXZWFrUHRyPEFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+IG1fY2FsbGJhY2s7Cit9CisK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+JiYpY2FsbGJhY2s7CistICh2b2lkKWNsZWFyQ2Fs
bGJhY2s7CistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KGlkKWtleVBhdGggb2ZPYmpl
Y3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lk
ICopY29udGV4dDsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyKEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYgY2xpZW50KQorICAg
IDogQVZQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnQpCisgICAgLCBtX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJIZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6bWFrZVdlYWtQdHIoKnRoaXMpXSkp
Cit7Cit9CisKK0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKCkKK3sKKyAgICBbbV9vdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOworfQorCitBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyICpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0
UGlja2VyOjpkZXZpY2VQaWNrZXIoKQoreworICAgIGlmICghZ2V0QVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckNsYXNzKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyKSB7CisgICAgICAgIFJldGFpblB0cjxBVk91dHB1
dENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZPdXRwdXRDb250ZXh0SW5z
dGFuY2UoKSBpbml0XSk7CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBh
ZG9wdE5TKFthbGxvY0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJJbnN0YW5jZSgpIGluaXRX
aXRoT3V0cHV0Q29udGV4dDpjb250ZXh0LmdldCgpXSk7CisKKyAgICAgICAgW21fb3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFp
bGFibGVLZXlOYW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0
Om51bGxwdHJdOworICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBh
ZGRPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9y
S2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWUgb3B0aW9uczpOU0tleVZh
bHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07CisKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgaWYgKG1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXIuZ2V0KCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpCisgICAg
ICAgICAgICBhdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAorICAgIH0KKworICAgIHJldHVybiBtX291dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyLmdldCgpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXI6OmF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKQoreworICAgIGlm
IChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPmF2YWlsYWJsZURldmljZXNDaGFuZ2VkKCk7
Cit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6Y3Vy
cmVudERldmljZURpZENoYW5nZSgpCit7CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGll
bnQoKS0+Y3VycmVudERldmljZUNoYW5nZWQoKTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3
ICosIGNvbnN0IEZsb2F0UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUsIGJvb2wg
dXNlRGFya0FwcGVhcmFuY2UpCit7CisgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Nob3dpbmdNZW51ID0gdHJ1ZTsKKworICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgYm9vbCB0YXJnZXRTZWxlY3Rl
ZCA9IFtkZXZpY2VQaWNrZXIoKSBzaG93TWVudUZvclJlY3Q6bG9jYXRpb24gYXBwZWFyYW5jZU5h
bWU6KHVzZURhcmtBcHBlYXJhbmNlID8gTlNBcHBlYXJhbmNlTmFtZVZpYnJhbnREYXJrIDogTlNB
cHBlYXJhbmNlTmFtZVZpYnJhbnRMaWdodCkgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRw
dXREZXZpY2U6IWhhc0FjdGl2ZVJvdXRlXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKKworICAgIGlmICghY2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICh0YXJnZXRTZWxlY3RlZCAhPSBoYXNBY3RpdmVSb3V0ZSkKKyAgICAgICAgY3VycmVudERldmlj
ZURpZENoYW5nZSgpOworICAgIGVsc2UgaWYgKCF0YXJnZXRTZWxlY3RlZCAmJiAhaGFzQWN0aXZl
Um91dGUpCisgICAgICAgIGNsaWVudCgpLT5waWNrZXJXYXNEaXNtaXNzZWQoKTsKKworICAgIG1f
c2hvd2luZ01lbnUgPSBmYWxzZTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQorewor
ICAgIGRldmljZVBpY2tlcigpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkKK3sKKyAgICAv
LyBOb3RoaW5nIHRvIGRvLCBBaXJQbGF5IHRha2VzIGNhcmUgb2YgdGhpcyBhdXRvbWF0aWNhbGx5
LgorfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6Omlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKQoreworICAgIGlmIChtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyKSB7CisgICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92
ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JL
ZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07CisgICAgICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZV07CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIg
PSBudWxscHRyOworICAgIH0KKyAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7Cit9CisKK2Jv
b2wgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6ZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGUoKQoreworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCisgICAgcmV0dXJuIGRldmljZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorfQorCitBVk91
dHB1dENvbnRleHQgKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpv
dXRwdXRDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ciA/IFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIG91dHB1dENvbnRleHRdIDog
bnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitAaW1wbGVtZW50YXRpb24g
V2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlcgorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlcj4mJiljYWxsYmFjaworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY2xlYXJDYWxsYmFjaworeworICAg
IG1fY2FsbGJhY2sgPSBuaWw7Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDoo
aWQpa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hh
bmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKGNoYW5nZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwor
CisgICAgaWYgKCFtX2NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWVd
ICYmICFba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRL
ZXlOYW1lXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblRocmVhZChbc2VsZiwg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwga2V5UGF0aCA9IHJldGFpblB0cihrZXlQ
YXRoKV0geworICAgICAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZUtleU5hbWVdKQorICAgICAgICAgICAgbV9jYWxsYmFjay0+YXZhaWxhYmxlRGV2
aWNlc0RpZENoYW5nZSgpOworICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJp
bmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXSkKKyAgICAgICAgICAgIG1fY2Fs
bGJhY2stPmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICB9KTsKK30KK0BlbmQKKworI2Vu
ZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNr
VGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkOWFiOTZi
MzQxY2E3YjY4OWEyZTc3ODcxYjQ3ZTUwOWQxYjNmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tU
YXJnZXRQaWNrZXIuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK09CSkNfQ0xBU1MgQVZPdXRw
dXRDb250ZXh0OworT0JKQ19DTEFTUyBOU1ZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRmxvYXRSZWN0OworCitjbGFzcyBBVlBsYXliYWNrVGFyZ2V0UGlja2VyIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPEFWUGxheWJhY2tUYXJnZXRQaWNrZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBVlBsYXliYWNrVGFyZ2V0
UGlja2VyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8Q2xpZW50PiB7CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKSA9
IGRlZmF1bHQ7CisKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgdm9pZCBwaWNrZXJXYXNE
aXNtaXNzZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdmFpbGFibGVEZXZpY2VzQ2hh
bmdlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnREZXZpY2VDaGFuZ2VkKCkg
PSAwOworICAgIH07CisKKyAgICBleHBsaWNpdCBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKENsaWVu
dCYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKCZjbGllbnQpKQorICAg
IHsKKyAgICB9CisgICAgdmlydHVhbCB+QVZQbGF5YmFja1RhcmdldFBpY2tlcigpID0gZGVmYXVs
dDsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICos
IGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFj
a1RhcmdldHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tU
YXJnZXRzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRz
KCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgp
ID0gMDsKKworICAgIHZpcnR1YWwgQVZPdXRwdXRDb250ZXh0KiBvdXRwdXRDb250ZXh0KCkgPSAw
OworCisgICAgV2Vha1B0cjxBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ+IGNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxBVlBs
YXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ+IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4NzhkZDdmNzUzZjVkYzQzMDY3MjNhNWNmMTExNGEwMDk4
YzJmZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVk
ZSAiQVZQbGF5YmFja1RhcmdldFBpY2tlci5oIgorCitPQkpDX0NMQVNTIEFWUm91dGVEZXRlY3Rv
cjsKK09CSkNfQ0xBU1MgQVZSb3V0ZVBpY2tlclZpZXc7CitPQkpDX0NMQVNTIFdlYkFWUm91dGVQ
aWNrZXJWaWV3SGVscGVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyIGZpbmFsIDogcHVibGljIEFWUGxheWJhY2tUYXJnZXRQaWNr
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcihBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpD
bGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcigpOwor
ICAgIAorICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CisKKyAgICB2b2lkIGF2YWlsYWJs
ZURldmljZXNEaWRDaGFuZ2UoKTsKKyAgICB2b2lkIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsK
KyAgICB2b2lkIGRldmljZVBpY2tlcldhc0Rpc21pc3NlZCgpOworCitwcml2YXRlOgorICAgIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqLCBjb25zdCBGbG9hdFJlY3QmLCBi
b29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIGZpbmFsOworICAg
IHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9p
ZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgaW52YWxp
ZGF0ZVBsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIGJvb2wgZXh0ZXJuYWxPdXRwdXREZXZp
Y2VBdmFpbGFibGUoKSBmaW5hbDsKKyAgICBBVk91dHB1dENvbnRleHQgKm91dHB1dENvbnRleHQo
KSBmaW5hbDsKKworICAgIEFWUm91dGVQaWNrZXJWaWV3ICpkZXZpY2VQaWNrZXIoKTsKKyAgICBB
VlJvdXRlRGV0ZWN0b3IgKnJvdXRlRGV0ZWN0b3IoKTsKKyAgICBBVk91dHB1dENvbnRleHQgKiBv
dXRwdXRDb250ZXh0SW50ZXJuYWwoKTsKKyAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3Q7
CisKKyAgICBSZXRhaW5QdHI8QVZSb3V0ZURldGVjdG9yPiBtX3JvdXRlRGV0ZWN0b3I7CisgICAg
UmV0YWluUHRyPEFWUm91dGVQaWNrZXJWaWV3PiBtX3JvdXRlUGlja2VyVmlldzsKKyAgICBSZXRh
aW5QdHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRleHQ7CisgICAgUmV0YWluUHRyPFdl
YkFWUm91dGVQaWNrZXJWaWV3SGVscGVyPiBtX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlOworICAg
IGJvb2wgbV9oYWRBY3RpdmVSb3V0ZSB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBp
Y2tlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZWM2NzQxNDI3MTNiZjA3ZmY4ZmJmNjY1Yjc0YzJjYzY2NDI1
OTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KQEAgLTAs
MCArMSwyNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFW
Um91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmgiCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiTG9nZ2lu
Zy5oIgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUm91dGVEZXRlY3Rvci5oPgorI2ltcG9ydCA8
V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9u
U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYv
TWFpblRocmVhZC5oPgorCisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNp
bXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgorCitTT0ZUTElOS19BVktJ
VF9GUkFNRVdPUksoKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlJvdXRlUGlj
a2VyVmlldykKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRlcmZhY2UgV2ViQVZS
b3V0ZVBpY2tlclZpZXdIZWxwZXIgOiBOU09iamVjdCA8QVZSb3V0ZVBpY2tlclZpZXdEZWxlZ2F0
ZT4geworICAgIFdlYWtQdHI8QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI+IG1fY2FsbGJh
Y2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyPiYmKWNhbGxiYWNrOworLSAodm9pZCljbGVhckNhbGxi
YWNrOworLSAodm9pZClub3RpZmljYXRpb25IYW5kbGVyOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbjsKKy0gKHZvaWQpcm91dGVQaWNrZXJWaWV3RGlkRW5kUHJlc2VudGluZ1JvdXRlczoo
QVZSb3V0ZVBpY2tlclZpZXcgKilyb3V0ZVBpY2tlclZpZXc7CitAZW5kCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworYm9vbCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aXNBdmFpbGFi
bGUoKQoreworICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShmbGFnLCBbXSAoKSB7CisgICAgICAgIGlm
ICghUEFMOjpnZXRBVlJvdXRlUGlja2VyVmlld0NsYXNzKCkpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKGF1dG8gcGlja2VyID0gYWRvcHROUyhbYWxsb2NBVlJvdXRlUGlja2Vy
Vmlld0luc3RhbmNlKCkgaW5pdF0pKQorICAgICAgICAgICAgYXZhaWxhYmxlID0gW3BpY2tlciBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dSb3V0ZVBpY2tpbmdDb250cm9sc0Zvck91
dHB1dENvbnRleHQ6cmVsYXRpdmVUb1JlY3Q6b2ZWaWV3OildOworICAgIH0pOworCisgICAgcmV0
dXJuIGF2YWlsYWJsZTsKK30KKworQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OkFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYg
Y2xpZW50KQorICAgIDogQVZQbGF5YmFja1RhcmdldFBpY2tlcihjbGllbnQpCisgICAgLCBtX3Jv
dXRlUGlja2VyVmlld0RlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBl
ciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazptYWtlV2Vha1B0cigqdGhpcyldKSkKK3sKKyAgICBB
U1NFUlQoaXNBdmFpbGFibGUoKSk7Cit9CisKK0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
Ojp+QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIoKQoreworICAgIFttX3JvdXRlUGlja2Vy
Vmlld0RlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOworfQorCitBVk91dHB1dENvbnRleHQgKiBBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6b3V0cHV0Q29udGV4dEludGVybmFsKCkKK3sKKyAg
ICBpZiAoIW1fb3V0cHV0Q29udGV4dCkgeworICAgICAgICBtX291dHB1dENvbnRleHQgPSBbUEFM
OjpnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIGlUdW5lc0F1ZGlvQ29udGV4dF07CisgICAgICAg
IEFTU0VSVChtX291dHB1dENvbnRleHQpOworICAgICAgICBpZiAobV9vdXRwdXRDb250ZXh0KQor
ICAgICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjptX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlLmdldCgpIHNlbGVjdG9yOkBzZWxlY3Rvcihu
b3RpZmljYXRpb25IYW5kbGVyOikgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZPdXRwdXRD
b250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX291dHB1
dENvbnRleHQuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiBtX291dHB1dENvbnRleHQuZ2V0
KCk7Cit9CisKK0FWUm91dGVQaWNrZXJWaWV3ICpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tl
cjo6ZGV2aWNlUGlja2VyKCkKK3sKKyAgICBpZiAoIW1fcm91dGVQaWNrZXJWaWV3KSB7CisgICAg
ICAgIG1fcm91dGVQaWNrZXJWaWV3ID0gYWRvcHROUyhbYWxsb2NBVlJvdXRlUGlja2VyVmlld0lu
c3RhbmNlKCkgaW5pdF0pOworICAgICAgICBbbV9yb3V0ZVBpY2tlclZpZXcgc2V0RGVsZWdhdGU6
bV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZS5nZXQoKV07CisgICAgfQorCisgICAgcmV0dXJuIG1f
cm91dGVQaWNrZXJWaWV3LmdldCgpOworfQorCitBVlJvdXRlRGV0ZWN0b3IgKkFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpyb3V0ZURldGVjdG9yKCkKK3sKKyAgICBpZiAoIW1fcm91dGVE
ZXRlY3RvcikgeworICAgICAgICBtX3JvdXRlRGV0ZWN0b3IgPSBhZG9wdE5TKFtQQUw6OmFsbG9j
QVZSb3V0ZURldGVjdG9ySW5zdGFuY2UoKSBpbml0XSk7CisgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6bV9yb3V0ZVBpY2tlclZpZXdEZWxl
Z2F0ZS5nZXQoKSBzZWxlY3RvcjpAc2VsZWN0b3Iobm90aWZpY2F0aW9uSGFuZGxlcjopIG5hbWU6
UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0
ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bV9yb3V0ZURldGVjdG9yLmdldCgpXTsK
KyAgICAgICAgaWYgKFttX3JvdXRlRGV0ZWN0b3IgbXVsdGlwbGVSb3V0ZXNEZXRlY3RlZF0pCisg
ICAgICAgICAgICBhdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgcmV0
dXJuIG1fcm91dGVEZXRlY3Rvci5nZXQoKTsKK30KKwordm9pZCBBVlJvdXRlUGlja2VyVmlld1Rh
cmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqdmlldywgY29uc3Qg
RmxvYXRSZWN0JiByZWN0SW5TY3JlZW5Db29yZGluYXRlcywgYm9vbCBoYXNBY3RpdmVSb3V0ZSwg
Ym9vbCB1c2VEYXJrQXBwZWFyYW5jZSkKK3sKKyAgICBpZiAoIWNsaWVudCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvICpwaWNrZXIgPSBkZXZpY2VQaWNrZXIoKTsKKyAgICBpZiAodXNl
RGFya0FwcGVhcmFuY2UpCisgICAgICAgIHBpY2tlci5yb3V0ZUxpc3RBbHdheXNIYXNEYXJrQXBw
ZWFyYW5jZSA9IFlFUzsKKworICAgIG1faGFkQWN0aXZlUm91dGUgPSBoYXNBY3RpdmVSb3V0ZTsK
KworICAgIGF1dG8gcmVjdEluV2luZG93Q29vcmRpbmF0ZXMgPSBbdmlldy53aW5kb3cgY29udmVy
dFJlY3RGcm9tU2NyZWVuOk5TTWFrZVJlY3QocmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMueCgpLCBy
ZWN0SW5TY3JlZW5Db29yZGluYXRlcy55KCksIDEuMCwgMS4wKV07CisgICAgYXV0byByZWN0SW5W
aWV3Q29vcmRpbmF0ZXMgPSBbdmlldyBjb252ZXJ0UmVjdDpyZWN0SW5XaW5kb3dDb29yZGluYXRl
cyBmcm9tVmlldzp2aWV3XTsKKyAgICBbcGlja2VyIHNob3dSb3V0ZVBpY2tpbmdDb250cm9sc0Zv
ck91dHB1dENvbnRleHQ6b3V0cHV0Q29udGV4dEludGVybmFsKCkgcmVsYXRpdmVUb1JlY3Q6cmVj
dEluVmlld0Nvb3JkaW5hdGVzIG9mVmlldzp2aWV3XTsKK30KKwordm9pZCBBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlcjo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkKK3sK
KyAgICByb3V0ZURldGVjdG9yKCkucm91dGVEZXRlY3Rpb25FbmFibGVkID0gWUVTOworfQorCit2
b2lkIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNr
VGFyZ2V0cygpCit7CisgICAgaWYgKG1fcm91dGVEZXRlY3RvcikKKyAgICAgICAgW21fcm91dGVE
ZXRlY3RvciBzZXRSb3V0ZURldGVjdGlvbkVuYWJsZWQ6Tk9dOworfQorCitib29sIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgpCit7
CisgICAgcmV0dXJuIHJvdXRlRGV0ZWN0b3IoKS5tdWx0aXBsZVJvdXRlc0RldGVjdGVkOworfQor
CitBVk91dHB1dENvbnRleHQgKiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6b3V0cHV0
Q29udGV4dCgpCit7CisgICAgcmV0dXJuIG1fb3V0cHV0Q29udGV4dC5nZXQoKTsKK30KKwordm9p
ZCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0
cygpCit7CisgICAgaWYgKG1fcm91dGVEZXRlY3RvcikgeworICAgICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fcm91dGVQaWNrZXJWaWV3
RGVsZWdhdGUuZ2V0KCkgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9y
TXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX3Jv
dXRlRGV0ZWN0b3IuZ2V0KCldOworICAgICAgICBbbV9yb3V0ZURldGVjdG9yIHNldFJvdXRlRGV0
ZWN0aW9uRW5hYmxlZDpOT107CisgICAgICAgIG1fcm91dGVQaWNrZXJWaWV3ID0gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBpZiAobV9vdXRwdXRDb250ZXh0KSB7CisgICAgICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9yb3V0ZVBpY2tlclZp
ZXdEZWxlZ2F0ZS5nZXQoKSBuYW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk91dHB1dENvbnRl
eHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2JqZWN0Om1fb3V0cHV0Q29u
dGV4dC5nZXQoKV07CisgICAgICAgIG1fb3V0cHV0Q29udGV4dCA9IG51bGxwdHI7CisgICAgfQor
CisgICAgaWYgKG1fcm91dGVQaWNrZXJWaWV3KSB7CisgICAgICAgIFttX3JvdXRlUGlja2VyVmll
dyBzZXREZWxlZ2F0ZTpuaWxdOworICAgICAgICBtX3JvdXRlUGlja2VyVmlldyA9IG51bGxwdHI7
CisgICAgfQorICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKK30KK3ZvaWQgQVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXI6OmF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKQoreworICAg
IGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPmF2YWlsYWJsZURldmljZXNDaGFuZ2Vk
KCk7Cit9CisKK2Jvb2wgQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6Omhhc0FjdGl2ZVJv
dXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fb3V0cHV0Q29udGV4dCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKFttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcyldICYmIFttX291dHB1dENvbnRl
eHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2VzKV0mJiBbbV9vdXRw
dXRDb250ZXh0IHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzXSkgeworICAgICAgICBmb3Ig
KEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21fb3V0cHV0Q29udGV4dCBvdXRwdXRE
ZXZpY2VzXSkgeworICAgICAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAm
IChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8IEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlv
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZSldKSB7CisgICAgICAgIGlmIChhdXRvICpv
dXRwdXREZXZpY2UgPSBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZV0pCisgICAgICAgICAg
ICByZXR1cm4gb3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgKEFWT3V0cHV0RGV2aWNlRmVh
dHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8pOworICAgIH0KKworICAgIHJl
dHVybiBbbV9vdXRwdXRDb250ZXh0IGRldmljZU5hbWVdOworfQorCit2b2lkIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCkKK3sKKyAgICBhdXRv
IGhhdmVBY3RpdmVSb3V0ZSA9IGhhc0FjdGl2ZVJvdXRlKCk7CisgICAgaWYgKCFjbGllbnQoKSB8
fCBtX2hhZEFjdGl2ZVJvdXRlID09IGhhdmVBY3RpdmVSb3V0ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9oYWRBY3RpdmVSb3V0ZSA9IGhhdmVBY3RpdmVSb3V0ZTsKKyAgICBjbGllbnQoKS0+
Y3VycmVudERldmljZUNoYW5nZWQoKTsKK30KKwordm9pZCBBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlcjo6ZGV2aWNlUGlja2VyV2FzRGlzbWlzc2VkKCkKK3sKKyAgICBpZiAoIWNsaWVudCgp
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY2xpZW50KCktPnBpY2tlcldhc0Rpc21pc3Nl
ZCgpOworICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitAaW1wbGVtZW50YXRpb24gV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyPiYmKWNhbGxiYWNrCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCljbGVhckNhbGxiYWNrCit7
CisgICAgbV9jYWxsYmFjayA9IG5pbDsKK30KKworLSAodm9pZClyb3V0ZVBpY2tlclZpZXdEaWRF
bmRQcmVzZW50aW5nUm91dGVzOihBVlJvdXRlUGlja2VyVmlldyAqKXJvdXRlUGlja2VyVmlldwor
eworICAgIFVOVVNFRF9QQVJBTShyb3V0ZVBpY2tlclZpZXcpOworCisgICAgaWYgKCFtX2NhbGxi
YWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtzZWxmLCBwcm90
ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSB7CisgICAgICAgIGlmICghbV9jYWxsYmFjaykK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2NhbGxiYWNrLT5kZXZpY2VQaWNrZXJX
YXNEaXNtaXNzZWQoKTsKKyAgICB9KTsKK30KKworLSAodm9pZClub3RpZmljYXRpb25IYW5kbGVy
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOworCisgICAgaWYgKCFtX2NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYp
LCBub3RpZmljYXRpb24gPSByZXRhaW5QdHIobm90aWZpY2F0aW9uKV0geworICAgICAgICBpZiAo
IW1fY2FsbGJhY2spCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFtbbm90aWZp
Y2F0aW9uIG5hbWVdIGlzRXF1YWxUb1N0cmluZzpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZPdXRw
dXRDb250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbigpXSkKKyAgICAgICAg
ICAgIG1fY2FsbGJhY2stPmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICAgICAgZWxzZSBp
ZiAoW1tub3RpZmljYXRpb24gbmFtZV0gaXNFcXVhbFRvU3RyaW5nOlBBTDo6Z2V0X0FWRm91bmRh
dGlvbl9BVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uKCldKQorICAgICAgICAgICAgbV9jYWxsYmFjay0+YXZhaWxhYmxlRGV2aWNlc0RpZENo
YW5nZSgpOworICAgIH0pOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYy5oCmluZGV4IDY0MmRmNjVkZmM4Nzc3MDRiM2IwNWYyZTgz
NjhmZWMzYzc4YzgxZWYuLmZkODE1YTAwZGEzZjBjMTc3NGZmNTU2ZjBmNGU4OWMwM2JkOThhNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjgsMzYgKzI4LDM2IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2luY2x1ZGUgIkFWUGxheWJh
Y2tUYXJnZXRQaWNrZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgi
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi1PQkpDX0NMQVNTIEFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXI7Ci1PQkpDX0NMQVNTIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJIZWxwZXI7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYyBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyIHsK
K2NsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMgZmluYWwgOiBwdWJsaWMgTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlciwgcHVibGljIEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyk7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyhNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpD
bGllbnQmKTsKLQogICAgIHZpcnR1YWwgfk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoKTsK
IAotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJv
b2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBj
aGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBmaW5hbDsKKyAgICB2b2lk
IHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgc3Rv
cE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBib29sIGV4dGVybmFsT3V0
cHV0RGV2aWNlQXZhaWxhYmxlKCkgb3ZlcnJpZGU7Ci0gICAgUmVmPE1lZGlhUGxheWJhY2tUYXJn
ZXQ+IHBsYXliYWNrVGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgYm9vbCBleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZSgpIGZpbmFsOworICAgIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBwbGF5
YmFja1RhcmdldCgpIGZpbmFsOworCisgICAgLy8gQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xp
ZW50CisgICAgdm9pZCBwaWNrZXJXYXNEaXNtaXNzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGF2YWls
YWJsZURldmljZXNDaGFuZ2VkKCkgZmluYWw7CisgICAgdm9pZCBjdXJyZW50RGV2aWNlQ2hhbmdl
ZCgpIGZpbmFsOwogCi0gICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciAqZGV2aWNlUGlj
a2VyKCk7CisgICAgQVZQbGF5YmFja1RhcmdldFBpY2tlciYgcm91dGVQaWNrZXIoKTsKIAotICAg
IFJldGFpblB0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyPiBtX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVySGVscGVyPiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGU7Ci0gICAgYm9v
bCBtX3Nob3dpbmdNZW51IHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZQbGF5YmFj
a1RhcmdldFBpY2tlcj4gbV9yb3V0ZVBpY2tlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjLm1tCmluZGV4IDJiNWU1NDEzZjhmODNmZDAzZTdkZTgyMzU4ZTg0Yjk5ZTEyNzNj
OTcuLjFlMjAxNDMyY2M4Y2M5MzE2OTI4YTJhNzkwMmMzMDE1ZGVkZDJjNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2ltcG9ydCAiQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlci5oIgorI2ltcG9ydCAiQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5oPgpAQCAtNDQs
MTYyICs0Niw4NCBAQCBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMg
TlNTdHJpbmcgKmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGUiOwotc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1
dERldmljZVBpY2tlZEtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsKLQot
QGludGVyZmFjZSBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIDogTlNPYmpl
Y3QgewotICAgIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMqIG1fY2FsbGJhY2s7Ci19Ci0K
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjKiljYWxsYmFjazsKLS0gKHZvaWQpY2xlYXJDYWxsYmFjazsKLS0gKHZvaWQpb2JzZXJ2
ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZToo
TlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0OwotQGVuZAotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Ok1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50
JiBjbGllbnQpCiAgICAgOiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKLSAgICAs
IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlz
XSkpCiB7CiB9CiAKIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6On5NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjKCkKIHsKICAgICBzZXRDbGllbnQobnVsbHB0cik7Ci0gICAgW21fb3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZSBjbGVhckNhbGxiYWNrXTsKIH0KIAogYm9v
bCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpleHRlcm5hbE91dHB1dERldmljZUF2YWls
YWJsZSgpCiB7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHJldHVy
biBkZXZpY2VQaWNrZXIoKS5leHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZTsKLUFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorICAgIHJldHVybiByb3V0ZVBpY2tlcigpLmV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKCk7CiB9CiAKIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0
PiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpwbGF5YmFja1RhcmdldCgpCiB7Ci0gICAg
QVZPdXRwdXRDb250ZXh0KiBjb250ZXh0ID0gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA/
IFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIG91dHB1dENvbnRleHRdIDogbnVs
bHB0cjsKLQotICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNy
ZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpjcmVhdGUocm91dGVQaWNrZXIoKS5vdXRwdXRDb250ZXh0KCkpOwogfQogCi1BVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyICpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZp
Y2VQaWNrZXIoKQorQVZQbGF5YmFja1RhcmdldFBpY2tlciYgTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYzo6cm91dGVQaWNrZXIoKQogewotICAgIGlmICghZ2V0QVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckNsYXNzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmRldmljZVBpY2tlciAtIGFsbG9jYXRpbmcgcGlja2Vy
Iik7Ci0KLSAgICAgICAgUmV0YWluUHRyPEFWT3V0cHV0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NBVk91dHB1dENvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKLSAgICAgICAg
bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA9IGFkb3B0TlMoW2FsbG9jQVZPdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdFdpdGhPdXRwdXRDb250ZXh0OmNvbnRleHQu
Z2V0KCldKTsKLQotICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBh
ZGRPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9y
S2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWUgb3B0aW9uczpOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07Ci0gICAgICAgIFttX291
dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIGFkZE9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZSBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29u
dGV4dDpudWxscHRyXTsKLQotICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIgLSBhbGxvY2F0ZWQgbWVudSBjb250cm9sbGVyICVwIiwg
bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSk7Ci0KLUFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgIGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9s
bGVyLmdldCgpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKQotICAgICAgICAgICAgYXZh
aWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECi0gICAgfQotCi0gICAgcmV0dXJuIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0
KCk7CisgICAgaWYgKG1fcm91dGVQaWNrZXIpCisgICAgICAgIHJldHVybiAqbV9yb3V0ZVBpY2tl
cjsKKworICAgIGlmIChBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aXNBdmFpbGFibGUo
KSkKKyAgICAgICAgbV9yb3V0ZVBpY2tlciA9IG1ha2VVbmlxdWU8QVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI+KCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1fcm91dGVQaWNrZXIgPSBt
YWtlVW5pcXVlPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+KCp0aGlz
KTsKKyAgICAKKyAgICByZXR1cm4gKm1fcm91dGVQaWNrZXI7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0
UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2UpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihQbGF0Zm9ybVZpZXcqIHZpZXcsIGNvbnN0IEZsb2F0UmVjdCYgbG9jYXRpb24sIGJv
b2wgaGFzQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCiB7Ci0gICAgaWYgKCFj
bGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIgLSBoYXNBY3RpdmVSb3V0ZSA9ICVpIiwgKGludCloYXNBY3RpdmVSb3V0ZSk7Ci0KLSAgICBt
X3Nob3dpbmdNZW51ID0gdHJ1ZTsKLQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KLSAgICBib29sIHRhcmdldFNlbGVjdGVkID0gW2RldmljZVBpY2tlcigpIHNob3dNZW51Rm9y
UmVjdDpsb2NhdGlvbiBhcHBlYXJhbmNlTmFtZToodXNlRGFya0FwcGVhcmFuY2UgPyBOU0FwcGVh
cmFuY2VOYW1lVmlicmFudERhcmsgOiBOU0FwcGVhcmFuY2VOYW1lVmlicmFudExpZ2h0KSBhbGxv
d1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTohaGFzQWN0aXZlUm91dGVdOwotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0KLSAgICBpZiAodGFyZ2V0U2VsZWN0ZWQg
IT0gaGFzQWN0aXZlUm91dGUpCi0gICAgICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKLSAg
ICBlbHNlIGlmICghdGFyZ2V0U2VsZWN0ZWQgJiYgIWhhc0FjdGl2ZVJvdXRlKQotICAgICAgICBw
bGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpOwotCi0gICAgbV9zaG93aW5nTWVudSA9
IGZhbHNlOworICAgIHJvdXRlUGlja2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHZpZXcs
IGxvY2F0aW9uLCBoYXNBY3RpdmVSb3V0ZSwgdXNlRGFya0FwcGVhcmFuY2UpOwogfQogCiB2b2lk
IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNr
VGFyZ2V0cygpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yzo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzIik7CiAKLSAgICBkZXZpY2VQaWNr
ZXIoKTsKKyAgICByb3V0ZVBpY2tlcigpLnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0
cygpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0b3BNb25pdG9y
aW5nUGxheWJhY2tUYXJnZXRzKCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyIpOwotICAgIC8vIE5v
dGhpbmcgdG8gZG8sIEFpclBsYXkgdGFrZXMgY2FyZSBvZiB0aGlzIGF1dG9tYXRpY2FsbHkuCisg
ICAgcm91dGVQaWNrZXIoKS5zdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogfQogCiB2
b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmludmFsaWRhdGVQbGF5YmFja1Rhcmdl
dHMoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Omlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMiKTsKIAotICAgIGlmIChtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyKSB7Ci0gICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92
ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JL
ZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07Ci0gICAgICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZV07Ci0gICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIg
PSBudWxscHRyOwotICAgIH0KKyAgICBtX3JvdXRlUGlja2VyID0gbnVsbHB0cjsKICAgICBjdXJy
ZW50RGV2aWNlRGlkQ2hhbmdlKCk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotQGlt
cGxlbWVudGF0aW9uIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
KiljYWxsYmFjawordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpwaWNrZXJXYXNE
aXNtaXNzZWQoKQogewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgbV9jYWxsYmFjayA9IGNhbGxiYWNrOwotCi0gICAgcmV0dXJuIHNl
bGY7CisgICAgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKTsKIH0KIAotLSAodm9p
ZCljbGVhckNhbGxiYWNrCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmF2YWls
YWJsZURldmljZXNDaGFuZ2VkKCkKIHsKLSAgICBtX2NhbGxiYWNrID0gbmlsOworICAgIGF2YWls
YWJsZURldmljZXNEaWRDaGFuZ2UoKTsKIH0KIAotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkg
KiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3ZvaWQgTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1hYzo6Y3VycmVudERldmljZUNoYW5nZWQoKQogewotICAgIFVOVVNFRF9QQVJBTShv
YmplY3QpOwotICAgIFVOVVNFRF9QQVJBTShjaGFuZ2UpOwotICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKLQotICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6b2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aCAtIGtleSA9ICVzIiwgW2tleVBhdGggVVRGOFN0cmluZ10pOwotCi0gICAgaWYgKCFba2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1l
XSAmJiAhW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2Vk
S2V5TmFtZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVySGVscGVyPiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKLSAgICBSZXRh
aW5QdHI8TlNTdHJpbmc+IHByb3RlY3RlZEtleVBhdGggPSBrZXlQYXRoOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpLCBwcm90ZWN0
ZWRLZXlQYXRoID0gV1RGTW92ZShwcm90ZWN0ZWRLZXlQYXRoKV0gewotICAgICAgICBNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPm1fY2FsbGJh
Y2s7Ci0gICAgICAgIGlmICghY2FsbGJhY2spCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKFtwcm90ZWN0ZWRLZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZUtleU5hbWVdKQotICAgICAgICAgICAgY2FsbGJhY2stPmF2YWlsYWJsZURl
dmljZXNEaWRDaGFuZ2UoKTsKLSAgICAgICAgZWxzZSBpZiAoW3Byb3RlY3RlZEtleVBhdGggaXNF
cXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZV0pCi0gICAgICAg
ICAgICBjYWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5nZSgpOwotICAgIH0pOworICAgIGN1
cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKIH0KLUBlbmQKKworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKIAogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2suY3BwCmluZGV4IGI2YTg5YzdjNTJmYzA1YzE5YjBlNTI2NTAwOGZl
OTQ5YzA2NTdiZmUuLjdjMGZhMjZkZTIxZGU2NjYzNDY0NjIwM2I3MzM5YTY1ZTE2YzY1ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlZjxNZWRpYVBs
YXliYWNrVGFyZ2V0PiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6cGxheWJhY2tUYXJn
ZXQoKQogICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0TW9jazo6Y3JlYXRl
KG1fZGV2aWNlTmFtZSwgbV9zdGF0ZSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29s
IGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCit2b2lkIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1W
aWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURh
cmtBcHBlYXJhbmNlKQogewogICAgIGlmICghY2xpZW50KCkgfHwgbV9zaG93aW5nTWVudSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCmluZGV4IGI4Y2JhYzAzMDE0MmE4
OWEwOGM0MWViYmQzMmQxYTIwZGEzNDIxZjAuLjBkYTcwNGIxNTE0YmViYzkzY2RkYjBiZTQyNWQ1
M2VkZjM0ZTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKQEAgLTQzLDcgKzQzLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2soKTsK
IAotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJv
b2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxv
YXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBv
dmVycmlkZTsKICAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzljMzBkNTM0Y2FmNWUyNTY0MTAx
NDcxZWIwMDc0NDAzNDExMDNjMy4uODk0MzQ3YmRiNGE2ZTA3YTM1NTMxM2EzMWQ2NmMwZDIzNTBh
ZWVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1MzQsNiAr
MTUzNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIGZp
bmFsOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgYm9vbCBh
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgZmluYWwgeyByZXR1cm4gaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCk7IH0KKyAgICBQbGF0Zm9ybVZpZXcqIHBsYXRmb3JtVmlldygpIGNvbnN0IGZpbmFs
OwogI2VuZGlmCiAKICAgICB2b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggYTNlNzQw
MDA1NGU4ZGQ4NWNhNWM1NjBlYzJlYTNjOGJlODBjYzcyNy4uZDU1OGVkMmQ2N2JjOTMxZWIyNmM4
ZWI2NDJiNzU2NmRiMGRmYmFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tCkBAIC02NzMsNiArNjczLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCgpCiAgICAgZ3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0
ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7CiB9CiAKK1BsYXRmb3JtVmlldyog
V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVZpZXcoKSBjb25zdAoreworICAgIHJldHVybiBbcGFnZUNs
aWVudCgpLnBsYXRmb3JtV2luZG93KCkgY29udGVudFZpZXddOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLmgKaW5kZXggMzQ2Mzg2YzA4MDI0ZDk5MDVhN2YyMGZhMGQ1MWJlYWY2NWQ2ZmQyNi4uMGI5
MjM4MzVlOWUxNWI2YjgwNDViNDlhZmUyOWU2YWFiMDNlY2ZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKK09CSkNfQ0xB
U1MgV2ViVmlldzsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmxvYXRSZWN0OwogY2xh
c3MgTWVkaWFQbGF5YmFja1RhcmdldDsKQEAgLTQxLDEwICs0MywxMCBAQCBjbGFzcyBQYWdlOwog
Y2xhc3MgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlciA6IHB1YmxpYyBXZWJDb3JlOjpXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYk1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXI+IGNyZWF0ZShXZWJDb3JlOjpQYWdlJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBjcmVhdGUoV2ViVmlldyAqLCBXZWJD
b3JlOjpQYWdlJik7CiAKLSAgICBleHBsaWNpdCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
KFdlYkNvcmU6OlBhZ2UmKTsKLSAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyKCkgeyB9CisgICAgZXhwbGljaXQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihXZWJW
aWV3ICosIFdlYkNvcmU6OlBhZ2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwpAQCAtNTQsMTYgKzU2LDE4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKTsK
ICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CiAK
LSAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ci0gICAgdm9pZCBzZXRQbGF5YmFj
a1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBS
ZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBl
eHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllcikgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0
ZToKKyAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50CisgICAgdm9pZCBzZXRQbGF5
YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CisgICAgdm9pZCBl
eHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBmaW5hbDsKKyAgICB2b2lkIHNldFNo
b3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNr
ZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllcikgZmluYWw7CisgICAgUGxhdGZvcm1WaWV3KiBwbGF0Zm9ybVZpZXcoKSBjb25zdCBmaW5h
bDsKKwogICAgIFdlYkNvcmU6OlBhZ2UqIG1fcGFnZTsKKyAgICBXZWJWaWV3ICptX3dlYlZpZXc7
CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQppbmRleCBiYjgxNWM1
ZDI0ODcyMzMwMTMwMjA5MzM2ZTdjYzZjZTgzYjFhY2U5Li43MzQ0MzU2NzVhYjgwOWI1MGVjNWVm
MzhhYjlmNzdjYTE0OGIzMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCkBAIC0y
NywxNyArMjcsMTkgQEAKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW1wb3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAKLXN0ZDo6dW5pcXVl
X3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjpjcmVhdGUoV2ViQ29yZTo6UGFnZSYgcGFnZSkKK3N0ZDo6dW5pcXVlX3B0cjxXZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpj
cmVhdGUoV2ViVmlldyAqd2ViVmlldywgV2ViQ29yZTo6UGFnZSYgcGFnZSkKIHsKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPihwYWdlKTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPih3ZWJWaWV3LCBw
YWdlKTsKIH0KIAotV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcihXZWJDb3JlOjpQYWdlJiBwYWdlKQorV2ViTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihXZWJWaWV3ICp3ZWJWaWV3LCBX
ZWJDb3JlOjpQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKCZwYWdlKQorICAgICwgbV93ZWJWaWV3
KHdlYlZpZXcpCiB7CiB9CiAKQEAgLTEwOSw3ICsxMTEsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZChXZWJDb3Jl
OjpQbGEKIHZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZSgpCiB7
CiAgICAgbV9wYWdlID0gbnVsbHB0cjsKKyAgICBtX3dlYlZpZXcgPSBuaWw7CiAgICAgV2ViQ29y
ZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkucmVtb3ZlQWxsUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRzKCp0aGlzKTsKIH0KIAorUGxhdGZvcm1WaWV3KiBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpwbGF0Zm9ybVZpZXcoKSBjb25zdAoreworICAgIEFTU0VSVChtX3dl
YlZpZXcpOworICAgIHJldHVybiBtX3dlYlZpZXc7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDg1ZDY5NDNlMzZiYWU2MzdhMGUw
OWI1NDc5ZGFiMzViMzlhYTdjY2MuLjE2NDdkNjQ3MzFkNTc0MTRjNWNiNWY1ODdiOWRiNWE0OTZj
ODM2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTk3NDMsNyArOTc0Myw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJz
KCkKIC0gKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIgKikgX2RldmljZVBpY2tlcgogewog
ICAgIGlmICghX3ByaXZhdGUtPm1fcGxheWJhY2tUYXJnZXRQaWNrZXIpCi0gICAgICAgIF9wcml2
YXRlLT5tX3BsYXliYWNrVGFyZ2V0UGlja2VyID0gV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
cjo6Y3JlYXRlKCpfcHJpdmF0ZS0+cGFnZSk7CisgICAgICAgIF9wcml2YXRlLT5tX3BsYXliYWNr
VGFyZ2V0UGlja2VyID0gV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Y3JlYXRlKHNlbGYs
ICpfcHJpdmF0ZS0+cGFnZSk7CiAKICAgICByZXR1cm4gX3ByaXZhdGUtPm1fcGxheWJhY2tUYXJn
ZXRQaWNrZXIuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggODc2NDQxOGMzY2Q3NTU3ODYzNDNjZWY4M2E5NDUxZWNkMDQ2ZmFlYi4u
ZTBjYTNhZTBjNzY1NjA0ZTBjYzU5MDUyMzAxNjNmNTAwMmRiYWNlYSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIw
LTA3LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBBVlJvdXRlUGlja2VyVmlldyB3aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWlyUGxh
eSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM0OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKTogVGVzdCBBVk91dHB1dENvbnRleHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdl
Tm90aWZpY2F0aW9uLgorICAgICAgICBEb24ndCBjaGVjayBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBs
ZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9uIHdhdGNoT1MsCisgICAgICAg
IHdlIGRvbid0IHVzZSBpdCB0aGVyZS4KKwogMjAyMC0wNy0xNCAgQWFrYXNoIEphaW4gIDxhYWth
c2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3c10gd2F0Y2hvcyBzaG91bGQgYnVpbGQg
Ym90aCBhcm02NF8zMiBhbmQgYXJtdjdrIGFyY2hpdGVjdHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rl
c3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmtUZXN0Lm1tCmluZGV4IDdmZWYxYWE3ZGZhYWI5ZThhNTNiNWQ3NjYyYTRmNmZl
MDM2NDMxMjEuLjQ5MzI0OTg3YTA3NDlhZDdmZjdhNWNjNjg5YWVmOTk4NmJiZTIyNWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGlua1Rlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQpAQCAtMTg0LDcgKzE4NCw2IEBAIFRF
U1QoQVZGb3VuZGF0aW9uU29mdExpbmssIENvbnN0YW50cykKICAgICBFWFBFQ1RfVFJVRShbQVZB
dWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25Ob3RpZmljYXRpb24gaXNFcXVhbFRvU3RyaW5nOkAiQVZB
dWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25Ob3RpZmljYXRpb24iXSk7CiAgICAgRVhQRUNUX1RSVUUo
W0FWQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uVHlwZUtleSBpc0VxdWFsVG9TdHJpbmc6QCJBVkF1
ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVLZXkiXSk7CiAgICAgRVhQRUNUX1RSVUUoW0FWQXVk
aW9TZXNzaW9uSW50ZXJydXB0aW9uT3B0aW9uS2V5IGlzRXF1YWxUb1N0cmluZzpAIkFWQXVkaW9T
ZXNzaW9uSW50ZXJydXB0aW9uT3B0aW9uS2V5Il0pOwotICAgIEVYUEVDVF9UUlVFKFtBVlJvdXRl
RGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIGlzRXF1
YWxUb1N0cmluZzpAIkFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFu
Z2VOb3RpZmljYXRpb24iXSk7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShB
UFBMRVRWKQogICAgIEVYUEVDVF9UUlVFKFtBVkNhcHR1cmVTZXNzaW9uRXJyb3JLZXkgaXNFcXVh
bFRvU3RyaW5nOkAiQVZDYXB0dXJlU2Vzc2lvbkVycm9yS2V5Il0pOwogICAgIEVYUEVDVF9UUlVF
KFtBVkNhcHR1cmVTZXNzaW9uUnVudGltZUVycm9yTm90aWZpY2F0aW9uIGlzRXF1YWxUb1N0cmlu
ZzpAIkFWQ2FwdHVyZVNlc3Npb25SdW50aW1lRXJyb3JOb3RpZmljYXRpb24iXSk7CkBAIC0xOTQs
NiArMTkzLDEyIEBAIFRFU1QoQVZGb3VuZGF0aW9uU29mdExpbmssIENvbnN0YW50cykKICNlbmRp
ZgogCiAjZW5kaWYKKyAgICAKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBFWFBFQ1RfVFJV
RShbQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNh
dGlvbiBpc0VxdWFsVG9TdHJpbmc6QCJBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVj
dGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIl0pOworICAgIEVYUEVDVF9UUlVFKFtBVk91dHB1dENv
bnRleHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIGlzRXF1YWxUb1N0cmluZzpA
IkFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24iXSk7Cisj
ZW5kaWYgLy8gUExBVEZPUk0oV0FUQ0hPUykKKwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09D
T0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404485</attachid>
            <date>2020-07-16 14:35:30 -0700</date>
            <delta_ts>2020-07-20 12:44:28 -0700</delta_ts>
            <desc>Build fix</desc>
            <filename>bug-213497-20200716143530.patch</filename>
            <type>text/plain</type>
            <size>3654</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkMmZkNTU3ZDQ1NDA2MzRiOGQ0M2M5
OTdjN2I2ZGEwOWI1ZDNiZTUuLmQ1NDVmODgyODBiNzFhYzJjNGRkN2RmMWJiMjUyYzhkNmFmNmJk
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMTYgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEFWUm91dGVQaWNrZXJWaWV3IHdoZW4g
YXZhaWxhYmxlIGZvciBjaG9vc2luZyBBaXJQbGF5IGRldmljZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ5NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTg2MTA2NjI+CisKKyAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6IERlZmluZSBIQVZFX0FWUk9VVEVQSUNLRVJWSUVXLgor
CiAyMDIwLTA3LTE2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQmlnIFN1cl0gRGUtZHVwbGljYXRlIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiMzQwZDQ0OGI3
NTc4ZjM3ZWU3NDM4NjZiODkxOGQ1MzM5NzQ0NGIuLjIyMTE5NWMzNmQ2Zjc4MzE3YTgxMWRjOWRl
ZDQxNzQ4MjVmOGNlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0xNiAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZS
b3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpyb3V0
ZVBpY2tlcik6IFVzZSBIQVZFX0FWUk9VVEVQSUNLRVJWSUVXLgorCiAyMDIwLTA3LTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBBVlJvdXRl
UGlja2VyVmlldyB3aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWlyUGxheSBkZXZpY2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCmluZGV4IDU0ZTc5MGFjNDBjNDFjY2M0YTg1YzE0MjlkMDUxMDc3NzFl
ZDVkZGEuLjQzNjgxODZhNDdlZjNjZjI1M2M0OTA0ZTdkYjFiNjVhNWNjNjQ0YjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCkBAIC02OTUsMyArNjk1LDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVU
VikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCiAjZGVmaW5lIEhB
VkVfTFNEQVRBQkFTRUNPTlRFWFQgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkKKyNkZWZpbmUgSEFWRV9B
VlJPVVRFUElDS0VSVklFVyAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0
UGlja2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KaW5kZXggOWVjNjc0MTQyNzEz
YmYwN2ZmOGZiZjY2NWI3NGMyY2M2NjQyNTk0Ny4uMDJmMWRjZDgyMmFlMzhlYWZmMjk2Y2ZmMGZk
YjgzYTI3YzE1NDJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZS
b3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaCIKIAot
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFN
SUxZKQorI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmIEhBVkUoQVZST1VU
RVBJQ0tFUlZJRVcpCiAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlv
bi9BVlJvdXRlRGV0ZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCmluZGV4IDFlMjAxNDMyY2M4Y2M5MzE2OTI4
YTJhNzkwMmMzMDE1ZGVkZDJjNDAuLjc5MmY5MjEzMTQ0ZjJmOTQzMjkxYzI4NTg3Yzc1MGNiZjM5
ZWNlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1hYy5tbQpAQCAtNzMsOSArNzMsMTEgQEAgQVZQbGF5YmFja1RhcmdldFBp
Y2tlciYgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cm91dGVQaWNrZXIoKQogICAgIGlm
IChtX3JvdXRlUGlja2VyKQogICAgICAgICByZXR1cm4gKm1fcm91dGVQaWNrZXI7CiAKKyNpZiBI
QVZFKEFWUk9VVEVQSUNLRVJWSUVXKQogICAgIGlmIChBVlJvdXRlUGlja2VyVmlld1RhcmdldFBp
Y2tlcjo6aXNBdmFpbGFibGUoKSkKICAgICAgICAgbV9yb3V0ZVBpY2tlciA9IG1ha2VVbmlxdWU8
QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI+KCp0aGlzKTsKICAgICBlbHNlCisjZW5kaWYK
ICAgICAgICAgbV9yb3V0ZVBpY2tlciA9IG1ha2VVbmlxdWU8QVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlcj4oKnRoaXMpOwogICAgIAogICAgIHJldHVybiAqbV9yb3V0ZVBp
Y2tlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404503</attachid>
            <date>2020-07-16 17:43:07 -0700</date>
            <delta_ts>2020-07-20 12:44:29 -0700</delta_ts>
            <desc>Another build fix</desc>
            <filename>bug-213497-20200716174306.patch</filename>
            <type>text/plain</type>
            <size>2068</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0OTU3MGU5
Mjc2NWMzMDM1YWMyNGFlZmYzNjRjMzliN2Y1OThmNDMyLi40ZTg4NzFiM2EyNzIxMmUzNGJkYzdk
OWE3ZDZhMjRhMGVmOGIzNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNy0xNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFp
clBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KKworICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVZLaXRT
UEkuaDoKKwogMjAyMC0wNy0xNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNo
b29zaW5nIEFpclBsYXkgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FWS2l0U1BJLmgKaW5kZXggYzc4NmExYzBmZGVlNDAwM2QwNjdhMmQ2YTFlMWQ3MzI2NmQ3NDEz
Mi4uM2Q1OThmOTE5NjBjMjdlODgwOTgxZTAwYjA3MjA5M2RlODlhZDk4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCkBAIC0yMjgsMTIgKzIyOCw5IEBA
IE5TX0FTU1VNRV9OT05OVUxMX0VORAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQot
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QVZLaXQvQVZPdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlci5oPgotI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdf
UHJpdmF0ZS5oPgotI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfV2ViS2l0T25seS5o
PgogCiAjZWxzZQogCkBAIC0yNTUsNiArMjUyLDIyIEBAIE5TX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfMTEpCiAKIEBlbmQKIAorTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZiAvLyBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaWYgSEFWRShBVlJPVVRFUElDS0VS
VklFVykKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBVktpdC9BVlJv
dXRlUGlja2VyVmlldy5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfUHJpdmF0
ZS5oPgorI2ltcG9ydCA8QVZLaXQvQVZSb3V0ZVBpY2tlclZpZXdfV2ViS2l0T25seS5oPgorCisj
ZWxzZQorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAcHJvdG9jb2wgQVZSb3V0ZVBpY2tl
clZpZXdEZWxlZ2F0ZTsKIAogQGludGVyZmFjZSBBVlJvdXRlUGlja2VyVmlldyA6IE5TVmlldwpA
QCAtMjc1LDggKzI4OCw3IEBAIE5TX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfMTEpCiBOU19BU1NV
TUVfTk9OTlVMTF9FTkQKIAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNl
bmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNlbmRpZiAvLyBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404745</attachid>
            <date>2020-07-20 12:44:31 -0700</date>
            <delta_ts>2020-07-20 15:46:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213497-20200720124430.patch</filename>
            <type>text/plain</type>
            <size>82764</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmNjMxYzZhMzA4NTIxYjU4OWViZDhj
NTdiMDJhNzlmMGMzYzU3NWIuLjNmMjUwMmI2MzQxZGQ0OWFmMmM1OWMzMTgzMWJlOTM0NDU4Yjgy
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMTYgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEFWUm91dGVQaWNrZXJWaWV3IHdoZW4g
YXZhaWxhYmxlIGZvciBjaG9vc2luZyBBaXJQbGF5IGRldmljZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ5NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTg2MTA2NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAg
ICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOiBEZWZpbmUgSEFWRV9BVlJPVVRFUElDS0VSVklFVy4K
KwogMjAyMC0wNy0xOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBSdW5Mb29wIFRpbWVyIGNsYXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOGRiOTFmM2E4MzI2Mzc0MjgzMzg1M2Y1MjBmZmYwYWM1NWU4NTAzYS4uMTFjNjFjMWQ1
YmIxNzNlMGY3OGRmNzM1MWZkZDBlOTZhMWZlZTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
MSBAQAorMjAyMC0wNy0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
KworICAgICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29z
aW5nIEFpclBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgVXNlIGFuIEFWUm91dGVQ
aWNrZXJWaWV3LCB0aGUgcmVwbGFjZW1lbnQgZm9yIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXIsIHdoZW4KKyAgICAgICAgaXQgaXMgYXZhaWxhYmxlIHRvIGFsbG93IGEgdXNlciB0byBwaWNr
IGFuIEFpclBsYXkgZGV2aWNlLiBUbyBkbyB0aGlzLCBjcmVhdGUgYW4gCisgICAgICAgIEFWUGxh
eWJhY2tUYXJnZXRQaWNrZXIgYWJzdHJhY3QgYmFzZSBhbmQgY3JlYXRlIGEgY29uY3JldGUgY2xh
c3MgZnJvbSB0aGUgCisgICAgICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXItc3BlY2lm
aWMgY29kZSBmcm9tIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMsIGFuZAorICAgICAgICBj
cmVhdGUgYSBuZXcgY29uY3JldGUgY2xhc3MgdXNpbmcgQVZSb3V0ZVBpY2tlclZpZXcuCisKKyAg
ICAgICAgVGVzdGVkIG1hbnVhbGx5IGJlY2F1c2UgdGhlc2UgY2hhbmdlcyByZXF1aXJlIGFuIEFp
clBsYXkgZGV2aWNlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOiBQYXNzIHRoZSB2aWV3IHRvIHRoZQorICAg
ICAgICB0YXJnZXQgcGlja2VyLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxh
eWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OnBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKTogRHJpdmUtYnkgZml4OiByZXR1
cm4KKyAgICAgICAgZWFybHkgaWYgdGhlcmUgYXJlIG5vIHBlbmRpbmcgcHJvbWlzZXMuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OiBBZGQgbmV3IGZpbGVzLgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6
IEFkZCBuZXcgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXIubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0uCisg
ICAgICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2Vy
OjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2Vy
OjphdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmN1cnJlbnREZXZpY2VEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBp
Y2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1Bs
YXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVyVGFyZ2V0UGlja2VyOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpp
bnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXI6Om91dHB1dENvbnRleHQpOgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVySGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dlYkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgY2xlYXJDYWxsYmFja10pOgorICAgICAg
ICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIG9ic2VydmVWYWx1ZUZv
cktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVZQbGF5YmFja1RhcmdldFBpY2tlcjo6QVZQbGF5YmFj
a1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVlBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpjbGllbnQgY29uc3QpOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXIubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZp
ZXdUYXJnZXRQaWNrZXI6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6fkFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJW
aWV3VGFyZ2V0UGlja2VyOjpvdXRwdXRDb250ZXh0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6CisgICAgICAg
IChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6cm91dGVEZXRlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5n
UGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6b3V0cHV0Q29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZVBs
YXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlcjo6YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6Y3VycmVudERldmljZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6ZGV2aWNlUGlj
a2VyV2FzRGlzbWlzc2VkKToKKyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIg
aW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxw
ZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBjbGVh
ckNhbGxiYWNrXSk6CisgICAgICAgICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIHJvdXRl
UGlja2VyVmlld0RpZEVuZFByZXNlbnRpbmdSb3V0ZXM6XSk6CisgICAgICAgICgtW1dlYkFWUm91
dGVQaWNrZXJWaWV3SGVscGVyIG5vdGlmaWNhdGlvbkhhbmRsZXI6XSk6CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYzo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cGxheWJhY2tUYXJnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cm91dGVQaWNr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjppbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnBpY2tlcldhc0Rpc21pc3NlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjphdmFpbGFibGVEZXZp
Y2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpjdXJyZW50RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIpOiBEZWxldGVkLgorICAgICAgICAoLVtX
ZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxw
ZXIgY2xlYXJDYWxsYmFja10pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVySGVscGVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hh
bmdlOmNvbnRleHQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmg6CisKIDIwMjAt
MDctMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEdlbmVy
YXRlQ2VydGlmaWNhdGVBc3luYyBzaG91bGQgYmUgY2FsbGVkIG9uIHNpZ25hbGluZyB0aHJlYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGE0ZTFjMTE2ZmNmNTQ3NzY5NjA5MTgzYjFmMmU4OWJmYmY3
OGVjZDQuLjhiY2NkNzk3NTcxNTQxYmVlYTA0OGVjMzFlMGI0N2IyMDU4ODBiYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTE1ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBVlJvdXRlUGlja2VyVmlldyB3
aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWlyUGxheSBkZXZpY2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0OTcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKwor
ICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbTogU29mdCBsaW5rIEFWUm91dGVQaWNrZXJW
aWV3LgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaDogRGVjbGFyZSBBVlJvdXRl
UGlja2VyVmlldy4KKwogMjAyMC0wNy0xNyAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY0NDc3LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAyOTdmOTIxZmE0YzY3ZGY5MWEzOGI1NGZjYzNjNTk0ZGQ2OGY0ZGEwLi44YWNlMTQ3MDQ5NjBl
NjdhNGIxOGVhNTY2NGJjMmMyYmM4M2UzZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIwLTA3LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBBVlJvdXRlUGlja2VyVmlldyB3aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWly
UGxheSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTM0OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVZpZXcgY29uc3QpOiBBZGQgbmV3IG92
ZXJyaWRlLgorCiAyMDIwLTA3LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYXJhbWV0ZXIgb2YgV2ViUGFnZVBy
b3h5OjpDcmVhdGVOZXdQYWdlKCkgc2hvdWxkIG5vdCBiZSBPcHRpb25hbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IDYwMzI0ZmZmMjY3NzMzMzVkZTUyMjEzMGI4Mzg1Zjk1NmE3ZWRl
NTguLmE1NzhmNDYzYjllNDc3ZGIxNDkwMmVhYzY2NGJlYTNhYjZmY2E3YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNy0xNSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0ZVBpY2tl
clZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9i
bGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoK
KyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6On5XZWJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6V2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnBsYXRmb3JtVmlldyBjb25zdCk6IE5ldyBvdmVycmlkZS4KKworICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfZGV2aWNlUGlja2VyXSk6IFBhc3Mg
dmlldyB0byBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyIGZhY3RvcnkuCisKIDIwMjAtMDct
MTcgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBmaW5h
bCB2ZXN0aWdhdGVzIG9mIFNpbXBsZUNvbG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGEyMjg5
YWIzM2M1NGE2YTIzNGNlMGY4NzE3NTQ4MDU5ZTg1MTFkZDIuLmZhYTM0OWY3ZTU0YzdkMjRkM2Jl
ODk2MzUwMDI4OGU0ODkzYTU0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC02OTEsMyArNjkx
LDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxNDAwMDApCiAjZGVmaW5lIEhBVkVfTFNEQVRBQkFTRUNPTlRFWFQgMQogI2Vu
ZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTYwMCkKKyNkZWZpbmUgSEFWRV9BVlJPVVRFUElDS0VSVklFVyAxCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggODc1NmZlYjE0OGU5Nzk3Y2FjYTljZjM3
M2Q5MDlmMGVhZTFkODhhOS4uMGQ1Njc0OTE1NGNmOTQ5M2I0MDA1NWVlOTE5ZmEyNmU1MTQ4MDU5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lk
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyQ2xpZQogICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihf
X2Z1bmNfXywgbV9jbGllbnRTdGF0ZVtpbmRleF0uZ2V0KCkpOwogCiAgICAgYm9vbCBoYXNBY3Rp
dmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3RhdGVbaW5kZXhdLT5mbGFncywgTWVkaWFQ
cm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7Ci0gICAgdGFyZ2V0UGlja2VyKCku
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKEZsb2F0UmVjdChyZWN0KSwgaGFzQWN0aXZlUm91dGUs
IHVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2
ZVJvdXRlLCB1c2VEYXJrQXBwZWFyYW5jZSk7CiB9CiAKIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYg
Y2xpZW50LCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld0ZsYWdzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFu
YWdlci5oCmluZGV4IDYyYmYyYWEwOWFhOTU2OWMxYjc3NGY0OWNkMTg1NmQzMGI4ZDA2MzYuLmQ3
ZjI4Y2NiNzVlNWQ3NTVkYWY0MzM0ZWY2NTZjYjE0MTkwZmFiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCIKICNp
bmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1WaWV3LmgiCiAjaW5j
bHVkZSAiUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50LmgKaW5kZXggMjIxYzRjMzA1ZjRhZTZlNDNiM2NmZjYwNGUwMDVhMGVjZGQ2
YjgyYy4uZDcwY2FjODMzZTVkNWU1MTNjMWEzNGIxY2QyNTdmZmJjMzEwZWM3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFu
YWdlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5YmFja1RhcmdldC5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVZpZXcuaCIKICNpbmNsdWRlICJQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBAIC00Myw2ICs0NCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJn
ZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZChQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUGxhdGZv
cm1WaWV3KiBwbGF0Zm9ybVZpZXcoKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJh
Y2svUmVtb3RlUGxheWJhY2suY3BwCmluZGV4IGFmYmM3OWRiMGI3YjMxYmY1MjM4ZGJhNzQ4NmZm
MDk5NjQzNmM5N2QuLjk2ZGQyYjdkM2U3NWU0M2M3NGY5ZGM5MGQ2Njc1N2I1NTgzZWZiMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2suY3BwCkBAIC0zMjQsNiArMzI0LDkgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6
ZGlzY29ubmVjdCgpCiAKIHZvaWQgUmVtb3RlUGxheWJhY2s6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
V2FzRGlzbWlzc2VkKCkKIHsKKyAgICBpZiAobV9wcm9tcHRQcm9taXNlcy5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIC8vIDYuMi4yIFByb21wdCB1c2VyIGZvciBjaGFuZ2luZyBy
ZW1vdGUgcGxheWJhY2sgc3RhdGUgW0N0ZF0KICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8v
cmVtb3RlLXBsYXliYWNrLyNzdG9wLW9ic2VydmluZy1yZW1vdGUtcGxheWJhY2stZGV2aWNlcy1h
dmFpbGFiaWxpdHkKICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJhZnQgMTUgSnVseSAyMDE2CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
aW5kZXggMTI3ODM1MzdjNGYxZjFmYzc4Zjk4ZWFhMTM2ODcxMDdlM2NhNDhmZi4uNzllYmI0MjA2
MWM4MDEzNzFmYjRjYzk0OTY2MGY3YjMwNmUyMmIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaApAQCAtODIsNiArODIsMTAg
QEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFV0dGVyYW5jZSkKIFNP
RlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZBdWRpb1JvdXRpbmdBcmJpdGVyKQogI2Vu
ZGlmCiAKKyNpZiBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9I
RUFERVIoUEFMLCBBVlJvdXRlUGlja2VyVmlldykKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKFdB
VENIT1MpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikK
IFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmlj
cykKQEAgLTI5MSw4ICsyOTUsNiBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25UeXBlSwogI2RlZmluZSBB
VkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
QXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uVHlwZUtleSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25PcHRp
b25LZXksIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uT3B0
aW9uS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbk9w
dGlvbktleSgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlv
biwgQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcgKikKLSNkZWZpbmUgQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNE
ZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0
ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nl
c3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0Tm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2Rl
ZmluZSBBVkF1ZGlvU2Vzc2lvbk1lZGlhU2VydmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24gUEFM
OjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9TZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5v
dGlmaWNhdGlvbigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRh
dGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikK
QEAgLTMwNiw0ICszMDgsMTEgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG8KICNkZWZpbmUgQVZD
YXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5k
QXBwTGF5b3V0IHNvZnRMaW5rX0FWRm91bmRhdGlvbl9BVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9y
aXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQKICNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQ
UExFVFYpCiAKKyNpZiBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQorU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmlj
ZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCisjZGVmaW5lIEFWT3V0cHV0Q29u
dGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0
aW9uX0FWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUm91dGVE
ZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3Ry
aW5nICopCisjZGVmaW5lIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRD
aGFuZ2VOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUm91dGVEZXRlY3Rvck11
bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKQorI2VuZGlmIC8vIEhB
VkUoQVZST1VURVBJQ0tFUlZJRVcpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0KaW5kZXggYTJjZmI3ZTRjNTk0NDg4MGFmMjQ1N2FjNGI2NzQxNTEzMzM0ODIyYy4uNTQ5ZGE3
ZDJlMmJjYmQzNGFhYzRkMThiZjI2YzRkMTE2OWEyOGRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMTMsNiAr
MTEzLDEwIEBAIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3IsIFBBTF9FCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NP
VVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZv
cm1hbmNlTWV0cmljcywgUEFMX0VYUE9SVCkKICNlbmRpZgogCisjaWYgSEFWRShBVlJPVVRFUElD
S0VSVklFVykKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlUGlja2VyVmlldywgUEFMX0VYUE9SVCkKKyNlbmRp
ZgorCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQ2Fw
dHVyZUNvbm5lY3Rpb24sIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlLCBQQUxfRVhQT1JU
KQpAQCAtMjE0LDcgKzIxOCw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uSW50CiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDYXB0
dXJlU2Vzc2lvbkludGVycnVwdGlvblJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVkNhcHR1cmVTZXNzaW9uUnVudGltZUVycm9yTm90aWZpY2F0aW9uLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXNJbnRlcnJ1cHRlZE5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBs
ZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZv
dW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VOb3Rp
ZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCkBAIC0yMjgsNCArMjMxLDkgQEAgU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZv
dW5kYXRpb24sIEFWVVJMQXNzZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5N
dWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQsIHZvaWQsIChBVkNhcHR1cmVTZXNzaW9uICpzZXNz
aW9uKSwgKHNlc3Npb24pKQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFU
Rk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKIAorI2lmIEhBVkUoQVZST1VURVBJ
Q0tFUlZJRVcpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlm
aWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0
aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQorI2VuZGlmIC8vIEhBVkUoQVZST1VURVBJQ0tFUlZJRVcpCisKICNlbmRpZiAvLyBV
U0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvQVZGb3VuZGF0aW9uU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9BVkZvdW5kYXRpb25TUEkuaAppbmRleCAyN2MzYzgwN2YxOWUxYTc1ZWU1N2MwOTYzYWQyZmQx
Y2VlOGM0MWRkLi44NzFjOGNmMmY4NDk4OThmNTdhNWIxZDRmYTFiYzE4NTU1N2ZhODBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEku
aApAQCAtNzQsNiArNzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQGludGVyZmFjZSBB
Vk91dHB1dENvbnRleHQgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkZXZpY2VOYW1lOwogKyAoaW5zdGFuY2V0eXBl
KW91dHB1dENvbnRleHQ7CisrIChpbnN0YW5jZXR5cGUpaVR1bmVzQXVkaW9Db250ZXh0OwogKyAo
bnVsbGFibGUgQVZPdXRwdXRDb250ZXh0ICopc2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRD
b250ZXh0OwogKyAobnVsbGFibGUgQVZPdXRwdXRDb250ZXh0ICopb3V0cHV0Q29udGV4dEZvcklE
OihOU1N0cmluZyAqKUlEOwogQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBzdXBwb3J0c011bHRp
cGxlT3V0cHV0RGV2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL0FWS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktp
dFNQSS5oCmluZGV4IGY3N2Y2MDI1NGExNTI4MzVhNTA5NWNjNjQ3ZjkzYjZiMGI0ZjA2M2MuLmMw
NjQ4ODlmOWViYTgwNTkwYTVlOTJiNjFjYmJhNTI5MzAxN2Q3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMjgsNyArMjI4LDYgQEAgTlNf
QVNTVU1FX05PTk5VTExfRU5ECiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW1wb3J0IDxBVktpdC9BVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyLmg+CkBAIC0yNTYsNyArMjU1LDYgQEAgTlNfQ0xBU1NfQVZBSUxBQkxF
X01BQygxMF8xMSkKIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAjZW5kaWYgLy8gVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLQogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgpA
QCAtMzU4LDMgKzM1NiwzNSBAQCBOU19BU1NVTUVfTk9OTlVMTF9FTkQKICNlbmRpZgogCiAjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFH
RVIpCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiBIQVZFKEFWUk9V
VEVQSUNLRVJWSUVXKQorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFW
S2l0L0FWUm91dGVQaWNrZXJWaWV3X1ByaXZhdGUuaD4KKyNpbXBvcnQgPEFWS2l0L0FWUm91dGVQ
aWNrZXJWaWV3X1dlYktpdE9ubHkuaD4KKworI2Vsc2UKKworTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KKworQHByb3RvY29sIEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGU7CisKK0BpbnRlcmZhY2Ug
QVZSb3V0ZVBpY2tlclZpZXcgOiBOU1ZpZXcKKworLSAodm9pZClzaG93Um91dGVQaWNraW5nQ29u
dHJvbHNGb3JPdXRwdXRDb250ZXh0OihBVk91dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0IHJl
bGF0aXZlVG9SZWN0OihOU1JlY3QpcG9zaXRpb25pbmdSZWN0IG9mVmlldzooTlNWaWV3ICopcG9z
aXRpb25pbmdWaWV3OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIHdlYWspIGlk
PEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGU+IGRlbGVnYXRlOworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgcm91dGVMaXN0QWx3YXlzSGFzRGFya0FwcGVhcmFuY2U7CisKK0BlbmQKKworQHBy
b3RvY29sIEFWUm91dGVQaWNrZXJWaWV3RGVsZWdhdGUgPE5TT2JqZWN0PgorQG9wdGlvbmFsCist
ICh2b2lkKXJvdXRlUGlja2VyVmlld1dpbGxCZWdpblByZXNlbnRpbmdSb3V0ZXM6KEFWUm91dGVQ
aWNrZXJWaWV3ICopcm91dGVQaWNrZXJWaWV3OworLSAodm9pZClyb3V0ZVBpY2tlclZpZXdEaWRF
bmRQcmVzZW50aW5nUm91dGVzOihBVlJvdXRlUGlja2VyVmlldyAqKXJvdXRlUGlja2VyVmlldzsK
K0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYm
IEhBVkUoQVZST1VURVBJQ0tFUlZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxZDdm
MjA5ODY3YzFkNGUwYTQyNzQ2OTc2NTVmOGQxYjEzNmRhZDBlLi5jYTYzMGRkOTc2MGNiMGZkZjhj
ODgzNjQ5ZTRjNTU5ODg3MWMyNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI3NCw2
ICsyNzQsOCBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gQG5vLXVuaWZ5
CitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gQG5vLXVuaWZ5
CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDdkOTQzOWExZWU4ZjVhNzIxZmYwOTNmYmRjMTNiYzg0ZDU4
NWY1MmEuLmQwNzFiMGQxYzY3OTM4Mjk0MTdmOGNmMmI3NjI2ZDQ1ZWVhZWFhMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEx
OCw2ICsxMTgsNyBAQAogCQkwNzM3OTRFQzE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5
NEVBMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oICovOyB9OwogCQkwNzM3OTRG
QTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1ODY0RTAw
RTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDczNzk0RkUx
OUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBS
VENOb3RpZmllcnNNb2NrLmggKi87IH07CisJCTA3MzhFNUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBB
Vk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEyNDk5NjhBRDAwREExMDFD
IC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi87IH07CiAJ
CTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAw
RUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5oICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07
CkBAIC0yMDQsNiArMjA1LDcgQEAKIAkJMDdDMDQ2Q0IxRTQyNjQxMzAwNzIwMUU3IC8qIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDMUMw
RTAxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oICov
OyB9OwogCQkwN0MxQzBFNTFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0MxQzBFNDFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8qIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwN0NFNzdENTE2NzEyQTZBMDBDNTVBNDcgLyogSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdDRTc3RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwN0QxMkY1QzIzREU1NDNGMDA4MDk5N0QgLyogSVNPVlRUQ3VlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDg3MUM2NTFGQjUy
QjY3MDBGMEI5NjUgLyogSVNPVlRUQ3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdENjM3NDAxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNTU3MCw2ICs1NTcyLDkgQEAKIAkJMDczNzk0RjQxOUY1ODY0RTAwRTVBMDQ1
IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzM3OTRGNzE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENOb3RpZmllcnNNb2Nr
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RjgxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUlRDTm90aWZpZXJzTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM4
RTVFODI0OTk2OEFDMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFy
Z2V0UGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzhFNUVBMjQ5OTY4
QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczOEU1RUIyNDk5Njkw
OTAwREExMDFDIC8qIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZQ
bGF5YmFja1RhcmdldFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNB
MTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlVmlkZW9TYW1wbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlVmlkZW9TYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDczQjg3NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTY4NCw2ICs1Njg5LDggQEAKIAkJ
MDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZBc3NldE1JTUVUeXBl
Q2FjaGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QzhBRDEyMUQwNzNENjMw
MDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBVkFzc2V0TUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJn
ZXRQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdDQjlFNzEyNDlDMjI2
QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdENjM3
M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RDYzNzNGMUJCMEIxMTMwMDI1
NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjczNTQsNiArMjczNjEsMTEgQEAKIAkJ
CQkwN0M4QUQxMTFEMDczRDYzMDA4N0M1Q0UgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0gKi8s
CiAJCQkJQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5o
ICovLAogCQkJCUNERUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMubW0gKi8sCisJCQkJMDczOEU1RTgyNDk5NjhBQzAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaCAqLywKKwkJCQkwNzM4RTVFQTI0OTk2OEFEMDBE
QTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSAqLywK
KwkJCQkwNzM4RTVFQjI0OTk2OTA5MDBEQTEwMUMgLyogQVZQbGF5YmFja1RhcmdldFBpY2tlci5o
ICovLAorCQkJCTA3Q0I5RTcxMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1Rh
cmdldFBpY2tlci5oICovLAorCQkJCTA3Q0I5RTZGMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlci5tbSAqLywKIAkJCQlDRDExQjNERjIyN0NBQUE5MDAyM0FG
QzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCUNEMTFCM0Uw
MjI3Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tICov
LAogCQkJCUNENzhBMkVFMUY3NTY0ODYwMERFMzcxQiAvKiBDRE1JbnN0YW5jZUZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQy5oICovLApAQCAtMzQ0ODksNiArMzQ1MDEsOCBAQAogCQkJCUNERUNBODlB
MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDREM2NzUyMjFFQUVBOUI3MDA3MjdDODQgLyogQVZBdWRpb1Nlc3Npb25DYXB0dXJl
RGV2aWNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDM2M0UzMTgxQTFDREMwMEMw
NzRBNSAvKiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMDcz
OEU1RUMyNDk5ODM5MDAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQkwN0NCOUU3MjI0OUMzNkIyMDBBNjk0ODkg
LyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
RDExQjNFMTIyN0NFNkYzMDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzM2RjYxMTdGOUY2NDcwMERERENEMCAvKiBBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcwMzYzRTcxODFB
MUNEQzAwQzA3NEE1IC8qIEFWVmlkZW9DYXB0dXJlU291cmNlLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCmluZGV4IGEyMjI4Y2YyOTQxNzIwYzdmZmNmYzU5MjVk
MzdjYjkxMmViY2UyZDguLmYyMzJiNjhiYmMyN2QwMDk0NDU1ZWYwYTc0NjAwNDZiYWM0NjA2ODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcjo6YWRkUGVuZGluZ0FjdGlvbihQZW5kaW5nQWN0aW9uRmxh
Z3MgYWN0aW9uKQogICAgIG1fcGVuZGluZ0FjdGlvblRpbWVyLnN0YXJ0T25lU2hvdChwZW5kaW5n
QWN0aW9uSW50ZXJ2YWwpOwogfQogCi12b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sLCBib29sKQordm9p
ZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
dGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCwgYm9vbCkKIHsKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRleCA0OTc0ODRhOTEw
ODEzNWIyNzNjMTVjZTIwMDc0ZmEwZmJmMmVmZmE3Li5iMzA3NTYwZWVkOTEwYzViNTYxNzU1ZDM2
NjdmMDQxODg4NTc5YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogCisjaW5jbHVkZSAi
UGxhdGZvcm1WaWV3LmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAKQEAgLTUyLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wg
dXNlRGFya0FwcGVhcmFuY2UpOworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJv
dXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRpbmdN
b25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9y
aW5nUGxheWJhY2tUYXJnZXRzKCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQbGF5YmFj
a1RhcmdldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZTE4NmEyN2FmMzMxMDBkZWJkOTU1YjUxYTU4ZjkzMTU2MTMzNmU4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZP
dXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5oCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSAiQVZQbGF5YmFj
a1RhcmdldFBpY2tlci5oIgorCitPQkpDX0NMQVNTIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXI7CitPQkpDX0NMQVNTIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXI7CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
clRhcmdldFBpY2tlciBmaW5hbCA6IHB1YmxpYyBBVlBsYXliYWNrVGFyZ2V0UGlja2VyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKTsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKEFWUGxheWJhY2tU
YXJnZXRQaWNrZXI6OkNsaWVudCYpOworICAgIHZpcnR1YWwgfkFWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXJUYXJnZXRQaWNrZXIoKTsKKworICAgIHZvaWQgYXZhaWxhYmxlRGV2aWNlc0RpZENo
YW5nZSgpOworICAgIHZvaWQgY3VycmVudERldmljZURpZENoYW5nZSgpOworCitwcml2YXRlOgor
ICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqLCBjb25zdCBGbG9hdFJl
Y3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIGZpbmFs
OworICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7Cisg
ICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQg
aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIGJvb2wgZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGUoKSBmaW5hbDsKKyAgICBBVk91dHB1dENvbnRleHQqIG91dHB1dENv
bnRleHQoKSBmaW5hbDsKKworICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgKmRldmlj
ZVBpY2tlcigpOworCisgICAgUmV0YWluUHRyPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXI+
IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdlYkFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXI+IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJE
ZWxlZ2F0ZTsKKyAgICBib29sIG1fc2hvd2luZ01lbnUgeyBmYWxzZSB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YThk
MDZjMGEzZmJjNmRiNGNlOTBiMmIxY2UyNmYxNzk3OTgyNmMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tCkBAIC0wLDAgKzEsMjAwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmgiCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiTG9nZ2luZy5o
IgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPG9iamMvcnVudGltZS5o
PgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisKKyNp
bXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLmg+CisKK1NPRlRMSU5LX0FWS0lUX0ZSQU1FV09SSygpCitTT0ZU
X0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIp
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgTlNTdHJpbmcgKmV4dGVybmFs
T3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFp
bGFibGUiOworc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5h
bWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsKKworQGludGVyZmFjZSBXZWJBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIDogTlNPYmplY3QgeworICAgIFdlYWtQdHI8
QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcj4gbV9jYWxsYmFjazsKK30K
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZPdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcj4mJiljYWxsYmFjazsKKy0gKHZvaWQpY2xlYXJD
YWxsYmFjazsKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0aCBvZk9i
amVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZv
aWQgKiljb250ZXh0OworQGVuZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGllbnQpCisg
ICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKKyAgICAsIG1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazptYWtlV2Vha1B0cigqdGhpcyld
KSkKK3sKK30KKworQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6fkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIoKQoreworICAgIFttX291dHB1
dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUgY2xlYXJDYWxsYmFja107Cit9CisKK0FWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgKkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXI6OmRldmljZVBpY2tlcigpCit7CisgICAgaWYgKCFnZXRBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyQ2xhc3MoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAo
IW1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIpIHsKKyAgICAgICAgUmV0YWluUHRyPEFWT3V0
cHV0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVk91dHB1dENvbnRleHRJ
bnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA9
IGFkb3B0TlMoW2FsbG9jQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckluc3RhbmNlKCkgaW5p
dFdpdGhPdXRwdXRDb250ZXh0OmNvbnRleHQuZ2V0KCldKTsKKworICAgICAgICBbbV9vdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBhZGRPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9yS2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZUF2
YWlsYWJsZUtleU5hbWUgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRl
eHQ6bnVsbHB0cl07CisgICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgp
IGFkZE9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBm
b3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZSBvcHRpb25zOk5TS2V5
VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKKworICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICBpZiAobV9vdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlci5nZXQoKS5leHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSkKKyAg
ICAgICAgICAgIGF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisgICAgfQorCisgICAgcmV0dXJuIG1fb3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCk7Cit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlclRhcmdldFBpY2tlcjo6YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpCit7CisgICAg
aWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+YXZhaWxhYmxlRGV2aWNlc0NoYW5nZWQo
KTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpj
dXJyZW50RGV2aWNlRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIGNs
aWVudCgpLT5jdXJyZW50RGV2aWNlQ2hhbmdlZCgpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihOU1Zp
ZXcgKiwgY29uc3QgRmxvYXRSZWN0JiBsb2NhdGlvbiwgYm9vbCBoYXNBY3RpdmVSb3V0ZSwgYm9v
bCB1c2VEYXJrQXBwZWFyYW5jZSkKK3sKKyAgICBpZiAoIWNsaWVudCgpIHx8IG1fc2hvd2luZ01l
bnUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2hvd2luZ01lbnUgPSB0cnVlOworCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBib29sIHRhcmdldFNlbGVj
dGVkID0gW2RldmljZVBpY2tlcigpIHNob3dNZW51Rm9yUmVjdDpsb2NhdGlvbiBhcHBlYXJhbmNl
TmFtZToodXNlRGFya0FwcGVhcmFuY2UgPyBOU0FwcGVhcmFuY2VOYW1lVmlicmFudERhcmsgOiBO
U0FwcGVhcmFuY2VOYW1lVmlicmFudExpZ2h0KSBhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91
dHB1dERldmljZTohaGFzQWN0aXZlUm91dGVdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAorCisgICAgaWYgKCFjbGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHRhcmdldFNlbGVjdGVkICE9IGhhc0FjdGl2ZVJvdXRlKQorICAgICAgICBjdXJyZW50RGV2
aWNlRGlkQ2hhbmdlKCk7CisgICAgZWxzZSBpZiAoIXRhcmdldFNlbGVjdGVkICYmICFoYXNBY3Rp
dmVSb3V0ZSkKKyAgICAgICAgY2xpZW50KCktPnBpY2tlcldhc0Rpc21pc3NlZCgpOworCisgICAg
bV9zaG93aW5nTWVudSA9IGZhbHNlOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpCit7
CisgICAgZGV2aWNlUGlja2VyKCk7Cit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlclRhcmdldFBpY2tlcjo6c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQoreworICAg
IC8vIE5vdGhpbmcgdG8gZG8sIEFpclBsYXkgdGFrZXMgY2FyZSBvZiB0aGlzIGF1dG9tYXRpY2Fs
bHkuCit9CisKK3ZvaWQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6
aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpCit7CisgICAgaWYgKG1fb3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXIpIHsKKyAgICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgcmVt
b3ZlT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZv
cktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1lXTsKKyAgICAgICAg
W21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgcmVtb3ZlT2JzZXJ2ZXI6bV9vdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXRE
ZXZpY2VQaWNrZWRLZXlOYW1lXTsKKyAgICAgICAgbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ciA9IG51bGxwdHI7CisgICAgfQorICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKK30KKwor
Ym9vbCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpleHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZSgpCit7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KKyAgICByZXR1cm4gZGV2aWNlUGlja2VyKCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VB
dmFpbGFibGU7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECit9CisKK0FW
T3V0cHV0Q29udGV4dCAqIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6
Om91dHB1dENvbnRleHQoKQoreworICAgIHJldHVybiBtX291dHB1dERldmljZU1lbnVDb250cm9s
bGVyID8gW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgb3V0cHV0Q29udGV4dF0g
OiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0BpbXBsZW1lbnRhdGlv
biBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyCistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhDYWxsYmFjazooV2Vha1B0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFy
Z2V0UGlja2VyPiYmKWNhbGxiYWNrCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCljbGVhckNhbGxiYWNrCit7Cisg
ICAgbV9jYWxsYmFjayA9IG5pbDsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRo
OihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKilj
aGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0oY2hhbmdlKTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7
CisKKyAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghW2tl
eVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFt
ZV0gJiYgIVtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZVBpY2tl
ZEtleU5hbWVdKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtzZWxm
LCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBrZXlQYXRoID0gcmV0YWluUHRyKGtl
eVBhdGgpXSB7CisgICAgICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2
aWNlQXZhaWxhYmxlS2V5TmFtZV0pCisgICAgICAgICAgICBtX2NhbGxiYWNrLT5hdmFpbGFibGVE
ZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0
cmluZzpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWVdKQorICAgICAgICAgICAgbV9j
YWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5nZSgpOworICAgIH0pOworfQorQGVuZAorCisj
ZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJh
Y2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2Q5YWI5
NmIzNDFjYTdiNjg5YTJlNzc4NzFiNDdlNTA5ZDFiM2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZQbGF5YmFj
a1RhcmdldFBpY2tlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworT0JKQ19DTEFTUyBBVk91
dHB1dENvbnRleHQ7CitPQkpDX0NMQVNTIE5TVmlldzsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGbG9hdFJlY3Q7CisKK2NsYXNzIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8QVZQbGF5YmFja1RhcmdldFBpY2tlcj4geworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFWUGxheWJhY2tUYXJn
ZXRQaWNrZXIpOworcHVibGljOgorICAgIGNsYXNzIENsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxDbGllbnQ+IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgfkNsaWVudCgp
ID0gZGVmYXVsdDsKKworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lkIHBpY2tlcldh
c0Rpc21pc3NlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGF2YWlsYWJsZURldmljZXND
aGFuZ2VkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgY3VycmVudERldmljZUNoYW5nZWQo
KSA9IDA7CisgICAgfTsKKworICAgIGV4cGxpY2l0IEFWUGxheWJhY2tUYXJnZXRQaWNrZXIoQ2xp
ZW50JiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoJmNsaWVudCkpCisg
ICAgeworICAgIH0KKyAgICB2aXJ0dWFsIH5BVlBsYXliYWNrVGFyZ2V0UGlja2VyKCkgPSBkZWZh
dWx0OworCisgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihOU1ZpZXcg
KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtB
cHBlYXJhbmNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXli
YWNrVGFyZ2V0cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFj
a1RhcmdldHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVQbGF5YmFja1Rhcmdl
dHMoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxl
KCkgPSAwOworCisgICAgdmlydHVhbCBBVk91dHB1dENvbnRleHQqIG91dHB1dENvbnRleHQoKSA9
IDA7CisKKyAgICBXZWFrUHRyPEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudD4gY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWFrUHRyPEFW
UGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudD4gbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg3OGRkN2Y3NTNmNWRjNDMwNjcyM2E1Y2YxMTE0YTAw
OThjMmZlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmgKQEAg
LTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNs
dWRlICJBVlBsYXliYWNrVGFyZ2V0UGlja2VyLmgiCisKK09CSkNfQ0xBU1MgQVZSb3V0ZURldGVj
dG9yOworT0JKQ19DTEFTUyBBVlJvdXRlUGlja2VyVmlldzsKK09CSkNfQ0xBU1MgV2ViQVZSb3V0
ZVBpY2tlclZpZXdIZWxwZXI7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQVZSb3V0
ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIgZmluYWwgOiBwdWJsaWMgQVZQbGF5YmFja1RhcmdldFBp
Y2tlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIpOworcHVibGljOgorICAgIGV4cGxp
Y2l0IEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6
OkNsaWVudCYpOworICAgIHZpcnR1YWwgfkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKCk7
CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKKworICAgIHZvaWQgYXZhaWxh
YmxlRGV2aWNlc0RpZENoYW5nZSgpOworICAgIHZvaWQgY3VycmVudERldmljZURpZENoYW5nZSgp
OworICAgIHZvaWQgZGV2aWNlUGlja2VyV2FzRGlzbWlzc2VkKCk7CisKK3ByaXZhdGU6CisgICAg
dm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICosIGNvbnN0IEZsb2F0UmVjdCYs
IGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgZmluYWw7Cisg
ICAgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2
b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9pZCBpbnZh
bGlkYXRlUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgYm9vbCBleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZSgpIGZpbmFsOworICAgIEFWT3V0cHV0Q29udGV4dCAqb3V0cHV0Q29udGV4
dCgpIGZpbmFsOworCisgICAgQVZSb3V0ZVBpY2tlclZpZXcgKmRldmljZVBpY2tlcigpOworICAg
IEFWUm91dGVEZXRlY3RvciAqcm91dGVEZXRlY3RvcigpOworICAgIEFWT3V0cHV0Q29udGV4dCAq
IG91dHB1dENvbnRleHRJbnRlcm5hbCgpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUoKSBjb25z
dDsKKworICAgIFJldGFpblB0cjxBVlJvdXRlRGV0ZWN0b3I+IG1fcm91dGVEZXRlY3RvcjsKKyAg
ICBSZXRhaW5QdHI8QVZSb3V0ZVBpY2tlclZpZXc+IG1fcm91dGVQaWNrZXJWaWV3OworICAgIFJl
dGFpblB0cjxBVk91dHB1dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKKyAgICBSZXRhaW5QdHI8
V2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXI+IG1fcm91dGVQaWNrZXJWaWV3RGVsZWdhdGU7Cisg
ICAgYm9vbCBtX2hhZEFjdGl2ZVJvdXRlIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0
UGlja2VyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZjFkY2Q4MjJhZTM4ZWFmZjI5NmNmZjBmZGI4M2EyN2Mx
NTQyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbQpAQCAt
MCwwICsxLDI3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaCIKKworI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICYmIEhBVkUoQVZST1VURVBJQ0tFUlZJRVcpCisKKyNpbXBvcnQgIkxv
Z2dpbmcuaCIKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlJvdXRlRGV0ZWN0b3IuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWRm91bmRh
dGlvblNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oPgorI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KKworI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+
CisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKworU09GVExJTktf
QVZLSVRfRlJBTUVXT1JLKCkKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwgQVZSb3V0
ZVBpY2tlclZpZXcpCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitAaW50ZXJmYWNlIFdl
YkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIDogTlNPYmplY3QgPEFWUm91dGVQaWNrZXJWaWV3RGVs
ZWdhdGU+IHsKKyAgICBXZWFrUHRyPEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyPiBtX2Nh
bGxiYWNrOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDYWxsYmFjazooV2Vha1B0cjxB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcj4mJiljYWxsYmFjazsKKy0gKHZvaWQpY2xlYXJD
YWxsYmFjazsKKy0gKHZvaWQpbm90aWZpY2F0aW9uSGFuZGxlcjooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb247CistICh2b2lkKXJvdXRlUGlja2VyVmlld0RpZEVuZFByZXNlbnRpbmdSb3V0
ZXM6KEFWUm91dGVQaWNrZXJWaWV3ICopcm91dGVQaWNrZXJWaWV3OworQGVuZAorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2Jvb2wgQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmlzQXZh
aWxhYmxlKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBhdmFpbGFibGU7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIGZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgW10gKCkgeworICAgICAg
ICBpZiAoIVBBTDo6Z2V0QVZSb3V0ZVBpY2tlclZpZXdDbGFzcygpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmIChhdXRvIHBpY2tlciA9IGFkb3B0TlMoW2FsbG9jQVZSb3V0ZVBp
Y2tlclZpZXdJbnN0YW5jZSgpIGluaXRdKSkKKyAgICAgICAgICAgIGF2YWlsYWJsZSA9IFtwaWNr
ZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzaG93Um91dGVQaWNraW5nQ29udHJvbHNG
b3JPdXRwdXRDb250ZXh0OnJlbGF0aXZlVG9SZWN0Om9mVmlldzopXTsKKyAgICB9KTsKKworICAg
IHJldHVybiBhdmFpbGFibGU7Cit9CisKK0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcihBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGll
bnQmIGNsaWVudCkKKyAgICA6IEFWUGxheWJhY2tUYXJnZXRQaWNrZXIoY2xpZW50KQorICAgICwg
bV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZSb3V0ZVBpY2tlclZpZXdI
ZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6bWFrZVdlYWtQdHIoKnRoaXMpXSkpCit7Cisg
ICAgQVNTRVJUKGlzQXZhaWxhYmxlKCkpOworfQorCitBVlJvdXRlUGlja2VyVmlld1RhcmdldFBp
Y2tlcjo6fkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKCkKK3sKKyAgICBbbV9yb3V0ZVBp
Y2tlclZpZXdEZWxlZ2F0ZSBjbGVhckNhbGxiYWNrXTsKK30KKworQVZPdXRwdXRDb250ZXh0ICog
QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6Om91dHB1dENvbnRleHRJbnRlcm5hbCgpCit7
CisgICAgaWYgKCFtX291dHB1dENvbnRleHQpIHsKKyAgICAgICAgbV9vdXRwdXRDb250ZXh0ID0g
W1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBpVHVuZXNBdWRpb0NvbnRleHRdOworICAg
ICAgICBBU1NFUlQobV9vdXRwdXRDb250ZXh0KTsKKyAgICAgICAgaWYgKG1fb3V0cHV0Q29udGV4
dCkKKyAgICAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXI6bV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0ZS5nZXQoKSBzZWxlY3RvcjpAc2VsZWN0
b3Iobm90aWZpY2F0aW9uSGFuZGxlcjopIG5hbWU6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWT3V0
cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bV9v
dXRwdXRDb250ZXh0LmdldCgpXTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9vdXRwdXRDb250ZXh0
LmdldCgpOworfQorCitBVlJvdXRlUGlja2VyVmlldyAqQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXI6OmRldmljZVBpY2tlcigpCit7CisgICAgaWYgKCFtX3JvdXRlUGlja2VyVmlldykgewor
ICAgICAgICBtX3JvdXRlUGlja2VyVmlldyA9IGFkb3B0TlMoW2FsbG9jQVZSb3V0ZVBpY2tlclZp
ZXdJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgW21fcm91dGVQaWNrZXJWaWV3IHNldERlbGVn
YXRlOm1fcm91dGVQaWNrZXJWaWV3RGVsZWdhdGUuZ2V0KCldOworICAgIH0KKworICAgIHJldHVy
biBtX3JvdXRlUGlja2VyVmlldy5nZXQoKTsKK30KKworQVZSb3V0ZURldGVjdG9yICpBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlcjo6cm91dGVEZXRlY3RvcigpCit7CisgICAgaWYgKCFtX3Jv
dXRlRGV0ZWN0b3IpIHsKKyAgICAgICAgbV9yb3V0ZURldGVjdG9yID0gYWRvcHROUyhbUEFMOjph
bGxvY0FWUm91dGVEZXRlY3Rvckluc3RhbmNlKCkgaW5pdF0pOworICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOm1fcm91dGVQaWNrZXJWaWV3
RGVsZWdhdGUuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKG5vdGlmaWNhdGlvbkhhbmRsZXI6KSBu
YW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0Rl
dGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2JqZWN0Om1fcm91dGVEZXRlY3Rvci5nZXQo
KV07CisgICAgICAgIGlmIChbbV9yb3V0ZURldGVjdG9yIG11bHRpcGxlUm91dGVzRGV0ZWN0ZWRd
KQorICAgICAgICAgICAgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOworICAgIH0KKworICAg
IHJldHVybiBtX3JvdXRlRGV0ZWN0b3IuZ2V0KCk7Cit9CisKK3ZvaWQgQVZSb3V0ZVBpY2tlclZp
ZXdUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihOU1ZpZXcgKnZpZXcsIGNv
bnN0IEZsb2F0UmVjdCYgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIGJvb2wgaGFzQWN0aXZlUm91
dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCit7CisgICAgaWYgKCFjbGllbnQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byAqcGlja2VyID0gZGV2aWNlUGlja2VyKCk7CisgICAgaWYg
KHVzZURhcmtBcHBlYXJhbmNlKQorICAgICAgICBwaWNrZXIucm91dGVMaXN0QWx3YXlzSGFzRGFy
a0FwcGVhcmFuY2UgPSBZRVM7CisKKyAgICBtX2hhZEFjdGl2ZVJvdXRlID0gaGFzQWN0aXZlUm91
dGU7CisKKyAgICBhdXRvIHJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzID0gW3ZpZXcud2luZG93IGNv
bnZlcnRSZWN0RnJvbVNjcmVlbjpOU01ha2VSZWN0KHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLngo
KSwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMueSgpLCAxLjAsIDEuMCldOworICAgIGF1dG8gcmVj
dEluVmlld0Nvb3JkaW5hdGVzID0gW3ZpZXcgY29udmVydFJlY3Q6cmVjdEluV2luZG93Q29vcmRp
bmF0ZXMgZnJvbVZpZXc6dmlld107CisgICAgW3BpY2tlciBzaG93Um91dGVQaWNraW5nQ29udHJv
bHNGb3JPdXRwdXRDb250ZXh0Om91dHB1dENvbnRleHRJbnRlcm5hbCgpIHJlbGF0aXZlVG9SZWN0
OnJlY3RJblZpZXdDb29yZGluYXRlcyBvZlZpZXc6dmlld107Cit9CisKK3ZvaWQgQVZSb3V0ZVBp
Y2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygp
Cit7CisgICAgcm91dGVEZXRlY3RvcigpLnJvdXRlRGV0ZWN0aW9uRW5hYmxlZCA9IFlFUzsKK30K
Kwordm9pZCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6c3RvcE1vbml0b3JpbmdQbGF5
YmFja1RhcmdldHMoKQoreworICAgIGlmIChtX3JvdXRlRGV0ZWN0b3IpCisgICAgICAgIFttX3Jv
dXRlRGV0ZWN0b3Igc2V0Um91dGVEZXRlY3Rpb25FbmFibGVkOk5PXTsKK30KKworYm9vbCBBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUo
KQoreworICAgIHJldHVybiByb3V0ZURldGVjdG9yKCkubXVsdGlwbGVSb3V0ZXNEZXRlY3RlZDsK
K30KKworQVZPdXRwdXRDb250ZXh0ICogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6Om91
dHB1dENvbnRleHQoKQoreworICAgIHJldHVybiBtX291dHB1dENvbnRleHQuZ2V0KCk7Cit9CisK
K3ZvaWQgQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmludmFsaWRhdGVQbGF5YmFja1Rh
cmdldHMoKQoreworICAgIGlmIChtX3JvdXRlRGV0ZWN0b3IpIHsKKyAgICAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX3JvdXRlUGlja2Vy
Vmlld0RlbGVnYXRlLmdldCgpIG5hbWU6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUm91dGVEZXRl
Y3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6
bV9yb3V0ZURldGVjdG9yLmdldCgpXTsKKyAgICAgICAgW21fcm91dGVEZXRlY3RvciBzZXRSb3V0
ZURldGVjdGlvbkVuYWJsZWQ6Tk9dOworICAgICAgICBtX3JvdXRlUGlja2VyVmlldyA9IG51bGxw
dHI7CisgICAgfQorCisgICAgaWYgKG1fb3V0cHV0Q29udGV4dCkgeworICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fcm91dGVQaWNr
ZXJWaWV3RGVsZWdhdGUuZ2V0KCkgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZPdXRwdXRD
b250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX291dHB1
dENvbnRleHQuZ2V0KCldOworICAgICAgICBtX291dHB1dENvbnRleHQgPSBudWxscHRyOworICAg
IH0KKworICAgIGlmIChtX3JvdXRlUGlja2VyVmlldykgeworICAgICAgICBbbV9yb3V0ZVBpY2tl
clZpZXcgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICAgICAgbV9yb3V0ZVBpY2tlclZpZXcgPSBudWxs
cHRyOworICAgIH0KKyAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7Cit9Cit2b2lkIEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjphdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCkKK3sK
KyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIGNsaWVudCgpLT5hdmFpbGFibGVEZXZpY2VzQ2hh
bmdlZCgpOworfQorCitib29sIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpoYXNBY3Rp
dmVSb3V0ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX291dHB1dENvbnRleHQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmIChbbV9vdXRwdXRDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXMpXSAmJiBbbV9vdXRwdXRD
b250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iob3V0cHV0RGV2aWNlcyldJiYgW21f
b3V0cHV0Q29udGV4dCBzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10pIHsKKyAgICAgICAg
Zm9yIChBVk91dHB1dERldmljZSAqb3V0cHV0RGV2aWNlIGluIFttX291dHB1dENvbnRleHQgb3V0
cHV0RGV2aWNlc10pIHsKKyAgICAgICAgICAgIGlmIChvdXRwdXREZXZpY2UuZGV2aWNlRmVhdHVy
ZXMgJiAoQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8gfCBBVk91dHB1dERldmljZUZlYXR1cmVB
dWRpbykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKFttX291dHB1dENvbnRleHQgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2UpXSkgeworICAgICAgICBpZiAoYXV0
byAqb3V0cHV0RGV2aWNlID0gW21fb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VdKQorICAgICAg
ICAgICAgcmV0dXJuIG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIChBVk91dHB1dERldmlj
ZUZlYXR1cmVWaWRlbyB8IEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlvKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gW21fb3V0cHV0Q29udGV4dCBkZXZpY2VOYW1lXTsKK30KKwordm9pZCBBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlcjo6Y3VycmVudERldmljZURpZENoYW5nZSgpCit7CisgICAg
YXV0byBoYXZlQWN0aXZlUm91dGUgPSBoYXNBY3RpdmVSb3V0ZSgpOworICAgIGlmICghY2xpZW50
KCkgfHwgbV9oYWRBY3RpdmVSb3V0ZSA9PSBoYXZlQWN0aXZlUm91dGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1faGFkQWN0aXZlUm91dGUgPSBoYXZlQWN0aXZlUm91dGU7CisgICAgY2xpZW50
KCktPmN1cnJlbnREZXZpY2VDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcldhc0Rpc21pc3NlZCgpCit7CisgICAgaWYgKCFjbGll
bnQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGNsaWVudCgpLT5waWNrZXJXYXNEaXNt
aXNzZWQoKTsKKyAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworQGltcGxlbWVudGF0aW9uIFdlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVy
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDYWxsYmFjazooV2Vha1B0cjxBVlJvdXRlUGlja2Vy
Vmlld1RhcmdldFBpY2tlcj4mJiljYWxsYmFjaworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY2xlYXJDYWxsYmFj
aworeworICAgIG1fY2FsbGJhY2sgPSBuaWw7Cit9CisKKy0gKHZvaWQpcm91dGVQaWNrZXJWaWV3
RGlkRW5kUHJlc2VudGluZ1JvdXRlczooQVZSb3V0ZVBpY2tlclZpZXcgKilyb3V0ZVBpY2tlclZp
ZXcKK3sKKyAgICBVTlVTRURfUEFSQU0ocm91dGVQaWNrZXJWaWV3KTsKKworICAgIGlmICghbV9j
YWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblRocmVhZChbc2VsZiwg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0geworICAgICAgICBpZiAoIW1fY2FsbGJh
Y2spCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9jYWxsYmFjay0+ZGV2aWNlUGlj
a2VyV2FzRGlzbWlzc2VkKCk7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpbm90aWZpY2F0aW9uSGFu
ZGxlcjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKKworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgY2FsbE9uTWFpblRocmVhZChbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihz
ZWxmKSwgbm90aWZpY2F0aW9uID0gcmV0YWluUHRyKG5vdGlmaWNhdGlvbildIHsKKyAgICAgICAg
aWYgKCFtX2NhbGxiYWNrKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChbW25v
dGlmaWNhdGlvbiBuYW1lXSBpc0VxdWFsVG9TdHJpbmc6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
T3V0cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKV0pCisgICAg
ICAgICAgICBtX2NhbGxiYWNrLT5jdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7CisgICAgICAgIGVs
c2UgaWYgKFtbbm90aWZpY2F0aW9uIG5hbWVdIGlzRXF1YWxUb1N0cmluZzpQQUw6OmdldF9BVkZv
dW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5v
dGlmaWNhdGlvbigpXSkKKyAgICAgICAgICAgIG1fY2FsbGJhY2stPmF2YWlsYWJsZURldmljZXNE
aWRDaGFuZ2UoKTsKKyAgICB9KTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMuaAppbmRleCA2NDJkZjY1ZGZjODc3NzA0YjNiMDVm
MmU4MzY4ZmVjM2M3OGM4MWVmLi5mZDgxNWEwMGRhM2YwYzE3NzRmZjU1NmYwZjRlODljMDNiZDk4
YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI4LDM2ICsyOCwzNiBAQAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbmNsdWRlICJBVlBs
YXliYWNrVGFyZ2V0UGlja2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotT0JKQ19DTEFTUyBBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyOwotT0JKQ19DTEFTUyBXZWJBVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVySGVscGVyOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWMgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ciB7CitjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjIGZpbmFsIDogcHVibGljIE1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIsIHB1YmxpYyBBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpD
bGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMpOwogcHVibGljOgogICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
cjo6Q2xpZW50Jik7Ci0KICAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
KCk7CiAKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3Qm
LCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIG92ZXJyaWRl
OwotICAgIHZvaWQgc3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwotICAg
IHZvaWQgaW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOworICAgIHZvaWQgc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRmb3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJv
b2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgZmluYWw7CisgICAg
dm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2b2lk
IHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9pZCBpbnZhbGlk
YXRlUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBleHRlcm5h
bE91dHB1dERldmljZUF2YWlsYWJsZSgpIG92ZXJyaWRlOwotICAgIFJlZjxNZWRpYVBsYXliYWNr
VGFyZ2V0PiBwbGF5YmFja1RhcmdldCgpIG92ZXJyaWRlOworICAgIGJvb2wgZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGUoKSBmaW5hbDsKKyAgICBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4g
cGxheWJhY2tUYXJnZXQoKSBmaW5hbDsKKworICAgIC8vIEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6
OkNsaWVudAorICAgIHZvaWQgcGlja2VyV2FzRGlzbWlzc2VkKCkgZmluYWw7CisgICAgdm9pZCBh
dmFpbGFibGVEZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgY3VycmVudERldmljZUNo
YW5nZWQoKSBmaW5hbDsKIAotICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgKmRldmlj
ZVBpY2tlcigpOworICAgIEFWUGxheWJhY2tUYXJnZXRQaWNrZXImIHJvdXRlUGlja2VyKCk7CiAK
LSAgICBSZXRhaW5QdHI8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlcj4gbV9vdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlcjsKLSAgICBSZXRhaW5QdHI8V2ViQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlckhlbHBlcj4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlOwotICAg
IGJvb2wgbV9zaG93aW5nTWVudSB7IGZhbHNlIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPEFWUGxh
eWJhY2tUYXJnZXRQaWNrZXI+IG1fcm91dGVQaWNrZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYy5tbQppbmRleCAyYjVlNTQxM2Y4ZjgzZmQwM2U3ZGU4MjM1OGU4NGI5OWUx
MjczYzk3Li45NzMzY2I1NTM3NjAyOTQzY2NlMmFmOGJhZDUyY2FkOTc3OTQ2NWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkFWT3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJn
ZXRDb2NvYS5oPgpAQCAtMzYsNiArMzcsMTAgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZL
aXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBIQVZFKEFWUk9VVEVQ
SUNLRVJWSUVXKQorI2ltcG9ydCAiQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaCIKKyNl
bmRpZgorCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCkBAIC00NCwxNjIgKzQ5LDg2IEBAIFNP
RlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
cikKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBOU1N0cmluZyAqZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1lID0gQCJleHRlcm5hbE91dHB1dERldmljZUF2
YWlsYWJsZSI7Ci1zdGF0aWMgTlNTdHJpbmcgKmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5
TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWQiOwotCi1AaW50ZXJmYWNlIFdlYkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgOiBOU09iamVjdCB7Ci0gICAgTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYyogbV9jYWxsYmFjazsKLX0KLQotLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoQ2FsbGJhY2s6KE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMqKWNhbGxiYWNr
OwotLSAodm9pZCljbGVhckNhbGxiYWNrOwotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRo
OihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKilj
aGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQ7Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6TWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYyhNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQmIGNsaWVudCkKICAgICA6
IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIoY2xpZW50KQotICAgICwgbV9vdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVySGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKIHsKIH0KIAogTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMo
KQogewogICAgIHNldENsaWVudChudWxscHRyKTsKLSAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlckRlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOwogfQogCiBib29sIE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKCkKIHsKLUFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgcmV0dXJuIGRldmljZVBpY2tlcigp
LmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECisgICAgcmV0dXJuIHJvdXRlUGlja2VyKCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VB
dmFpbGFibGUoKTsKIH0KIAogUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6OnBsYXliYWNrVGFyZ2V0KCkKIHsKLSAgICBBVk91dHB1dENvbnRleHQq
IGNvbnRleHQgPSBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyID8gW21fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXIuZ2V0KCkgb3V0cHV0Q29udGV4dF0gOiBudWxscHRyOwotCi0gICAgcmV0
dXJuIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKGNvbnRleHQpOwor
ICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNyZWF0ZShyb3V0
ZVBpY2tlcigpLm91dHB1dENvbnRleHQoKSk7CiB9CiAKLUFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXIgKk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmRldmljZVBpY2tlcigpCitBVlBs
YXliYWNrVGFyZ2V0UGlja2VyJiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpyb3V0ZVBp
Y2tlcigpCiB7Ci0gICAgaWYgKCFnZXRBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyQ2xhc3Mo
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fb3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXIpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1hYzo6ZGV2aWNlUGlja2VyIC0gYWxsb2NhdGluZyBwaWNrZXIiKTsKLQotICAgICAgICBS
ZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiBjb250ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY0FW
T3V0cHV0Q29udGV4dEluc3RhbmNlKCkgaW5pdF0pOwotICAgICAgICBtX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyID0gYWRvcHROUyhbYWxsb2NBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
SW5zdGFuY2UoKSBpbml0V2l0aE91dHB1dENvbnRleHQ6Y29udGV4dC5nZXQoKV0pOwotCi0gICAg
ICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIGFkZE9ic2VydmVyOm1fb3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFs
T3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdP
cHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKLSAgICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRl
bGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1l
IG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om51bGxwdHJdOwot
Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmRldmlj
ZVBpY2tlciAtIGFsbG9jYXRlZCBtZW51IGNvbnRyb2xsZXIgJXAiLCBtX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyLmdldCgpKTsKLQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KLSAgICAgICAgaWYgKG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkuZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGUpCi0gICAgICAgICAgICBhdmFpbGFibGVEZXZpY2VzRGlk
Q2hhbmdlKCk7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICB9Ci0KLSAg
ICByZXR1cm4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKTsKKyAgICBpZiAobV9y
b3V0ZVBpY2tlcikKKyAgICAgICAgcmV0dXJuICptX3JvdXRlUGlja2VyOworCisjaWYgSEFWRShB
VlJPVVRFUElDS0VSVklFVykKKyAgICBpZiAoQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6
OmlzQXZhaWxhYmxlKCkpCisgICAgICAgIG1fcm91dGVQaWNrZXIgPSBtYWtlVW5pcXVlPEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyPigqdGhpcyk7CisgICAgZWxzZQorI2VuZGlmCisgICAg
ICAgIG1fcm91dGVQaWNrZXIgPSBtYWtlVW5pcXVlPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUYXJnZXRQaWNrZXI+KCp0aGlzKTsKKyAgICAKKyAgICByZXR1cm4gKm1fcm91dGVQaWNrZXI7
CiB9CiAKLXZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUs
IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF0Zm9ybVZpZXcqIHZpZXcsIGNvbnN0IEZs
b2F0UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVh
cmFuY2UpCiB7Ci0gICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIgLSBoYXNBY3RpdmVSb3V0ZSA9ICVpIiwgKGludCloYXNB
Y3RpdmVSb3V0ZSk7Ci0KLSAgICBtX3Nob3dpbmdNZW51ID0gdHJ1ZTsKLQotQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICBib29sIHRhcmdldFNlbGVjdGVkID0gW2Rldmlj
ZVBpY2tlcigpIHNob3dNZW51Rm9yUmVjdDpsb2NhdGlvbiBhcHBlYXJhbmNlTmFtZToodXNlRGFy
a0FwcGVhcmFuY2UgPyBOU0FwcGVhcmFuY2VOYW1lVmlicmFudERhcmsgOiBOU0FwcGVhcmFuY2VO
YW1lVmlicmFudExpZ2h0KSBhbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZToh
aGFzQWN0aXZlUm91dGVdOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0KLSAg
ICBpZiAodGFyZ2V0U2VsZWN0ZWQgIT0gaGFzQWN0aXZlUm91dGUpCi0gICAgICAgIGN1cnJlbnRE
ZXZpY2VEaWRDaGFuZ2UoKTsKLSAgICBlbHNlIGlmICghdGFyZ2V0U2VsZWN0ZWQgJiYgIWhhc0Fj
dGl2ZVJvdXRlKQotICAgICAgICBwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpOwot
Ci0gICAgbV9zaG93aW5nTWVudSA9IGZhbHNlOworICAgIHJvdXRlUGlja2VyKCkuc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKHZpZXcsIGxvY2F0aW9uLCBoYXNBY3RpdmVSb3V0ZSwgdXNlRGFya0Fw
cGVhcmFuY2UpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0
aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
Iik7CiAKLSAgICBkZXZpY2VQaWNrZXIoKTsKKyAgICByb3V0ZVBpY2tlcigpLnN0YXJ0aW5nTW9u
aXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNYWM6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkKIHsKICAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNr
VGFyZ2V0cyIpOwotICAgIC8vIE5vdGhpbmcgdG8gZG8sIEFpclBsYXkgdGFrZXMgY2FyZSBvZiB0
aGlzIGF1dG9tYXRpY2FsbHkuCisgICAgcm91dGVQaWNrZXIoKS5zdG9wTW9uaXRvcmluZ1BsYXli
YWNrVGFyZ2V0cygpOwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Omlu
dmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWM6OmludmFsaWRhdGVQbGF5YmFja1RhcmdldHMiKTsKIAotICAgIGlm
IChtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyKSB7Ci0gICAgICAgIFttX291dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxl
S2V5TmFtZV07Ci0gICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9i
c2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQ
YXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZV07Ci0gICAgICAgIG1fb3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBudWxscHRyOwotICAgIH0KKyAgICBtX3JvdXRlUGlja2Vy
ID0gbnVsbHB0cjsKICAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7CiB9CiAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotQGltcGxlbWVudGF0aW9uIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXJIZWxwZXIKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjKiljYWxsYmFjawordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpwaWNrZXJXYXNEaXNtaXNzZWQoKQogewotICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgbV9jYWxsYmFjayA9IGNhbGxi
YWNrOwotCi0gICAgcmV0dXJuIHNlbGY7CisgICAgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNt
aXNzZWQoKTsKIH0KIAotLSAodm9pZCljbGVhckNhbGxiYWNrCit2b2lkIE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6OmF2YWlsYWJsZURldmljZXNDaGFuZ2VkKCkKIHsKLSAgICBtX2NhbGxi
YWNrID0gbmlsOworICAgIGF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKIH0KIAotLSAodm9p
ZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihpZClrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3Qg
Y2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3Zv
aWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6Y3VycmVudERldmljZUNoYW5nZWQoKQog
ewotICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOwotICAgIFVOVVNFRF9QQVJBTShjaGFuZ2UpOwot
ICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKLQotICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yzo6b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aCAtIGtleSA9ICVzIiwgW2tleVBhdGggVVRGOFN0cmlu
Z10pOwotCi0gICAgaWYgKCFba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXRE
ZXZpY2VBdmFpbGFibGVLZXlOYW1lXSAmJiAhW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVy
bmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIFJl
dGFpblB0cjxXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyPiBwcm90ZWN0ZWRT
ZWxmID0gc2VsZjsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHByb3RlY3RlZEtleVBhdGggPSBr
ZXlQYXRoOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHBy
b3RlY3RlZFNlbGYpLCBwcm90ZWN0ZWRLZXlQYXRoID0gV1RGTW92ZShwcm90ZWN0ZWRLZXlQYXRo
KV0gewotICAgICAgICBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKiBjYWxsYmFjayA9IHBy
b3RlY3RlZFNlbGYtPm1fY2FsbGJhY2s7Ci0gICAgICAgIGlmICghY2FsbGJhY2spCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKFtwcm90ZWN0ZWRLZXlQYXRoIGlzRXF1YWxUb1N0
cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWVdKQotICAgICAgICAgICAg
Y2FsbGJhY2stPmF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKLSAgICAgICAgZWxzZSBpZiAo
W3Byb3RlY3RlZEtleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlj
a2VkS2V5TmFtZV0pCi0gICAgICAgICAgICBjYWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5n
ZSgpOwotICAgIH0pOworICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKIH0KLUBlbmQKKwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIAogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmluZGV4IGI2YTg5Yzdj
NTJmYzA1YzE5YjBlNTI2NTAwOGZlOTQ5YzA2NTdiZmUuLjdjMGZhMjZkZTIxZGU2NjYzNDY0NjIw
M2I3MzM5YTY1ZTE2YzY1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC02MSw3
ICs2MSw3IEBAIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTW9jazo6cGxheWJhY2tUYXJnZXQoKQogICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0TW9jazo6Y3JlYXRlKG1fZGV2aWNlTmFtZSwgbV9zdGF0ZSk7CiB9CiAKLXZvaWQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihj
b25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVh
cmFuY2UpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0Fj
dGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKQogewogICAgIGlmICghY2xpZW50KCkg
fHwgbV9zaG93aW5nTWVudSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5o
CmluZGV4IGI4Y2JhYzAzMDE0MmE4OWEwOGM0MWViYmQzMmQxYTIwZGEzNDIxZjAuLjBkYTcwNGIx
NTE0YmViYzkzY2RkYjBiZTQyNWQ1M2VkZjM0ZTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2Nr
LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1vY2soKTsKIAotICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
dGZvcm1WaWV3KiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29s
IHVzZURhcmtBcHBlYXJhbmNlKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0aW5nTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5
YmFja1RhcmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1Rhcmdl
dHMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
YWQ3ZDIyM2Q4ZmRjZjE3NDIwNzFlMDllNGMyOTJiZGI1ZWNjMTZjYS4uMzBiMjY5N2IwYmY3YWNl
ZmQ0ODRhYTI2Njg1YzdjYzU1M2M1YmU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTE1MzQsNiArMTUzNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3Vs
ZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJX
YXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
cikgZmluYWw7CiAgICAgYm9vbCBhbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgZmluYWwgeyByZXR1
cm4gaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7IH0KKyAgICBQbGF0Zm9ybVZpZXcqIHBsYXRm
b3JtVmlldygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICB2b2lkIGRpZENoYW5nZUJhY2tn
cm91bmRDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0KaW5kZXggYTNlNzQwMDA1NGU4ZGQ4NWNhNWM1NjBlYzJlYTNjOGJlODBjYzcyNy4u
ZDU1OGVkMmQ2N2JjOTMxZWIyNmM4ZWI2NDJiNzU2NmRiMGRmYmFjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC02NzMsNiArNjczLDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCgpCiAgICAgZ3Jh
bnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7
CiB9CiAKK1BsYXRmb3JtVmlldyogV2ViUGFnZVByb3h5OjpwbGF0Zm9ybVZpZXcoKSBjb25zdAor
eworICAgIHJldHVybiBbcGFnZUNsaWVudCgpLnBsYXRmb3JtV2luZG93KCkgY29udGVudFZpZXdd
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggMzQ2Mzg2YzA4MDI0ZDk5MDVhN2YyMGZh
MGQ1MWJlYWY2NWQ2ZmQyNi4uMGI5MjM4MzVlOWUxNWI2YjgwNDViNDlhZmUyOWU2YWFiMDNlY2Zj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAKK09CSkNfQ0xBU1MgV2ViVmlldzsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKQEAgLTQxLDEwICs0
MywxMCBAQCBjbGFzcyBQYWdlOwogY2xhc3MgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlciA6
IHB1YmxpYyBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI+IGNyZWF0ZShXZWJDb3JlOjpQYWdlJik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBj
cmVhdGUoV2ViVmlldyAqLCBXZWJDb3JlOjpQYWdlJik7CiAKLSAgICBleHBsaWNpdCBXZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBhZ2UmKTsKLSAgICB2aXJ0dWFsIH5XZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKCkgeyB9CisgICAgZXhwbGljaXQgV2ViTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlcihXZWJWaWV3ICosIFdlYkNvcmU6OlBhZ2UmKTsKKyAgICB2aXJ0dWFs
IH5XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBh
ZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwpA
QCAtNTQsMTYgKzU2LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ6OlN0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyRGlzbWlzc1BvcHVwKCk7CiAKLSAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
Ci0gICAgdm9pZCBzZXRQbGF5YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5n
ZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKKyAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xp
ZW50CisgICAgdm9pZCBzZXRQbGF5YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4m
JikgZmluYWw7CisgICAgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5n
ZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBm
aW5hbDsKKyAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpIGZpbmFsOworICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CisgICAgUGxhdGZvcm1WaWV3KiBwbGF0
Zm9ybVZpZXcoKSBjb25zdCBmaW5hbDsKKwogICAgIFdlYkNvcmU6OlBhZ2UqIG1fcGFnZTsKKyAg
ICBXZWJWaWV3ICptX3dlYlZpZXc7CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5tbQppbmRleCBiYjgxNWM1ZDI0ODcyMzMwMTMwMjA5MzM2ZTdjYzZjZTgzYjFhY2U5Li43
MzQ0MzU2NzVhYjgwOWI1MGVjNWVmMzhhYjlmNzdjYTE0OGIzMWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLm1tCkBAIC0yNywxNyArMjcsMTkgQEAKIAogI2lmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW1wb3J0ICJX
ZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmg+CiAKLXN0ZDo6dW5pcXVlX3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBX
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpjcmVhdGUoV2ViQ29yZTo6UGFnZSYgcGFnZSkK
K3N0ZDo6dW5pcXVlX3B0cjxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyPiBXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyOjpjcmVhdGUoV2ViVmlldyAqd2ViVmlldywgV2ViQ29yZTo6UGFn
ZSYgcGFnZSkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyPihwYWdlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyPih3ZWJWaWV3LCBwYWdlKTsKIH0KIAotV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlcjo6V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQYWdlJiBwYWdlKQor
V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
cihXZWJWaWV3ICp3ZWJWaWV3LCBXZWJDb3JlOjpQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKCZw
YWdlKQorICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCiB7CiB9CiAKQEAgLTEwOSw3ICsxMTEsMTQg
QEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tl
cldhc0Rpc21pc3NlZChXZWJDb3JlOjpQbGEKIHZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlcjo6aW52YWxpZGF0ZSgpCiB7CiAgICAgbV9wYWdlID0gbnVsbHB0cjsKKyAgICBtX3dlYlZp
ZXcgPSBuaWw7CiAgICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCku
cmVtb3ZlQWxsUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRzKCp0aGlzKTsKIH0KIAorUGxhdGZv
cm1WaWV3KiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF0Zm9ybVZpZXcoKSBjb25z
dAoreworICAgIEFTU0VSVChtX3dlYlZpZXcpOworICAgIHJldHVybiBtX3dlYlZpZXc7Cit9CisK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDg1ZDY5NDNlMzZiYWU2MzdhMGUwOWI1NDc5ZGFiMzViMzlhYTdjY2MuLjE2NDdkNjQ3MzFkNTc0
MTRjNWNiNWY1ODdiOWRiNWE0OTZjODM2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTk3NDMsNyArOTc0Myw3IEBAIGJvb2wgTGF5ZXJGbHVzaENv
bnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKIC0gKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIg
KikgX2RldmljZVBpY2tlcgogewogICAgIGlmICghX3ByaXZhdGUtPm1fcGxheWJhY2tUYXJnZXRQ
aWNrZXIpCi0gICAgICAgIF9wcml2YXRlLT5tX3BsYXliYWNrVGFyZ2V0UGlja2VyID0gV2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Y3JlYXRlKCpfcHJpdmF0ZS0+cGFnZSk7CisgICAgICAg
IF9wcml2YXRlLT5tX3BsYXliYWNrVGFyZ2V0UGlja2VyID0gV2ViTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6Y3JlYXRlKHNlbGYsICpfcHJpdmF0ZS0+cGFnZSk7CiAKICAgICByZXR1cm4gX3By
aXZhdGUtPm1fcGxheWJhY2tUYXJnZXRQaWNrZXIuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjA3MTMwZmM2MGNkMmRkY2ZhYTdl
YzFhMmE3NTYxNmE2NmZiOTA2ZC4uYjcyNmMxN2VkZDQ2NjQ1ZWVhMzNkYTcxNzNhMDRmYWRjZjVj
ZTcyNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIwLTA3LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBVlJvdXRlUGlja2VyVmlldyB3aGVuIGF2YWlsYWJs
ZSBmb3IgY2hvb3NpbmcgQWlyUGxheSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4
NjEwNjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3Qu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogVGVzdCBBVk91dHB1dENvbnRleHRP
dXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uLgorICAgICAgICBEb24ndCBjaGVjayBB
VlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9u
IG9uIHdhdGNoT1MsCisgICAgICAgIHdlIGRvbid0IHVzZSBpdCB0aGVyZS4KKwogMjAyMC0wNy0y
MCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFkZCBsb2NrIGljb24gdG8gTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmtUZXN0Lm1tCmluZGV4IDdmZWYxYWE3ZGZhYWI5ZThhNTNiNWQ3NjYyYTRmNmZlMDM2NDMxMjEu
LmIzNTJhYWQ2MGNlOGIyNmEwN2EzMDFjYTcxYmExMGZhMzBmYTg5NTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
a1Rlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQpAQCAtMTg0LDcgKzE4NCw2IEBAIFRFU1QoQVZGb3Vu
ZGF0aW9uU29mdExpbmssIENvbnN0YW50cykKICAgICBFWFBFQ1RfVFJVRShbQVZBdWRpb1Nlc3Np
b25JbnRlcnJ1cHRpb25Ob3RpZmljYXRpb24gaXNFcXVhbFRvU3RyaW5nOkAiQVZBdWRpb1Nlc3Np
b25JbnRlcnJ1cHRpb25Ob3RpZmljYXRpb24iXSk7CiAgICAgRVhQRUNUX1RSVUUoW0FWQXVkaW9T
ZXNzaW9uSW50ZXJydXB0aW9uVHlwZUtleSBpc0VxdWFsVG9TdHJpbmc6QCJBVkF1ZGlvU2Vzc2lv
bkludGVycnVwdGlvblR5cGVLZXkiXSk7CiAgICAgRVhQRUNUX1RSVUUoW0FWQXVkaW9TZXNzaW9u
SW50ZXJydXB0aW9uT3B0aW9uS2V5IGlzRXF1YWxUb1N0cmluZzpAIkFWQXVkaW9TZXNzaW9uSW50
ZXJydXB0aW9uT3B0aW9uS2V5Il0pOwotICAgIEVYUEVDVF9UUlVFKFtBVlJvdXRlRGV0ZWN0b3JN
dWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIGlzRXF1YWxUb1N0cmlu
ZzpAIkFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmlj
YXRpb24iXSk7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQog
ICAgIEVYUEVDVF9UUlVFKFtBVkNhcHR1cmVTZXNzaW9uRXJyb3JLZXkgaXNFcXVhbFRvU3RyaW5n
OkAiQVZDYXB0dXJlU2Vzc2lvbkVycm9yS2V5Il0pOwogICAgIEVYUEVDVF9UUlVFKFtBVkNhcHR1
cmVTZXNzaW9uUnVudGltZUVycm9yTm90aWZpY2F0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFWQ2Fw
dHVyZVNlc3Npb25SdW50aW1lRXJyb3JOb3RpZmljYXRpb24iXSk7CkBAIC0xOTQsNiArMTkzLDEy
IEBAIFRFU1QoQVZGb3VuZGF0aW9uU29mdExpbmssIENvbnN0YW50cykKICNlbmRpZgogCiAjZW5k
aWYKKyAgICAKKyNpZiBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQorICAgIEVYUEVDVF9UUlVFKFtB
VlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9u
IGlzRXF1YWxUb1N0cmluZzpAIkFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWRE
aWRDaGFuZ2VOb3RpZmljYXRpb24iXSk7CisgICAgRVhQRUNUX1RSVUUoW0FWT3V0cHV0Q29udGV4
dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24gaXNFcXVhbFRvU3RyaW5nOkAiQVZP
dXRwdXRDb250ZXh0T3V0cHV0RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbiJdKTsKKyNlbmRp
ZiAvLyBQTEFURk9STShXQVRDSE9TKQorCiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404771</attachid>
            <date>2020-07-20 15:46:49 -0700</date>
            <delta_ts>2020-07-21 10:46:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213497-20200720154648.patch</filename>
            <type>text/plain</type>
            <size>82867</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmNjMxYzZhMzA4NTIxYjU4OWViZDhj
NTdiMDJhNzlmMGMzYzU3NWIuLjNmMjUwMmI2MzQxZGQ0OWFmMmM1OWMzMTgzMWJlOTM0NDU4Yjgy
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMTYgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEFWUm91dGVQaWNrZXJWaWV3IHdoZW4g
YXZhaWxhYmxlIGZvciBjaG9vc2luZyBBaXJQbGF5IGRldmljZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ5NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTg2MTA2NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAg
ICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOiBEZWZpbmUgSEFWRV9BVlJPVVRFUElDS0VSVklFVy4K
KwogMjAyMC0wNy0xOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBSdW5Mb29wIFRpbWVyIGNsYXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOGRiOTFmM2E4MzI2Mzc0MjgzMzg1M2Y1MjBmZmYwYWM1NWU4NTAzYS4uMTFjNjFjMWQ1
YmIxNzNlMGY3OGRmNzM1MWZkZDBlOTZhMWZlZTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
MSBAQAorMjAyMC0wNy0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
KworICAgICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29z
aW5nIEFpclBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgVXNlIGFuIEFWUm91dGVQ
aWNrZXJWaWV3LCB0aGUgcmVwbGFjZW1lbnQgZm9yIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXIsIHdoZW4KKyAgICAgICAgaXQgaXMgYXZhaWxhYmxlIHRvIGFsbG93IGEgdXNlciB0byBwaWNr
IGFuIEFpclBsYXkgZGV2aWNlLiBUbyBkbyB0aGlzLCBjcmVhdGUgYW4gCisgICAgICAgIEFWUGxh
eWJhY2tUYXJnZXRQaWNrZXIgYWJzdHJhY3QgYmFzZSBhbmQgY3JlYXRlIGEgY29uY3JldGUgY2xh
c3MgZnJvbSB0aGUgCisgICAgICAgIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXItc3BlY2lm
aWMgY29kZSBmcm9tIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMsIGFuZAorICAgICAgICBj
cmVhdGUgYSBuZXcgY29uY3JldGUgY2xhc3MgdXNpbmcgQVZSb3V0ZVBpY2tlclZpZXcuCisKKyAg
ICAgICAgVGVzdGVkIG1hbnVhbGx5IGJlY2F1c2UgdGhlc2UgY2hhbmdlcyByZXF1aXJlIGFuIEFp
clBsYXkgZGV2aWNlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOiBQYXNzIHRoZSB2aWV3IHRvIHRoZQorICAg
ICAgICB0YXJnZXQgcGlja2VyLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxh
eWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJh
Y2s6OnBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKTogRHJpdmUtYnkgZml4OiByZXR1
cm4KKyAgICAgICAgZWFybHkgaWYgdGhlcmUgYXJlIG5vIHBlbmRpbmcgcHJvbWlzZXMuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OiBBZGQgbmV3IGZpbGVzLgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6
IEFkZCBuZXcgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXIubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0uCisg
ICAgICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2Vy
OjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2Vy
OjphdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmN1cnJlbnREZXZpY2VEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBp
Y2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OnN0YXJ0aW5nTW9uaXRvcmluZ1Bs
YXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVyVGFyZ2V0UGlja2VyOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpp
bnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXI6Om91dHB1dENvbnRleHQpOgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVySGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dlYkFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgY2xlYXJDYWxsYmFja10pOgorICAgICAg
ICAoLVtXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIG9ic2VydmVWYWx1ZUZv
cktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVZQbGF5YmFja1RhcmdldFBpY2tlcjo6QVZQbGF5YmFj
a1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpBVlBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpjbGllbnQgY29uc3QpOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIuaDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXIubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZp
ZXdUYXJnZXRQaWNrZXI6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6fkFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJW
aWV3VGFyZ2V0UGlja2VyOjpvdXRwdXRDb250ZXh0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OmRldmljZVBpY2tlcik6CisgICAgICAg
IChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6cm91dGVEZXRlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5n
UGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6b3V0cHV0Q29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aW52YWxpZGF0ZVBs
YXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlcjo6YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
VlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6Y3VycmVudERldmljZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6ZGV2aWNlUGlj
a2VyV2FzRGlzbWlzc2VkKToKKyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxwZXIg
aW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKC1bV2ViQVZSb3V0ZVBpY2tlclZpZXdIZWxw
ZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlciBjbGVh
ckNhbGxiYWNrXSk6CisgICAgICAgICgtW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIHJvdXRl
UGlja2VyVmlld0RpZEVuZFByZXNlbnRpbmdSb3V0ZXM6XSk6CisgICAgICAgICgtW1dlYkFWUm91
dGVQaWNrZXJWaWV3SGVscGVyIG5vdGlmaWNhdGlvbkhhbmRsZXI6XSk6CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYzo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cGxheWJhY2tUYXJnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cm91dGVQaWNr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjppbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnBpY2tlcldhc0Rpc21pc3NlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjphdmFpbGFibGVEZXZp
Y2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpjdXJyZW50RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIpOiBEZWxldGVkLgorICAgICAgICAoLVtX
ZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxw
ZXIgY2xlYXJDYWxsYmFja10pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVySGVscGVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hh
bmdlOmNvbnRleHQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmg6CisKIDIwMjAt
MDctMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEdlbmVy
YXRlQ2VydGlmaWNhdGVBc3luYyBzaG91bGQgYmUgY2FsbGVkIG9uIHNpZ25hbGluZyB0aHJlYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGE0ZTFjMTE2ZmNmNTQ3NzY5NjA5MTgzYjFmMmU4OWJmYmY3
OGVjZDQuLjhiY2NkNzk3NTcxNTQxYmVlYTA0OGVjMzFlMGI0N2IyMDU4ODBiYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTE1ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBVlJvdXRlUGlja2VyVmlldyB3
aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWlyUGxheSBkZXZpY2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0OTcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKwor
ICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbTogU29mdCBsaW5rIEFWUm91dGVQaWNrZXJW
aWV3LgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaDogRGVjbGFyZSBBVlJvdXRl
UGlja2VyVmlldy4KKwogMjAyMC0wNy0xNyAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY0NDc3LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAyOTdmOTIxZmE0YzY3ZGY5MWEzOGI1NGZjYzNjNTk0ZGQ2OGY0ZGEwLi44YWNlMTQ3MDQ5NjBl
NjdhNGIxOGVhNTY2NGJjMmMyYmM4M2UzZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIwLTA3LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBBVlJvdXRlUGlja2VyVmlldyB3aGVuIGF2YWlsYWJsZSBmb3IgY2hvb3NpbmcgQWly
UGxheSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTM0OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4NjEwNjYyPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybVZpZXcgY29uc3QpOiBBZGQgbmV3IG92
ZXJyaWRlLgorCiAyMDIwLTA3LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYXJhbWV0ZXIgb2YgV2ViUGFnZVBy
b3h5OjpDcmVhdGVOZXdQYWdlKCkgc2hvdWxkIG5vdCBiZSBPcHRpb25hbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IDYwMzI0ZmZmMjY3NzMzMzVkZTUyMjEzMGI4Mzg1Zjk1NmE3ZWRl
NTguLmE1NzhmNDYzYjllNDc3ZGIxNDkwMmVhYzY2NGJlYTNhYjZmY2E3YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNy0xNSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVZSb3V0ZVBpY2tl
clZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29zaW5nIEFpclBsYXkgZGV2aWNlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDk3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9i
bGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoK
KyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6On5XZWJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6V2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnBsYXRmb3JtVmlldyBjb25zdCk6IE5ldyBvdmVycmlkZS4KKworICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfZGV2aWNlUGlja2VyXSk6IFBhc3Mg
dmlldyB0byBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyIGZhY3RvcnkuCisKIDIwMjAtMDct
MTcgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBmaW5h
bCB2ZXN0aWdhdGVzIG9mIFNpbXBsZUNvbG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGEyMjg5
YWIzM2M1NGE2YTIzNGNlMGY4NzE3NTQ4MDU5ZTg1MTFkZDIuLmZhYTM0OWY3ZTU0YzdkMjRkM2Jl
ODk2MzUwMDI4OGU0ODkzYTU0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC02OTEsMyArNjkx
LDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxNDAwMDApCiAjZGVmaW5lIEhBVkVfTFNEQVRBQkFTRUNPTlRFWFQgMQogI2Vu
ZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTYwMCkKKyNkZWZpbmUgSEFWRV9BVlJPVVRFUElDS0VSVklFVyAxCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggODc1NmZlYjE0OGU5Nzk3Y2FjYTljZjM3
M2Q5MDlmMGVhZTFkODhhOS4uMGQ1Njc0OTE1NGNmOTQ5M2I0MDA1NWVlOTE5ZmEyNmU1MTQ4MDU5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lk
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyQ2xpZQogICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihf
X2Z1bmNfXywgbV9jbGllbnRTdGF0ZVtpbmRleF0uZ2V0KCkpOwogCiAgICAgYm9vbCBoYXNBY3Rp
dmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3RhdGVbaW5kZXhdLT5mbGFncywgTWVkaWFQ
cm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7Ci0gICAgdGFyZ2V0UGlja2VyKCku
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKEZsb2F0UmVjdChyZWN0KSwgaGFzQWN0aXZlUm91dGUs
IHVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2
ZVJvdXRlLCB1c2VEYXJrQXBwZWFyYW5jZSk7CiB9CiAKIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYg
Y2xpZW50LCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld0ZsYWdzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFu
YWdlci5oCmluZGV4IDYyYmYyYWEwOWFhOTU2OWMxYjc3NGY0OWNkMTg1NmQzMGI4ZDA2MzYuLmQ3
ZjI4Y2NiNzVlNWQ3NTVkYWY0MzM0ZWY2NTZjYjE0MTkwZmFiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCIKICNp
bmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1WaWV3LmgiCiAjaW5j
bHVkZSAiUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50LmgKaW5kZXggMjIxYzRjMzA1ZjRhZTZlNDNiM2NmZjYwNGUwMDVhMGVjZGQ2
YjgyYy4uZDcwY2FjODMzZTVkNWU1MTNjMWEzNGIxY2QyNTdmZmJjMzEwZWM3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFu
YWdlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5YmFja1RhcmdldC5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVZpZXcuaCIKICNpbmNsdWRlICJQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBAIC00Myw2ICs0NCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJn
ZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZChQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUGxhdGZv
cm1WaWV3KiBwbGF0Zm9ybVZpZXcoKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJh
Y2svUmVtb3RlUGxheWJhY2suY3BwCmluZGV4IGFmYmM3OWRiMGI3YjMxYmY1MjM4ZGJhNzQ4NmZm
MDk5NjQzNmM5N2QuLjk2ZGQyYjdkM2U3NWU0M2M3NGY5ZGM5MGQ2Njc1N2I1NTgzZWZiMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2suY3BwCkBAIC0zMjQsNiArMzI0LDkgQEAgdm9pZCBSZW1vdGVQbGF5YmFjazo6
ZGlzY29ubmVjdCgpCiAKIHZvaWQgUmVtb3RlUGxheWJhY2s6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
V2FzRGlzbWlzc2VkKCkKIHsKKyAgICBpZiAobV9wcm9tcHRQcm9taXNlcy5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIC8vIDYuMi4yIFByb21wdCB1c2VyIGZvciBjaGFuZ2luZyBy
ZW1vdGUgcGxheWJhY2sgc3RhdGUgW0N0ZF0KICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8v
cmVtb3RlLXBsYXliYWNrLyNzdG9wLW9ic2VydmluZy1yZW1vdGUtcGxheWJhY2stZGV2aWNlcy1h
dmFpbGFiaWxpdHkKICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJhZnQgMTUgSnVseSAyMDE2CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
aW5kZXggMTI3ODM1MzdjNGYxZjFmYzc4Zjk4ZWFhMTM2ODcxMDdlM2NhNDhmZi4uMWQ3OTAyOGQ3
YjE0NTA4NTllODI0MDAyZWY5NWJjYjNhNDU4MjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaApAQCAtODIsNiArODIsMTAg
QEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFV0dGVyYW5jZSkKIFNP
RlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZBdWRpb1JvdXRpbmdBcmJpdGVyKQogI2Vu
ZGlmCiAKKyNpZiBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9I
RUFERVIoUEFMLCBBVlJvdXRlUGlja2VyVmlldykKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKFdB
VENIT1MpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikK
IFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmlj
cykKQEAgLTI5MSw4ICsyOTUsNiBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25UeXBlSwogI2RlZmluZSBB
VkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
QXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uVHlwZUtleSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25PcHRp
b25LZXksIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uT3B0
aW9uS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbk9w
dGlvbktleSgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlv
biwgQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcgKikKLSNkZWZpbmUgQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNE
ZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0
ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nl
c3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0Tm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2Rl
ZmluZSBBVkF1ZGlvU2Vzc2lvbk1lZGlhU2VydmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24gUEFM
OjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9TZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5v
dGlmaWNhdGlvbigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRh
dGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikK
QEAgLTMwNiw0ICszMDgsMTQgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG8KICNkZWZpbmUgQVZD
YXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5k
QXBwTGF5b3V0IHNvZnRMaW5rX0FWRm91bmRhdGlvbl9BVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9y
aXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQKICNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQ
UExFVFYpCiAKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykKK1NPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0Rl
dGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlJvdXRl
RGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlk
Q2hhbmdlTm90aWZpY2F0aW9uKCkKKyNlbmRpZiAvLyBIQVZFKFdBVENIT1MpCisKKyNpZiBIQVZF
KEFWUk9VVEVQSUNLRVJWSUVXKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmlj
YXRpb24sIE5TU3RyaW5nICopCisjZGVmaW5lIEFWT3V0cHV0Q29udGV4dE91dHB1dERldmljZXNE
aWRDaGFuZ2VOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWT3V0cHV0Q29udGV4
dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKQorI2VuZGlmIC8vIEhBVkUoQVZS
T1VURVBJQ0tFUlZJRVcpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5k
ZXggYTJjZmI3ZTRjNTk0NDg4MGFmMjQ1N2FjNGI2NzQxNTEzMzM0ODIyYy4uMGFjMjIwMWE3MTU1
MmExMWJjNTQwZDk2NWFiNzRmZWNkYmE0NTc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMTMsNiArMTEzLDEw
IEBAIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVlJvdXRlRGV0ZWN0b3IsIFBBTF9FCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9P
UFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNl
TWV0cmljcywgUEFMX0VYUE9SVCkKICNlbmRpZgogCisjaWYgSEFWRShBVlJPVVRFUElDS0VSVklF
VykKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVlJvdXRlUGlja2VyVmlldywgUEFMX0VYUE9SVCkKKyNlbmRpZgorCiAj
aWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNv
bm5lY3Rpb24sIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlLCBQQUxfRVhQT1JUKQpAQCAt
MjE0LDcgKzIxOCw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uSW50CiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vz
c2lvbkludGVycnVwdGlvblJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VkNhcHR1cmVTZXNzaW9uUnVudGltZUVycm9yTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXNJbnRlcnJ1cHRlZE5vdGlmaWNhdGlvbiwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRl
c0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1lLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyS2V5LCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VOb3RpZmljYXRp
b24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCkBAIC0yMjgsNCArMjMxLDEyIEBAIFNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVlVSTEFzc2V0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEFWRm91
bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlw
bGVGb3JlZ3JvdW5kQXBwTGF5b3V0LCB2b2lkLCAoQVZDYXB0dXJlU2Vzc2lvbiAqc2Vzc2lvbiks
IChzZXNzaW9uKSkKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0o
V0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorI2VuZGlmIC8vIEhBVkUoV0FUQ0hPUykK
KworI2lmIEhBVkUoQVZST1VURVBJQ0tFUlZJRVcpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250ZXh0T3V0cHV0
RGV2aWNlc0RpZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKKyNl
bmRpZiAvLyBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQorCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRB
VElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91
bmRhdGlvblNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0
aW9uU1BJLmgKaW5kZXggMjdjM2M4MDdmMTllMWE3NWVlNTdjMDk2M2FkMmZkMWNlZThjNDFkZC4u
ODcxYzhjZjJmODQ5ODk4ZjU3YTViMWQ0ZmExYmMxODU1NTdmYTgwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKQEAgLTc0LDYg
Kzc0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBpbnRlcmZhY2UgQVZPdXRwdXRDb250
ZXh0IDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU1N0cmluZyAqZGV2aWNlTmFtZTsKICsgKGluc3RhbmNldHlwZSlvdXRwdXRDb250
ZXh0OworKyAoaW5zdGFuY2V0eXBlKWlUdW5lc0F1ZGlvQ29udGV4dDsKICsgKG51bGxhYmxlIEFW
T3V0cHV0Q29udGV4dCAqKXNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dDsKICsg
KG51bGxhYmxlIEFWT3V0cHV0Q29udGV4dCAqKW91dHB1dENvbnRleHRGb3JJRDooTlNTdHJpbmcg
KilJRDsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgc3VwcG9ydHNNdWx0aXBsZU91dHB1dERl
dmljZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktp
dFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRl
eCBmNzdmNjAyNTRhMTUyODM1YTUwOTVjYzY0N2Y5M2I2YjBiNGYwNjNjLi5jMDY0ODg5ZjllYmE4
MDU5MGE1ZTkyYjYxY2JiYTUyOTMwMTdkN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0FWS2l0U1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjI4LDcgKzIyOCw2IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0VORAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QVZLaXQvQVZPdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlci5oPgpAQCAtMjU2LDcgKzI1NSw2IEBAIE5TX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfMTEp
CiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCi0KICNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KQEAgLTM1OCwzICsz
NTYsMzUgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAjZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQorCisjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgSEFWRShBVlJPVVRFUElDS0VSVklF
VykKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBVktpdC9BVlJvdXRl
UGlja2VyVmlld19Qcml2YXRlLmg+CisjaW1wb3J0IDxBVktpdC9BVlJvdXRlUGlja2VyVmlld19X
ZWJLaXRPbmx5Lmg+CisKKyNlbHNlCisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK0Bwcm90
b2NvbCBBVlJvdXRlUGlja2VyVmlld0RlbGVnYXRlOworCitAaW50ZXJmYWNlIEFWUm91dGVQaWNr
ZXJWaWV3IDogTlNWaWV3CisKKy0gKHZvaWQpc2hvd1JvdXRlUGlja2luZ0NvbnRyb2xzRm9yT3V0
cHV0Q29udGV4dDooQVZPdXRwdXRDb250ZXh0ICopb3V0cHV0Q29udGV4dCByZWxhdGl2ZVRvUmVj
dDooTlNSZWN0KXBvc2l0aW9uaW5nUmVjdCBvZlZpZXc6KE5TVmlldyAqKXBvc2l0aW9uaW5nVmll
dzsKKworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCB3ZWFrKSBpZDxBVlJvdXRlUGlj
a2VyVmlld0RlbGVnYXRlPiBkZWxlZ2F0ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJv
dXRlTGlzdEFsd2F5c0hhc0RhcmtBcHBlYXJhbmNlOworCitAZW5kCisKK0Bwcm90b2NvbCBBVlJv
dXRlUGlja2VyVmlld0RlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZClyb3V0
ZVBpY2tlclZpZXdXaWxsQmVnaW5QcmVzZW50aW5nUm91dGVzOihBVlJvdXRlUGlja2VyVmlldyAq
KXJvdXRlUGlja2VyVmlldzsKKy0gKHZvaWQpcm91dGVQaWNrZXJWaWV3RGlkRW5kUHJlc2VudGlu
Z1JvdXRlczooQVZSb3V0ZVBpY2tlclZpZXcgKilyb3V0ZVBpY2tlclZpZXc7CitAZW5kCisKK05T
X0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiBIQVZFKEFWUk9V
VEVQSUNLRVJWSUVXKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMWQ3ZjIwOTg2N2MxZDRl
MGE0Mjc0Njk3NjU1ZjhkMWIxMzZkYWQwZS4uY2E2MzBkZDk3NjBjYjBmZGY4Yzg4MzY0OWU0YzU1
OTg4NzFjMjQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNzQsNiArMjc0LDggQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
QXNzZXRNSU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIEBuby11bmlmeQorcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRh
cmdldFBpY2tlci5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIEBuby11bmlmeQogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcCBAbm8t
dW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3ZDk0MzlhMWVlOGY1YTcyMWZmMDkzZmJkYzEzYmM4NGQ1ODVmNTJhLi5kMDcx
YjBkMWM2NzkzODI5NDE3ZjhjZjJiNzYyNmQ0NWVlYWVhYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgsNiArMTE4LDcg
QEAKIAkJMDczNzk0RUMxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRFQTE5RUUzNDFF
MDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCAqLzsgfTsKIAkJMDczNzk0RkExOUY1ODY0RTAw
RTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAvKiBS
VENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1
QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJz
TW9jay5oICovOyB9OworCQkwNzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZPdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1
dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwNzNBMTU1NDIx
NzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBS
ZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZl
ckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsK
IAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQz
ODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OwpAQCAtMjA0LDYg
KzIwNSw3IEBACiAJCTA3QzA0NkNCMUU0MjY0MTMwMDcyMDFFNyAvKiBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCODc1NjFFNDBEQ0U1MDA3MUMwRUMgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3QzFDMEUyMUJG
QjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzFDMEUwMUJGQjYwMDEw
MEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLzsgfTsKIAkJMDdD
MUMwRTUxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTA3Q0I5RTcyMjQ5QzM2QjIwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1Rhcmdl
dFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3Q0I5RTZGMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tl
ci5tbSAqLzsgfTsKIAkJMDdDRTc3RDUxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDdEMTJGNUMyM0RFNTQzRjAwODA5OTdEIC8qIElTT1ZUVEN1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4NzFDNjUxRkI1MkI2NzAwRjBCOTY1
IC8qIElTT1ZUVEN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA3RDYzNzQwMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTU1NzAsNiArNTU3Miw5IEBACiAJCTA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEYXRh
Q2hhbm5lbEhhbmRsZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJU
Q0RhdGFDaGFubmVsSGFuZGxlck1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczNzk0RjcxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTm90aWZpZXJzTW9jay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENO
b3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ05vdGlm
aWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczOEU1RTgyNDk5NjhB
QzAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM4RTVFQTI0OTk2OEFEMDBEQTEwMUMg
LyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzhFNUVCMjQ5OTY5MDkwMERBMTAxQyAv
KiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWUGxheWJhY2tUYXJn
ZXRQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQTE1NTEyMTc3QTM5
ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQTE1
NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4
NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2ODQsNiArNTY4OSw4IEBACiAJCTA3QzFDMEU0MUJG
QjYwRUQwMEJEMjI1NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QzhB
RDExMUQwNzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyog
QVZBc3NldE1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QVZBc3NldE1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdD
QjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3Q0I5RTcxMjQ5QzIyNkMwMEE2OTQ4OSAv
KiBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0NFNzdENDE2NzEyQTZBMDBDNTVBNDcgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RDYzNzNFMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZDRTkgLyogV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MzU0LDYgKzI3MzYxLDExIEBACiAJCQkJMDdDOEFEMTEx
RDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tICovLAogCQkJCUNERUNB
ODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCAqLywKIAkJCQlD
REVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovLAor
CQkJCTA3MzhFNUU4MjQ5OTY4QUMwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyLmggKi8sCisJCQkJMDczOEU1RUEyNDk5NjhBRDAwREExMDFDIC8qIEFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi8sCisJCQkJMDczOEU1
RUIyNDk5NjkwOTAwREExMDFDIC8qIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIuaCAqLywKKwkJCQkw
N0NCOUU3MTI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIu
aCAqLywKKwkJCQkwN0NCOUU2RjI0OUMyMjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXIubW0gKi8sCiAJCQkJQ0QxMUIzREYyMjdDQUFBOTAwMjNBRkM3IC8qIEFWU3Ry
ZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCAqLywKIAkJCQlDRDExQjNFMDIyN0NBQUE5MDAy
M0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbSAqLywKIAkJCQlDRDc4
QTJFRTFGNzU2NDg2MDBERTM3MUIgLyogQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akMuaCAqLywKQEAgLTM0NDg5LDYgKzM0NTAxLDggQEAKIAkJCQlDREVDQTg5QTFFREY0NDdEMDBE
Q0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RD
Njc1MjIxRUFFQTlCNzAwNzI3Qzg0IC8qIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFn
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzAzNjNFMzE4MUExQ0RDMDBDMDc0QTUgLyogQVZD
YXB0dXJlRGV2aWNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3MzhFNUVDMjQ5OTgz
OTAwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8qIEFWUm91dGVQ
aWNrZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QxMUIzRTEyMjdD
RTZGMzAwMjNBRkM3IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDRDMzNkY2MTE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDM2M0U3MTgxQTFDREMwMEMwNzRB
NSAvKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLmNwcAppbmRleCBhMjIyOGNmMjk0MTcyMGM3ZmZjZmM1OTI1ZDM3Y2I5MTJlYmNl
MmQ4Li5mMjMyYjY4YmJjMjdkMDA5NDQ1NWVmMGE3NDYwMDQ2YmFjNDYwNjg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXI6OmFkZFBlbmRpbmdBY3Rpb24oUGVuZGluZ0FjdGlvbkZsYWdzIGFjdGlvbikK
ICAgICBtX3BlbmRpbmdBY3Rpb25UaW1lci5zdGFydE9uZVNob3QocGVuZGluZ0FjdGlvbkludGVy
dmFsKTsKIH0KIAotdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCwgYm9vbCkKK3ZvaWQgTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRmb3JtVmlldyos
IGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wsIGJvb2wpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggNDk3NDg0YTkxMDgxMzViMjczYzE1
Y2UyMDA3NGZhMGZiZjJlZmZhNy4uYjMwNzU2MGVlZDkxMGM1YjU2MTc1NWQzNjY3ZjA0MTg4ODU3
OWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAorI2luY2x1ZGUgIlBsYXRmb3JtVmll
dy5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBA
IC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
Y29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBl
YXJhbmNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRm
b3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1
c2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1Bs
YXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNr
VGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUxODZhMjdhZjMz
MTAwZGViZDk1NWI1MWE1OGY5MzE1NjEzMzZlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWT3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgIkFWUGxheWJhY2tUYXJnZXRQaWNr
ZXIuaCIKKworT0JKQ19DTEFTUyBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyOworT0JKQ19D
TEFTUyBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNr
ZXIgZmluYWwgOiBwdWJsaWMgQVZQbGF5YmFja1RhcmdldFBpY2tlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclRhcmdldFBpY2tlcik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcihBVlBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFy
Z2V0UGlja2VyKCk7CisKKyAgICB2b2lkIGF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKKyAg
ICB2b2lkIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihOU1ZpZXcgKiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBj
aGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBmaW5hbDsKKyAgICB2b2lk
IHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgc3Rv
cE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKSBmaW5hbDsKKyAgICBib29sIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlKCkgZmluYWw7CisgICAgQVZPdXRwdXRDb250ZXh0KiBvdXRwdXRDb250ZXh0KCkgZmlu
YWw7CisKKyAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpkZXZpY2VQaWNrZXIoKTsK
KworICAgIFJldGFpblB0cjxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyPiBtX291dHB1dERl
dmljZU1lbnVDb250cm9sbGVyOworICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVySGVscGVyPiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGU7Cisg
ICAgYm9vbCBtX3Nob3dpbmdNZW51IHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWE4ZDA2YzBhM2ZiYzZk
YjRjZTkwYjJiMWNlMjZmMTc5Nzk4MjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlci5tbQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
clRhcmdldFBpY2tlci5oIgorCisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0FWS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorCisjaW1wb3J0IDxwYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oPgorCitTT0ZUTElOS19BVktJVF9GUkFNRVdPUksoKQorU09GVF9MSU5LX0NMQVNT
X09QVElPTkFMKEFWS2l0LCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyKQorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZUtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlIjsKK3N0
YXRpYyBOU1N0cmluZyAqZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lID0gQCJleHRl
cm5hbE91dHB1dERldmljZVBpY2tlZCI7CisKK0BpbnRlcmZhY2UgV2ViQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsKKyAgICBXZWFrUHRyPEFWT3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI+IG1fY2FsbGJhY2s7Cit9CisKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihXZWFrUHRyPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXI+JiYpY2FsbGJhY2s7CistICh2b2lkKWNsZWFyQ2FsbGJhY2s7Cist
ICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KGlkKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9i
amVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4
dDsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBVk91dHB1dERldmljZU1lbnVDb250
cm9sbGVyVGFyZ2V0UGlja2VyOjpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlj
a2VyKEFWUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYgY2xpZW50KQorICAgIDogQVZQbGF5
YmFja1RhcmdldFBpY2tlcihjbGllbnQpCisgICAgLCBtX291dHB1dERldmljZU1lbnVDb250cm9s
bGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxw
ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6bWFrZVdlYWtQdHIoKnRoaXMpXSkpCit7Cit9CisK
K0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6On5BVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyKCkKK3sKKyAgICBbbV9vdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckRlbGVnYXRlIGNsZWFyQ2FsbGJhY2tdOworfQorCitBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyICpBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpk
ZXZpY2VQaWNrZXIoKQoreworICAgIGlmICghZ2V0QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ckNsYXNzKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFtX291dHB1dERl
dmljZU1lbnVDb250cm9sbGVyKSB7CisgICAgICAgIFJldGFpblB0cjxBVk91dHB1dENvbnRleHQ+
IGNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZPdXRwdXRDb250ZXh0SW5zdGFuY2UoKSBp
bml0XSk7CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBhZG9wdE5TKFth
bGxvY0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJJbnN0YW5jZSgpIGluaXRXaXRoT3V0cHV0
Q29udGV4dDpjb250ZXh0LmdldCgpXSk7CisKKyAgICAgICAgW21fb3V0cHV0RGV2aWNlTWVudUNv
bnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRl
bGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlO
YW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om51bGxwdHJd
OworICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBhZGRPYnNlcnZl
cjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9yS2V5UGF0aDpl
eHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWUgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2
aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07CisKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgaWYgKG1fb3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXIuZ2V0KCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpCisgICAgICAgICAgICBh
dmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAorICAgIH0KKworICAgIHJldHVybiBtX291dHB1dERldmljZU1lbnVDb250
cm9sbGVyLmdldCgpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJn
ZXRQaWNrZXI6OmF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKQoreworICAgIGlmIChjbGllbnQo
KSkKKyAgICAgICAgY2xpZW50KCktPmF2YWlsYWJsZURldmljZXNDaGFuZ2VkKCk7Cit9CisKK3Zv
aWQgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6Y3VycmVudERldmlj
ZURpZENoYW5nZSgpCit7CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+Y3Vy
cmVudERldmljZUNoYW5nZWQoKTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICosIGNvbnN0
IEZsb2F0UmVjdCYgbG9jYXRpb24sIGJvb2wgaGFzQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0Fw
cGVhcmFuY2UpCit7CisgICAgaWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Nob3dpbmdNZW51ID0gdHJ1ZTsKKworICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgYm9vbCB0YXJnZXRTZWxlY3RlZCA9IFtkZXZp
Y2VQaWNrZXIoKSBzaG93TWVudUZvclJlY3Q6bG9jYXRpb24gYXBwZWFyYW5jZU5hbWU6KHVzZURh
cmtBcHBlYXJhbmNlID8gTlNBcHBlYXJhbmNlTmFtZVZpYnJhbnREYXJrIDogTlNBcHBlYXJhbmNl
TmFtZVZpYnJhbnRMaWdodCkgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6
IWhhc0FjdGl2ZVJvdXRlXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
KworICAgIGlmICghY2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0YXJnZXRT
ZWxlY3RlZCAhPSBoYXNBY3RpdmVSb3V0ZSkKKyAgICAgICAgY3VycmVudERldmljZURpZENoYW5n
ZSgpOworICAgIGVsc2UgaWYgKCF0YXJnZXRTZWxlY3RlZCAmJiAhaGFzQWN0aXZlUm91dGUpCisg
ICAgICAgIGNsaWVudCgpLT5waWNrZXJXYXNEaXNtaXNzZWQoKTsKKworICAgIG1fc2hvd2luZ01l
bnUgPSBmYWxzZTsKK30KKwordm9pZCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0
UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQoreworICAgIGRldmlj
ZVBpY2tlcigpOworfQorCit2b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQ
aWNrZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkKK3sKKyAgICAvLyBOb3RoaW5n
IHRvIGRvLCBBaXJQbGF5IHRha2VzIGNhcmUgb2YgdGhpcyBhdXRvbWF0aWNhbGx5LgorfQorCit2
b2lkIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXI6OmludmFsaWRhdGVQ
bGF5YmFja1RhcmdldHMoKQoreworICAgIGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9sbGVy
KSB7CisgICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVy
Om1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4
dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07CisgICAgICAgIFttX291dHB1dERl
dmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2Vk
S2V5TmFtZV07CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBudWxscHRy
OworICAgIH0KKyAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7Cit9CisKK2Jvb2wgQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcjo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VB
dmFpbGFibGUoKQoreworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisg
ICAgcmV0dXJuIGRldmljZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlOwor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorfQorCitBVk91dHB1dENvbnRl
eHQgKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyOjpvdXRwdXRDb250
ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA/IFttX291
dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIG91dHB1dENvbnRleHRdIDogbnVsbHB0cjsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitAaW1wbGVtZW50YXRpb24gV2ViQVZPdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlcgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2Fs
bGJhY2s6KFdlYWtQdHI8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlcj4m
JiljYWxsYmFjaworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICBy
ZXR1cm4gbmlsOworCisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY2xlYXJDYWxsYmFjaworeworICAgIG1fY2FsbGJh
Y2sgPSBuaWw7Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0
aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRl
eHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5V
U0VEX1BBUkFNKGNoYW5nZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworCisgICAgaWYg
KCFtX2NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVtrZXlQYXRoIGlzRXF1
YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWVdICYmICFba2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblRocmVhZChbc2VsZiwgcHJvdGVjdGVk
U2VsZiA9IHJldGFpblB0cihzZWxmKSwga2V5UGF0aCA9IHJldGFpblB0cihrZXlQYXRoKV0gewor
ICAgICAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJs
ZUtleU5hbWVdKQorICAgICAgICAgICAgbV9jYWxsYmFjay0+YXZhaWxhYmxlRGV2aWNlc0RpZENo
YW5nZSgpOworICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJu
YWxPdXRwdXREZXZpY2VQaWNrZWRLZXlOYW1lXSkKKyAgICAgICAgICAgIG1fY2FsbGJhY2stPmN1
cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICB9KTsKK30KK0BlbmQKKworI2VuZGlmIC8vIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlBsYXliYWNrVGFyZ2V0UGlj
a2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVlBsYXliYWNrVGFyZ2V0UGlja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkOWFiOTZiMzQxY2E3YjY4
OWEyZTc3ODcxYjQ3ZTUwOWQxYjNmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWUGxheWJhY2tUYXJnZXRQaWNr
ZXIuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK09CSkNfQ0xBU1MgQVZPdXRwdXRDb250ZXh0
OworT0JKQ19DTEFTUyBOU1ZpZXc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmxv
YXRSZWN0OworCitjbGFzcyBBVlBsYXliYWNrVGFyZ2V0UGlja2VyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPEFWUGxheWJhY2tUYXJnZXRQaWNrZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBVlBsYXliYWNrVGFyZ2V0UGlja2VyKTsK
K3B1YmxpYzoKKyAgICBjbGFzcyBDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q2xpZW50
PiB7CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKSA9IGRlZmF1bHQ7
CisKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgdm9pZCBwaWNrZXJXYXNEaXNtaXNzZWQo
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdmFpbGFibGVEZXZpY2VzQ2hhbmdlZCgpID0g
MDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnREZXZpY2VDaGFuZ2VkKCkgPSAwOworICAg
IH07CisKKyAgICBleHBsaWNpdCBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKENsaWVudCYgY2xpZW50
KQorICAgICAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKCZjbGllbnQpKQorICAgIHsKKyAgICB9
CisgICAgdmlydHVhbCB+QVZQbGF5YmFja1RhcmdldFBpY2tlcigpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICosIGNvbnN0IEZs
b2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgpID0gMDsKKwor
ICAgIHZpcnR1YWwgQVZPdXRwdXRDb250ZXh0KiBvdXRwdXRDb250ZXh0KCkgPSAwOworCisgICAg
V2Vha1B0cjxBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQ+IGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxBVlBsYXliYWNrVGFy
Z2V0UGlja2VyOjpDbGllbnQ+IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
Um91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ4NzhkZDdmNzUzZjVkYzQzMDY3MjNhNWNmMTExNGEwMDk4YzJmZTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5oCkBAIC0wLDAgKzEsNzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSAiQVZQbGF5
YmFja1RhcmdldFBpY2tlci5oIgorCitPQkpDX0NMQVNTIEFWUm91dGVEZXRlY3RvcjsKK09CSkNf
Q0xBU1MgQVZSb3V0ZVBpY2tlclZpZXc7CitPQkpDX0NMQVNTIFdlYkFWUm91dGVQaWNrZXJWaWV3
SGVscGVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyIGZpbmFsIDogcHVibGljIEFWUGxheWJhY2tUYXJnZXRQaWNrZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBBVlJvdXRl
UGlja2VyVmlld1RhcmdldFBpY2tlcihBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQmKTsK
KyAgICB2aXJ0dWFsIH5BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcigpOworICAgIAorICAg
IHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CisKKyAgICB2b2lkIGF2YWlsYWJsZURldmljZXNE
aWRDaGFuZ2UoKTsKKyAgICB2b2lkIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKKyAgICB2b2lk
IGRldmljZVBpY2tlcldhc0Rpc21pc3NlZCgpOworCitwcml2YXRlOgorICAgIHZvaWQgc2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKE5TVmlldyAqLCBjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNr
QWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIGZpbmFsOworICAgIHZvaWQgc3Rh
cnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9pZCBzdG9wTW9u
aXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZVBsYXli
YWNrVGFyZ2V0cygpIGZpbmFsOworICAgIGJvb2wgZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFi
bGUoKSBmaW5hbDsKKyAgICBBVk91dHB1dENvbnRleHQgKm91dHB1dENvbnRleHQoKSBmaW5hbDsK
KworICAgIEFWUm91dGVQaWNrZXJWaWV3ICpkZXZpY2VQaWNrZXIoKTsKKyAgICBBVlJvdXRlRGV0
ZWN0b3IgKnJvdXRlRGV0ZWN0b3IoKTsKKyAgICBBVk91dHB1dENvbnRleHQgKiBvdXRwdXRDb250
ZXh0SW50ZXJuYWwoKTsKKyAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3Q7CisKKyAgICBS
ZXRhaW5QdHI8QVZSb3V0ZURldGVjdG9yPiBtX3JvdXRlRGV0ZWN0b3I7CisgICAgUmV0YWluUHRy
PEFWUm91dGVQaWNrZXJWaWV3PiBtX3JvdXRlUGlja2VyVmlldzsKKyAgICBSZXRhaW5QdHI8QVZP
dXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRleHQ7CisgICAgUmV0YWluUHRyPFdlYkFWUm91dGVQ
aWNrZXJWaWV3SGVscGVyPiBtX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlOworICAgIGJvb2wgbV9o
YWRBY3RpdmVSb3V0ZSB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZSb3V0
ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMmYxZGNkODIyYWUzOGVhZmYyOTZjZmYwZmRiODNhMjdjMTU0MmEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0KQEAgLTAsMCArMSwyNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyLmgiCisKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKSAmJiBIQVZFKEFWUk9VVEVQSUNLRVJWSUVXKQorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisj
aW1wb3J0IDxBVkZvdW5kYXRpb24vQVZSb3V0ZURldGVjdG9yLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0Zsb2F0UmVjdC5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2ltcG9ydCA8
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK1NPRlRMSU5LX0FWS0lUX0ZSQU1F
V09SSygpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWUm91dGVQaWNrZXJWaWV3
KQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGludGVyZmFjZSBXZWJBVlJvdXRlUGlj
a2VyVmlld0hlbHBlciA6IE5TT2JqZWN0IDxBVlJvdXRlUGlja2VyVmlld0RlbGVnYXRlPiB7Cisg
ICAgV2Vha1B0cjxBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcj4gbV9jYWxsYmFjazsKK30K
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZSb3V0ZVBpY2tl
clZpZXdUYXJnZXRQaWNrZXI+JiYpY2FsbGJhY2s7CistICh2b2lkKWNsZWFyQ2FsbGJhY2s7Cist
ICh2b2lkKW5vdGlmaWNhdGlvbkhhbmRsZXI6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
OworLSAodm9pZClyb3V0ZVBpY2tlclZpZXdEaWRFbmRQcmVzZW50aW5nUm91dGVzOihBVlJvdXRl
UGlja2VyVmlldyAqKXJvdXRlUGlja2VyVmlldzsKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitib29sIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppc0F2YWlsYWJsZSgpCit7
CisgICAgc3RhdGljIGJvb2wgYXZhaWxhYmxlOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBm
bGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdICgpIHsKKyAgICAgICAgaWYgKCFQQUw6
OmdldEFWUm91dGVQaWNrZXJWaWV3Q2xhc3MoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAoYXV0byBwaWNrZXIgPSBhZG9wdE5TKFthbGxvY0FWUm91dGVQaWNrZXJWaWV3SW5z
dGFuY2UoKSBpbml0XSkpCisgICAgICAgICAgICBhdmFpbGFibGUgPSBbcGlja2VyIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hvd1JvdXRlUGlja2luZ0NvbnRyb2xzRm9yT3V0cHV0Q29u
dGV4dDpyZWxhdGl2ZVRvUmVjdDpvZlZpZXc6KV07CisgICAgfSk7CisKKyAgICByZXR1cm4gYXZh
aWxhYmxlOworfQorCitBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6QVZSb3V0ZVBpY2tl
clZpZXdUYXJnZXRQaWNrZXIoQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGllbnQp
CisgICAgOiBBVlBsYXliYWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKKyAgICAsIG1fcm91dGVQaWNr
ZXJWaWV3RGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWUm91dGVQaWNrZXJWaWV3SGVscGVyIGFsbG9j
XSBpbml0V2l0aENhbGxiYWNrOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQoreworICAgIEFTU0VSVChp
c0F2YWlsYWJsZSgpKTsKK30KKworQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6On5BVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlcigpCit7CisgICAgW21fcm91dGVQaWNrZXJWaWV3RGVs
ZWdhdGUgY2xlYXJDYWxsYmFja107Cit9CisKK0FWT3V0cHV0Q29udGV4dCAqIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyOjpvdXRwdXRDb250ZXh0SW50ZXJuYWwoKQoreworICAgIGlmICgh
bV9vdXRwdXRDb250ZXh0KSB7CisgICAgICAgIG1fb3V0cHV0Q29udGV4dCA9IFtQQUw6OmdldEFW
T3V0cHV0Q29udGV4dENsYXNzKCkgaVR1bmVzQXVkaW9Db250ZXh0XTsKKyAgICAgICAgQVNTRVJU
KG1fb3V0cHV0Q29udGV4dCk7CisgICAgICAgIGlmIChtX291dHB1dENvbnRleHQpCisgICAgICAg
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOm1f
cm91dGVQaWNrZXJWaWV3RGVsZWdhdGUuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKG5vdGlmaWNh
dGlvbkhhbmRsZXI6KSBuYW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk91dHB1dENvbnRleHRP
dXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2JqZWN0Om1fb3V0cHV0Q29udGV4
dC5nZXQoKV07CisgICAgfQorCisgICAgcmV0dXJuIG1fb3V0cHV0Q29udGV4dC5nZXQoKTsKK30K
KworQVZSb3V0ZVBpY2tlclZpZXcgKkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpkZXZp
Y2VQaWNrZXIoKQoreworICAgIGlmICghbV9yb3V0ZVBpY2tlclZpZXcpIHsKKyAgICAgICAgbV9y
b3V0ZVBpY2tlclZpZXcgPSBhZG9wdE5TKFthbGxvY0FWUm91dGVQaWNrZXJWaWV3SW5zdGFuY2Uo
KSBpbml0XSk7CisgICAgICAgIFttX3JvdXRlUGlja2VyVmlldyBzZXREZWxlZ2F0ZTptX3JvdXRl
UGlja2VyVmlld0RlbGVnYXRlLmdldCgpXTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9yb3V0ZVBp
Y2tlclZpZXcuZ2V0KCk7Cit9CisKK0FWUm91dGVEZXRlY3RvciAqQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI6OnJvdXRlRGV0ZWN0b3IoKQoreworICAgIGlmICghbV9yb3V0ZURldGVjdG9y
KSB7CisgICAgICAgIG1fcm91dGVEZXRlY3RvciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlJvdXRl
RGV0ZWN0b3JJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjptX3JvdXRlUGlja2VyVmlld0RlbGVnYXRlLmdl
dCgpIHNlbGVjdG9yOkBzZWxlY3Rvcihub3RpZmljYXRpb25IYW5kbGVyOikgbmFtZTpQQUw6Omdl
dF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENo
YW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDptX3JvdXRlRGV0ZWN0b3IuZ2V0KCldOworICAgICAg
ICBpZiAoW21fcm91dGVEZXRlY3RvciBtdWx0aXBsZVJvdXRlc0RldGVjdGVkXSkKKyAgICAgICAg
ICAgIGF2YWlsYWJsZURldmljZXNEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9y
b3V0ZURldGVjdG9yLmdldCgpOworfQorCit2b2lkIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlj
a2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoTlNWaWV3ICp2aWV3LCBjb25zdCBGbG9hdFJl
Y3QmIHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBib29sIGhhc0FjdGl2ZVJvdXRlLCBib29sIHVz
ZURhcmtBcHBlYXJhbmNlKQoreworICAgIGlmICghY2xpZW50KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gKnBpY2tlciA9IGRldmljZVBpY2tlcigpOworICAgIGlmICh1c2VEYXJrQXBw
ZWFyYW5jZSkKKyAgICAgICAgcGlja2VyLnJvdXRlTGlzdEFsd2F5c0hhc0RhcmtBcHBlYXJhbmNl
ID0gWUVTOworCisgICAgbV9oYWRBY3RpdmVSb3V0ZSA9IGhhc0FjdGl2ZVJvdXRlOworCisgICAg
YXV0byByZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9IFt2aWV3LndpbmRvdyBjb252ZXJ0UmVjdEZy
b21TY3JlZW46TlNNYWtlUmVjdChyZWN0SW5TY3JlZW5Db29yZGluYXRlcy54KCksIHJlY3RJblNj
cmVlbkNvb3JkaW5hdGVzLnkoKSwgMS4wLCAxLjApXTsKKyAgICBhdXRvIHJlY3RJblZpZXdDb29y
ZGluYXRlcyA9IFt2aWV3IGNvbnZlcnRSZWN0OnJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzIGZyb21W
aWV3OnZpZXddOworICAgIFtwaWNrZXIgc2hvd1JvdXRlUGlja2luZ0NvbnRyb2xzRm9yT3V0cHV0
Q29udGV4dDpvdXRwdXRDb250ZXh0SW50ZXJuYWwoKSByZWxhdGl2ZVRvUmVjdDpyZWN0SW5WaWV3
Q29vcmRpbmF0ZXMgb2ZWaWV3OnZpZXddOworfQorCit2b2lkIEFWUm91dGVQaWNrZXJWaWV3VGFy
Z2V0UGlja2VyOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQoreworICAgIHJv
dXRlRGV0ZWN0b3IoKS5yb3V0ZURldGVjdGlvbkVuYWJsZWQgPSBZRVM7Cit9CisKK3ZvaWQgQVZS
b3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXI6OnN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
KCkKK3sKKyAgICBpZiAobV9yb3V0ZURldGVjdG9yKQorICAgICAgICBbbV9yb3V0ZURldGVjdG9y
IHNldFJvdXRlRGV0ZWN0aW9uRW5hYmxlZDpOT107Cit9CisKK2Jvb2wgQVZSb3V0ZVBpY2tlclZp
ZXdUYXJnZXRQaWNrZXI6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKCkKK3sKKyAgICBy
ZXR1cm4gcm91dGVEZXRlY3RvcigpLm11bHRpcGxlUm91dGVzRGV0ZWN0ZWQ7Cit9CisKK0FWT3V0
cHV0Q29udGV4dCAqIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjpvdXRwdXRDb250ZXh0
KCkKK3sKKyAgICByZXR1cm4gbV9vdXRwdXRDb250ZXh0LmdldCgpOworfQorCit2b2lkIEFWUm91
dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCkKK3sK
KyAgICBpZiAobV9yb3V0ZURldGVjdG9yKSB7CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9yb3V0ZVBpY2tlclZpZXdEZWxlZ2F0
ZS5nZXQoKSBuYW1lOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlJvdXRlRGV0ZWN0b3JNdWx0aXBs
ZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2JqZWN0Om1fcm91dGVEZXRl
Y3Rvci5nZXQoKV07CisgICAgICAgIFttX3JvdXRlRGV0ZWN0b3Igc2V0Um91dGVEZXRlY3Rpb25F
bmFibGVkOk5PXTsKKyAgICAgICAgbV9yb3V0ZVBpY2tlclZpZXcgPSBudWxscHRyOworICAgIH0K
KworICAgIGlmIChtX291dHB1dENvbnRleHQpIHsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX3JvdXRlUGlja2VyVmlld0RlbGVn
YXRlLmdldCgpIG5hbWU6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWT3V0cHV0Q29udGV4dE91dHB1
dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bV9vdXRwdXRDb250ZXh0Lmdl
dCgpXTsKKyAgICAgICAgbV9vdXRwdXRDb250ZXh0ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBp
ZiAobV9yb3V0ZVBpY2tlclZpZXcpIHsKKyAgICAgICAgW21fcm91dGVQaWNrZXJWaWV3IHNldERl
bGVnYXRlOm5pbF07CisgICAgICAgIG1fcm91dGVQaWNrZXJWaWV3ID0gbnVsbHB0cjsKKyAgICB9
CisgICAgY3VycmVudERldmljZURpZENoYW5nZSgpOworfQordm9pZCBBVlJvdXRlUGlja2VyVmll
d1RhcmdldFBpY2tlcjo6YXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpCit7CisgICAgaWYgKGNs
aWVudCgpKQorICAgICAgICBjbGllbnQoKS0+YXZhaWxhYmxlRGV2aWNlc0NoYW5nZWQoKTsKK30K
KworYm9vbCBBVlJvdXRlUGlja2VyVmlld1RhcmdldFBpY2tlcjo6aGFzQWN0aXZlUm91dGUoKSBj
b25zdAoreworICAgIGlmICghbV9vdXRwdXRDb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKV0gJiYgW21fb3V0cHV0Q29udGV4dCByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZXMpXSYmIFttX291dHB1dENvbnRl
eHQgc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXNdKSB7CisgICAgICAgIGZvciAoQVZPdXRw
dXREZXZpY2UgKm91dHB1dERldmljZSBpbiBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZXNd
KSB7CisgICAgICAgICAgICBpZiAob3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgKEFWT3V0
cHV0RGV2aWNlRmVhdHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8pKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmIChbbV9vdXRwdXRDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Iob3V0cHV0RGV2aWNlKV0pIHsKKyAgICAgICAgaWYgKGF1dG8gKm91dHB1dERl
dmljZSA9IFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlXSkKKyAgICAgICAgICAgIHJldHVy
biBvdXRwdXREZXZpY2UuZGV2aWNlRmVhdHVyZXMgJiAoQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlk
ZW8gfCBBVk91dHB1dERldmljZUZlYXR1cmVBdWRpbyk7CisgICAgfQorCisgICAgcmV0dXJuIFtt
X291dHB1dENvbnRleHQgZGV2aWNlTmFtZV07Cit9CisKK3ZvaWQgQVZSb3V0ZVBpY2tlclZpZXdU
YXJnZXRQaWNrZXI6OmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKQoreworICAgIGF1dG8gaGF2ZUFj
dGl2ZVJvdXRlID0gaGFzQWN0aXZlUm91dGUoKTsKKyAgICBpZiAoIWNsaWVudCgpIHx8IG1faGFk
QWN0aXZlUm91dGUgPT0gaGF2ZUFjdGl2ZVJvdXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2hhZEFjdGl2ZVJvdXRlID0gaGF2ZUFjdGl2ZVJvdXRlOworICAgIGNsaWVudCgpLT5jdXJyZW50
RGV2aWNlQ2hhbmdlZCgpOworfQorCit2b2lkIEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2Vy
OjpkZXZpY2VQaWNrZXJXYXNEaXNtaXNzZWQoKQoreworICAgIGlmICghY2xpZW50KCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBjbGllbnQoKS0+cGlja2VyV2FzRGlzbWlzc2VkKCk7Cisg
ICAgY3VycmVudERldmljZURpZENoYW5nZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJBVlJvdXRlUGlja2VyVmlld0hlbHBlcgorLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoQ2FsbGJhY2s6KFdlYWtQdHI8QVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQ
aWNrZXI+JiYpY2FsbGJhY2sKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKworICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsK
KworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWNsZWFyQ2FsbGJhY2sKK3sKKyAgICBt
X2NhbGxiYWNrID0gbmlsOworfQorCistICh2b2lkKXJvdXRlUGlja2VyVmlld0RpZEVuZFByZXNl
bnRpbmdSb3V0ZXM6KEFWUm91dGVQaWNrZXJWaWV3ICopcm91dGVQaWNrZXJWaWV3Cit7CisgICAg
VU5VU0VEX1BBUkFNKHJvdXRlUGlja2VyVmlldyk7CisKKyAgICBpZiAoIW1fY2FsbGJhY2spCisg
ICAgICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3NlbGYsIHByb3RlY3RlZFNl
bGYgPSByZXRhaW5QdHIoc2VsZildIHsKKyAgICAgICAgaWYgKCFtX2NhbGxiYWNrKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY2FsbGJhY2stPmRldmljZVBpY2tlcldhc0Rpc21p
c3NlZCgpOworICAgIH0pOworfQorCistICh2b2lkKW5vdGlmaWNhdGlvbkhhbmRsZXI6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlv
bik7CisKKyAgICBpZiAoIW1fY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxP
bk1haW5UaHJlYWQoW3NlbGYsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIG5vdGlm
aWNhdGlvbiA9IHJldGFpblB0cihub3RpZmljYXRpb24pXSB7CisgICAgICAgIGlmICghbV9jYWxs
YmFjaykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoW1tub3RpZmljYXRpb24g
bmFtZV0gaXNFcXVhbFRvU3RyaW5nOlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk91dHB1dENvbnRl
eHRPdXRwdXREZXZpY2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCldKQorICAgICAgICAgICAgbV9j
YWxsYmFjay0+Y3VycmVudERldmljZURpZENoYW5nZSgpOworICAgICAgICBlbHNlIGlmIChbW25v
dGlmaWNhdGlvbiBuYW1lXSBpc0VxdWFsVG9TdHJpbmc6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
Um91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24o
KV0pCisgICAgICAgICAgICBtX2NhbGxiYWNrLT5hdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7
CisgICAgfSk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjLmgKaW5kZXggNjQyZGY2NWRmYzg3NzcwNGIzYjA1ZjJlODM2OGZlYzNj
NzhjODFlZi4uZmQ4MTVhMDBkYTNmMGMxNzc0ZmY1NTZmMGY0ZTg5YzAzYmQ5OGE1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOCwzNiArMjgsMzYgQEAKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW5jbHVkZSAiQVZQbGF5YmFja1Rhcmdl
dFBpY2tlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCIKICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlcjsKLU9CSkNfQ0xBU1MgV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBl
cjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjIGZpbmFsIDogcHVibGljIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIgeworY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLCBwdWJsaWMgQVZQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjKE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OkNsaWVudCYp
OwotCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYygpOwogCi0gICAg
dm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVj
a0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBvdmVycmlkZTsKLSAgICB2b2lk
IHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwotICAgIHZvaWQg
c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKLSAgICB2b2lkIGludmFs
aWRhdGVQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihQbGF0Zm9ybVZpZXcqLCBjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0
aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIGZpbmFsOworICAgIHZvaWQgc3RhcnRp
bmdNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRzKCkgZmluYWw7CisgICAgdm9pZCBzdG9wTW9uaXRv
cmluZ1BsYXliYWNrVGFyZ2V0cygpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZVBsYXliYWNr
VGFyZ2V0cygpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIGJvb2wgZXh0ZXJuYWxPdXRwdXREZXZp
Y2VBdmFpbGFibGUoKSBvdmVycmlkZTsKLSAgICBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4gcGxh
eWJhY2tUYXJnZXQoKSBvdmVycmlkZTsKKyAgICBib29sIGV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlKCkgZmluYWw7CisgICAgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IHBsYXliYWNrVGFy
Z2V0KCkgZmluYWw7CisKKyAgICAvLyBBVlBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQKKyAg
ICB2b2lkIHBpY2tlcldhc0Rpc21pc3NlZCgpIGZpbmFsOworICAgIHZvaWQgYXZhaWxhYmxlRGV2
aWNlc0NoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIGN1cnJlbnREZXZpY2VDaGFuZ2VkKCkgZmlu
YWw7CiAKLSAgICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpkZXZpY2VQaWNrZXIoKTsK
KyAgICBBVlBsYXliYWNrVGFyZ2V0UGlja2VyJiByb3V0ZVBpY2tlcigpOwogCi0gICAgUmV0YWlu
UHRyPEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXI+IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXI7Ci0gICAgUmV0YWluUHRyPFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxw
ZXI+IG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZTsKLSAgICBib29sIG1fc2hv
d2luZ01lbnUgeyBmYWxzZSB9OworICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlBsYXliYWNrVGFyZ2V0
UGlja2VyPiBtX3JvdXRlUGlja2VyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJN
YWMubW0KaW5kZXggMmI1ZTU0MTNmOGY4M2ZkMDNlN2RlODIzNThlODRiOTllMTI3M2M5Ny4uOTcz
M2NiNTUzNzYwMjk0M2NjZTJhZjhiYWQ1MmNhZDk3Nzk0NjViMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQogCisjaW1wb3J0ICJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Zs
b2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaD4K
QEAgLTM2LDYgKzM3LDEwIEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJLmg+CiAj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisjaWYgSEFWRShBVlJPVVRFUElDS0VSVklFVykK
KyNpbXBvcnQgIkFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyLmgiCisjZW5kaWYKKwogI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtNDQsMTYyICs0OSw4NiBAQCBTT0ZUX0xJTktfQ0xB
U1NfT1BUSU9OQUwoQVZLaXQsIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIpCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMgTlNTdHJpbmcgKmV4dGVybmFsT3V0cHV0RGV2
aWNlQXZhaWxhYmxlS2V5TmFtZSA9IEAiZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUiOwot
c3RhdGljIE5TU3RyaW5nICpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWUgPSBAImV4
dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkIjsKLQotQGludGVyZmFjZSBXZWJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVySGVscGVyIDogTlNPYmplY3QgewotICAgIE1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJNYWMqIG1fY2FsbGJhY2s7Ci19Ci0KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENh
bGxiYWNrOihNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKiljYWxsYmFjazsKLS0gKHZvaWQp
Y2xlYXJDYWxsYmFjazsKLS0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0
aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRl
eHQ6KHZvaWQgKiljb250ZXh0OwotQGVuZAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMoTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGllbnQpCiAgICAgOiBNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyKGNsaWVudCkKLSAgICAsIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBl
ciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiB7CiB9CiAKIE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6On5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKCkKIHsKICAgICBz
ZXRDbGllbnQobnVsbHB0cik7Ci0gICAgW21fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxl
Z2F0ZSBjbGVhckNhbGxiYWNrXTsKIH0KIAogYm9vbCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgpCiB7Ci1BTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHJldHVybiBkZXZpY2VQaWNrZXIoKS5leHRlcm5hbE91
dHB1dERldmljZUF2YWlsYWJsZTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAor
ICAgIHJldHVybiByb3V0ZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKCk7
CiB9CiAKIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpwbGF5YmFja1RhcmdldCgpCiB7Ci0gICAgQVZPdXRwdXRDb250ZXh0KiBjb250ZXh0ID0g
bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciA/IFttX291dHB1dERldmljZU1lbnVDb250cm9s
bGVyLmdldCgpIG91dHB1dENvbnRleHRdIDogbnVsbHB0cjsKLQotICAgIHJldHVybiBXZWJDb3Jl
OjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNyZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpjcmVhdGUocm91dGVQaWNrZXIoKS5v
dXRwdXRDb250ZXh0KCkpOwogfQogCi1BVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIoKQorQVZQbGF5YmFja1Rhcmdl
dFBpY2tlciYgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6cm91dGVQaWNrZXIoKQogewot
ICAgIGlmICghZ2V0QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckNsYXNzKCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFtX291dHB1dERldmljZU1lbnVDb250cm9sbGVy
KSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmRl
dmljZVBpY2tlciAtIGFsbG9jYXRpbmcgcGlja2VyIik7Ci0KLSAgICAgICAgUmV0YWluUHRyPEFW
T3V0cHV0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVk91dHB1dENvbnRl
eHRJbnN0YW5jZSgpIGluaXRdKTsKLSAgICAgICAgbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ciA9IGFkb3B0TlMoW2FsbG9jQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckluc3RhbmNlKCkg
aW5pdFdpdGhPdXRwdXRDb250ZXh0OmNvbnRleHQuZ2V0KCldKTsKLQotICAgICAgICBbbV9vdXRw
dXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQoKSBhZGRPYnNlcnZlcjptX291dHB1dERldmljZU1l
bnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9yS2V5UGF0aDpleHRlcm5hbE91dHB1dERldmlj
ZUF2YWlsYWJsZUtleU5hbWUgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNv
bnRleHQ6bnVsbHB0cl07Ci0gICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdl
dCgpIGFkZE9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQo
KSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZSBvcHRpb25zOk5T
S2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKLQotICAgICAgICBM
T0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIgLSBh
bGxvY2F0ZWQgbWVudSBjb250cm9sbGVyICVwIiwgbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ci5nZXQoKSk7Ci0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAg
IGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpLmV4dGVybmFsT3V0cHV0RGV2
aWNlQXZhaWxhYmxlKQotICAgICAgICAgICAgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOwot
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgfQotCi0gICAgcmV0dXJuIG1f
b3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCk7CisgICAgaWYgKG1fcm91dGVQaWNrZXIp
CisgICAgICAgIHJldHVybiAqbV9yb3V0ZVBpY2tlcjsKKworI2lmIEhBVkUoQVZST1VURVBJQ0tF
UlZJRVcpCisgICAgaWYgKEFWUm91dGVQaWNrZXJWaWV3VGFyZ2V0UGlja2VyOjppc0F2YWlsYWJs
ZSgpKQorICAgICAgICBtX3JvdXRlUGlja2VyID0gbWFrZVVuaXF1ZTxBVlJvdXRlUGlja2VyVmll
d1RhcmdldFBpY2tlcj4oKnRoaXMpOworICAgIGVsc2UKKyNlbmRpZgorICAgICAgICBtX3JvdXRl
UGlja2VyID0gbWFrZVVuaXF1ZTxBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlj
a2VyPigqdGhpcyk7CisgICAgCisgICAgcmV0dXJuICptX3JvdXRlUGlja2VyOwogfQogCi12b2lk
IE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihj
b25zdCBGbG9hdFJlY3QmIGxvY2F0aW9uLCBib29sIGhhc0FjdGl2ZVJvdXRlLCBib29sIHVzZURh
cmtBcHBlYXJhbmNlKQordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoUGxhdGZvcm1WaWV3KiB2aWV3LCBjb25zdCBGbG9hdFJlY3QmIGxv
Y2F0aW9uLCBib29sIGhhc0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKQogewot
ICAgIGlmICghY2xpZW50KCkgfHwgbV9zaG93aW5nTWVudSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyIC0gaGFzQWN0aXZlUm91dGUgPSAlaSIsIChpbnQpaGFzQWN0aXZlUm91dGUp
OwotCi0gICAgbV9zaG93aW5nTWVudSA9IHRydWU7Ci0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCi0gICAgYm9vbCB0YXJnZXRTZWxlY3RlZCA9IFtkZXZpY2VQaWNrZXIoKSBz
aG93TWVudUZvclJlY3Q6bG9jYXRpb24gYXBwZWFyYW5jZU5hbWU6KHVzZURhcmtBcHBlYXJhbmNl
ID8gTlNBcHBlYXJhbmNlTmFtZVZpYnJhbnREYXJrIDogTlNBcHBlYXJhbmNlTmFtZVZpYnJhbnRM
aWdodCkgYWxsb3dSZXNlbGVjdGlvbk9mU2VsZWN0ZWRPdXRwdXREZXZpY2U6IWhhc0FjdGl2ZVJv
dXRlXTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotCi0gICAgaWYgKHRhcmdl
dFNlbGVjdGVkICE9IGhhc0FjdGl2ZVJvdXRlKQotICAgICAgICBjdXJyZW50RGV2aWNlRGlkQ2hh
bmdlKCk7Ci0gICAgZWxzZSBpZiAoIXRhcmdldFNlbGVjdGVkICYmICFoYXNBY3RpdmVSb3V0ZSkK
LSAgICAgICAgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKTsKLQotICAgIG1fc2hv
d2luZ01lbnUgPSBmYWxzZTsKKyAgICByb3V0ZVBpY2tlcigpLnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcih2aWV3LCBsb2NhdGlvbiwgaGFzQWN0aXZlUm91dGUsIHVzZURhcmtBcHBlYXJhbmNlKTsK
IH0KIAogdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdGFydGluZ01vbml0b3Jp
bmdQbGF5YmFja1RhcmdldHMoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyIpOwogCi0gICAg
ZGV2aWNlUGlja2VyKCk7CisgICAgcm91dGVQaWNrZXIoKS5zdGFydGluZ01vbml0b3JpbmdQbGF5
YmFja1RhcmdldHMoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpz
dG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMiKTsK
LSAgICAvLyBOb3RoaW5nIHRvIGRvLCBBaXJQbGF5IHRha2VzIGNhcmUgb2YgdGhpcyBhdXRvbWF0
aWNhbGx5LgorICAgIHJvdXRlUGlja2VyKCkuc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMo
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjppbnZhbGlkYXRlUGxh
eWJhY2tUYXJnZXRzKCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjOjppbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzIik7CiAKLSAgICBpZiAobV9vdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlcikgewotICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlciByZW1vdmVPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUu
Z2V0KCkgZm9yS2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWVdOwot
ICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciByZW1vdmVPYnNlcnZlcjptX291
dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgZm9yS2V5UGF0aDpleHRlcm5h
bE91dHB1dERldmljZVBpY2tlZEtleU5hbWVdOwotICAgICAgICBtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyID0gbnVsbHB0cjsKLSAgICB9CisgICAgbV9yb3V0ZVBpY2tlciA9IG51bGxwdHI7
CiAgICAgY3VycmVudERldmljZURpZENoYW5nZSgpOwogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLUBpbXBsZW1lbnRhdGlvbiBXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVs
cGVyCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDYWxsYmFjazooTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1hYyopY2FsbGJhY2sKK3ZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6
cGlja2VyV2FzRGlzbWlzc2VkKCkKIHsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
LSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIG1fY2FsbGJhY2sgPSBjYWxsYmFjazsKLQotICAg
IHJldHVybiBzZWxmOworICAgIHBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCk7CiB9
CiAKLS0gKHZvaWQpY2xlYXJDYWxsYmFjawordm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjphdmFpbGFibGVEZXZpY2VzQ2hhbmdlZCgpCiB7Ci0gICAgbV9jYWxsYmFjayA9IG5pbDsK
KyAgICBhdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7CiB9CiAKLS0gKHZvaWQpb2JzZXJ2ZVZh
bHVlRm9yS2V5UGF0aDooaWQpa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNE
aWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit2b2lkIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWM6OmN1cnJlbnREZXZpY2VDaGFuZ2VkKCkKIHsKLSAgICBVTlVT
RURfUEFSQU0ob2JqZWN0KTsKLSAgICBVTlVTRURfUEFSQU0oY2hhbmdlKTsKLSAgICBVTlVTRURf
UEFSQU0oY29udGV4dCk7Ci0KLSAgICBpZiAoIW1fY2FsbGJhY2spCi0gICAgICAgIHJldHVybjsK
LQotICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Om9ic2VydmVW
YWx1ZUZvcktleVBhdGggLSBrZXkgPSAlcyIsIFtrZXlQYXRoIFVURjhTdHJpbmddKTsKLQotICAg
IGlmICghW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlS2V5TmFtZV0gJiYgIVtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERl
dmljZVBpY2tlZEtleU5hbWVdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZXRhaW5QdHI8V2Vi
QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlcj4gcHJvdGVjdGVkU2VsZiA9IHNlbGY7
Ci0gICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwcm90ZWN0ZWRLZXlQYXRoID0ga2V5UGF0aDsKLSAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxm
KSwgcHJvdGVjdGVkS2V5UGF0aCA9IFdURk1vdmUocHJvdGVjdGVkS2V5UGF0aCldIHsKLSAgICAg
ICAgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyogY2FsbGJhY2sgPSBwcm90ZWN0ZWRTZWxm
LT5tX2NhbGxiYWNrOwotICAgICAgICBpZiAoIWNhbGxiYWNrKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGlmIChbcHJvdGVjdGVkS2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGVLZXlOYW1lXSkKLSAgICAgICAgICAgIGNhbGxiYWNrLT5h
dmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlKCk7Ci0gICAgICAgIGVsc2UgaWYgKFtwcm90ZWN0ZWRL
ZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWVd
KQotICAgICAgICAgICAgY2FsbGJhY2stPmN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsKLSAgICB9
KTsKKyAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7CiB9Ci1AZW5kCisKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCiAKICNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcAppbmRleCBiNmE4OWM3YzUyZmMwNWMxOWIw
ZTUyNjUwMDhmZTk0OWMwNjU3YmZlLi43YzBmYTI2ZGUyMWRlNjY2MzQ2NDYyMDNiNzMzOWE2NWUx
NmM2NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcApAQCAtNjEsNyArNjEsNyBAQCBS
ZWY8TWVkaWFQbGF5YmFja1RhcmdldD4gTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnBs
YXliYWNrVGFyZ2V0KCkKICAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldE1v
Y2s6OmNyZWF0ZShtX2RldmljZU5hbWUsIG1fc3RhdGUpOwogfQogCi12b2lkIE1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNb2NrOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRS
ZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKQordm9p
ZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KFBsYXRmb3JtVmlldyosIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwg
Ym9vbCB1c2VEYXJrQXBwZWFyYW5jZSkKIHsKICAgICBpZiAoIWNsaWVudCgpIHx8IG1fc2hvd2lu
Z01lbnUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaAppbmRleCBiOGNi
YWMwMzAxNDJhODlhMDhjNDFlYmJkMzJkMWEyMGRhMzQyMWYwLi4wZGE3MDRiMTUxNGJlYmM5M2Nk
ZGIwYmU0MjVkNTNlZGYzNGU1MTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCkBAIC00Myw3
ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrKCk7CiAKLSAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9h
dFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpIG92
ZXJyaWRlOworICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRmb3JtVmlldyos
IGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1Rh
cmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BNb25pdG9yaW5nUGxheWJhY2tUYXJnZXRz
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFkN2QyMjNkOGZk
Y2YxNzQyMDcxZTA5ZTRjMjkyYmRiNWVjYzE2Y2EuLjMwYjI2OTdiMGJmN2FjZWZkNDg0YWEyNjY4
NWM3Y2M1NTNjNWJlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0xNTM0LDYgKzE1MzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5
YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBib29sKSBmaW5hbDsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2Vk
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwog
ICAgIGJvb2wgYWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGZpbmFsIHsgcmV0dXJuIGlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpOyB9CisgICAgUGxhdGZvcm1WaWV3KiBwbGF0Zm9ybVZpZXcoKSBj
b25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3Io
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmlu
ZGV4IGEzZTc0MDAwNTRlOGRkODVjYTVjNTYwZWMyZWEzYzhiZTgwY2M3MjcuLmQ1NThlZDJkNjdi
YzkzMWViMjZjOGViNjQyYjc1NjZkYjBkZmJhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNjczLDYgKzY3MywxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQoKQogICAgIGdyYW50QWNjZXNzVG9D
dXJyZW50UGFzdGVib2FyZERhdGEoTlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWwpOwogfQogCitQbGF0
Zm9ybVZpZXcqIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1WaWV3KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gW3BhZ2VDbGllbnQoKS5wbGF0Zm9ybVdpbmRvdygpIGNvbnRlbnRWaWV3XTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlci5oCmluZGV4IDM0NjM4NmMwODAyNGQ5OTA1YTdmMjBmYTBkNTFiZWFmNjVk
NmZkMjYuLjBiOTIzODM1ZTllMTViNmI4MDQ1YjQ5YWZlMjllNmFhYjAzZWNmY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgog
CitPQkpDX0NMQVNTIFdlYlZpZXc7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0
UmVjdDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CkBAIC00MSwxMCArNDMsMTAgQEAgY2xh
c3MgUGFnZTsKIGNsYXNzIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyPiBjcmVhdGUoV2ViQ29yZTo6UGFnZSYpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcj4gY3JlYXRlKFdlYlZp
ZXcgKiwgV2ViQ29yZTo6UGFnZSYpOwogCi0gICAgZXhwbGljaXQgV2ViTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlcihXZWJDb3JlOjpQYWdlJik7Ci0gICAgdmlydHVhbCB+V2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlcigpIHsgfQorICAgIGV4cGxpY2l0IFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIoV2ViVmlldyAqLCBXZWJDb3JlOjpQYWdlJik7CisgICAgdmlydHVhbCB+V2ViTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlcigpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgYWRkUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKQEAgLTU0LDE2ICs1
NiwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
clN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
OjpTdGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQ
b3B1cCgpOwogCi0gICAgLy8gV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudAotICAgIHZvaWQg
c2V0UGxheWJhY2tUYXJnZXQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHBs
YXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CiAKIHByaXZhdGU6CisgICAgLy8gV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudAorICAgIHZv
aWQgc2V0UGxheWJhY2tUYXJnZXQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciwgUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZpbmFsOwor
ICAgIHZvaWQgZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCkgZmluYWw7CisgICAg
dm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKSBmaW5hbDsKKyAgICB2b2lkIHBsYXliYWNr
VGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIpIGZpbmFsOworICAgIFBsYXRmb3JtVmlldyogcGxhdGZvcm1WaWV3KCkg
Y29uc3QgZmluYWw7CisKICAgICBXZWJDb3JlOjpQYWdlKiBtX3BhZ2U7CisgICAgV2ViVmlldyAq
bV93ZWJWaWV3OwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KaW5k
ZXggYmI4MTVjNWQyNDg3MjMzMDEzMDIwOTMzNmU3Y2M2Y2U4M2IxYWNlOS4uNzM0NDM1Njc1YWI4
MDliNTBlYzVlZjM4YWI5Zjc3Y2ExNDhiMzFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ci5tbQpAQCAtMjcsMTcgKzI3LDE5IEBACiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2ltcG9ydCAiV2ViVmlldy5oIgog
I2ltcG9ydCA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oPgogCi1z
dGQ6OnVuaXF1ZV9wdHI8V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcj4gV2ViTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlcjo6Y3JlYXRlKFdlYkNvcmU6OlBhZ2UmIHBhZ2UpCitzdGQ6OnVuaXF1
ZV9wdHI8V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcj4gV2ViTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlcjo6Y3JlYXRlKFdlYlZpZXcgKndlYlZpZXcsIFdlYkNvcmU6OlBhZ2UmIHBhZ2UpCiB7
Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcj4ocGFn
ZSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcj4o
d2ViVmlldywgcGFnZSk7CiB9CiAKLVdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OldlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGFnZSYgcGFnZSkKK1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXI6OldlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViVmlldyAq
d2ViVmlldywgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZSgmcGFnZSkKKyAgICAs
IG1fd2ViVmlldyh3ZWJWaWV3KQogewogfQogCkBAIC0xMDksNyArMTExLDE0IEBAIHZvaWQgV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNz
ZWQoV2ViQ29yZTo6UGxhCiB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmludmFs
aWRhdGUoKQogewogICAgIG1fcGFnZSA9IG51bGxwdHI7CisgICAgbV93ZWJWaWV3ID0gbmlsOwog
ICAgIFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnJlbW92ZUFsbFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50cygqdGhpcyk7CiB9CiAKK1BsYXRmb3JtVmlldyogV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxhdGZvcm1WaWV3KCkgY29uc3QKK3sKKyAgICBB
U1NFUlQobV93ZWJWaWV3KTsKKyAgICByZXR1cm4gbV93ZWJWaWV3OworfQorCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4NWQ2OTQzZTM2
YmFlNjM3YTBlMDliNTQ3OWRhYjM1YjM5YWE3Y2NjLi4xNjQ3ZDY0NzMxZDU3NDE0YzVjYjVmNTg3
YjlkYjVhNDk2YzgzNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC05NzQzLDcgKzk3NDMsNyBAQCBib29sIExheWVyRmx1c2hDb250cm9sbGVyOjpm
bHVzaExheWVycygpCiAtIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyICopIF9kZXZpY2VQ
aWNrZXIKIHsKICAgICBpZiAoIV9wcml2YXRlLT5tX3BsYXliYWNrVGFyZ2V0UGlja2VyKQotICAg
ICAgICBfcHJpdmF0ZS0+bV9wbGF5YmFja1RhcmdldFBpY2tlciA9IFdlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXI6OmNyZWF0ZSgqX3ByaXZhdGUtPnBhZ2UpOworICAgICAgICBfcHJpdmF0ZS0+
bV9wbGF5YmFja1RhcmdldFBpY2tlciA9IFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OmNy
ZWF0ZShzZWxmLCAqX3ByaXZhdGUtPnBhZ2UpOwogCiAgICAgcmV0dXJuIF9wcml2YXRlLT5tX3Bs
YXliYWNrVGFyZ2V0UGlja2VyLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwNzEzMGZjNjBjZDJkZGNmYWE3ZWMxYTJhNzU2MTZh
NjZmYjkwNmQuLmI3MjZjMTdlZGQ0NjY0NWVlYTMzZGE3MTczYTA0ZmFkY2Y1Y2U3MjcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMC0wNy0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
KworICAgICAgICBVc2UgQVZSb3V0ZVBpY2tlclZpZXcgd2hlbiBhdmFpbGFibGUgZm9yIGNob29z
aW5nIEFpclBsYXkgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzNDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODYxMDY2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6IFRlc3QgQVZPdXRwdXRDb250ZXh0T3V0cHV0RGV2aWNl
c0RpZENoYW5nZU5vdGlmaWNhdGlvbi4KKyAgICAgICAgRG9uJ3QgY2hlY2sgQVZSb3V0ZURldGVj
dG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvbiB3YXRjaE9T
LAorICAgICAgICB3ZSBkb24ndCB1c2UgaXQgdGhlcmUuCisKIDIwMjAtMDctMjAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbG9jayBp
Y29uIHRvIE1pbmlCcm93c2VyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQpp
bmRleCA3ZmVmMWFhN2RmYWFiOWU4YTUzYjVkNzY2MmE0ZjZmZTAzNjQzMTIxLi5iMzUyYWFkNjBj
ZThiMjZhMDdhMzAxY2E3MWJhMTBmYTMwZmE4OTUyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGlua1Rlc3QubW0KQEAgLTE4NCw3ICsxODQsNiBAQCBURVNUKEFWRm91bmRhdGlvblNvZnRM
aW5rLCBDb25zdGFudHMpCiAgICAgRVhQRUNUX1RSVUUoW0FWQXVkaW9TZXNzaW9uSW50ZXJydXB0
aW9uTm90aWZpY2F0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFWQXVkaW9TZXNzaW9uSW50ZXJydXB0
aW9uTm90aWZpY2F0aW9uIl0pOwogICAgIEVYUEVDVF9UUlVFKFtBVkF1ZGlvU2Vzc2lvbkludGVy
cnVwdGlvblR5cGVLZXkgaXNFcXVhbFRvU3RyaW5nOkAiQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRp
b25UeXBlS2V5Il0pOwogICAgIEVYUEVDVF9UUlVFKFtBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlv
bk9wdGlvbktleSBpc0VxdWFsVG9TdHJpbmc6QCJBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbk9w
dGlvbktleSJdKTsKLSAgICBFWFBFQ1RfVFJVRShbQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0
ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBpc0VxdWFsVG9TdHJpbmc6QCJBVlJvdXRl
RGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIl0pOwog
I2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKICAgICBFWFBFQ1Rf
VFJVRShbQVZDYXB0dXJlU2Vzc2lvbkVycm9yS2V5IGlzRXF1YWxUb1N0cmluZzpAIkFWQ2FwdHVy
ZVNlc3Npb25FcnJvcktleSJdKTsKICAgICBFWFBFQ1RfVFJVRShbQVZDYXB0dXJlU2Vzc2lvblJ1
bnRpbWVFcnJvck5vdGlmaWNhdGlvbiBpc0VxdWFsVG9TdHJpbmc6QCJBVkNhcHR1cmVTZXNzaW9u
UnVudGltZUVycm9yTm90aWZpY2F0aW9uIl0pOwpAQCAtMTk0LDYgKzE5MywxMiBAQCBURVNUKEFW
Rm91bmRhdGlvblNvZnRMaW5rLCBDb25zdGFudHMpCiAjZW5kaWYKIAogI2VuZGlmCisgICAgCisj
aWYgSEFWRShBVlJPVVRFUElDS0VSVklFVykKKyAgICBFWFBFQ1RfVFJVRShbQVZSb3V0ZURldGVj
dG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBpc0VxdWFsVG9T
dHJpbmc6QCJBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90
aWZpY2F0aW9uIl0pOworICAgIEVYUEVDVF9UUlVFKFtBVk91dHB1dENvbnRleHRPdXRwdXREZXZp
Y2VzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFWT3V0cHV0Q29udGV4
dE91dHB1dERldmljZXNEaWRDaGFuZ2VOb3RpZmljYXRpb24iXSk7CisjZW5kaWYgLy8gUExBVEZP
Uk0oV0FUQ0hPUykKKwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>