<?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>173398</bug_id>
          
          <creation_ts>2017-06-14 19:19:13 -0700</creation_ts>
          <short_desc>[WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients</short_desc>
          <delta_ts>2017-06-16 11:46:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jlewis3</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1319416</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-14 19:19:13 -0700</bug_when>
    <thetext>[WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319417</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-14 19:19:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/32592961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319434</commentid>
    <comment_count>2</comment_count>
      <attachid>312949</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-14 20:20:14 -0700</bug_when>
    <thetext>Created attachment 312949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319449</commentid>
    <comment_count>3</comment_count>
      <attachid>312949</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-14 21:19:16 -0700</bug_when>
    <thetext>Comment on attachment 312949
Patch

Very nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319598</commentid>
    <comment_count>4</comment_count>
      <attachid>312987</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-15 09:35:54 -0700</bug_when>
    <thetext>Created attachment 312987
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319610</commentid>
    <comment_count>5</comment_count>
      <attachid>312988</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-15 10:03:50 -0700</bug_when>
    <thetext>Created attachment 312988
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319704</commentid>
    <comment_count>6</comment_count>
      <attachid>313005</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-15 14:20:14 -0700</bug_when>
    <thetext>Created attachment 313005
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319748</commentid>
    <comment_count>7</comment_count>
      <attachid>313005</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-15 15:48:50 -0700</bug_when>
    <thetext>Comment on attachment 313005
Patch for landing

Clearing flags on attachment: 313005

Committed r218365: &lt;http://trac.webkit.org/changeset/218365&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319750</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-15 15:48:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319785</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-06-15 17:15:11 -0700</bug_when>
    <thetext>This patch caused an API failure on all builds

Release
https://build.webkit.org/builders/Apple%20Sierra%20Release%20WK2%20(Tests)/builds/2282
https://build.webkit.org/builders/Apple%20Sierra%20Release%20WK2%20(Tests)/builds/2282/steps/run-api-tests/logs/stdio

Debug
https://build.webkit.org/builders/Apple%20iOS%2010%20Simulator%20Debug%20WK2%20%28Tests%29/builds/2106/steps/run-api-tests/logs/stdio
https://build.webkit.org/builders/Apple%20iOS%2010%20Simulator%20Debug%20WK2%20%28Tests%29/builds/2106/steps/run-api-tests/logs/stdio

API Timeout on WebKit2.MediaStreamTrackDetached</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319788</commentid>
    <comment_count>10</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-06-15 17:16:41 -0700</bug_when>
    <thetext>Reverted r218365 for reason:

The revision caused API timeouts on all builds.

Committed r218369: &lt;http://trac.webkit.org/changeset/218369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319801</commentid>
    <comment_count>11</comment_count>
      <attachid>313036</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-15 18:08:09 -0700</bug_when>
    <thetext>Created attachment 313036
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319803</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-15 18:11:29 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #11)
&gt; Created attachment 313036 [details]
&gt; Patch for landing

The only difference between this patch and the one that got rolled out is that we explicitly call configureTrackRendering() in MediaStreamTrack::stopTrack(). It was early returning in MediaStreamTrack::trackStopped() before it got to the configureTrackRendering() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319839</commentid>
    <comment_count>13</comment_count>
      <attachid>313036</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-15 19:49:43 -0700</bug_when>
    <thetext>Comment on attachment 313036
Patch for landing

Clearing flags on attachment: 313036

Committed r218375: &lt;http://trac.webkit.org/changeset/218375&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319840</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-15 19:49:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320007</commentid>
    <comment_count>15</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-06-16 10:36:24 -0700</bug_when>
    <thetext>After the patch, the API test WebKit2.MediaStreamTrackDetached is still timing out on all platforms. 

https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20(Tests)/builds/2384/steps/run-api-tests/logs/stdio
https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20(Tests)/builds/2384

Spoke with Jer about timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320011</commentid>
    <comment_count>16</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-06-16 10:40:57 -0700</bug_when>
    <thetext>Reverted r218375 for reason:

The API test MediaStreamTrackDetached is still timing out after the patch

Committed r218397: &lt;http://trac.webkit.org/changeset/218397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320027</commentid>
    <comment_count>17</comment_count>
      <attachid>313093</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-16 11:07:16 -0700</bug_when>
    <thetext>Created attachment 313093
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320028</commentid>
    <comment_count>18</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-16 11:07:57 -0700</bug_when>
    <thetext>This last patch enables mock capture devices for the test; this should address the test failing on bots (which do not have capture hardware) but passing on dev machines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320057</commentid>
    <comment_count>19</comment_count>
      <attachid>313093</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-16 11:46:32 -0700</bug_when>
    <thetext>Comment on attachment 313093
Patch for landing

Clearing flags on attachment: 313093

Committed r218399: &lt;http://trac.webkit.org/changeset/218399&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320058</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-16 11:46:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312949</attachid>
            <date>2017-06-14 20:20:14 -0700</date>
            <delta_ts>2017-06-15 09:35:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173398-20170614202013.patch</filename>
            <type>text/plain</type>
            <size>32545</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc5OTk3ZWFhOWI3NTJl
ZjU1ZDU3ZGNmMTE2M2IxMTk1YTMxYjQwMS4uZmI1MGM2Y2YzYjQzMTYyMGRkYjRkMjI1MDlhOTc1
NzFlZmNjODIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE3LTA2LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtXZWJSVENdIFJlbW92aW5n
IGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRp
bmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVBJIFRlc3Q6
IFRlc3RzL1dlYktpdDIvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCisKKyAgICAgICAgTW92
ZSB0aGUgZGVmaW5pdGlvbiBvZiBhIE1lZGlhU3RyZWFtIGFzIGEgTWVkaWFQcm9kdWNlciBmcm9t
IHRoZSBzdHJlYW0gaXRzZWxmIHRvIGl0cyBjb25zdGl0dWVudAorICAgICAgICBNZWRpYVN0cmVh
bVRyYWNrcy4gVGhpcyBlbnN1cmVzIHRoYXQsIGV2ZW4gaWYgYSBNZWRpYVN0cmVhbVRyYWNrIGlz
IHJlbW92ZWQgZnJvbSBpdHMgc3RyZWFtLCB0aGUKKyAgICAgICAgZG9jdW1lbnQgKGFuZCB0aHVz
IHRoZSBjbGllbnRzKSBhcmUgbm90aWZpZWQgdGhhdCBtZWRpYSBjYXB0dXJlIGlzIHN0aWxsIG9j
Y3VycmluZy4KKworICAgICAgICBUaG91Z2ggTWVkaWFTdHJlYW0gaXMgbm8gbG9uZ2VyIGEgTWVk
aWFQcm9kdWNlciwgaXQgc3RpbGwgdXNlcyB0aGUgTWVkaWFQcm9kdWNlcidzIHN0YXRlIGNvbmNl
cHQKKyAgICAgICAgdG8gZGV0ZXJtaW5lIHdoZW4gdG8gZmlyZSBldmVudHMuIEhvd2V2ZXIgaXQn
cyBtZWRpYVN0YXRlKCkgaW1wbGVtZW50YXRpb24gd2lsbCBiZSBtb3ZlZCBpbnRvCisgICAgICAg
IE1lZGlhU3RyZWFtVHJhY2ssIGFuZCB3aWxsIGluc3RlYWQgc2ltcGx5IGJpdHdpc2Utb3IgdG9n
ZXRoZXIgZWFjaCBvZiBpdCdzIHRyYWNrJ3MgbWVkaWFTdGF0ZSgpLgorCisgICAgICAgIFRoZSBN
ZWRpYVN0cmVhbSBub3RpZmllcyB0aGUgZG9jdW1lbnQgdGhhdCBpdHMgc3RhdGUgaGFzIGNoYW5n
ZWQgYXN5bmNocm9ub3VzbHksIHNvIGRvIHRoZSBzYW1lCisgICAgICAgIGZvciBNZWRpYVN0cmVh
bVRyYWNrICh3aGljaCByZWR1Y2VzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhlIGNsaWVudCB3
aGVuIGNoYW5nZXMgYWxsIG9jY3VyCisgICAgICAgIGR1cmluZyBhIHNpbmdsZSBydW4gbG9vcCku
CisKKyAgICAgICAgQmVjYXVzZSB0aGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUgbWF5IGJlIHN0
YXJ0ZWQgZXh0ZXJuYWxseSAobm90IGJ5IHRoZSBNZWRpYVN0cmVhbVRyYWNrIGRpcmVjdGx5KSwK
KyAgICAgICAgYWRkIGEgbmV3IGNsaWVudCBtZXRob2QgdGhhdCBub3RpZmllcyBvYnNlcnZlcnMg
d2hlbiB0aGUgdHJhY2sgaGFzIGJlZW4gc3RhcnRlZCwgYW5kIHRoZQorICAgICAgICBNZWRpYVN0
cmVhbVRyYWNrIHdpbGwgdXNlIHRoaXMgbm90aWZpY2F0aW9uIHRvIHVwZGF0ZSB0aGUgZG9jdW1l
bnQgd2l0aCBpdCdzIG5ldyBtZWRpYVN0YXRlKCkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpN
ZWRpYVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFt
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpzdGF0dXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFjazo6cGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjp0cmFja1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1UcmFjazo6Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTdHJlYW1UcmFjazo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojpkb2N1bWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzb3VyY2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVBy
aXZhdGU6OnRyYWNrU3RhcnRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6OnNvdXJjZVN0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorCisyMDE3LTA2LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCiAgICAgICAgIFZpZGVvIGZsYXNoZXMgYmxhY2sgd2hlbiBzd2l0Y2hpbmcgYmFj
ayB0byBhIHRhYiBodHRwczovL3d3dy5hcHBsZS5jb20vaG9tZXBvZC8KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM3NwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDM2NDli
YzA4OTRhZjA3OWRlMWJiMDZlZTA5Y2YzNjY1MTAyNGIzNDcuLjk5NTM0ZjFiZjc5NjA1OTliZTdj
MDA1ZGI3ODE5YjNmYzE3NTc2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC05MCw3ICs5MCw2IEBAIE1lZGlhU3RyZWFt
OjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRp
YVN0cmVhbVRyYWNrCiAgICAgc2V0SXNBY3RpdmUobV9wcml2YXRlLT5hY3RpdmUoKSk7CiAgICAg
bV9wcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgTWVkaWFTdHJlYW1SZWdpc3RyeTo6
c2hhcmVkKCkucmVnaXN0ZXJTdHJlYW0oKnRoaXMpOwotICAgIGRvY3VtZW50KCktPmFkZEF1ZGlv
UHJvZHVjZXIodGhpcyk7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKQEAgLTExMSw3ICsx
MTAsNiBAQCBNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgUmVmPE1lZGlhU3RyZWFtUHJpdmF0ZQogICAgICAgICB0cmFjay0+YWRkT2JzZXJ2
ZXIoKnRoaXMpOwogICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+aWQoKSwgV1RGTW92ZSh0
cmFjaykpOwogICAgIH0KLSAgICBkb2N1bWVudCgpLT5hZGRBdWRpb1Byb2R1Y2VyKHRoaXMpOwog
ICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBAIC0xMjUsNyArMTIzLDYgQEAgTWVkaWFTdHJl
YW06On5NZWRpYVN0cmVhbSgpCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFs
dWVzKCkpCiAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQt
PnJlbW92ZUF1ZGlvUHJvZHVjZXIodGhpcyk7CiAgICAgICAgIGlmIChtX2lzV2FpdGluZ1VudGls
TWVkaWFDYW5TdGFydCkKICAgICAgICAgICAgIGRvY3VtZW50LT5yZW1vdmVNZWRpYUNhblN0YXJ0
TGlzdGVuZXIodGhpcyk7CiAgICAgfQpAQCAtMzIyLDUyICszMTksMTUgQEAgdm9pZCBNZWRpYVN0
cmVhbTo6ZW5kQ2FwdHVyZVRyYWNrcygpCiAgICAgfQogfQogCi12b2lkIE1lZGlhU3RyZWFtOjpw
YWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpCi17Ci0gICAgaWYgKCFtX2lzQWN0aXZlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwot
ICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJpdmF0ZS0+c2V0
Q2FwdHVyZVRyYWNrc011dGVkKGRvY3VtZW50LT5wYWdlKCktPmlzTWVkaWFDYXB0dXJlTXV0ZWQo
KSk7Ci19Ci0KIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbTo6bWVk
aWFTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gSXNOb3RQbGF5
aW5nOworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IE1lZGlhUHJv
ZHVjZXI6OklzTm90UGxheWluZzsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQo
KSB8fCAhZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CiAKLSAgICBi
b29sIHBhZ2VDYXB0dXJlTXV0ZWQgPSBkb2N1bWVudCgpLT5wYWdlKCktPmlzTWVkaWFDYXB0dXJl
TXV0ZWQoKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMo
KSkgewotICAgICAgICBpZiAoIXRyYWNrLT5pc0NhcHR1cmVUcmFjaygpIHx8IHRyYWNrLT5lbmRl
ZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgaWYgKHRyYWNrLT5zb3VyY2Uo
KS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKLSAgICAgICAg
ICAgIGlmICh0cmFjay0+c291cmNlKCkuaW50ZXJydXB0ZWQoKSAmJiAhcGFnZUNhcHR1cmVNdXRl
ZCkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURl
dmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHRyYWNrLT5tdXRlZCgpKQotICAgICAgICAgICAg
ICAgIHN0YXRlIHw9IEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgICAgICAgICAgZWxz
ZSBpZiAobV9pc1Byb2R1Y2luZ0RhdGEgJiYgbV9wcml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkg
ewotICAgICAgICAgICAgICAgIHN0YXRlIHw9IEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZTsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoIXRyYWNrLT5zb3VyY2UoKS5pbnRlcnJ1cHRlZCgpKTsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoIXRyYWNrLT5tdXRlZCgpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaW50ZXJy
dXB0ZWQoKSAmJiAhcGFnZUNhcHR1cmVNdXRlZCkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBI
YXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHRy
YWNrLT5tdXRlZCgpKQotICAgICAgICAgICAgICAgIHN0YXRlIHw9IEhhc011dGVkVmlkZW9DYXB0
dXJlRGV2aWNlOwotICAgICAgICAgICAgZWxzZSBpZiAobV9pc1Byb2R1Y2luZ0RhdGEgJiYgbV9w
cml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkgewotICAgICAgICAgICAgICAgIHN0YXRlIHw9IEhh
c0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIXRyYWNr
LT5zb3VyY2UoKS5pbnRlcnJ1cHRlZCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIXRyYWNr
LT5tdXRlZCgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgc3RhdGUgfD0g
dHJhY2stPm1lZGlhU3RhdGUoKTsKIAogICAgIHJldHVybiBzdGF0ZTsKIH0KQEAgLTM3OSwxMyAr
MzM5LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW06OnN0YXR1c0RpZENoYW5nZSgpCiAgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKG1faXNB
Y3RpdmUpCiAgICAgICAgICAgICBkb2N1bWVudC0+c2V0SGFzQWN0aXZlTWVkaWFTdHJlYW1UcmFj
aygpOwotICAgICAgICBkb2N1bWVudC0+dXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICAgICB9CiB9
CiAKIHZvaWQgTWVkaWFTdHJlYW06OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogewotICAgIE1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKKyAgICBhdXRvIHN0YXRlID0gbWVk
aWFTdGF0ZSgpOwogICAgIGlmIChtX3N0YXRlICE9IHN0YXRlKSB7CiAgICAgICAgIG1fc3RhdGUg
PSBzdGF0ZTsKICAgICAgICAgc3RhdHVzRGlkQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggODM2ZWI2M2E4M2U5Yzg5
YTczNzBlZDUzMGUyNjkxYTIzYTYyYmU0MC4uOTgzYmQ1MTNhYThhYTg3YmI5NzM4NWRiODc2YjRm
OTIzNjY1NWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaApAQCAtNTQsNyArNTQsNiBAQCBjbGFzcyBNZWRpYVN0cmVhbSBmaW5hbAog
ICAgICwgcHVibGljIEFjdGl2ZURPTU9iamVjdAogICAgICwgcHVibGljIE1lZGlhU3RyZWFtVHJh
Y2s6Ok9ic2VydmVyCiAgICAgLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgot
ICAgICwgcHJpdmF0ZSBNZWRpYVByb2R1Y2VyCiAgICAgLCBwcml2YXRlIE1lZGlhQ2FuU3RhcnRM
aXN0ZW5lcgogICAgICwgcHJpdmF0ZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudAogICAgICwg
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+IHsKQEAgLTEzNiw5ICsxMzUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBm
aW5hbDsKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSBmaW5hbDsKIAotICAgIC8v
IE1lZGlhUHJvZHVjZXIKLSAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgZmluYWw7
Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBm
aW5hbDsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNv
bnN0OwogCiAgICAgLy8gTWVkaWFDYW5TdGFydExpc3RlbmVyCiAgICAgdm9pZCBtZWRpYUNhblN0
YXJ0KERvY3VtZW50JikgZmluYWw7CkBAIC0xODAsNyArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBW
ZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1NZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogCi0gICAgTWVkaWFTdGF0ZUZsYWdzIG1f
c3RhdGUgeyBJc05vdFBsYXlpbmcgfTsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgbV9zdGF0ZSB7IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogCiAgICAgYm9vbCBt
X2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwCmluZGV4IDY5N2M2OTU3ZWQ0MGVmNTg2NDJjM2NhMDI2MDQ5M2Q0NDBh
NzI3NGQuLmQyMzA2OTQ0NTI0ODA4NDdkNTlmNzY5YmNlZmFhOGFhNmQxN2ZiZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiSlNPdmVyY29uc3RyYWluZWRFcnJvci5oIgpAQCAtMzgsNiAr
MzksNyBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC01MiwxNSArNTQsMjIgQEAgTWVkaWFTdHJlYW1U
cmFjazo6TWVkaWFTdHJlYW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBS
ZWY8TWVkaWFTdHIKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fcHJp
dmF0ZShXVEZNb3ZlKHByaXZhdGVUcmFjaykpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CisgICAgLCBtX3Rhc2tRdWV1ZShjb250ZXh0KQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwog
CiAgICAgbV9wcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisKKyAgICBpZiAoYXV0byBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRBdWRpb1Byb2R1
Y2VyKHRoaXMpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiB7
CiAgICAgbV9wcml2YXRlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisKKyAgICBpZiAoYXV0byBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5yZW1vdmVBdWRp
b1Byb2R1Y2VyKHRoaXMpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU3RyZWFtVHJh
Y2s6OmtpbmQoKSBjb25zdApAQCAtMjg1LDYgKzI5NCw1MyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJh
Y2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICBtX29ic2VydmVycy5y
ZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnBhZ2VN
dXRlZFN0YXRlRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV9lbmRlZCB8fCAhaXNDYXB0dXJlVHJh
Y2soKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3ByaXZhdGUtPnNldE11dGVkKGRvY3VtZW50LT5wYWdlKCkt
PmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSk7Cit9CisKK01lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlKCkgY29uc3QKK3sKKyAgICBpZiAobV9l
bmRlZCB8fCAhaXNDYXB0dXJlVHJhY2soKSkKKyAgICAgICAgcmV0dXJuIElzTm90UGxheWluZzsK
KworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFk
b2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIElzTm90UGxheWlu
ZzsKKworICAgIGJvb2wgcGFnZUNhcHR1cmVNdXRlZCA9IGRvY3VtZW50LT5wYWdlKCktPmlzTWVk
aWFDYXB0dXJlTXV0ZWQoKTsKKworICAgIGlmIChzb3VyY2UoKS50eXBlKCkgPT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKKyAgICAgICAgaWYgKHNvdXJjZSgpLmludGVycnVw
dGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gSGFzSW50ZXJy
dXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIGlmIChtdXRlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobV9wcml2
YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgICAgIHJldHVybiBIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNvdXJjZSgpLmludGVy
cnVwdGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gSGFzSW50
ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIGlmIChtdXRlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIEhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobV9w
cml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgICAgIHJldHVybiBIYXNBY3RpdmVW
aWRlb0NhcHR1cmVEZXZpY2U7CisgICAgfQorCisgICAgcmV0dXJuIElzTm90UGxheWluZzsKK30K
Kwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKQoreworICAgIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7Cit9CisKIHZvaWQgTWVk
aWFTdHJlYW1UcmFjazo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiB7CiAg
ICAgLy8gaHR0cDovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2xpZmUtY3ljbGUK
QEAgLTMzMiw2ICszODgsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNr
Ojpjb25maWd1cmVUcmFja1JlbmRlcmluZygpCiB7CisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRh
c2soW3RoaXNdIHsKKyAgICAgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
KQorICAgICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CisgICAgfSk7
CisKICAgICAvLyA0LjMuMQogICAgIC8vIC4uLiBtZWRpYSBmcm9tIHRoZSBzb3VyY2Ugb25seSBm
bG93cyB3aGVuIGEgTWVkaWFTdHJlYW1UcmFjayBvYmplY3QgaXMgYm90aCB1bm11dGVkIGFuZCBl
bmFibGVkCiB9CkBAIC0zMzksNiArNDAwLDcgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpjb25m
aWd1cmVUcmFja1JlbmRlcmluZygpCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnN0b3AoKQogewog
ICAgIHN0b3BUcmFjaygpOworICAgIG1fdGFza1F1ZXVlLmNsb3NlKCk7CiB9CiAKIGNvbnN0IGNo
YXIqIE1lZGlhU3RyZWFtVHJhY2s6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtMzYx
LDYgKzQyMywxMSBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBNZWRpYVN0cmVhbVRyYWNrOjphdWRp
b1NvdXJjZVByb3ZpZGVyKCkKICAgICByZXR1cm4gbV9wcml2YXRlLT5hdWRpb1NvdXJjZVByb3Zp
ZGVyKCk7CiB9CiAKK0RvY3VtZW50KiBNZWRpYVN0cmVhbVRyYWNrOjpkb2N1bWVudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suaAppbmRleCAzODcxNTUzMWQ2NzQ2MGUzY2M5YThhZmY2MDJhY2M1
MmNlMGU2NDRhLi5mOWMwZDFhYjkxNmZmNGIxODVkYWUxMjZkNmE3YzM3NWJkNTJkYzY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaApAQCAtMzIsMTggKzMyLDI2IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiRG91YmxlUmFuZ2UuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2lu
Y2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgogI2luY2x1ZGUgIkxvbmdSYW5nZS5oIgorI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhVHJh
Y2tDb25zdHJhaW50cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvU291
cmNlUHJvdmlkZXI7CitjbGFzcyBEb2N1bWVudDsKIAogc3RydWN0IE1lZGlhVHJhY2tDb25zdHJh
aW50czsKIAotY2xhc3MgTWVkaWFTdHJlYW1UcmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
U3RyZWFtVHJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIg
eworY2xhc3MgTWVkaWFTdHJlYW1UcmFjayA6CisgICAgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFT
dHJlYW1UcmFjaz4sCisgICAgcHVibGljIEFjdGl2ZURPTU9iamVjdCwKKyAgICBwdWJsaWMgRXZl
bnRUYXJnZXRXaXRoSW5saW5lRGF0YSwKKyAgICBwcml2YXRlIE1lZGlhUHJvZHVjZXIsCisgICAg
cHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgewogcHVibGljOgogICAg
IGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC0xMTAsMTEgKzExOCwxNSBAQCBwdWJs
aWM6CiAgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiBnZXRDb25zdHJhaW50cygpIGNv
bnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMo
Y29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3RyYWludHM+JiwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOwogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyBy
ZXR1cm4gbV9wcml2YXRlLT5zb3VyY2UoKTsgfQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KICAgICBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYgcHJpdmF0ZVRyYWNrKCkgeyByZXR1cm4gbV9wcml2YXRlLmdldCgp
OyB9CiAKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAK
KyAgICAvLyBNZWRpYVByb2R1Y2VyCisgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgp
IGZpbmFsOworICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CiAgICAgdm9p
ZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwogCkBAIC0xMzIsNiArMTQ0LDggQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKIAorICAgIERvY3VtZW50
KiBkb2N1bWVudCgpIGNvbnN0OworCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAgICB2
b2lkIHN0b3AoKSBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CkBAIC0xNDQsNiArMTU4LDcgQEAgcHJpdmF0ZToKICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIC8v
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tTdGFydGVk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCB0cmFja0VuZGVkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tTZXR0aW5n
c0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKQEAgLTE1Nyw2ICsxNzIs
NyBAQCBwcml2YXRlOgogICAgIE1lZGlhVHJhY2tDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwog
ICAgIHN0ZDo6b3B0aW9uYWw8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3Byb21pc2U7CiAg
ICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFTdHJlYW1UcmFjaz4gbV93ZWFrUHRyRmFjdG9yeTsKKyAg
ICBHZW5lcmljVGFza1F1ZXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fdGFza1F1ZXVlOwog
CiAgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5o
CmluZGV4IDBlNTFlYWJhOTM3NzRlNWVmNzFlNGI5OGIzODkxOGRhMDhjMGQ5MjAuLmMzY2Q5ODgw
MTUwNTFhMDEzZGUzM2ZiOTAxNmJjNjRiZjY4NWE5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5oCkBAIC0yMDEsNiArMjAxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlbW92ZVRyYWNr
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZWRpYVN0cmVh
bVByaXZhdGVUcmFjazo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFja011dGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIHRy
YWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAKaW5kZXggNGQwZTRlNjAyMjcxZDc0NDE2NDRkODM1YTI3OGI2
ZDk2NmE1MjQ2ZC4uYjI0ZTY0ZTExNWY3NzU3ZTAwMWI3ZGU4OWE5ZTMzYzY4ODdlMmVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Q
cml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCkBAIC0yODEsNiArMjgxLDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1Q
cml2YXRlOjp0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKICAg
ICB9KTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhcnRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsK
KyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworICAgIH0pOworfQorCiB2b2lkIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiB7
CiAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXgg
YTc5NzA0ZGQ4NWEzNTk4OTNmYjRjZmY1ODczOGE1NmFkOWExNmFjYi4uMjEyZGY5MDMxMDgzMGE1
MGVjMDAyMDgwYjI3ZGQyMTI0NDI2MWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTEyNSw2ICsx
MjUsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZVZlY3RvciYsIFN0cmluZyYmKTsKIAogICAgIC8vIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmNwcAppbmRleCBmNWI0ZTI5ZTlmYmU2MjZhNTg1NjZmOWIwODFlNWY2M2E4Y2FjZTRl
Li5lZTU0N2UzMmZkODYzY2RmMDI2ODlmY2RhNzk2ZTk0OTYzOGRmYjQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuY3BwCkBAIC0xNTEsNiArMTUxLDEyIEBAIEF1ZGlvU291cmNlUHJvdmlk
ZXIqIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKICAgICBy
ZXR1cm4gbV9zb3VyY2UtPmF1ZGlvU291cmNlUHJvdmlkZXIoKTsKIH0KIAordm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3RhcnRlZCgpCit7CisgICAgZm9yIChhdXRvJiBvYnNl
cnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+dHJhY2tTdGFydGVkKCp0aGlz
KTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3RvcHBlZCgpCiB7
CiAgICAgaWYgKG1faXNFbmRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCmluZGV4IGFlZDM3
OTE1OGQxYjdmMDVjY2M4YWZjYmM5Mjg1NzYwYTIzZTlhY2MuLjc3OTFjMTM0NTBiNDQxMjFiNjZl
YzI3YWU0ODFkOTE2YjMyMGM2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApAQCAtNDMs
NiArNDMsNyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5PYnNlcnZl
cigpIHsgfQogCisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tNdXRl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsK
QEAgLTEwMiw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
KFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmLCBTdHJpbmcmJiBpZCk7CiAKICAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlT2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsK
ICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hh
bmdlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNTc1ODYyOTRlYzBkMjAwODllZmFmNjJhNDc1NjI5NTI2
MjU0YzdiYS4uMDZjYjQ0MzU2OTcxY2IzZjYwYTVkODYwNzBiNTUyMzgxMjU2YzU3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE2Miw2ICsxNjIsOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0YXJ0KCkKIAogICAgIG1faXNQcm9kdWNpbmdEYXRhID0gdHJ1ZTsKICAgICBzdGFy
dFByb2R1Y2luZ0RhdGEoKTsKKworICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNl
cnZlcnMpCisgICAgICAgIG9ic2VydmVyLnNvdXJjZVN0YXJ0ZWQoKTsKIH0KIAogdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjpzdG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAxZGJjMDdkYjRm
ZmQ2YWJlZjVjN2NlZTc1YmU5YjdjMDZmNWIxN2JhLi4zYTYzMTA4NjgyMTU3MmFjOTg5NGYyNjNh
ZTA0MGM3NGE0YWRlYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC03MCw2ICs3MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KICAgICAgICAgCiAgICAgICAg
IC8vIFNvdXJjZSBzdGF0ZSBjaGFuZ2VzLgorICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3Rh
cnRlZCgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RvcHBlZCgpIHsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIHsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDViOGY3MjQxY2Y4ZWUwZjI0NzY0NGZhNGI1
ODNlYzc5NDZlYjNkYmUuLjE0M2UwZTY5NjgyM2Q4OTcxN2YwYTgyZWQ1NzMxYWQ3MDMyMTExMmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNy0wNi0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
KworICAgICAgICBbV2ViUlRDXSBSZW1vdmluZyBhIE1lZGlhU3RyZWFtVHJhY2sgZnJvbSBhIE1l
ZGlhU3RyZWFtIHJlcG9ydHMgbm8gcmVjb3JkaW5nIHRvIFdlYktpdCBjbGllbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzOTgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMyNTkyOTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbTogQWRkZWQuCisgICAgICAgICgtW01lZGlhU3Ry
ZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhv
cml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOl0pOgor
ICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3OmNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVy
OmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bTWVkaWFTdHJlYW1UcmFja0RldGFjaGVk
VUlEZWxlZ2F0ZSBfd2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTpdKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9tZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA2
LTEyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgdW5p
dCB0ZXN0cyBmb3IgU2VjdXJpdHlPcmlnaW46OklzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSgpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdjMjhkNDA3MzcxMTQ5MDkwZTg3Mzg4M2FjMTI1OTQy
MjgyYTZlMjMuLmVhNjA4N2JmNWU2NjdmNDM1NWQ4NTA3NGNmNThmNjU2NzVkN2MzMDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTksNiArNTk5LDggQEAKIAkJQ0RDOEU0OTUxQkM2RjEw
ODAwNTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhFNDhBMUJDNUM5NjIwMDU5NEZFQyAv
KiB2aWRlby13aXRoLWF1ZGlvLm1wNCAqLzsgfTsKIAkJQ0RDOEU0OTYxQkM2RjEwODAwNTk0RkVD
IC8qIHZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RTQ4QjFCQzVDOTYyMDA1OTRGRUMgLyogdmlk
ZW8td2l0aG91dC1hdWRpby5odG1sICovOyB9OwogCQlDREM4RTQ5NzFCQzZGMTA4MDA1OTRGRUMg
LyogdmlkZW8td2l0aG91dC1hdWRpby5tcDQgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEU0OEMxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVv
LXdpdGhvdXQtYXVkaW8ubXA0ICovOyB9OworCQlDREM5NDQyRTFFRjFGQzA4MDA1OUMzQzQgLyog
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RDOTQ0MkMxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbSAqLzsgfTsKKwkJQ0RDOTQ0MkYxRUYyMDVENjAwNTlDM0M0IC8qIG1l
ZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM5NDQyQjFFRjFGQkQyMDA1OUMzQzQgLyogbWVk
aWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sICovOyB9OwogCQlDRENGQTdBQTFFNDUxODMyMDBD
MjQzM0QgLyogU2FtcGxlTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQ0ZBN0E5MUU0NTEyMkYwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwICov
OyB9OwogCQlDREUxOTVCNTFDRkUwQjg4MDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJ
bnNldC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENERTE5NUIyMUNGRTBBREUwMDUzRDI1NiAvKiBGdWxsc2NyZWVuVG9wQ29udGVudElu
c2V0Lmh0bWwgKi87IH07CiAJCUNFMDZERjlCMUUxODUxRjIwMEU1NzBDOSAvKiBTZWN1cml0eU9y
aWdpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RTA2REY5QTFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovOyB9OwpAQCAt
NzA1LDYgKzcwNyw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJ
CQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCUNEQzk0NDJGMUVGMjA1
RDYwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJOTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9mZnNjcmVlbi1pZnJh
bWUtb2YtbWVkaWEtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDZB
MDk1QTFFRDhBNkU2MDBENEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0NkEwOTVCMUVEOEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1MTYsNiArMTUxOSw4IEBACiAJCUNEQzhFNDhBMUJD
NUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRoLWF1ZGlvLm1wNCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAidmlkZW8td2l0aC1h
dWRpby5tcDQiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4RTQ4QjFCQzVDOTYy
MDA1OTRGRUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gInZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1ZGlv
Lm1wNCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZp
bGU7IHBhdGggPSAidmlkZW8td2l0aG91dC1hdWRpby5tcDQiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREM5NDQyQjFFRjFGQkQyMDA1OUMzQzQgLyogbWVkaWFzdHJlYW10cmFjay1k
ZXRhY2hlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzk0NDJDMUVGMUZDMDgwMDU5QzNDNCAv
KiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
Q0ZBN0E5MUU0NTEyMkYwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RFMTk1QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50
SW5zZXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEZ1bGxzY3JlZW5Ub3BDb250
ZW50SW5zZXQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFMTk1QjMxQ0ZF
MEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MSw2ICsyMTU2LDcgQEAKIAkJCQkz
M0RDODkxMDE0MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENh
bGxiYWNrLmNwcCAqLywKIAkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNl
bGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8sCiAJCQkJOEFBMjhDMTkx
NkQyRkE3QjAwMkZGNERCIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8sCisJCQkJQ0RDOTQ0MkMx
RUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSAqLywKIAkJCQk3
QTU2MjMxMDFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3BwICov
LAogCQkJCTUxQ0I0QUQ3MUIzQTA3OUMwMEMxQjFDNiAvKiBNb2RhbEFsZXJ0c1NQSS5jcHAgKi8s
CiAJCQkJMzNCRTVBRjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3Bw
ICovLApAQCAtMjMzNCw2ICsyMzQwLDcgQEAKIAkJCQk5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYg
LyogbG90cy1vZi10ZXh0Lmh0bWwgKi8sCiAJCQkJNTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEwIC8q
IG5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi8sCiAJCQkJQUQ1N0FDMUQx
REE3NDYzODAwRkYxQkRFIC8qIG1hbnktaWZyYW1lcy5odG1sICovLAorCQkJCUNEQzk0NDJCMUVG
MUZCRDIwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwgKi8sCiAJCQkJ
NTFDRDFDNzExQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFsLWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxh
bmstd2luZG93Lmh0bWwgKi8sCiAJCQkJN0ExNDU4RkIxQUQ1QzAzNTAwRTA2NzcyIC8qIG1vdXNl
LWJ1dHRvbi1saXN0ZW5lci5odG1sICovLAogCQkJCTMzRTc5RTA1MTM3QjVGQ0UwMEUzMkQ5OSAv
KiBtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwgKi8sCkBAIC0yODk0LDYgKzI5MDEsNyBAQAogCQkJ
CTUxRDEyNDlCMUU3ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25G
aWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RDOTQ0MkUxRUYxRkMwODAw
NTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMjkxQTQxMUIxMDAwNDQ3QzRDIC8qIEN1c3RvbVByb3RvY29sc0ludmFsaWRT
Y2hlbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyQTFBNDExQjEwMDA0NDdDNEMgLyog
Q3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVkaWFTdHJlYW1UcmFj
a0RldGFjaGVkLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5Mzg0ZGQ4ODA4MmNhNTljYjQ5Yzk1ZDcxOWVkNGI0
ZTY3MjlkODUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oPgorCitzdGF0aWMgYm9vbCBoYXNSZWNpZXZlZENvcnJlY3RDYXB0
dXJlU3RhdGUgPSBmYWxzZTsKKworQGludGVyZmFjZSBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRV
SURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6
KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIp
ZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQs
IEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0
dXJlU3RhdGUpc3RhdGU7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBNZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWRVSURlbGVnYXRlCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJh
bWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOworfQorCistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCit7Cisg
ICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBZRVMpOworfQorLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dL
TWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKK3sKKyAgICBpZiAoc3RhdGUgPT0gX1dLTWVkaWFDYXB0
dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKQorICAgICAgICBoYXNSZWNpZXZlZENvcnJlY3RDYXB0
dXJlU3RhdGUgPSB0cnVlOworfQorQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K1RFU1QoV2ViS2l0MiwgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkKQoreworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVS
ZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFEZXZp
Y2VzRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnBy
b2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tN
ZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgd2Vi
Vmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAgICBoYXNSZWNpZXZl
ZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAIm1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQiXTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlKTsKKworCit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRp
YXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYzE2OTIy
YjA2MDNhYWY0NWVlODI2MTkxNjNjODJkZTNiM2NlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+Cit2YXIgYXVkaW9UcmFjazsKKworZnVuY3Rpb24gZ28oKSB7CisgICAgdmFyIGNvbnN0
cmFpbnRzID0geyBhdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworICAgIG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKS50aGVuKGdvdFVzZXJNZWRpYSk7Cit9
CisKK2Z1bmN0aW9uIGdvdFVzZXJNZWRpYShzdHJlYW0pIHsKKyAgICBhdWRpb1RyYWNrID0gc3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgc3RyZWFtLnJlbW92ZVRyYWNrKGF1ZGlvVHJh
Y2spOworCisgICAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4geyB0cmFjay5z
dG9wKCk7IH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImdvKCkiPgor
ICAgIDxkaXY+VGhpcyB0ZXN0cyB0aGUgYmVoYXZpb3Igb2YgdGhlIG1lZGlhIGNhcHR1cmUgaW5k
aWNhdG9yIHdoZW4gYSBsaXZlIE1lZGlhU3RyZWFtVHJhY2sgaXMgcmVtb3ZlZCBmcm9tIGEgTWVk
aWFTdHJlYW0sIGFuZCBhbGwgdGhlIG90aGVyIHRyYWNrcyBhcmUgc3RvcHBlZC4gVGhlIHBhZ2Ug
c2hvdWxkIHJlcXVlc3QgYWNjZXNzIHRvIHRoZSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUsIGFuZCB0
aGVuIGRpc3BsYXkgYSBhdWRpby1jYXB0dXJlIGljb24uIElmIHRoZSBwYWdlIGRpc3BsYXlzIGEg
Y2FtZXJhIGljb24gb3Igbm8gY2FwdHVyZSBpY29uIGF0IGFsbCwgdGhlIHRlc3QgaGFzIGZhaWxl
ZC48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312987</attachid>
            <date>2017-06-15 09:35:54 -0700</date>
            <delta_ts>2017-06-15 10:03:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173398-20170615093553.patch</filename>
            <type>text/plain</type>
            <size>32535</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJmYTliZmQxZDgwOGM4
YjQwMDcwMjEzMzI4ZTMxNmFmNzYyODBmYi4uOWZiNTllNDU4YzEyMzY2ZWMzOTU1M2Q5YmNhZWUy
NmFlYTNmMmEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE3LTA2LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtXZWJSVENdIFJlbW92aW5n
IGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRp
bmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFQSSBUZXN0OiBU
ZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorCisgICAgICAgIE1vdmUg
dGhlIGRlZmluaXRpb24gb2YgYSBNZWRpYVN0cmVhbSBhcyBhIE1lZGlhUHJvZHVjZXIgZnJvbSB0
aGUgc3RyZWFtIGl0c2VsZiB0byBpdHMgY29uc3RpdHVlbnQKKyAgICAgICAgTWVkaWFTdHJlYW1U
cmFja3MuIFRoaXMgZW5zdXJlcyB0aGF0LCBldmVuIGlmIGEgTWVkaWFTdHJlYW1UcmFjayBpcyBy
ZW1vdmVkIGZyb20gaXRzIHN0cmVhbSwgdGhlCisgICAgICAgIGRvY3VtZW50IChhbmQgdGh1cyB0
aGUgY2xpZW50cykgYXJlIG5vdGlmaWVkIHRoYXQgbWVkaWEgY2FwdHVyZSBpcyBzdGlsbCBvY2N1
cnJpbmcuCisKKyAgICAgICAgVGhvdWdoIE1lZGlhU3RyZWFtIGlzIG5vIGxvbmdlciBhIE1lZGlh
UHJvZHVjZXIsIGl0IHN0aWxsIHVzZXMgdGhlIE1lZGlhUHJvZHVjZXIncyBzdGF0ZSBjb25jZXB0
CisgICAgICAgIHRvIGRldGVybWluZSB3aGVuIHRvIGZpcmUgZXZlbnRzLiBIb3dldmVyIGl0J3Mg
bWVkaWFTdGF0ZSgpIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgbW92ZWQgaW50bworICAgICAgICBN
ZWRpYVN0cmVhbVRyYWNrLCBhbmQgd2lsbCBpbnN0ZWFkIHNpbXBseSBiaXR3aXNlLW9yIHRvZ2V0
aGVyIGVhY2ggb2YgaXQncyB0cmFjaydzIG1lZGlhU3RhdGUoKS4KKworICAgICAgICBUaGUgTWVk
aWFTdHJlYW0gbm90aWZpZXMgdGhlIGRvY3VtZW50IHRoYXQgaXRzIHN0YXRlIGhhcyBjaGFuZ2Vk
IGFzeW5jaHJvbm91c2x5LCBzbyBkbyB0aGUgc2FtZQorICAgICAgICBmb3IgTWVkaWFTdHJlYW1U
cmFjayAod2hpY2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoZSBjbGllbnQgd2hl
biBjaGFuZ2VzIGFsbCBvY2N1cgorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcnVuIGxvb3ApLgor
CisgICAgICAgIEJlY2F1c2UgdGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIG1heSBiZSBzdGFy
dGVkIGV4dGVybmFsbHkgKG5vdCBieSB0aGUgTWVkaWFTdHJlYW1UcmFjayBkaXJlY3RseSksCisg
ICAgICAgIGFkZCBhIG5ldyBjbGllbnQgbWV0aG9kIHRoYXQgbm90aWZpZXMgb2JzZXJ2ZXJzIHdo
ZW4gdGhlIHRyYWNrIGhhcyBiZWVuIHN0YXJ0ZWQsIGFuZCB0aGUKKyAgICAgICAgTWVkaWFTdHJl
YW1UcmFjayB3aWxsIHVzZSB0aGlzIG5vdGlmaWNhdGlvbiB0byB1cGRhdGUgdGhlIGRvY3VtZW50
IHdpdGggaXQncyBuZXcgbWVkaWFTdGF0ZSgpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVk
aWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZG9jdW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6c291cmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja1N0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKworMjAxNy0wNi0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKwogICAgICAgICBWaWRlbyBmbGFzaGVzIGJsYWNrIHdoZW4gc3dpdGNoaW5nIGJhY2sg
dG8gYSB0YWIgaHR0cHM6Ly93d3cuYXBwbGUuY29tL2hvbWVwb2QvCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNzcKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAzNjQ5YmMw
ODk0YWYwNzlkZTFiYjA2ZWUwOWNmMzY2NTEwMjRiMzQ3Li45OTUzNGYxYmY3OTYwNTk5YmU3YzAw
NWRiNzgxOWIzZmMxNzU3NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtOTAsNyArOTAsNiBAQCBNZWRpYVN0cmVhbTo6
TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFT
dHJlYW1UcmFjawogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZlKCkpOwogICAgIG1f
cHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnNo
YXJlZCgpLnJlZ2lzdGVyU3RyZWFtKCp0aGlzKTsKLSAgICBkb2N1bWVudCgpLT5hZGRBdWRpb1By
b2R1Y2VyKHRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBAIC0xMTEsNyArMTEw
LDYgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFJlZjxNZWRpYVN0cmVhbVByaXZhdGUKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVy
KCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQodHJhY2stPmlkKCksIFdURk1vdmUodHJh
Y2spKTsKICAgICB9Ci0gICAgZG9jdW1lbnQoKS0+YWRkQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIApAQCAtMTI1LDcgKzEyMyw2IEBAIE1lZGlhU3RyZWFt
Ojp+TWVkaWFTdHJlYW0oKQogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVl
cygpKQogICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5y
ZW1vdmVBdWRpb1Byb2R1Y2VyKHRoaXMpOwogICAgICAgICBpZiAobV9pc1dhaXRpbmdVbnRpbE1l
ZGlhQ2FuU3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTWVkaWFDYW5TdGFydExp
c3RlbmVyKHRoaXMpOwogICAgIH0KQEAgLTMyMiw1MiArMzE5LDE1IEBAIHZvaWQgTWVkaWFTdHJl
YW06OmVuZENhcHR1cmVUcmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVN0cmVhbTo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQotewotICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAg
ICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3ByaXZhdGUtPnNldENh
cHR1cmVUcmFja3NNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11dGVkKCkp
OwotfQotCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW06Om1lZGlh
U3RhdGUoKSBjb25zdAogewotICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IElzTm90UGxheWlu
ZzsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRpYVByb2R1
Y2VyOjpJc05vdFBsYXlpbmc7CiAKICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWRvY3VtZW50KCkg
fHwgIWRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogCi0gICAgYm9v
bCBwYWdlQ2FwdHVyZU11dGVkID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11
dGVkKCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKCF0cmFjay0+aXNDYXB0dXJlVHJhY2soKSB8fCB0cmFjay0+ZW5kZWQo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICh0cmFjay0+c291cmNlKCku
dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAg
ICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVwdGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQp
Ci0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFjay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAg
ICBzdGF0ZSB8PSBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsK
LSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVw
dGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCi0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFz
SW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFj
ay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChjb25z
dCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHN0YXRlIHw9IHRy
YWNrLT5tZWRpYVN0YXRlKCk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CkBAIC0zNzksMTMgKzMz
OSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzdGF0dXNEaWRDaGFuZ2UoKQogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChtX2lzQWN0
aXZlKQogICAgICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0FjdGl2ZU1lZGlhU3RyZWFtVHJhY2so
KTsKLSAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiAgICAgfQogfQog
CiB2b2lkIE1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAgYXV0byBzdGF0ZSA9IG1lZGlh
U3RhdGUoKTsKICAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewogICAgICAgICBtX3N0YXRlID0g
c3RhdGU7CiAgICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDgzNmViNjNhODNlOWM4OWE3
MzcwZWQ1MzBlMjY5MWEyM2E2MmJlNDAuLjk4M2JkNTEzYWE4YWE4N2JiOTczODVkYjg3NmI0Zjky
MzY2NTVmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKQEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwKICAg
ICAsIHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNr
OjpPYnNlcnZlcgogICAgICwgcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAg
ICAsIHByaXZhdGUgTWVkaWFQcm9kdWNlcgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIKICAgICAsIHByaXZhdGUgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQKICAgICAsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiB7CkBAIC0xMzYsOSArMTM1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICAvLyBN
ZWRpYVByb2R1Y2VyCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwot
ICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmlu
YWw7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25z
dDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFy
dChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
TWVkaWFTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKIAotICAgIE1lZGlhU3RhdGVGbGFncyBtX3N0
YXRlIHsgSXNOb3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1fc3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKIAogICAgIGJvb2wgbV9p
c0FjdGl2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAppbmRleCA2OTdjNjk1N2VkNDBlZjU4NjQyYzNjYTAyNjA0OTNkNDQwYTcy
NzRkLi5kMjMwNjk0NDUyNDgwODQ3ZDU5Zjc2OWJjZWZhYThhYTZkMTdmYmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKQEAgLTM4LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk92ZXJjb25zdHJhaW5lZEVycm9yLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTIsMTUgKzU0LDIyIEBAIE1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVm
PE1lZGlhU3RyCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3ByaXZh
dGUoV1RGTW92ZShwcml2YXRlVHJhY2spKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQor
ICAgICwgbV90YXNrUXVldWUoY29udGV4dCkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAog
ICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkQXVkaW9Qcm9kdWNl
cih0aGlzKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQogewog
ICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Q
cm9kdWNlcih0aGlzKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNr
OjpraW5kKCkgY29uc3QKQEAgLTI4NSw2ICsyOTQsNTMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNr
OjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgbV9vYnNlcnZlcnMucmVt
b3ZlRmlyc3QoJm9ic2VydmVyKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpwYWdlTXV0
ZWRTdGF0ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fZW5kZWQgfHwgIWlzQ2FwdHVyZVRyYWNr
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlLT5zZXRNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5p
c01lZGlhQ2FwdHVyZU11dGVkKCkpOworfQorCitNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fZW5k
ZWQgfHwgIWlzQ2FwdHVyZVRyYWNrKCkpCisgICAgICAgIHJldHVybiBJc05vdFBsYXlpbmc7CisK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBJc05vdFBsYXlpbmc7
CisKKyAgICBib29sIHBhZ2VDYXB0dXJlTXV0ZWQgPSBkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlh
Q2FwdHVyZU11dGVkKCk7CisKKyAgICBpZiAoc291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7CisgICAgICAgIGlmIChzb3VyY2UoKS5pbnRlcnJ1cHRl
ZCgpICYmICFwYWdlQ2FwdHVyZU11dGVkKQorICAgICAgICAgICAgcmV0dXJuIEhhc0ludGVycnVw
dGVkQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAgICAg
IHJldHVybiBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG1fcHJpdmF0
ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gSGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzb3VyY2UoKS5pbnRlcnJ1
cHRlZCgpICYmICFwYWdlQ2FwdHVyZU11dGVkKQorICAgICAgICAgICAgcmV0dXJuIEhhc0ludGVy
cnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gSGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOworICAgIH0KKworICAgIHJldHVybiBJc05vdFBsYXlpbmc7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOworfQorCiB2b2lkIE1lZGlh
U3RyZWFtVHJhY2s6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewogICAg
IC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLyNsaWZlLWN5Y2xlCkBA
IC0zMzIsNiArMzg4LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tFbmFibGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKQogeworICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzXSB7CisgICAgICAgIGlmIChhdXRvIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgICAgIGRvY3VtZW50LT51cGRhdGVJc1BsYXlpbmdNZWRpYSgpOworICAgIH0pOwor
CiAgICAgLy8gNC4zLjEKICAgICAvLyAuLi4gbWVkaWEgZnJvbSB0aGUgc291cmNlIG9ubHkgZmxv
d3Mgd2hlbiBhIE1lZGlhU3RyZWFtVHJhY2sgb2JqZWN0IGlzIGJvdGggdW5tdXRlZCBhbmQgZW5h
YmxlZAogfQpAQCAtMzM5LDYgKzQwMCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6Y29uZmln
dXJlVHJhY2tSZW5kZXJpbmcoKQogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKCkKIHsKICAg
ICBzdG9wVHJhY2soKTsKKyAgICBtX3Rhc2tRdWV1ZS5jbG9zZSgpOwogfQogCiBjb25zdCBjaGFy
KiBNZWRpYVN0cmVhbVRyYWNrOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTM2MSw2
ICs0MjMsMTEgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFTdHJlYW1UcmFjazo6YXVkaW9T
b3VyY2VQcm92aWRlcigpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW9Tb3VyY2VQcm92aWRl
cigpOwogfQogCitEb2N1bWVudCogTWVkaWFTdHJlYW1UcmFjazo6ZG9jdW1lbnQoKSBjb25zdAor
eworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggMzg3MTU1MzFkNjc0NjBlM2NjOWE4YWZmNjAyYWNjNTJj
ZTBlNjQ0YS4uZjljMGQxYWI5MTZmZjRiMTg1ZGFlMTI2ZDZhN2MzNzViZDUyZGM2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmgKQEAgLTMyLDE4ICszMiwyNiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkRvdWJsZVJhbmdlLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJMb25nUmFuZ2UuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVRyYWNr
Q29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1NvdXJj
ZVByb3ZpZGVyOworY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWlu
dHM7CiAKLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0
cmVhbVRyYWNrPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsK
K2NsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOgorICAgIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3Ry
ZWFtVHJhY2s+LAorICAgIHB1YmxpYyBBY3RpdmVET01PYmplY3QsCisgICAgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsCisgICAgcHJpdmF0ZSBNZWRpYVByb2R1Y2VyLAorICAgIHBy
aXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBj
bGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMTEwLDExICsxMTgsMTUgQEAgcHVibGlj
OgogICAgIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYgZ2V0Q29uc3RyYWludHMoKSBjb25z
dCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8TWVkaWFUcmFja0NvbnN0cmFpbnRzPiYsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUtPnNvdXJjZSgpOyB9CiAgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHByaXZhdGVUcmFjaygpIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsg
fQogCiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpOwogCisg
ICAgLy8gTWVkaWFQcm9kdWNlcgorICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSBm
aW5hbDsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNv
bnN0IGZpbmFsOworCiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQg
cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAtMTMyLDYgKzE0NCw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CiAKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdDsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQ0LDYgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICAvLyBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3ND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CkBAIC0xNTcsNiArMTcyLDcg
QEAgcHJpdmF0ZToKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKICAg
ICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wcm9taXNlOwogICAg
IFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtVHJhY2s+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAg
R2VuZXJpY1Rhc2tRdWV1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3Rhc2tRdWV1ZTsKIAog
ICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApp
bmRleCAwZTUxZWFiYTkzNzc0ZTVlZjcxZTRiOThiMzg5MThkYTA4YzBkOTIwLi5jM2NkOTg4MDE1
MDUxYTAxM2RlMzNmYjkwMTZiYzY0YmY2ODVhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aApAQCAtMjAxLDYgKzIwMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVUcmFjayhN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVkaWFTdHJlYW1Q
cml2YXRlVHJhY2s6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFj
a1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IDRkMGU0ZTYwMjI3MWQ3NDQxNjQ0ZDgzNWEyNzhiNmQ5
NjZhNTI0NmQuLmIyNGU2NGUxMTVmNzc1N2UwMDFiN2RlODlhOWUzM2M2ODg3ZTJlYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmNwcApAQCAtMjgxLDYgKzI4MSwxMyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJp
dmF0ZTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAgICAg
fSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1N0YXJ0ZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7Cisg
ICAgICAgIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwogdm9pZCBNZWRp
YVN0cmVhbVByaXZhdGU6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewog
ICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IGE3
OTcwNGRkODVhMzU5ODkzZmI0Y2ZmNTg3MzhhNTZhZDlhMTZhY2IuLjIxMmRmOTAzMTA4MzBhNTBl
YzAwMjA4MGIyN2RkMjEyNDQyNjFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0xMjUsNiArMTI1
LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVWZWN0b3ImLCBTdHJpbmcmJik7CiAKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5jcHAKaW5kZXggZjViNGUyOWU5ZmJlNjI2YTU4NTY2ZjliMDgxZTVmNjNhOGNhY2U0ZS4u
ZWU1NDdlMzJmZDg2M2NkZjAyNjg5ZmNkYTc5NmU5NDk2MzhkZmI0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmNwcApAQCAtMTUxLDYgKzE1MSwxMiBAQCBBdWRpb1NvdXJjZVByb3ZpZGVy
KiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcigpCiAgICAgcmV0
dXJuIG1fc291cmNlLT5hdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0YXJ0ZWQoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnRyYWNrU3RhcnRlZCgqdGhpcyk7
Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0b3BwZWQoKQogewog
ICAgIGlmIChtX2lzRW5kZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBhZWQzNzkx
NThkMWI3ZjA1Y2NjOGFmY2JjOTI4NTc2MGEyM2U5YWNjLi43NzkxYzEzNDUwYjQ0MTIxYjY2ZWMy
N2FlNDgxZDkxNmIzMjBjNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTQzLDYg
KzQzLDcgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIo
KSB7IH0KIAorICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CkBA
IC0xMDIsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwogCiAgICAgLy8gUmVhbHRp
bWVNZWRpYVNvdXJjZU9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmluYWw7CiAg
ICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5n
ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCmluZGV4IDU3NTg2Mjk0ZWMwZDIwMDg5ZWZhZjYyYTQ3NTYyOTUyNjI1
NGM3YmEuLjA2Y2I0NDM1Njk3MWNiM2Y2MGE1ZDg2MDcwYjU1MjM4MTI1NmM1NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC0xNjIsNiArMTYyLDkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjpzdGFydCgpCiAKICAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CiAgICAgc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7CisKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQorICAgICAgICBvYnNlcnZlci5zb3VyY2VTdGFydGVkKCk7CiB9CiAKIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWRiYzA3ZGI0ZmZk
NmFiZWY1YzdjZWU3NWJlOWI3YzA2ZjViMTdiYS4uM2E2MzEwODY4MjE1NzJhYzk4OTRmMjYzYWUw
NDBjNzRhNGFkZWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAgICAgICAgIAogICAgICAgICAv
LyBTb3VyY2Ugc3RhdGUgY2hhbmdlcy4KKyAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0YXJ0
ZWQoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0b3BwZWQoKSB7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSB7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTBhYTM1NGVkYTQxNTgwZTRkZjY4Mzg5OWM4
YjQxNDUxYTBiZmU0Li4xMTllY2I2ODlkZGRkMWQ5MGVkMzVjMzJjYTY4MjgyY2IwZWI5MmJjIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTctMDYtMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYlJUQ10gUmVtb3ZpbmcgYSBNZWRpYVN0cmVhbVRyYWNrIGZyb20gYSBNZWRp
YVN0cmVhbSByZXBvcnRzIG5vIHJlY29yZGluZyB0byBXZWJLaXQgY2xpZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzk4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMjU5Mjk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAg
ICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURl
bGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL21lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbDogQWRkZWQuCisKIDIwMTctMDYtMTUg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBBUEkgdG8gYWxsb3cgb3ZlcnJpZGluZyBwb3B1cCBtZW51cwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkY2I2NjkzNTNiMWIxM2YwNDc3M2YxZDQxYmY4NWE1OGQ2ZWU0MWUwLi4z
YWZlN2EyNjRhNjI5NmMxODZkOTFhYjMwZWI0MmQ3YmExMzFlYTQxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjAxLDYgKzYwMSw4IEBACiAJCUNEQzhFNDk1MUJDNkYxMDgwMDU5NEZFQyAv
KiB2aWRlby13aXRoLWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RTQ4QTFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0
aC1hdWRpby5tcDQgKi87IH07CiAJCUNEQzhFNDk2MUJDNkYxMDgwMDU5NEZFQyAvKiB2aWRlby13
aXRob3V0LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDOEU0OEIxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQt
YXVkaW8uaHRtbCAqLzsgfTsKIAkJQ0RDOEU0OTcxQkM2RjEwODAwNTk0RkVDIC8qIHZpZGVvLXdp
dGhvdXQtYXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1
ZGlvLm1wNCAqLzsgfTsKKwkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQzk0NDJDMUVGMUZDMDgwMDU5QzNDNCAvKiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWQubW0gKi87IH07CisJCUNEQzk0NDJGMUVGMjA1RDYwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDOTQ0MkIxRUYxRkJEMjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJh
Y2stZGV0YWNoZWQuaHRtbCAqLzsgfTsKIAkJQ0RDRkE3QUExRTQ1MTgzMjAwQzI0MzNEIC8qIFNh
bXBsZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCAqLzsgfTsKIAkJQ0RF
MTk1QjUxQ0ZFMEI4ODAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREUx
OTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1sICov
OyB9OwogCQlDRTA2REY5QjFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwNkRGOUExRTE4
NTFGMjAwRTU3MEM5IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLzsgfTsKQEAgLTcwOSw2ICs3MTEs
NyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9s
ZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMzQzQg
LyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9m
ZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlGNDZBMDk1QTFFRDhBNkU2MDBENEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVz
b3VyY2VzICovLApAQCAtMTUyMyw2ICsxNTI2LDggQEAKIAkJQ0RDOEU0OEExQkM1Qzk2MjAwNTk0
RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8ubXA0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJ2aWRlby13aXRoLWF1ZGlvLm1wNCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhFNDhCMUJDNUM5NjIwMDU5NEZFQyAv
KiB2aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
dmlkZW8td2l0aG91dC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDOEU0OEMxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQtYXVkaW8ubXA0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9
ICJ2aWRlby13aXRob3V0LWF1ZGlvLm1wNCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQzk0NDJCMUVGMUZCRDIwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAibWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDOTQ0MkMxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3Ry
ZWFtVHJhY2tEZXRhY2hlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRkE3QTkxRTQ1
MTIyRjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTYW1wbGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REUxOTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5o
dG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREUxOTVCMzFDRkUwQURFMDA1M0Qy
NTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTYzLDYgKzIxNjgsNyBAQAogCQkJCTMzREM4OTEwMTQx
OTUzQTMwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3Bw
ICovLAogCQkJCTMzREM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCAqLywKIAkJCQk4QUEyOEMxOTE2RDJGQTdCMDAy
RkY0REIgLyogTG9hZFBhZ2VPbkNyYXNoLmNwcCAqLywKKwkJCQlDREM5NDQyQzFFRjFGQzA4MDA1
OUMzQzQgLyogTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tICovLAogCQkJCTdBNTYyMzEwMUFE
NUFGM0UwMDk2QjkyMCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5jcHAgKi8sCiAJCQkJNTFD
QjRBRDcxQjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJLmNwcCAqLywKIAkJCQkzM0JF
NUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgKi8sCkBAIC0y
MzQ3LDYgKzIzNTMsNyBAQAogCQkJCTkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9m
LXRleHQuaHRtbCAqLywKIAkJCQk1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlv
bi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLywKIAkJCQlBRDU3QUMxRDFEQTc0NjM4MDBG
RjFCREUgLyogbWFueS1pZnJhbWVzLmh0bWwgKi8sCisJCQkJQ0RDOTQ0MkIxRUYxRkJEMjAwNTlD
M0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCAqLywKIAkJCQk1MUNEMUM3MTFC
MzhENDg0MDAxNDJDQTUgLyogbW9kYWwtYWxlcnRzLWluLW5ldy1hYm91dC1ibGFuay13aW5kb3cu
aHRtbCAqLywKIAkJCQk3QTE0NThGQjFBRDVDMDM1MDBFMDY3NzIgLyogbW91c2UtYnV0dG9uLWxp
c3RlbmVyLmh0bWwgKi8sCiAJCQkJMzNFNzlFMDUxMzdCNUZDRTAwRTMyRDk5IC8qIG1vdXNlLW1v
dmUtbGlzdGVuZXIuaHRtbCAqLywKQEAgLTI5MDcsNiArMjkxNCw3IEBACiAJCQkJNTFEMTI0OUIx
RTc4NTQyNTAwMkIyODIwIC8qIENvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdFQUMxQTQxMUEzNDAwNDQ3QzRDIC8qIENvdW50ZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdBRUFENDdGMUUyMDExNkMwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVB
Y2Nlc3MubW0gaW4gU291cmNlcyAqLywKKwkJCQlDREM5NDQyRTFFRjFGQzA4MDA1OUMzQzQgLyog
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIx
QTQxMUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0YyOTFBNDExQjEwMDA0NDdDNEMgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJBMUE0MTFCMTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90
b2NvbHNTeW5jWEhSVGVzdC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjkzODRkZDg4MDgyY2E1OWNiNDljOTVkNzE5ZWQ0YjRlNjcyOWQ4NQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RXS1dl
YlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmg+CisKK3N0YXRpYyBib29sIGhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9
IGZhbHNlOworCitAaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUg
OiBOU09iamVjdDxXS1VJRGVsZWdhdGU+CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50
aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlz
dGF0ZTsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJ
RGVsZWdhdGUKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2Vz
IHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCit7
CisgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVy
bCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNV
SW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lv
bkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIFlFUyk7Cit9CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1
cmVTdGF0ZSlzdGF0ZQoreworICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFj
dGl2ZU1pY3JvcGhvbmUpCisgICAgICAgIGhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9
IHRydWU7Cit9CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJL
aXQyLCBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tZWRpYURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW01lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJWaWV3LmdldCgp
LlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKworICAgIGhhc1JlY2lldmVkQ29ycmVjdENh
cHR1cmVTdGF0ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibWVk
aWFzdHJlYW10cmFjay1kZXRhY2hlZCJdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZoYXNSZWNpZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUpOworCisKK30KKworfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21lZGlhc3RyZWFtdHJh
Y2stZGV0YWNoZWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRp
YXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JjMTY5MjJiMDYwM2FhZjQ1
ZWU4MjYxOTE2M2M4MmRlM2IzY2VjOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwKQEAgLTAs
MCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3Zh
ciBhdWRpb1RyYWNrOworCitmdW5jdGlvbiBnbygpIHsKKyAgICB2YXIgY29uc3RyYWludHMgPSB7
IGF1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CisgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoY29uc3RyYWludHMpLnRoZW4oZ290VXNlck1lZGlhKTsKK30KKworZnVuY3Rp
b24gZ290VXNlck1lZGlhKHN0cmVhbSkgeworICAgIGF1ZGlvVHJhY2sgPSBzdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKVswXTsKKyAgICBzdHJlYW0ucmVtb3ZlVHJhY2soYXVkaW9UcmFjayk7CisKKyAg
ICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB7IHRyYWNrLnN0b3AoKTsgfSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZ28oKSI+CisgICAgPGRpdj5U
aGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiB0aGUgbWVkaWEgY2FwdHVyZSBpbmRpY2F0b3Igd2hl
biBhIGxpdmUgTWVkaWFTdHJlYW1UcmFjayBpcyByZW1vdmVkIGZyb20gYSBNZWRpYVN0cmVhbSwg
YW5kIGFsbCB0aGUgb3RoZXIgdHJhY2tzIGFyZSBzdG9wcGVkLiBUaGUgcGFnZSBzaG91bGQgcmVx
dWVzdCBhY2Nlc3MgdG8gdGhlIGNhbWVyYSBhbmQgbWljcm9waG9uZSwgYW5kIHRoZW4gZGlzcGxh
eSBhIGF1ZGlvLWNhcHR1cmUgaWNvbi4gSWYgdGhlIHBhZ2UgZGlzcGxheXMgYSBjYW1lcmEgaWNv
biBvciBubyBjYXB0dXJlIGljb24gYXQgYWxsLCB0aGUgdGVzdCBoYXMgZmFpbGVkLjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312988</attachid>
            <date>2017-06-15 10:03:50 -0700</date>
            <delta_ts>2017-06-15 14:20:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173398-20170615100349.patch</filename>
            <type>text/plain</type>
            <size>32535</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJmYTliZmQxZDgwOGM4
YjQwMDcwMjEzMzI4ZTMxNmFmNzYyODBmYi4uOWZiNTllNDU4YzEyMzY2ZWMzOTU1M2Q5YmNhZWUy
NmFlYTNmMmEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE3LTA2LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtXZWJSVENdIFJlbW92aW5n
IGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRp
bmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFQSSBUZXN0OiBU
ZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorCisgICAgICAgIE1vdmUg
dGhlIGRlZmluaXRpb24gb2YgYSBNZWRpYVN0cmVhbSBhcyBhIE1lZGlhUHJvZHVjZXIgZnJvbSB0
aGUgc3RyZWFtIGl0c2VsZiB0byBpdHMgY29uc3RpdHVlbnQKKyAgICAgICAgTWVkaWFTdHJlYW1U
cmFja3MuIFRoaXMgZW5zdXJlcyB0aGF0LCBldmVuIGlmIGEgTWVkaWFTdHJlYW1UcmFjayBpcyBy
ZW1vdmVkIGZyb20gaXRzIHN0cmVhbSwgdGhlCisgICAgICAgIGRvY3VtZW50IChhbmQgdGh1cyB0
aGUgY2xpZW50cykgYXJlIG5vdGlmaWVkIHRoYXQgbWVkaWEgY2FwdHVyZSBpcyBzdGlsbCBvY2N1
cnJpbmcuCisKKyAgICAgICAgVGhvdWdoIE1lZGlhU3RyZWFtIGlzIG5vIGxvbmdlciBhIE1lZGlh
UHJvZHVjZXIsIGl0IHN0aWxsIHVzZXMgdGhlIE1lZGlhUHJvZHVjZXIncyBzdGF0ZSBjb25jZXB0
CisgICAgICAgIHRvIGRldGVybWluZSB3aGVuIHRvIGZpcmUgZXZlbnRzLiBIb3dldmVyIGl0J3Mg
bWVkaWFTdGF0ZSgpIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgbW92ZWQgaW50bworICAgICAgICBN
ZWRpYVN0cmVhbVRyYWNrLCBhbmQgd2lsbCBpbnN0ZWFkIHNpbXBseSBiaXR3aXNlLW9yIHRvZ2V0
aGVyIGVhY2ggb2YgaXQncyB0cmFjaydzIG1lZGlhU3RhdGUoKS4KKworICAgICAgICBUaGUgTWVk
aWFTdHJlYW0gbm90aWZpZXMgdGhlIGRvY3VtZW50IHRoYXQgaXRzIHN0YXRlIGhhcyBjaGFuZ2Vk
IGFzeW5jaHJvbm91c2x5LCBzbyBkbyB0aGUgc2FtZQorICAgICAgICBmb3IgTWVkaWFTdHJlYW1U
cmFjayAod2hpY2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoZSBjbGllbnQgd2hl
biBjaGFuZ2VzIGFsbCBvY2N1cgorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcnVuIGxvb3ApLgor
CisgICAgICAgIEJlY2F1c2UgdGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIG1heSBiZSBzdGFy
dGVkIGV4dGVybmFsbHkgKG5vdCBieSB0aGUgTWVkaWFTdHJlYW1UcmFjayBkaXJlY3RseSksCisg
ICAgICAgIGFkZCBhIG5ldyBjbGllbnQgbWV0aG9kIHRoYXQgbm90aWZpZXMgb2JzZXJ2ZXJzIHdo
ZW4gdGhlIHRyYWNrIGhhcyBiZWVuIHN0YXJ0ZWQsIGFuZCB0aGUKKyAgICAgICAgTWVkaWFTdHJl
YW1UcmFjayB3aWxsIHVzZSB0aGlzIG5vdGlmaWNhdGlvbiB0byB1cGRhdGUgdGhlIGRvY3VtZW50
IHdpdGggaXQncyBuZXcgbWVkaWFTdGF0ZSgpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVk
aWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZG9jdW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6c291cmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja1N0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKworMjAxNy0wNi0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKwogICAgICAgICBWaWRlbyBmbGFzaGVzIGJsYWNrIHdoZW4gc3dpdGNoaW5nIGJhY2sg
dG8gYSB0YWIgaHR0cHM6Ly93d3cuYXBwbGUuY29tL2hvbWVwb2QvCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNzcKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAzNjQ5YmMw
ODk0YWYwNzlkZTFiYjA2ZWUwOWNmMzY2NTEwMjRiMzQ3Li45OTUzNGYxYmY3OTYwNTk5YmU3YzAw
NWRiNzgxOWIzZmMxNzU3NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtOTAsNyArOTAsNiBAQCBNZWRpYVN0cmVhbTo6
TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFT
dHJlYW1UcmFjawogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZlKCkpOwogICAgIG1f
cHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnNo
YXJlZCgpLnJlZ2lzdGVyU3RyZWFtKCp0aGlzKTsKLSAgICBkb2N1bWVudCgpLT5hZGRBdWRpb1By
b2R1Y2VyKHRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBAIC0xMTEsNyArMTEw
LDYgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFJlZjxNZWRpYVN0cmVhbVByaXZhdGUKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVy
KCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQodHJhY2stPmlkKCksIFdURk1vdmUodHJh
Y2spKTsKICAgICB9Ci0gICAgZG9jdW1lbnQoKS0+YWRkQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIApAQCAtMTI1LDcgKzEyMyw2IEBAIE1lZGlhU3RyZWFt
Ojp+TWVkaWFTdHJlYW0oKQogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVl
cygpKQogICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5y
ZW1vdmVBdWRpb1Byb2R1Y2VyKHRoaXMpOwogICAgICAgICBpZiAobV9pc1dhaXRpbmdVbnRpbE1l
ZGlhQ2FuU3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTWVkaWFDYW5TdGFydExp
c3RlbmVyKHRoaXMpOwogICAgIH0KQEAgLTMyMiw1MiArMzE5LDE1IEBAIHZvaWQgTWVkaWFTdHJl
YW06OmVuZENhcHR1cmVUcmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVN0cmVhbTo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQotewotICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAg
ICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3ByaXZhdGUtPnNldENh
cHR1cmVUcmFja3NNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11dGVkKCkp
OwotfQotCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW06Om1lZGlh
U3RhdGUoKSBjb25zdAogewotICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IElzTm90UGxheWlu
ZzsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRpYVByb2R1
Y2VyOjpJc05vdFBsYXlpbmc7CiAKICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWRvY3VtZW50KCkg
fHwgIWRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogCi0gICAgYm9v
bCBwYWdlQ2FwdHVyZU11dGVkID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11
dGVkKCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKCF0cmFjay0+aXNDYXB0dXJlVHJhY2soKSB8fCB0cmFjay0+ZW5kZWQo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICh0cmFjay0+c291cmNlKCku
dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAg
ICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVwdGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQp
Ci0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFjay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAg
ICBzdGF0ZSB8PSBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsK
LSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVw
dGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCi0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFz
SW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFj
ay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChjb25z
dCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHN0YXRlIHw9IHRy
YWNrLT5tZWRpYVN0YXRlKCk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CkBAIC0zNzksMTMgKzMz
OSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzdGF0dXNEaWRDaGFuZ2UoKQogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChtX2lzQWN0
aXZlKQogICAgICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0FjdGl2ZU1lZGlhU3RyZWFtVHJhY2so
KTsKLSAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiAgICAgfQogfQog
CiB2b2lkIE1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAgYXV0byBzdGF0ZSA9IG1lZGlh
U3RhdGUoKTsKICAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewogICAgICAgICBtX3N0YXRlID0g
c3RhdGU7CiAgICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDgzNmViNjNhODNlOWM4OWE3
MzcwZWQ1MzBlMjY5MWEyM2E2MmJlNDAuLjk4M2JkNTEzYWE4YWE4N2JiOTczODVkYjg3NmI0Zjky
MzY2NTVmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKQEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwKICAg
ICAsIHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNr
OjpPYnNlcnZlcgogICAgICwgcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAg
ICAsIHByaXZhdGUgTWVkaWFQcm9kdWNlcgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIKICAgICAsIHByaXZhdGUgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQKICAgICAsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiB7CkBAIC0xMzYsOSArMTM1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICAvLyBN
ZWRpYVByb2R1Y2VyCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwot
ICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmlu
YWw7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25z
dDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFy
dChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
TWVkaWFTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKIAotICAgIE1lZGlhU3RhdGVGbGFncyBtX3N0
YXRlIHsgSXNOb3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1fc3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKIAogICAgIGJvb2wgbV9p
c0FjdGl2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAppbmRleCA2OTdjNjk1N2VkNDBlZjU4NjQyYzNjYTAyNjA0OTNkNDQwYTcy
NzRkLi5kMjMwNjk0NDUyNDgwODQ3ZDU5Zjc2OWJjZWZhYThhYTZkMTdmYmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKQEAgLTM4LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk92ZXJjb25zdHJhaW5lZEVycm9yLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTIsMTUgKzU0LDIyIEBAIE1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVm
PE1lZGlhU3RyCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3ByaXZh
dGUoV1RGTW92ZShwcml2YXRlVHJhY2spKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQor
ICAgICwgbV90YXNrUXVldWUoY29udGV4dCkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAog
ICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkQXVkaW9Qcm9kdWNl
cih0aGlzKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQogewog
ICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Q
cm9kdWNlcih0aGlzKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNr
OjpraW5kKCkgY29uc3QKQEAgLTI4NSw2ICsyOTQsNTMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNr
OjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgbV9vYnNlcnZlcnMucmVt
b3ZlRmlyc3QoJm9ic2VydmVyKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpwYWdlTXV0
ZWRTdGF0ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fZW5kZWQgfHwgIWlzQ2FwdHVyZVRyYWNr
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlLT5zZXRNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5p
c01lZGlhQ2FwdHVyZU11dGVkKCkpOworfQorCitNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fZW5k
ZWQgfHwgIWlzQ2FwdHVyZVRyYWNrKCkpCisgICAgICAgIHJldHVybiBJc05vdFBsYXlpbmc7CisK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBJc05vdFBsYXlpbmc7
CisKKyAgICBib29sIHBhZ2VDYXB0dXJlTXV0ZWQgPSBkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlh
Q2FwdHVyZU11dGVkKCk7CisKKyAgICBpZiAoc291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7CisgICAgICAgIGlmIChzb3VyY2UoKS5pbnRlcnJ1cHRl
ZCgpICYmICFwYWdlQ2FwdHVyZU11dGVkKQorICAgICAgICAgICAgcmV0dXJuIEhhc0ludGVycnVw
dGVkQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAgICAg
IHJldHVybiBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG1fcHJpdmF0
ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gSGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzb3VyY2UoKS5pbnRlcnJ1
cHRlZCgpICYmICFwYWdlQ2FwdHVyZU11dGVkKQorICAgICAgICAgICAgcmV0dXJuIEhhc0ludGVy
cnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gSGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOworICAgIH0KKworICAgIHJldHVybiBJc05vdFBsYXlpbmc7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOworfQorCiB2b2lkIE1lZGlh
U3RyZWFtVHJhY2s6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewogICAg
IC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLyNsaWZlLWN5Y2xlCkBA
IC0zMzIsNiArMzg4LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tFbmFibGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKQogeworICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzXSB7CisgICAgICAgIGlmIChhdXRvIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgICAgIGRvY3VtZW50LT51cGRhdGVJc1BsYXlpbmdNZWRpYSgpOworICAgIH0pOwor
CiAgICAgLy8gNC4zLjEKICAgICAvLyAuLi4gbWVkaWEgZnJvbSB0aGUgc291cmNlIG9ubHkgZmxv
d3Mgd2hlbiBhIE1lZGlhU3RyZWFtVHJhY2sgb2JqZWN0IGlzIGJvdGggdW5tdXRlZCBhbmQgZW5h
YmxlZAogfQpAQCAtMzM5LDYgKzQwMCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6Y29uZmln
dXJlVHJhY2tSZW5kZXJpbmcoKQogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKCkKIHsKICAg
ICBzdG9wVHJhY2soKTsKKyAgICBtX3Rhc2tRdWV1ZS5jbG9zZSgpOwogfQogCiBjb25zdCBjaGFy
KiBNZWRpYVN0cmVhbVRyYWNrOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTM2MSw2
ICs0MjMsMTEgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFTdHJlYW1UcmFjazo6YXVkaW9T
b3VyY2VQcm92aWRlcigpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW9Tb3VyY2VQcm92aWRl
cigpOwogfQogCitEb2N1bWVudCogTWVkaWFTdHJlYW1UcmFjazo6ZG9jdW1lbnQoKSBjb25zdAor
eworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggMzg3MTU1MzFkNjc0NjBlM2NjOWE4YWZmNjAyYWNjNTJj
ZTBlNjQ0YS4uZjljMGQxYWI5MTZmZjRiMTg1ZGFlMTI2ZDZhN2MzNzViZDUyZGM2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmgKQEAgLTMyLDE4ICszMiwyNiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkRvdWJsZVJhbmdlLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJMb25nUmFuZ2UuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVRyYWNr
Q29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1NvdXJj
ZVByb3ZpZGVyOworY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWlu
dHM7CiAKLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0
cmVhbVRyYWNrPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsK
K2NsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOgorICAgIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3Ry
ZWFtVHJhY2s+LAorICAgIHB1YmxpYyBBY3RpdmVET01PYmplY3QsCisgICAgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsCisgICAgcHJpdmF0ZSBNZWRpYVByb2R1Y2VyLAorICAgIHBy
aXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBj
bGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMTEwLDExICsxMTgsMTUgQEAgcHVibGlj
OgogICAgIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYgZ2V0Q29uc3RyYWludHMoKSBjb25z
dCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8TWVkaWFUcmFja0NvbnN0cmFpbnRzPiYsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUtPnNvdXJjZSgpOyB9CiAgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHByaXZhdGVUcmFjaygpIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsg
fQogCiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpOwogCisg
ICAgLy8gTWVkaWFQcm9kdWNlcgorICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSBm
aW5hbDsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNv
bnN0IGZpbmFsOworCiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQg
cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAtMTMyLDYgKzE0NCw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CiAKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdDsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQ0LDYgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICAvLyBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3ND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CkBAIC0xNTcsNiArMTcyLDcg
QEAgcHJpdmF0ZToKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKICAg
ICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wcm9taXNlOwogICAg
IFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtVHJhY2s+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAg
R2VuZXJpY1Rhc2tRdWV1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3Rhc2tRdWV1ZTsKIAog
ICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApp
bmRleCAwZTUxZWFiYTkzNzc0ZTVlZjcxZTRiOThiMzg5MThkYTA4YzBkOTIwLi5jM2NkOTg4MDE1
MDUxYTAxM2RlMzNmYjkwMTZiYzY0YmY2ODVhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aApAQCAtMjAxLDYgKzIwMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVUcmFjayhN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVkaWFTdHJlYW1Q
cml2YXRlVHJhY2s6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFj
a1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IDRkMGU0ZTYwMjI3MWQ3NDQxNjQ0ZDgzNWEyNzhiNmQ5
NjZhNTI0NmQuLmIyNGU2NGUxMTVmNzc1N2UwMDFiN2RlODlhOWUzM2M2ODg3ZTJlYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmNwcApAQCAtMjgxLDYgKzI4MSwxMyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJp
dmF0ZTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAgICAg
fSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1N0YXJ0ZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7Cisg
ICAgICAgIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwogdm9pZCBNZWRp
YVN0cmVhbVByaXZhdGU6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewog
ICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IGE3
OTcwNGRkODVhMzU5ODkzZmI0Y2ZmNTg3MzhhNTZhZDlhMTZhY2IuLjIxMmRmOTAzMTA4MzBhNTBl
YzAwMjA4MGIyN2RkMjEyNDQyNjFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0xMjUsNiArMTI1
LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVWZWN0b3ImLCBTdHJpbmcmJik7CiAKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5jcHAKaW5kZXggZjViNGUyOWU5ZmJlNjI2YTU4NTY2ZjliMDgxZTVmNjNhOGNhY2U0ZS4u
ZWU1NDdlMzJmZDg2M2NkZjAyNjg5ZmNkYTc5NmU5NDk2MzhkZmI0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmNwcApAQCAtMTUxLDYgKzE1MSwxMiBAQCBBdWRpb1NvdXJjZVByb3ZpZGVy
KiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcigpCiAgICAgcmV0
dXJuIG1fc291cmNlLT5hdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0YXJ0ZWQoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnRyYWNrU3RhcnRlZCgqdGhpcyk7
Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0b3BwZWQoKQogewog
ICAgIGlmIChtX2lzRW5kZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBhZWQzNzkx
NThkMWI3ZjA1Y2NjOGFmY2JjOTI4NTc2MGEyM2U5YWNjLi5hOTZjNzZiYTY4YzA2NmEzYWJhNTZm
NGU4MTE5ZTBiZGMzN2IxMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTQzLDYg
KzQzLDcgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIo
KSB7IH0KIAorICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgeyB9OwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CkBA
IC0xMDIsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwogCiAgICAgLy8gUmVhbHRp
bWVNZWRpYVNvdXJjZU9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmluYWw7CiAg
ICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5n
ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCmluZGV4IDU3NTg2Mjk0ZWMwZDIwMDg5ZWZhZjYyYTQ3NTYyOTUyNjI1
NGM3YmEuLjA2Y2I0NDM1Njk3MWNiM2Y2MGE1ZDg2MDcwYjU1MjM4MTI1NmM1NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC0xNjIsNiArMTYyLDkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjpzdGFydCgpCiAKICAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CiAgICAgc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7CisKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQorICAgICAgICBvYnNlcnZlci5zb3VyY2VTdGFydGVkKCk7CiB9CiAKIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWRiYzA3ZGI0ZmZk
NmFiZWY1YzdjZWU3NWJlOWI3YzA2ZjViMTdiYS4uM2E2MzEwODY4MjE1NzJhYzk4OTRmMjYzYWUw
NDBjNzRhNGFkZWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAgICAgICAgIAogICAgICAgICAv
LyBTb3VyY2Ugc3RhdGUgY2hhbmdlcy4KKyAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0YXJ0
ZWQoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0b3BwZWQoKSB7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSB7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTBhYTM1NGVkYTQxNTgwZTRkZjY4Mzg5OWM4
YjQxNDUxYTBiZmU0Li4xMTllY2I2ODlkZGRkMWQ5MGVkMzVjMzJjYTY4MjgyY2IwZWI5MmJjIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTctMDYtMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYlJUQ10gUmVtb3ZpbmcgYSBNZWRpYVN0cmVhbVRyYWNrIGZyb20gYSBNZWRp
YVN0cmVhbSByZXBvcnRzIG5vIHJlY29yZGluZyB0byBXZWJLaXQgY2xpZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzk4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMjU5Mjk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAg
ICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURl
bGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL21lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbDogQWRkZWQuCisKIDIwMTctMDYtMTUg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBBUEkgdG8gYWxsb3cgb3ZlcnJpZGluZyBwb3B1cCBtZW51cwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkY2I2NjkzNTNiMWIxM2YwNDc3M2YxZDQxYmY4NWE1OGQ2ZWU0MWUwLi4z
YWZlN2EyNjRhNjI5NmMxODZkOTFhYjMwZWI0MmQ3YmExMzFlYTQxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjAxLDYgKzYwMSw4IEBACiAJCUNEQzhFNDk1MUJDNkYxMDgwMDU5NEZFQyAv
KiB2aWRlby13aXRoLWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RTQ4QTFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0
aC1hdWRpby5tcDQgKi87IH07CiAJCUNEQzhFNDk2MUJDNkYxMDgwMDU5NEZFQyAvKiB2aWRlby13
aXRob3V0LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDOEU0OEIxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQt
YXVkaW8uaHRtbCAqLzsgfTsKIAkJQ0RDOEU0OTcxQkM2RjEwODAwNTk0RkVDIC8qIHZpZGVvLXdp
dGhvdXQtYXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1
ZGlvLm1wNCAqLzsgfTsKKwkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQzk0NDJDMUVGMUZDMDgwMDU5QzNDNCAvKiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWQubW0gKi87IH07CisJCUNEQzk0NDJGMUVGMjA1RDYwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDOTQ0MkIxRUYxRkJEMjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJh
Y2stZGV0YWNoZWQuaHRtbCAqLzsgfTsKIAkJQ0RDRkE3QUExRTQ1MTgzMjAwQzI0MzNEIC8qIFNh
bXBsZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCAqLzsgfTsKIAkJQ0RF
MTk1QjUxQ0ZFMEI4ODAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREUx
OTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1sICov
OyB9OwogCQlDRTA2REY5QjFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwNkRGOUExRTE4
NTFGMjAwRTU3MEM5IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLzsgfTsKQEAgLTcwOSw2ICs3MTEs
NyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9s
ZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMzQzQg
LyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9m
ZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlGNDZBMDk1QTFFRDhBNkU2MDBENEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVz
b3VyY2VzICovLApAQCAtMTUyMyw2ICsxNTI2LDggQEAKIAkJQ0RDOEU0OEExQkM1Qzk2MjAwNTk0
RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8ubXA0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJ2aWRlby13aXRoLWF1ZGlvLm1wNCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhFNDhCMUJDNUM5NjIwMDU5NEZFQyAv
KiB2aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
dmlkZW8td2l0aG91dC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDOEU0OEMxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQtYXVkaW8ubXA0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9
ICJ2aWRlby13aXRob3V0LWF1ZGlvLm1wNCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQzk0NDJCMUVGMUZCRDIwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAibWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDOTQ0MkMxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3Ry
ZWFtVHJhY2tEZXRhY2hlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRkE3QTkxRTQ1
MTIyRjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTYW1wbGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REUxOTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5o
dG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREUxOTVCMzFDRkUwQURFMDA1M0Qy
NTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTYzLDYgKzIxNjgsNyBAQAogCQkJCTMzREM4OTEwMTQx
OTUzQTMwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3Bw
ICovLAogCQkJCTMzREM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCAqLywKIAkJCQk4QUEyOEMxOTE2RDJGQTdCMDAy
RkY0REIgLyogTG9hZFBhZ2VPbkNyYXNoLmNwcCAqLywKKwkJCQlDREM5NDQyQzFFRjFGQzA4MDA1
OUMzQzQgLyogTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tICovLAogCQkJCTdBNTYyMzEwMUFE
NUFGM0UwMDk2QjkyMCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5jcHAgKi8sCiAJCQkJNTFD
QjRBRDcxQjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJLmNwcCAqLywKIAkJCQkzM0JF
NUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgKi8sCkBAIC0y
MzQ3LDYgKzIzNTMsNyBAQAogCQkJCTkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9m
LXRleHQuaHRtbCAqLywKIAkJCQk1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlv
bi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLywKIAkJCQlBRDU3QUMxRDFEQTc0NjM4MDBG
RjFCREUgLyogbWFueS1pZnJhbWVzLmh0bWwgKi8sCisJCQkJQ0RDOTQ0MkIxRUYxRkJEMjAwNTlD
M0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCAqLywKIAkJCQk1MUNEMUM3MTFC
MzhENDg0MDAxNDJDQTUgLyogbW9kYWwtYWxlcnRzLWluLW5ldy1hYm91dC1ibGFuay13aW5kb3cu
aHRtbCAqLywKIAkJCQk3QTE0NThGQjFBRDVDMDM1MDBFMDY3NzIgLyogbW91c2UtYnV0dG9uLWxp
c3RlbmVyLmh0bWwgKi8sCiAJCQkJMzNFNzlFMDUxMzdCNUZDRTAwRTMyRDk5IC8qIG1vdXNlLW1v
dmUtbGlzdGVuZXIuaHRtbCAqLywKQEAgLTI5MDcsNiArMjkxNCw3IEBACiAJCQkJNTFEMTI0OUIx
RTc4NTQyNTAwMkIyODIwIC8qIENvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdFQUMxQTQxMUEzNDAwNDQ3QzRDIC8qIENvdW50ZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdBRUFENDdGMUUyMDExNkMwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVB
Y2Nlc3MubW0gaW4gU291cmNlcyAqLywKKwkJCQlDREM5NDQyRTFFRjFGQzA4MDA1OUMzQzQgLyog
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIx
QTQxMUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0YyOTFBNDExQjEwMDA0NDdDNEMgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJBMUE0MTFCMTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90
b2NvbHNTeW5jWEhSVGVzdC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjkzODRkZDg4MDgyY2E1OWNiNDljOTVkNzE5ZWQ0YjRlNjcyOWQ4NQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RXS1dl
YlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmg+CisKK3N0YXRpYyBib29sIGhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9
IGZhbHNlOworCitAaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUg
OiBOU09iamVjdDxXS1VJRGVsZWdhdGU+CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVy
ZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50
aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRo
b3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlz
dGF0ZTsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJ
RGVsZWdhdGUKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2Vz
IHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCit7
CisgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVy
bCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNV
SW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lv
bkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIFlFUyk7Cit9CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1
cmVTdGF0ZSlzdGF0ZQoreworICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFj
dGl2ZU1pY3JvcGhvbmUpCisgICAgICAgIGhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9
IHRydWU7Cit9CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJL
aXQyLCBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tZWRpYURldmljZXNFbmFibGVk
ID0gWUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWcuZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW01lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJWaWV3LmdldCgp
LlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKworICAgIGhhc1JlY2lldmVkQ29ycmVjdENh
cHR1cmVTdGF0ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibWVk
aWFzdHJlYW10cmFjay1kZXRhY2hlZCJdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZoYXNSZWNpZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUpOworCisKK30KKworfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21lZGlhc3RyZWFtdHJh
Y2stZGV0YWNoZWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRp
YXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JjMTY5MjJiMDYwM2FhZjQ1
ZWU4MjYxOTE2M2M4MmRlM2IzY2VjOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwKQEAgLTAs
MCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3Zh
ciBhdWRpb1RyYWNrOworCitmdW5jdGlvbiBnbygpIHsKKyAgICB2YXIgY29uc3RyYWludHMgPSB7
IGF1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07CisgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoY29uc3RyYWludHMpLnRoZW4oZ290VXNlck1lZGlhKTsKK30KKworZnVuY3Rp
b24gZ290VXNlck1lZGlhKHN0cmVhbSkgeworICAgIGF1ZGlvVHJhY2sgPSBzdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKVswXTsKKyAgICBzdHJlYW0ucmVtb3ZlVHJhY2soYXVkaW9UcmFjayk7CisKKyAg
ICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB7IHRyYWNrLnN0b3AoKTsgfSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZ28oKSI+CisgICAgPGRpdj5U
aGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiB0aGUgbWVkaWEgY2FwdHVyZSBpbmRpY2F0b3Igd2hl
biBhIGxpdmUgTWVkaWFTdHJlYW1UcmFjayBpcyByZW1vdmVkIGZyb20gYSBNZWRpYVN0cmVhbSwg
YW5kIGFsbCB0aGUgb3RoZXIgdHJhY2tzIGFyZSBzdG9wcGVkLiBUaGUgcGFnZSBzaG91bGQgcmVx
dWVzdCBhY2Nlc3MgdG8gdGhlIGNhbWVyYSBhbmQgbWljcm9waG9uZSwgYW5kIHRoZW4gZGlzcGxh
eSBhIGF1ZGlvLWNhcHR1cmUgaWNvbi4gSWYgdGhlIHBhZ2UgZGlzcGxheXMgYSBjYW1lcmEgaWNv
biBvciBubyBjYXB0dXJlIGljb24gYXQgYWxsLCB0aGUgdGVzdCBoYXMgZmFpbGVkLjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313005</attachid>
            <date>2017-06-15 14:20:14 -0700</date>
            <delta_ts>2017-06-15 18:08:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173398-20170615142013.patch</filename>
            <type>text/plain</type>
            <size>32583</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJmYTliZmQxZDgwOGM4
YjQwMDcwMjEzMzI4ZTMxNmFmNzYyODBmYi4uOWZiNTllNDU4YzEyMzY2ZWMzOTU1M2Q5YmNhZWUy
NmFlYTNmMmEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE3LTA2LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtXZWJSVENdIFJlbW92aW5n
IGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRp
bmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFQSSBUZXN0OiBU
ZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorCisgICAgICAgIE1vdmUg
dGhlIGRlZmluaXRpb24gb2YgYSBNZWRpYVN0cmVhbSBhcyBhIE1lZGlhUHJvZHVjZXIgZnJvbSB0
aGUgc3RyZWFtIGl0c2VsZiB0byBpdHMgY29uc3RpdHVlbnQKKyAgICAgICAgTWVkaWFTdHJlYW1U
cmFja3MuIFRoaXMgZW5zdXJlcyB0aGF0LCBldmVuIGlmIGEgTWVkaWFTdHJlYW1UcmFjayBpcyBy
ZW1vdmVkIGZyb20gaXRzIHN0cmVhbSwgdGhlCisgICAgICAgIGRvY3VtZW50IChhbmQgdGh1cyB0
aGUgY2xpZW50cykgYXJlIG5vdGlmaWVkIHRoYXQgbWVkaWEgY2FwdHVyZSBpcyBzdGlsbCBvY2N1
cnJpbmcuCisKKyAgICAgICAgVGhvdWdoIE1lZGlhU3RyZWFtIGlzIG5vIGxvbmdlciBhIE1lZGlh
UHJvZHVjZXIsIGl0IHN0aWxsIHVzZXMgdGhlIE1lZGlhUHJvZHVjZXIncyBzdGF0ZSBjb25jZXB0
CisgICAgICAgIHRvIGRldGVybWluZSB3aGVuIHRvIGZpcmUgZXZlbnRzLiBIb3dldmVyIGl0J3Mg
bWVkaWFTdGF0ZSgpIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgbW92ZWQgaW50bworICAgICAgICBN
ZWRpYVN0cmVhbVRyYWNrLCBhbmQgd2lsbCBpbnN0ZWFkIHNpbXBseSBiaXR3aXNlLW9yIHRvZ2V0
aGVyIGVhY2ggb2YgaXQncyB0cmFjaydzIG1lZGlhU3RhdGUoKS4KKworICAgICAgICBUaGUgTWVk
aWFTdHJlYW0gbm90aWZpZXMgdGhlIGRvY3VtZW50IHRoYXQgaXRzIHN0YXRlIGhhcyBjaGFuZ2Vk
IGFzeW5jaHJvbm91c2x5LCBzbyBkbyB0aGUgc2FtZQorICAgICAgICBmb3IgTWVkaWFTdHJlYW1U
cmFjayAod2hpY2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoZSBjbGllbnQgd2hl
biBjaGFuZ2VzIGFsbCBvY2N1cgorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcnVuIGxvb3ApLgor
CisgICAgICAgIEJlY2F1c2UgdGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIG1heSBiZSBzdGFy
dGVkIGV4dGVybmFsbHkgKG5vdCBieSB0aGUgTWVkaWFTdHJlYW1UcmFjayBkaXJlY3RseSksCisg
ICAgICAgIGFkZCBhIG5ldyBjbGllbnQgbWV0aG9kIHRoYXQgbm90aWZpZXMgb2JzZXJ2ZXJzIHdo
ZW4gdGhlIHRyYWNrIGhhcyBiZWVuIHN0YXJ0ZWQsIGFuZCB0aGUKKyAgICAgICAgTWVkaWFTdHJl
YW1UcmFjayB3aWxsIHVzZSB0aGlzIG5vdGlmaWNhdGlvbiB0byB1cGRhdGUgdGhlIGRvY3VtZW50
IHdpdGggaXQncyBuZXcgbWVkaWFTdGF0ZSgpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVk
aWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZG9jdW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6c291cmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja1N0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKworMjAxNy0wNi0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKwogICAgICAgICBWaWRlbyBmbGFzaGVzIGJsYWNrIHdoZW4gc3dpdGNoaW5nIGJhY2sg
dG8gYSB0YWIgaHR0cHM6Ly93d3cuYXBwbGUuY29tL2hvbWVwb2QvCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNzcKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAzNjQ5YmMw
ODk0YWYwNzlkZTFiYjA2ZWUwOWNmMzY2NTEwMjRiMzQ3Li45OTUzNGYxYmY3OTYwNTk5YmU3YzAw
NWRiNzgxOWIzZmMxNzU3NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtOTAsNyArOTAsNiBAQCBNZWRpYVN0cmVhbTo6
TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFT
dHJlYW1UcmFjawogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZlKCkpOwogICAgIG1f
cHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnNo
YXJlZCgpLnJlZ2lzdGVyU3RyZWFtKCp0aGlzKTsKLSAgICBkb2N1bWVudCgpLT5hZGRBdWRpb1By
b2R1Y2VyKHRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBAIC0xMTEsNyArMTEw
LDYgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFJlZjxNZWRpYVN0cmVhbVByaXZhdGUKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVy
KCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQodHJhY2stPmlkKCksIFdURk1vdmUodHJh
Y2spKTsKICAgICB9Ci0gICAgZG9jdW1lbnQoKS0+YWRkQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIApAQCAtMTI1LDcgKzEyMyw2IEBAIE1lZGlhU3RyZWFt
Ojp+TWVkaWFTdHJlYW0oKQogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVl
cygpKQogICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5y
ZW1vdmVBdWRpb1Byb2R1Y2VyKHRoaXMpOwogICAgICAgICBpZiAobV9pc1dhaXRpbmdVbnRpbE1l
ZGlhQ2FuU3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTWVkaWFDYW5TdGFydExp
c3RlbmVyKHRoaXMpOwogICAgIH0KQEAgLTMyMiw1MiArMzE5LDE1IEBAIHZvaWQgTWVkaWFTdHJl
YW06OmVuZENhcHR1cmVUcmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVN0cmVhbTo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQotewotICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAg
ICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3ByaXZhdGUtPnNldENh
cHR1cmVUcmFja3NNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11dGVkKCkp
OwotfQotCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW06Om1lZGlh
U3RhdGUoKSBjb25zdAogewotICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IElzTm90UGxheWlu
ZzsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRpYVByb2R1
Y2VyOjpJc05vdFBsYXlpbmc7CiAKICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWRvY3VtZW50KCkg
fHwgIWRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogCi0gICAgYm9v
bCBwYWdlQ2FwdHVyZU11dGVkID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11
dGVkKCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKCF0cmFjay0+aXNDYXB0dXJlVHJhY2soKSB8fCB0cmFjay0+ZW5kZWQo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICh0cmFjay0+c291cmNlKCku
dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAg
ICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVwdGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQp
Ci0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFjay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAg
ICBzdGF0ZSB8PSBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsK
LSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVw
dGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCi0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFz
SW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFj
ay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChjb25z
dCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHN0YXRlIHw9IHRy
YWNrLT5tZWRpYVN0YXRlKCk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CkBAIC0zNzksMTMgKzMz
OSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzdGF0dXNEaWRDaGFuZ2UoKQogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChtX2lzQWN0
aXZlKQogICAgICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0FjdGl2ZU1lZGlhU3RyZWFtVHJhY2so
KTsKLSAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiAgICAgfQogfQog
CiB2b2lkIE1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAgYXV0byBzdGF0ZSA9IG1lZGlh
U3RhdGUoKTsKICAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewogICAgICAgICBtX3N0YXRlID0g
c3RhdGU7CiAgICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDgzNmViNjNhODNlOWM4OWE3
MzcwZWQ1MzBlMjY5MWEyM2E2MmJlNDAuLjk4M2JkNTEzYWE4YWE4N2JiOTczODVkYjg3NmI0Zjky
MzY2NTVmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKQEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwKICAg
ICAsIHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNr
OjpPYnNlcnZlcgogICAgICwgcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAg
ICAsIHByaXZhdGUgTWVkaWFQcm9kdWNlcgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIKICAgICAsIHByaXZhdGUgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQKICAgICAsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiB7CkBAIC0xMzYsOSArMTM1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICAvLyBN
ZWRpYVByb2R1Y2VyCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwot
ICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmlu
YWw7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25z
dDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFy
dChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
TWVkaWFTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKIAotICAgIE1lZGlhU3RhdGVGbGFncyBtX3N0
YXRlIHsgSXNOb3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1fc3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKIAogICAgIGJvb2wgbV9p
c0FjdGl2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAppbmRleCA2OTdjNjk1N2VkNDBlZjU4NjQyYzNjYTAyNjA0OTNkNDQwYTcy
NzRkLi5kMjMwNjk0NDUyNDgwODQ3ZDU5Zjc2OWJjZWZhYThhYTZkMTdmYmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKQEAgLTM4LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk92ZXJjb25zdHJhaW5lZEVycm9yLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTIsMTUgKzU0LDIyIEBAIE1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVm
PE1lZGlhU3RyCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3ByaXZh
dGUoV1RGTW92ZShwcml2YXRlVHJhY2spKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQor
ICAgICwgbV90YXNrUXVldWUoY29udGV4dCkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAog
ICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkQXVkaW9Qcm9kdWNl
cih0aGlzKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQogewog
ICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Q
cm9kdWNlcih0aGlzKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNr
OjpraW5kKCkgY29uc3QKQEAgLTI4NSw2ICsyOTQsNTMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNr
OjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgbV9vYnNlcnZlcnMucmVt
b3ZlRmlyc3QoJm9ic2VydmVyKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpwYWdlTXV0
ZWRTdGF0ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fZW5kZWQgfHwgIWlzQ2FwdHVyZVRyYWNr
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlLT5zZXRNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5p
c01lZGlhQ2FwdHVyZU11dGVkKCkpOworfQorCitNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fZW5k
ZWQgfHwgIWlzQ2FwdHVyZVRyYWNrKCkpCisgICAgICAgIHJldHVybiBJc05vdFBsYXlpbmc7CisK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBJc05vdFBsYXlpbmc7
CisKKyAgICBib29sIHBhZ2VDYXB0dXJlTXV0ZWQgPSBkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlh
Q2FwdHVyZU11dGVkKCk7CisKKyAgICBpZiAoc291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7CisgICAgICAgIGlmIChzb3VyY2UoKS5pbnRlcnJ1cHRl
ZCgpICYmICFwYWdlQ2FwdHVyZU11dGVkKQorICAgICAgICAgICAgcmV0dXJuIEhhc0ludGVycnVw
dGVkQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAgICAg
IHJldHVybiBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG1fcHJpdmF0
ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gSGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzb3VyY2UoKS5pbnRlcnJ1
cHRlZCgpICYmICFwYWdlQ2FwdHVyZU11dGVkKQorICAgICAgICAgICAgcmV0dXJuIEhhc0ludGVy
cnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOworICAgICAgICBpZiAobXV0ZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gSGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOworICAgIH0KKworICAgIHJldHVybiBJc05vdFBsYXlpbmc7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOworfQorCiB2b2lkIE1lZGlh
U3RyZWFtVHJhY2s6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewogICAg
IC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLyNsaWZlLWN5Y2xlCkBA
IC0zMzIsNiArMzg4LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tFbmFibGVkQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKQogeworICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzXSB7CisgICAgICAgIGlmIChhdXRvIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgICAgIGRvY3VtZW50LT51cGRhdGVJc1BsYXlpbmdNZWRpYSgpOworICAgIH0pOwor
CiAgICAgLy8gNC4zLjEKICAgICAvLyAuLi4gbWVkaWEgZnJvbSB0aGUgc291cmNlIG9ubHkgZmxv
d3Mgd2hlbiBhIE1lZGlhU3RyZWFtVHJhY2sgb2JqZWN0IGlzIGJvdGggdW5tdXRlZCBhbmQgZW5h
YmxlZAogfQpAQCAtMzM5LDYgKzQwMCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6Y29uZmln
dXJlVHJhY2tSZW5kZXJpbmcoKQogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKCkKIHsKICAg
ICBzdG9wVHJhY2soKTsKKyAgICBtX3Rhc2tRdWV1ZS5jbG9zZSgpOwogfQogCiBjb25zdCBjaGFy
KiBNZWRpYVN0cmVhbVRyYWNrOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTM2MSw2
ICs0MjMsMTEgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFTdHJlYW1UcmFjazo6YXVkaW9T
b3VyY2VQcm92aWRlcigpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW9Tb3VyY2VQcm92aWRl
cigpOwogfQogCitEb2N1bWVudCogTWVkaWFTdHJlYW1UcmFjazo6ZG9jdW1lbnQoKSBjb25zdAor
eworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggMzg3MTU1MzFkNjc0NjBlM2NjOWE4YWZmNjAyYWNjNTJj
ZTBlNjQ0YS4uZjljMGQxYWI5MTZmZjRiMTg1ZGFlMTI2ZDZhN2MzNzViZDUyZGM2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmgKQEAgLTMyLDE4ICszMiwyNiBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkRvdWJsZVJhbmdlLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJMb25nUmFuZ2UuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVRyYWNr
Q29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1NvdXJj
ZVByb3ZpZGVyOworY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWlu
dHM7CiAKLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0
cmVhbVRyYWNrPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsK
K2NsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOgorICAgIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3Ry
ZWFtVHJhY2s+LAorICAgIHB1YmxpYyBBY3RpdmVET01PYmplY3QsCisgICAgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsCisgICAgcHJpdmF0ZSBNZWRpYVByb2R1Y2VyLAorICAgIHBy
aXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBj
bGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMTEwLDExICsxMTgsMTUgQEAgcHVibGlj
OgogICAgIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYgZ2V0Q29uc3RyYWludHMoKSBjb25z
dCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8TWVkaWFUcmFja0NvbnN0cmFpbnRzPiYsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUtPnNvdXJjZSgpOyB9CiAgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHByaXZhdGVUcmFjaygpIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsg
fQogCiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpOwogCisg
ICAgLy8gTWVkaWFQcm9kdWNlcgorICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSBm
aW5hbDsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNv
bnN0IGZpbmFsOworCiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQg
cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAtMTMyLDYgKzE0NCw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CiAKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdDsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQ0LDYgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICAvLyBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3ND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CkBAIC0xNTcsNiArMTcyLDcg
QEAgcHJpdmF0ZToKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKICAg
ICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wcm9taXNlOwogICAg
IFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtVHJhY2s+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAg
R2VuZXJpY1Rhc2tRdWV1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3Rhc2tRdWV1ZTsKIAog
ICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApp
bmRleCAwZTUxZWFiYTkzNzc0ZTVlZjcxZTRiOThiMzg5MThkYTA4YzBkOTIwLi5jM2NkOTg4MDE1
MDUxYTAxM2RlMzNmYjkwMTZiYzY0YmY2ODVhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aApAQCAtMjAxLDYgKzIwMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVUcmFjayhN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVkaWFTdHJlYW1Q
cml2YXRlVHJhY2s6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCB0cmFj
a1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IDRkMGU0ZTYwMjI3MWQ3NDQxNjQ0ZDgzNWEyNzhiNmQ5
NjZhNTI0NmQuLmIyNGU2NGUxMTVmNzc1N2UwMDFiN2RlODlhOWUzM2M2ODg3ZTJlYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmNwcApAQCAtMjgxLDYgKzI4MSwxMyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJp
dmF0ZTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAgICAg
fSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1N0YXJ0ZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7Cisg
ICAgICAgIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwogdm9pZCBNZWRp
YVN0cmVhbVByaXZhdGU6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewog
ICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IGE3
OTcwNGRkODVhMzU5ODkzZmI0Y2ZmNTg3MzhhNTZhZDlhMTZhY2IuLjIxMmRmOTAzMTA4MzBhNTBl
YzAwMjA4MGIyN2RkMjEyNDQyNjFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0xMjUsNiArMTI1
LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVWZWN0b3ImLCBTdHJpbmcmJik7CiAKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5jcHAKaW5kZXggZjViNGUyOWU5ZmJlNjI2YTU4NTY2ZjliMDgxZTVmNjNhOGNhY2U0ZS4u
ZWU1NDdlMzJmZDg2M2NkZjAyNjg5ZmNkYTc5NmU5NDk2MzhkZmI0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmNwcApAQCAtMTUxLDYgKzE1MSwxMiBAQCBBdWRpb1NvdXJjZVByb3ZpZGVy
KiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcigpCiAgICAgcmV0
dXJuIG1fc291cmNlLT5hdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0YXJ0ZWQoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnRyYWNrU3RhcnRlZCgqdGhpcyk7
Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0b3BwZWQoKQogewog
ICAgIGlmIChtX2lzRW5kZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBhZWQzNzkx
NThkMWI3ZjA1Y2NjOGFmY2JjOTI4NTc2MGEyM2U5YWNjLi5hOTZjNzZiYTY4YzA2NmEzYWJhNTZm
NGU4MTE5ZTBiZGMzN2IxMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTQzLDYg
KzQzLDcgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIo
KSB7IH0KIAorICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgeyB9OwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CkBA
IC0xMDIsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwogCiAgICAgLy8gUmVhbHRp
bWVNZWRpYVNvdXJjZU9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmluYWw7CiAg
ICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5n
ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCmluZGV4IDU3NTg2Mjk0ZWMwZDIwMDg5ZWZhZjYyYTQ3NTYyOTUyNjI1
NGM3YmEuLjA2Y2I0NDM1Njk3MWNiM2Y2MGE1ZDg2MDcwYjU1MjM4MTI1NmM1NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC0xNjIsNiArMTYyLDkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjpzdGFydCgpCiAKICAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CiAgICAgc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7CisKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQorICAgICAgICBvYnNlcnZlci5zb3VyY2VTdGFydGVkKCk7CiB9CiAKIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWRiYzA3ZGI0ZmZk
NmFiZWY1YzdjZWU3NWJlOWI3YzA2ZjViMTdiYS4uM2E2MzEwODY4MjE1NzJhYzk4OTRmMjYzYWUw
NDBjNzRhNGFkZWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAgICAgICAgIAogICAgICAgICAv
LyBTb3VyY2Ugc3RhdGUgY2hhbmdlcy4KKyAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0YXJ0
ZWQoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0b3BwZWQoKSB7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSB7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTBhYTM1NGVkYTQxNTgwZTRkZjY4Mzg5OWM4
YjQxNDUxYTBiZmU0Li4xMTllY2I2ODlkZGRkMWQ5MGVkMzVjMzJjYTY4MjgyY2IwZWI5MmJjIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTctMDYtMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYlJUQ10gUmVtb3ZpbmcgYSBNZWRpYVN0cmVhbVRyYWNrIGZyb20gYSBNZWRp
YVN0cmVhbSByZXBvcnRzIG5vIHJlY29yZGluZyB0byBXZWJLaXQgY2xpZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzk4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMjU5Mjk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXph
dGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAg
ICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURl
bGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL21lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbDogQWRkZWQuCisKIDIwMTctMDYtMTUg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBBUEkgdG8gYWxsb3cgb3ZlcnJpZGluZyBwb3B1cCBtZW51cwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkY2I2NjkzNTNiMWIxM2YwNDc3M2YxZDQxYmY4NWE1OGQ2ZWU0MWUwLi4z
YWZlN2EyNjRhNjI5NmMxODZkOTFhYjMwZWI0MmQ3YmExMzFlYTQxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjAxLDYgKzYwMSw4IEBACiAJCUNEQzhFNDk1MUJDNkYxMDgwMDU5NEZFQyAv
KiB2aWRlby13aXRoLWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RTQ4QTFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0
aC1hdWRpby5tcDQgKi87IH07CiAJCUNEQzhFNDk2MUJDNkYxMDgwMDU5NEZFQyAvKiB2aWRlby13
aXRob3V0LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDOEU0OEIxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQt
YXVkaW8uaHRtbCAqLzsgfTsKIAkJQ0RDOEU0OTcxQkM2RjEwODAwNTk0RkVDIC8qIHZpZGVvLXdp
dGhvdXQtYXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1
ZGlvLm1wNCAqLzsgfTsKKwkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQzk0NDJDMUVGMUZDMDgwMDU5QzNDNCAvKiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWQubW0gKi87IH07CisJCUNEQzk0NDJGMUVGMjA1RDYwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDOTQ0MkIxRUYxRkJEMjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJh
Y2stZGV0YWNoZWQuaHRtbCAqLzsgfTsKIAkJQ0RDRkE3QUExRTQ1MTgzMjAwQzI0MzNEIC8qIFNh
bXBsZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCAqLzsgfTsKIAkJQ0RF
MTk1QjUxQ0ZFMEI4ODAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREUx
OTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1sICov
OyB9OwogCQlDRTA2REY5QjFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwNkRGOUExRTE4
NTFGMjAwRTU3MEM5IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLzsgfTsKQEAgLTcwOSw2ICs3MTEs
NyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9s
ZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMzQzQg
LyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTNFMkQyNzYxRUQ3RDUzMjAwRkE3NkY2IC8qIG9m
ZnNjcmVlbi1pZnJhbWUtb2YtbWVkaWEtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlGNDZBMDk1QTFFRDhBNkU2MDBENEFBNTUgLyogYXBwbGUuZ2lmIGluIENvcHkgUmVz
b3VyY2VzICovLApAQCAtMTUyMyw2ICsxNTI2LDggQEAKIAkJQ0RDOEU0OEExQkM1Qzk2MjAwNTk0
RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8ubXA0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJ2aWRlby13aXRoLWF1ZGlvLm1wNCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhFNDhCMUJDNUM5NjIwMDU5NEZFQyAv
KiB2aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
dmlkZW8td2l0aG91dC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDOEU0OEMxQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGhvdXQtYXVkaW8ubXA0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9
ICJ2aWRlby13aXRob3V0LWF1ZGlvLm1wNCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQzk0NDJCMUVGMUZCRDIwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAibWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDOTQ0MkMxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3Ry
ZWFtVHJhY2tEZXRhY2hlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRkE3QTkxRTQ1
MTIyRjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTYW1wbGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REUxOTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5o
dG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREUxOTVCMzFDRkUwQURFMDA1M0Qy
NTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTYzLDYgKzIxNjgsNyBAQAogCQkJCTMzREM4OTEwMTQx
OTUzQTMwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3Bw
ICovLAogCQkJCTMzREM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCAqLywKIAkJCQk4QUEyOEMxOTE2RDJGQTdCMDAy
RkY0REIgLyogTG9hZFBhZ2VPbkNyYXNoLmNwcCAqLywKKwkJCQlDREM5NDQyQzFFRjFGQzA4MDA1
OUMzQzQgLyogTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tICovLAogCQkJCTdBNTYyMzEwMUFE
NUFGM0UwMDk2QjkyMCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5jcHAgKi8sCiAJCQkJNTFD
QjRBRDcxQjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJLmNwcCAqLywKIAkJCQkzM0JF
NUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgKi8sCkBAIC0y
MzQ3LDYgKzIzNTMsNyBAQAogCQkJCTkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9m
LXRleHQuaHRtbCAqLywKIAkJCQk1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlv
bi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLywKIAkJCQlBRDU3QUMxRDFEQTc0NjM4MDBG
RjFCREUgLyogbWFueS1pZnJhbWVzLmh0bWwgKi8sCisJCQkJQ0RDOTQ0MkIxRUYxRkJEMjAwNTlD
M0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCAqLywKIAkJCQk1MUNEMUM3MTFC
MzhENDg0MDAxNDJDQTUgLyogbW9kYWwtYWxlcnRzLWluLW5ldy1hYm91dC1ibGFuay13aW5kb3cu
aHRtbCAqLywKIAkJCQk3QTE0NThGQjFBRDVDMDM1MDBFMDY3NzIgLyogbW91c2UtYnV0dG9uLWxp
c3RlbmVyLmh0bWwgKi8sCiAJCQkJMzNFNzlFMDUxMzdCNUZDRTAwRTMyRDk5IC8qIG1vdXNlLW1v
dmUtbGlzdGVuZXIuaHRtbCAqLywKQEAgLTI5MDcsNiArMjkxNCw3IEBACiAJCQkJNTFEMTI0OUIx
RTc4NTQyNTAwMkIyODIwIC8qIENvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdFQUMxQTQxMUEzNDAwNDQ3QzRDIC8qIENvdW50ZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdBRUFENDdGMUUyMDExNkMwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVB
Y2Nlc3MubW0gaW4gU291cmNlcyAqLywKKwkJCQlDREM5NDQyRTFFRjFGQzA4MDA1OUMzQzQgLyog
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIx
QTQxMUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0YyOTFBNDExQjEwMDA0NDdDNEMgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJBMUE0MTFCMTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90
b2NvbHNTeW5jWEhSVGVzdC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWZmYWM2N2ZkOThlYmY5MDExZTFhOWQ2ZjA4NjU2NDhjYWFmM2JmOQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0
LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgorCitzdGF0aWMgYm9vbCBoYXNSZWNpZXZl
ZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKKworQGludGVyZmFjZSBNZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWRVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBt
YWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwg
Kil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6
KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNT
dHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZToo
X1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBNZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dL
Q2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNV
UkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6
ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOworfQorCist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVS
TCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBZRVMpOworfQor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKK3sKKyAgICBpZiAoc3RhdGUgPT0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKQorICAgICAgICBoYXNSZWNpZXZl
ZENvcnJlY3RDYXB0dXJlU3RhdGUgPSB0cnVlOworfQorQGVuZAorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK1RFU1QoV2ViS2l0MiwgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkKQorewor
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByZWZl
cmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9t
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBwcmVmZXJlbmNl
cy5fbWVkaWFEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAg
ICBoYXNSZWNpZXZlZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBs
b2FkVGVzdFBhZ2VOYW1lZDpAIm1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQiXTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlKTsK
KworCit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21lZGlhc3RyZWFtdHJhY2stZGV0YWNo
ZWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JjMTY5MjJiMDYwM2FhZjQ1ZWU4MjYxOTE2
M2M4MmRlM2IzY2VjOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9tZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwKQEAgLTAsMCArMSwyMyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciBhdWRpb1Ry
YWNrOworCitmdW5jdGlvbiBnbygpIHsKKyAgICB2YXIgY29uc3RyYWludHMgPSB7IGF1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX07CisgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoY29uc3RyYWludHMpLnRoZW4oZ290VXNlck1lZGlhKTsKK30KKworZnVuY3Rpb24gZ290VXNl
ck1lZGlhKHN0cmVhbSkgeworICAgIGF1ZGlvVHJhY2sgPSBzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KVswXTsKKyAgICBzdHJlYW0ucmVtb3ZlVHJhY2soYXVkaW9UcmFjayk7CisKKyAgICBzdHJlYW0u
Z2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB7IHRyYWNrLnN0b3AoKTsgfSk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZ28oKSI+CisgICAgPGRpdj5UaGlzIHRlc3Rz
IHRoZSBiZWhhdmlvciBvZiB0aGUgbWVkaWEgY2FwdHVyZSBpbmRpY2F0b3Igd2hlbiBhIGxpdmUg
TWVkaWFTdHJlYW1UcmFjayBpcyByZW1vdmVkIGZyb20gYSBNZWRpYVN0cmVhbSwgYW5kIGFsbCB0
aGUgb3RoZXIgdHJhY2tzIGFyZSBzdG9wcGVkLiBUaGUgcGFnZSBzaG91bGQgcmVxdWVzdCBhY2Nl
c3MgdG8gdGhlIGNhbWVyYSBhbmQgbWljcm9waG9uZSwgYW5kIHRoZW4gZGlzcGxheSBhIGF1ZGlv
LWNhcHR1cmUgaWNvbi4gSWYgdGhlIHBhZ2UgZGlzcGxheXMgYSBjYW1lcmEgaWNvbiBvciBubyBj
YXB0dXJlIGljb24gYXQgYWxsLCB0aGUgdGVzdCBoYXMgZmFpbGVkLjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313036</attachid>
            <date>2017-06-15 18:08:09 -0700</date>
            <delta_ts>2017-06-16 11:07:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173398-20170615180809.patch</filename>
            <type>text/plain</type>
            <size>32812</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJmYTliZmQxZDgwOGM4
YjQwMDcwMjEzMzI4ZTMxNmFmNzYyODBmYi4uOWZiNTllNDU4YzEyMzY2ZWMzOTU1M2Q5YmNhZWUy
NmFlYTNmMmEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE3LTA2LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtXZWJSVENdIFJlbW92aW5n
IGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRp
bmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFQSSBUZXN0OiBU
ZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorCisgICAgICAgIE1vdmUg
dGhlIGRlZmluaXRpb24gb2YgYSBNZWRpYVN0cmVhbSBhcyBhIE1lZGlhUHJvZHVjZXIgZnJvbSB0
aGUgc3RyZWFtIGl0c2VsZiB0byBpdHMgY29uc3RpdHVlbnQKKyAgICAgICAgTWVkaWFTdHJlYW1U
cmFja3MuIFRoaXMgZW5zdXJlcyB0aGF0LCBldmVuIGlmIGEgTWVkaWFTdHJlYW1UcmFjayBpcyBy
ZW1vdmVkIGZyb20gaXRzIHN0cmVhbSwgdGhlCisgICAgICAgIGRvY3VtZW50IChhbmQgdGh1cyB0
aGUgY2xpZW50cykgYXJlIG5vdGlmaWVkIHRoYXQgbWVkaWEgY2FwdHVyZSBpcyBzdGlsbCBvY2N1
cnJpbmcuCisKKyAgICAgICAgVGhvdWdoIE1lZGlhU3RyZWFtIGlzIG5vIGxvbmdlciBhIE1lZGlh
UHJvZHVjZXIsIGl0IHN0aWxsIHVzZXMgdGhlIE1lZGlhUHJvZHVjZXIncyBzdGF0ZSBjb25jZXB0
CisgICAgICAgIHRvIGRldGVybWluZSB3aGVuIHRvIGZpcmUgZXZlbnRzLiBIb3dldmVyIGl0J3Mg
bWVkaWFTdGF0ZSgpIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgbW92ZWQgaW50bworICAgICAgICBN
ZWRpYVN0cmVhbVRyYWNrLCBhbmQgd2lsbCBpbnN0ZWFkIHNpbXBseSBiaXR3aXNlLW9yIHRvZ2V0
aGVyIGVhY2ggb2YgaXQncyB0cmFjaydzIG1lZGlhU3RhdGUoKS4KKworICAgICAgICBUaGUgTWVk
aWFTdHJlYW0gbm90aWZpZXMgdGhlIGRvY3VtZW50IHRoYXQgaXRzIHN0YXRlIGhhcyBjaGFuZ2Vk
IGFzeW5jaHJvbm91c2x5LCBzbyBkbyB0aGUgc2FtZQorICAgICAgICBmb3IgTWVkaWFTdHJlYW1U
cmFjayAod2hpY2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoZSBjbGllbnQgd2hl
biBjaGFuZ2VzIGFsbCBvY2N1cgorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcnVuIGxvb3ApLgor
CisgICAgICAgIEJlY2F1c2UgdGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIG1heSBiZSBzdGFy
dGVkIGV4dGVybmFsbHkgKG5vdCBieSB0aGUgTWVkaWFTdHJlYW1UcmFjayBkaXJlY3RseSksCisg
ICAgICAgIGFkZCBhIG5ldyBjbGllbnQgbWV0aG9kIHRoYXQgbm90aWZpZXMgb2JzZXJ2ZXJzIHdo
ZW4gdGhlIHRyYWNrIGhhcyBiZWVuIHN0YXJ0ZWQsIGFuZCB0aGUKKyAgICAgICAgTWVkaWFTdHJl
YW1UcmFjayB3aWxsIHVzZSB0aGlzIG5vdGlmaWNhdGlvbiB0byB1cGRhdGUgdGhlIGRvY3VtZW50
IHdpdGggaXQncyBuZXcgbWVkaWFTdGF0ZSgpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVk
aWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZG9jdW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6c291cmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja1N0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKworMjAxNy0wNi0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKwogICAgICAgICBWaWRlbyBmbGFzaGVzIGJsYWNrIHdoZW4gc3dpdGNoaW5nIGJhY2sg
dG8gYSB0YWIgaHR0cHM6Ly93d3cuYXBwbGUuY29tL2hvbWVwb2QvCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMzNzcKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAzNjQ5YmMw
ODk0YWYwNzlkZTFiYjA2ZWUwOWNmMzY2NTEwMjRiMzQ3Li45OTUzNGYxYmY3OTYwNTk5YmU3YzAw
NWRiNzgxOWIzZmMxNzU3NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtOTAsNyArOTAsNiBAQCBNZWRpYVN0cmVhbTo6
TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFT
dHJlYW1UcmFjawogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZlKCkpOwogICAgIG1f
cHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnNo
YXJlZCgpLnJlZ2lzdGVyU3RyZWFtKCp0aGlzKTsKLSAgICBkb2N1bWVudCgpLT5hZGRBdWRpb1By
b2R1Y2VyKHRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBAIC0xMTEsNyArMTEw
LDYgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFJlZjxNZWRpYVN0cmVhbVByaXZhdGUKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVy
KCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQodHJhY2stPmlkKCksIFdURk1vdmUodHJh
Y2spKTsKICAgICB9Ci0gICAgZG9jdW1lbnQoKS0+YWRkQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIApAQCAtMTI1LDcgKzEyMyw2IEBAIE1lZGlhU3RyZWFt
Ojp+TWVkaWFTdHJlYW0oKQogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVl
cygpKQogICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5y
ZW1vdmVBdWRpb1Byb2R1Y2VyKHRoaXMpOwogICAgICAgICBpZiAobV9pc1dhaXRpbmdVbnRpbE1l
ZGlhQ2FuU3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTWVkaWFDYW5TdGFydExp
c3RlbmVyKHRoaXMpOwogICAgIH0KQEAgLTMyMiw1MiArMzE5LDE1IEBAIHZvaWQgTWVkaWFTdHJl
YW06OmVuZENhcHR1cmVUcmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVN0cmVhbTo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQotewotICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAg
ICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3ByaXZhdGUtPnNldENh
cHR1cmVUcmFja3NNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11dGVkKCkp
OwotfQotCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW06Om1lZGlh
U3RhdGUoKSBjb25zdAogewotICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IElzTm90UGxheWlu
ZzsKKyAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRpYVByb2R1
Y2VyOjpJc05vdFBsYXlpbmc7CiAKICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWRvY3VtZW50KCkg
fHwgIWRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogCi0gICAgYm9v
bCBwYWdlQ2FwdHVyZU11dGVkID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11
dGVkKCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKCF0cmFjay0+aXNDYXB0dXJlVHJhY2soKSB8fCB0cmFjay0+ZW5kZWQo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICh0cmFjay0+c291cmNlKCku
dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAg
ICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVwdGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQp
Ci0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFjay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAg
ICBzdGF0ZSB8PSBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsK
LSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVw
dGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCi0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFz
SW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFj
ay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+
bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChjb25z
dCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHN0YXRlIHw9IHRy
YWNrLT5tZWRpYVN0YXRlKCk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CkBAIC0zNzksMTMgKzMz
OSwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzdGF0dXNEaWRDaGFuZ2UoKQogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChtX2lzQWN0
aXZlKQogICAgICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0FjdGl2ZU1lZGlhU3RyZWFtVHJhY2so
KTsKLSAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiAgICAgfQogfQog
CiB2b2lkIE1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAgYXV0byBzdGF0ZSA9IG1lZGlh
U3RhdGUoKTsKICAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewogICAgICAgICBtX3N0YXRlID0g
c3RhdGU7CiAgICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDgzNmViNjNhODNlOWM4OWE3
MzcwZWQ1MzBlMjY5MWEyM2E2MmJlNDAuLjk4M2JkNTEzYWE4YWE4N2JiOTczODVkYjg3NmI0Zjky
MzY2NTVmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKQEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwKICAg
ICAsIHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNr
OjpPYnNlcnZlcgogICAgICwgcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAg
ICAsIHByaXZhdGUgTWVkaWFQcm9kdWNlcgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIKICAgICAsIHByaXZhdGUgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQKICAgICAsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiB7CkBAIC0xMzYsOSArMTM1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICAvLyBN
ZWRpYVByb2R1Y2VyCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwot
ICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmlu
YWw7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25z
dDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFy
dChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
TWVkaWFTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKIAotICAgIE1lZGlhU3RhdGVGbGFncyBtX3N0
YXRlIHsgSXNOb3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1fc3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKIAogICAgIGJvb2wgbV9p
c0FjdGl2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAppbmRleCA2OTdjNjk1N2VkNDBlZjU4NjQyYzNjYTAyNjA0OTNkNDQwYTcy
NzRkLi5jMGZmZmZhZGM0YTE1ODI3ZjJmNjc4ZDM3MzU2YWFkM2I2ZDQ2Y2UzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKQEAgLTM4LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk92ZXJjb25zdHJhaW5lZEVycm9yLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTIsMTUgKzU0LDIyIEBAIE1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVm
PE1lZGlhU3RyCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3ByaXZh
dGUoV1RGTW92ZShwcml2YXRlVHJhY2spKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQor
ICAgICwgbV90YXNrUXVldWUoY29udGV4dCkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAog
ICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkQXVkaW9Qcm9kdWNl
cih0aGlzKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQogewog
ICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Q
cm9kdWNlcih0aGlzKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNr
OjpraW5kKCkgY29uc3QKQEAgLTEyOCw2ICsxMzcsOCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6
OnN0b3BUcmFjayhTdG9wTW9kZSBtb2RlKQogCiAgICAgbV9wcml2YXRlLT5lbmRUcmFjaygpOwog
ICAgIG1fZW5kZWQgPSB0cnVlOworCisgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKIH0K
IAogTWVkaWFTdHJlYW1UcmFjazo6VHJhY2tTZXR0aW5ncyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRT
ZXR0aW5ncygpIGNvbnN0CkBAIC0yODUsNiArMjk2LDUzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAgIG1fb2JzZXJ2ZXJzLnJl
bW92ZUZpcnN0KCZvYnNlcnZlcik7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6cGFnZU11
dGVkU3RhdGVEaWRDaGFuZ2UoKQoreworICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFj
aygpKQorICAgICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQoZG9jdW1lbnQtPnBhZ2UoKS0+
aXNNZWRpYUNhcHR1cmVNdXRlZCgpKTsKK30KKworTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAoreworICAgIGlmIChtX2Vu
ZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygpKQorICAgICAgICByZXR1cm4gSXNOb3RQbGF5aW5nOwor
CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1cm4gSXNOb3RQbGF5aW5n
OworCisgICAgYm9vbCBwYWdlQ2FwdHVyZU11dGVkID0gZG9jdW1lbnQtPnBhZ2UoKS0+aXNNZWRp
YUNhcHR1cmVNdXRlZCgpOworCisgICAgaWYgKHNvdXJjZSgpLnR5cGUoKSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbykgeworICAgICAgICBpZiAoc291cmNlKCkuaW50ZXJydXB0
ZWQoKSAmJiAhcGFnZUNhcHR1cmVNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBIYXNJbnRlcnJ1
cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG11dGVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIGlmIChtX3ByaXZh
dGUtPmlzUHJvZHVjaW5nRGF0YSgpKQorICAgICAgICAgICAgcmV0dXJuIEhhc0FjdGl2ZUF1ZGlv
Q2FwdHVyZURldmljZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc291cmNlKCkuaW50ZXJy
dXB0ZWQoKSAmJiAhcGFnZUNhcHR1cmVNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBIYXNJbnRl
cnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG11dGVkKCkpCisgICAgICAg
ICAgICByZXR1cm4gSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIGlmIChtX3By
aXZhdGUtPmlzUHJvZHVjaW5nRGF0YSgpKQorICAgICAgICAgICAgcmV0dXJuIEhhc0FjdGl2ZVZp
ZGVvQ2FwdHVyZURldmljZTsKKyAgICB9CisKKyAgICByZXR1cm4gSXNOb3RQbGF5aW5nOworfQor
Cit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKK30KKwogdm9pZCBNZWRp
YVN0cmVhbVRyYWNrOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKICAg
ICAvLyBodHRwOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi8jbGlmZS1jeWNsZQpA
QCAtMzMyLDYgKzM5MCwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrRW5hYmxlZENo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6
OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCkKIHsKKyAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFz
ayhbdGhpc10geworICAgICAgICBpZiAoYXV0byBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkp
CisgICAgICAgICAgICBkb2N1bWVudC0+dXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKKyAgICB9KTsK
KwogICAgIC8vIDQuMy4xCiAgICAgLy8gLi4uIG1lZGlhIGZyb20gdGhlIHNvdXJjZSBvbmx5IGZs
b3dzIHdoZW4gYSBNZWRpYVN0cmVhbVRyYWNrIG9iamVjdCBpcyBib3RoIHVubXV0ZWQgYW5kIGVu
YWJsZWQKIH0KQEAgLTMzOSw2ICs0MDIsNyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZp
Z3VyZVRyYWNrUmVuZGVyaW5nKCkKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcCgpCiB7CiAg
ICAgc3RvcFRyYWNrKCk7CisgICAgbV90YXNrUXVldWUuY2xvc2UoKTsKIH0KIAogY29uc3QgY2hh
ciogTWVkaWFTdHJlYW1UcmFjazo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC0zNjEs
NiArNDI1LDExIEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhU3RyZWFtVHJhY2s6OmF1ZGlv
U291cmNlUHJvdmlkZXIoKQogICAgIHJldHVybiBtX3ByaXZhdGUtPmF1ZGlvU291cmNlUHJvdmlk
ZXIoKTsKIH0KIAorRG9jdW1lbnQqIE1lZGlhU3RyZWFtVHJhY2s6OmRvY3VtZW50KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDM4NzE1NTMxZDY3NDYwZTNjYzlhOGFmZjYwMmFjYzUy
Y2UwZTY0NGEuLmY5YzBkMWFiOTE2ZmY0YjE4NWRhZTEyNmQ2YTdjMzc1YmQ1MmRjNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5oCkBAIC0zMiwxOCArMzIsMjYgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJEb3VibGVSYW5nZS5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCiAjaW5jbHVkZSAiTG9uZ1JhbmdlLmgiCisjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgog
I2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9Tb3Vy
Y2VQcm92aWRlcjsKK2NsYXNzIERvY3VtZW50OwogCiBzdHJ1Y3QgTWVkaWFUcmFja0NvbnN0cmFp
bnRzOwogCi1jbGFzcyBNZWRpYVN0cmVhbVRyYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFT
dHJlYW1UcmFjaz4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7
CitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrIDoKKyAgICBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0
cmVhbVRyYWNrPiwKKyAgICBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LAorICAgIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhLAorICAgIHByaXZhdGUgTWVkaWFQcm9kdWNlciwKKyAgICBw
cml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAg
Y2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTExMCwxMSArMTE4LDE1IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludHMmIGdldENvbnN0cmFpbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9jb25zdHJhaW50czsgfQogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhj
b25zdCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50cz4mLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJl
dHVybiBtX3ByaXZhdGUtPnNvdXJjZSgpOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291
cmNlKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLT5zb3VyY2UoKTsgfQogICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiBwcml2YXRlVHJhY2soKSB7IHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7
IH0KIAogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKIAor
ICAgIC8vIE1lZGlhUHJvZHVjZXIKKyAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkg
ZmluYWw7CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBj
b25zdCBmaW5hbDsKKwogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKICAgICB2b2lk
IHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CiAKQEAgLTEzMiw2ICsxNDQsOCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOwogCisgICAgRG9jdW1lbnQq
IGRvY3VtZW50KCkgY29uc3Q7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZv
aWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbDsKQEAgLTE0NCw2ICsxNTgsNyBAQCBwcml2YXRlOgogICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgLy8g
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdz
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwpAQCAtMTU3LDYgKzE3Miw3
IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAg
ICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fcHJvbWlzZTsKICAg
ICBXZWFrUHRyRmFjdG9yeTxNZWRpYVN0cmVhbVRyYWNrPiBtX3dlYWtQdHJGYWN0b3J5OworICAg
IEdlbmVyaWNUYXNrUXVldWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV90YXNrUXVldWU7CiAK
ICAgICBib29sIG1fZW5kZWQgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
aW5kZXggMGU1MWVhYmE5Mzc3NGU1ZWY3MWU0Yjk4YjM4OTE4ZGEwOGMwZDkyMC4uYzNjZDk4ODAx
NTA1MWEwMTNkZTMzZmI5MDE2YmM2NGJmNjg1YTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKQEAgLTIwMSw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2so
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIC8vIE1lZGlhU3RyZWFt
UHJpdmF0ZVRyYWNrOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tTdGFydGVkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJh
Y2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmNwcAppbmRleCA0ZDBlNGU2MDIyNzFkNzQ0MTY0NGQ4MzVhMjc4YjZk
OTY2YTUyNDZkLi5iMjRlNjRlMTE1Zjc3NTdlMDAxYjdkZTg5YTllMzNjNjg4N2UyZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTI4MSw2ICsyODEsMTMgQEAgdm9pZCBNZWRpYVN0cmVhbVBy
aXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAg
IH0pOwogfQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tTdGFydGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10gewor
ICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVk
aWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsK
ICAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCBh
Nzk3MDRkZDg1YTM1OTg5M2ZiNGNmZjU4NzM4YTU2YWQ5YTE2YWNiLi4yMTJkZjkwMzEwODMwYTUw
ZWMwMDIwODBiMjdkZDIxMjQ0MjYxZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtMTI1LDYgKzEy
NSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlVmVjdG9yJiwgU3RyaW5nJiYpOwogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCmluZGV4IGY1YjRlMjllOWZiZTYyNmE1ODU2NmY5YjA4MWU1ZjYzYThjYWNlNGUu
LmVlNTQ3ZTMyZmQ4NjNjZGYwMjY4OWZjZGE3OTZlOTQ5NjM4ZGZiNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTE1MSw2ICsxNTEsMTIgQEAgQXVkaW9Tb3VyY2VQcm92aWRl
ciogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogICAgIHJl
dHVybiBtX3NvdXJjZS0+YXVkaW9Tb3VyY2VQcm92aWRlcigpOwogfQogCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2Vy
dmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT50cmFja1N0YXJ0ZWQoKnRoaXMp
OworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VTdG9wcGVkKCkKIHsK
ICAgICBpZiAobV9pc0VuZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggYWVkMzc5
MTU4ZDFiN2YwNWNjYzhhZmNiYzkyODU3NjBhMjNlOWFjYy4uYTk2Yzc2YmE2OGMwNjZhM2FiYTU2
ZjRlODExOWUwYmRjMzdiMTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC00Myw2
ICs0Myw3IEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVy
KCkgeyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrRW5kZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja011dGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2
b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwpA
QCAtMTAyLDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUo
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYsIFN0cmluZyYmIGlkKTsKIAogICAgIC8vIFJlYWx0
aW1lTWVkaWFTb3VyY2VPYnNlcnZlcgorICAgIHZvaWQgc291cmNlU3RhcnRlZCgpIGZpbmFsOwog
ICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFu
Z2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAppbmRleCA1NzU4NjI5NGVjMGQyMDA4OWVmYWY2MmE0NzU2Mjk1MjYy
NTRjN2JhLi4wNmNiNDQzNTY5NzFjYjNmNjBhNWQ4NjA3MGI1NTIzODEyNTZjNTc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcApAQCAtMTYyLDYgKzE2Miw5IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3RhcnQoKQogCiAgICAgbV9pc1Byb2R1Y2luZ0RhdGEgPSB0cnVlOwogICAgIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworCisgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBtX29ic2Vy
dmVycykKKyAgICAgICAgb2JzZXJ2ZXIuc291cmNlU3RhcnRlZCgpOwogfQogCiB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFkYmMwN2RiNGZm
ZDZhYmVmNWM3Y2VlNzViZTliN2MwNmY1YjE3YmEuLjNhNjMxMDg2ODIxNTcyYWM5ODk0ZjI2M2Fl
MDQwYzc0YTRhZGVjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVi
bGljOgogICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQogICAgICAgICAKICAgICAgICAg
Ly8gU291cmNlIHN0YXRlIGNoYW5nZXMuCisgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VTdGFy
dGVkKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VTdG9wcGVkKCkgeyB9CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSB7IH0KICAgICAgICAgdmlydHVh
bCB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgeyB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWUwYWEzNTRlZGE0MTU4MGU0ZGY2ODM4OTlj
OGI0MTQ1MWEwYmZlNC4uMTE5ZWNiNjg5ZGRkZDFkOTBlZDM1YzMyY2E2ODI4MmNiMGViOTJiYyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE3LTA2LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWJSVENdIFJlbW92aW5nIGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVk
aWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRpbmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL01l
ZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbTogQWRkZWQuCisgICAgICAgICgtW01lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRl
Y2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlE
ZWxlZ2F0ZSBfd2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9tZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA2LTE1
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBBZGQgQVBJIHRvIGFsbG93IG92ZXJyaWRpbmcgcG9wdXAgbWVudXMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZGNiNjY5MzUzYjFiMTNmMDQ3NzNmMWQ0MWJmODVhNThkNmVlNDFlMC4u
M2FmZTdhMjY0YTYyOTZjMTg2ZDkxYWIzMGViNDJkN2JhMTMxZWE0MSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTYwMSw2ICs2MDEsOCBAQAogCQlDREM4RTQ5NTFCQzZGMTA4MDA1OTRGRUMg
LyogdmlkZW8td2l0aC1hdWRpby5tcDQgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEU0OEExQkM1Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdp
dGgtYXVkaW8ubXA0ICovOyB9OwogCQlDREM4RTQ5NjFCQzZGMTA4MDA1OTRGRUMgLyogdmlkZW8t
d2l0aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEQzhFNDhCMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0
LWF1ZGlvLmh0bWwgKi87IH07CiAJCUNEQzhFNDk3MUJDNkYxMDgwMDU5NEZFQyAvKiB2aWRlby13
aXRob3V0LWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREM4RTQ4QzFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aG91dC1h
dWRpby5tcDQgKi87IH07CisJCUNEQzk0NDJFMUVGMUZDMDgwMDU5QzNDNCAvKiBNZWRpYVN0cmVh
bVRyYWNrRGV0YWNoZWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREM5NDQyQzFFRjFGQzA4MDA1OUMzQzQgLyogTWVkaWFTdHJlYW1UcmFja0RldGFj
aGVkLm1tICovOyB9OworCQlDREM5NDQyRjFFRjIwNUQ2MDA1OUMzQzQgLyogbWVkaWFzdHJlYW10
cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEQzk0NDJCMUVGMUZCRDIwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkLmh0bWwgKi87IH07CiAJCUNEQ0ZBN0FBMUU0NTE4MzIwMEMyNDMzRCAvKiBT
YW1wbGVNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RDRkE3QTkxRTQ1MTIyRjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgKi87IH07CiAJCUNE
RTE5NUI1MUNGRTBCODgwMDUzRDI1NiAvKiBGdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
MTk1QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCAq
LzsgfTsKIAkJQ0UwNkRGOUIxRTE4NTFGMjAwRTU3MEM5IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDZERjlBMUUx
ODUxRjIwMEU1NzBDOSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi87IH07CkBAIC03MDksNiArNzEx
LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZv
bGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJQ0RDOTQ0MkYxRUYyMDVENjAwNTlDM0M0
IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4tdGV4dC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzRTJEMjc2MUVEN0Q1MzIwMEZBNzZGNiAvKiBv
ZmZzY3JlZW4taWZyYW1lLW9mLW1lZGlhLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRBQTU1IC8qIGFwcGxlLmdpZiBpbiBDb3B5IFJl
c291cmNlcyAqLywKQEAgLTE1MjMsNiArMTUyNiw4IEBACiAJCUNEQzhFNDhBMUJDNUM5NjIwMDU5
NEZFQyAvKiB2aWRlby13aXRoLWF1ZGlvLm1wNCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAidmlkZW8td2l0aC1hdWRpby5tcDQi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4RTQ4QjFCQzVDOTYyMDA1OTRGRUMg
LyogdmlkZW8td2l0aG91dC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
InZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1ZGlvLm1wNCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGgg
PSAidmlkZW8td2l0aG91dC1hdWRpby5tcDQiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREM5NDQyQjFFRjFGQkQyMDA1OUMzQzQgLyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gIm1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzk0NDJDMUVGMUZDMDgwMDU5QzNDNCAvKiBNZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZBN0E5MUU0
NTEyMkYwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RFMTk1QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQu
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFMTk1QjMxQ0ZFMEFERTAwNTNE
MjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBGdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE2Myw2ICsyMTY4LDcgQEAKIAkJCQkzM0RDODkxMDE0
MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNw
cCAqLywKIAkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2
ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8sCiAJCQkJOEFBMjhDMTkxNkQyRkE3QjAw
MkZGNERCIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8sCisJCQkJQ0RDOTQ0MkMxRUYxRkMwODAw
NTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSAqLywKIAkJCQk3QTU2MjMxMDFB
RDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3BwICovLAogCQkJCTUx
Q0I0QUQ3MUIzQTA3OUMwMEMxQjFDNiAvKiBNb2RhbEFsZXJ0c1NQSS5jcHAgKi8sCiAJCQkJMzNC
RTVBRjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwICovLApAQCAt
MjM0Nyw2ICsyMzUzLDcgQEAKIAkJCQk5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYgLyogbG90cy1v
Zi10ZXh0Lmh0bWwgKi8sCiAJCQkJNTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEwIC8qIG5hdmlnYXRp
b24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi8sCiAJCQkJQUQ1N0FDMUQxREE3NDYzODAw
RkYxQkRFIC8qIG1hbnktaWZyYW1lcy5odG1sICovLAorCQkJCUNEQzk0NDJCMUVGMUZCRDIwMDU5
QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwgKi8sCiAJCQkJNTFDRDFDNzEx
QjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFsLWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93
Lmh0bWwgKi8sCiAJCQkJN0ExNDU4RkIxQUQ1QzAzNTAwRTA2NzcyIC8qIG1vdXNlLWJ1dHRvbi1s
aXN0ZW5lci5odG1sICovLAogCQkJCTMzRTc5RTA1MTM3QjVGQ0UwMEUzMkQ5OSAvKiBtb3VzZS1t
b3ZlLWxpc3RlbmVyLmh0bWwgKi8sCkBAIC0yOTA3LDYgKzI5MTQsNyBAQAogCQkJCTUxRDEyNDlC
MUU3ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1l
QWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8q
IE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RURC
MUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMjkxQTQxMUIxMDAwNDQ3QzRDIC8qIEN1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWUubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyQTFBNDExQjEwMDA0NDdDNEMgLyogQ3VzdG9tUHJv
dG9jb2xzU3luY1hIUlRlc3QubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVk
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFmZmFjNjdmZDk4ZWJmOTAxMWUxYTlkNmYwODY1NjQ4Y2FhZjNiZjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktp
dC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KKworc3RhdGljIGJvb2wgaGFzUmVjaWV2
ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CisKK0BpbnRlcmZhY2UgTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRp
b25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwg
bWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJM
ICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVy
OihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6
KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gTWVk
aWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZQorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5T
VVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3Jp
emVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKK30KKwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
UkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgWUVTKTsKK30K
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlCit7CisgICAgaWYgKHN0YXRlID09
IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZSkKKyAgICAgICAgaGFzUmVjaWV2
ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gdHJ1ZTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitURVNUKFdlYktpdDIsIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZCkKK3sK
KyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtb
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBwcmVm
ZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5f
bWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5j
ZXMuX21lZGlhRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOworCisg
ICAgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
bG9hZFRlc3RQYWdlTmFtZWQ6QCJtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkIl07CisKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSk7
CisKKworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRpYXN0cmVhbXRyYWNrLWRldGFj
aGVkLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWVkaWFzdHJlYW10
cmFjay1kZXRhY2hlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYzE2OTIyYjA2MDNhYWY0NWVlODI2MTkx
NjNjODJkZTNiM2NlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sCkBAIC0wLDAgKzEsMjMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit2YXIgYXVkaW9U
cmFjazsKKworZnVuY3Rpb24gZ28oKSB7CisgICAgdmFyIGNvbnN0cmFpbnRzID0geyBhdWRpbzog
dHJ1ZSwgdmlkZW86IHRydWV9OworICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKGNvbnN0cmFpbnRzKS50aGVuKGdvdFVzZXJNZWRpYSk7Cit9CisKK2Z1bmN0aW9uIGdvdFVz
ZXJNZWRpYShzdHJlYW0pIHsKKyAgICBhdWRpb1RyYWNrID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KClbMF07CisgICAgc3RyZWFtLnJlbW92ZVRyYWNrKGF1ZGlvVHJhY2spOworCisgICAgc3RyZWFt
LmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4geyB0cmFjay5zdG9wKCk7IH0pOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImdvKCkiPgorICAgIDxkaXY+VGhpcyB0ZXN0
cyB0aGUgYmVoYXZpb3Igb2YgdGhlIG1lZGlhIGNhcHR1cmUgaW5kaWNhdG9yIHdoZW4gYSBsaXZl
IE1lZGlhU3RyZWFtVHJhY2sgaXMgcmVtb3ZlZCBmcm9tIGEgTWVkaWFTdHJlYW0sIGFuZCBhbGwg
dGhlIG90aGVyIHRyYWNrcyBhcmUgc3RvcHBlZC4gVGhlIHBhZ2Ugc2hvdWxkIHJlcXVlc3QgYWNj
ZXNzIHRvIHRoZSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUsIGFuZCB0aGVuIGRpc3BsYXkgYSBhdWRp
by1jYXB0dXJlIGljb24uIElmIHRoZSBwYWdlIGRpc3BsYXlzIGEgY2FtZXJhIGljb24gb3Igbm8g
Y2FwdHVyZSBpY29uIGF0IGFsbCwgdGhlIHRlc3QgaGFzIGZhaWxlZC48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313093</attachid>
            <date>2017-06-16 11:07:16 -0700</date>
            <delta_ts>2017-06-16 11:46:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173398-20170616110715.patch</filename>
            <type>text/plain</type>
            <size>32773</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhhZmY2NGM0ZThmMGI0
ZjUwZjQwNmNkNzRjNTIxNjNhMjA4ZTU2Yy4uOGY1NWY2OGYyYTQxYmU4NTIyYjg1ZjliMzcyMzZk
ZDM1MjkwMjgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA2LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJSVENdIFJlbW92aW5n
IGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0gcmVwb3J0cyBubyByZWNvcmRp
bmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTI5NjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFQSSBUZXN0OiBU
ZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorCisgICAgICAgIE1vdmUg
dGhlIGRlZmluaXRpb24gb2YgYSBNZWRpYVN0cmVhbSBhcyBhIE1lZGlhUHJvZHVjZXIgZnJvbSB0
aGUgc3RyZWFtIGl0c2VsZiB0byBpdHMgY29uc3RpdHVlbnQKKyAgICAgICAgTWVkaWFTdHJlYW1U
cmFja3MuIFRoaXMgZW5zdXJlcyB0aGF0LCBldmVuIGlmIGEgTWVkaWFTdHJlYW1UcmFjayBpcyBy
ZW1vdmVkIGZyb20gaXRzIHN0cmVhbSwgdGhlCisgICAgICAgIGRvY3VtZW50IChhbmQgdGh1cyB0
aGUgY2xpZW50cykgYXJlIG5vdGlmaWVkIHRoYXQgbWVkaWEgY2FwdHVyZSBpcyBzdGlsbCBvY2N1
cnJpbmcuCisKKyAgICAgICAgVGhvdWdoIE1lZGlhU3RyZWFtIGlzIG5vIGxvbmdlciBhIE1lZGlh
UHJvZHVjZXIsIGl0IHN0aWxsIHVzZXMgdGhlIE1lZGlhUHJvZHVjZXIncyBzdGF0ZSBjb25jZXB0
CisgICAgICAgIHRvIGRldGVybWluZSB3aGVuIHRvIGZpcmUgZXZlbnRzLiBIb3dldmVyIGl0J3Mg
bWVkaWFTdGF0ZSgpIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgbW92ZWQgaW50bworICAgICAgICBN
ZWRpYVN0cmVhbVRyYWNrLCBhbmQgd2lsbCBpbnN0ZWFkIHNpbXBseSBiaXR3aXNlLW9yIHRvZ2V0
aGVyIGVhY2ggb2YgaXQncyB0cmFjaydzIG1lZGlhU3RhdGUoKS4KKworICAgICAgICBUaGUgTWVk
aWFTdHJlYW0gbm90aWZpZXMgdGhlIGRvY3VtZW50IHRoYXQgaXRzIHN0YXRlIGhhcyBjaGFuZ2Vk
IGFzeW5jaHJvbm91c2x5LCBzbyBkbyB0aGUgc2FtZQorICAgICAgICBmb3IgTWVkaWFTdHJlYW1U
cmFjayAod2hpY2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoZSBjbGllbnQgd2hl
biBjaGFuZ2VzIGFsbCBvY2N1cgorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcnVuIGxvb3ApLgor
CisgICAgICAgIEJlY2F1c2UgdGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIG1heSBiZSBzdGFy
dGVkIGV4dGVybmFsbHkgKG5vdCBieSB0aGUgTWVkaWFTdHJlYW1UcmFjayBkaXJlY3RseSksCisg
ICAgICAgIGFkZCBhIG5ldyBjbGllbnQgbWV0aG9kIHRoYXQgbm90aWZpZXMgb2JzZXJ2ZXJzIHdo
ZW4gdGhlIHRyYWNrIGhhcyBiZWVuIHN0YXJ0ZWQsIGFuZCB0aGUKKyAgICAgICAgTWVkaWFTdHJl
YW1UcmFjayB3aWxsIHVzZSB0aGlzIG5vdGlmaWNhdGlvbiB0byB1cGRhdGUgdGhlIGRvY3VtZW50
IHdpdGggaXQncyBuZXcgbWVkaWFTdGF0ZSgpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVk
aWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6dHJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2s6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZG9jdW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6c291cmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja1N0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTdGFydGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKwogMjAxNy0wNi0xNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBEbyBub3QgcGF1c2UgcGxheWluZyB2aWRlbyB3aGVuIGFw
cGxpY2F0aW9uIHJlc2lnbnMgYWN0aXZlIHN0YXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAzNjQ5YmMwODk0YWYwNzlk
ZTFiYjA2ZWUwOWNmMzY2NTEwMjRiMzQ3Li45OTUzNGYxYmY3OTYwNTk5YmU3YzAwNWRiNzgxOWIz
ZmMxNzU3NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLmNwcApAQCAtOTAsNyArOTAsNiBAQCBNZWRpYVN0cmVhbTo6TWVkaWFTdHJl
YW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFTdHJlYW1UcmFj
awogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZlKCkpOwogICAgIG1fcHJpdmF0ZS0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnNoYXJlZCgpLnJl
Z2lzdGVyU3RyZWFtKCp0aGlzKTsKLSAgICBkb2N1bWVudCgpLT5hZGRBdWRpb1Byb2R1Y2VyKHRo
aXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBAIC0xMTEsNyArMTEwLDYgQEAgTWVk
aWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZjxNZWRpYVN0cmVhbVByaXZhdGUKICAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsK
ICAgICAgICAgbV90cmFja1NldC5hZGQodHJhY2stPmlkKCksIFdURk1vdmUodHJhY2spKTsKICAg
ICB9Ci0gICAgZG9jdW1lbnQoKS0+YWRkQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAgICBzdXNwZW5k
SWZOZWVkZWQoKTsKIH0KIApAQCAtMTI1LDcgKzEyMyw2IEBAIE1lZGlhU3RyZWFtOjp+TWVkaWFT
dHJlYW0oKQogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQogICAg
ICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGlmIChEb2N1bWVudCogZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5yZW1vdmVBdWRp
b1Byb2R1Y2VyKHRoaXMpOwogICAgICAgICBpZiAobV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3Rh
cnQpCiAgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKHRo
aXMpOwogICAgIH0KQEAgLTMyMiw1MiArMzE5LDE1IEBAIHZvaWQgTWVkaWFTdHJlYW06OmVuZENh
cHR1cmVUcmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVN0cmVhbTo6cGFnZU11dGVkU3Rh
dGVEaWRDaGFuZ2UoKQotewotICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRv
Y3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3ByaXZhdGUtPnNldENhcHR1cmVUcmFj
a3NNdXRlZChkb2N1bWVudC0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11dGVkKCkpOwotfQotCiBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW06Om1lZGlhU3RhdGUoKSBj
b25zdAogewotICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IElzTm90UGxheWluZzsKKyAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJc05v
dFBsYXlpbmc7CiAKICAgICBpZiAoIW1faXNBY3RpdmUgfHwgIWRvY3VtZW50KCkgfHwgIWRvY3Vt
ZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogCi0gICAgYm9vbCBwYWdlQ2Fw
dHVyZU11dGVkID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5pc01lZGlhQ2FwdHVyZU11dGVkKCk7Ci0g
ICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKLSAgICAg
ICAgaWYgKCF0cmFjay0+aXNDYXB0dXJlVHJhY2soKSB8fCB0cmFjay0+ZW5kZWQoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICh0cmFjay0+c291cmNlKCkudHlwZSgpID09
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAgICBpZiAodHJh
Y2stPnNvdXJjZSgpLmludGVycnVwdGVkKCkgJiYgIXBhZ2VDYXB0dXJlTXV0ZWQpCi0gICAgICAg
ICAgICAgICAgc3RhdGUgfD0gSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7Ci0gICAg
ICAgICAgICBlbHNlIGlmICh0cmFjay0+bXV0ZWQoKSkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8
PSBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQ
cm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsKLSAgICAgICAg
ICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKCF0cmFjay0+c291cmNlKCkuaW50ZXJydXB0ZWQoKSk7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKCF0cmFjay0+bXV0ZWQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmludGVycnVwdGVkKCkgJiYg
IXBhZ2VDYXB0dXJlTXV0ZWQpCi0gICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzSW50ZXJydXB0
ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICBlbHNlIGlmICh0cmFjay0+bXV0ZWQo
KSkKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsK
LSAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQ
cm9kdWNpbmdEYXRhKCkpIHsKLSAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+c291cmNlKCku
aW50ZXJydXB0ZWQoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0cmFjay0+bXV0ZWQoKSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChjb25zdCBhdXRvJiB0
cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHN0YXRlIHw9IHRyYWNrLT5tZWRp
YVN0YXRlKCk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CkBAIC0zNzksMTMgKzMzOSwxMiBAQCB2
b2lkIE1lZGlhU3RyZWFtOjpzdGF0dXNEaWRDaGFuZ2UoKQogICAgIGlmIChEb2N1bWVudCogZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChtX2lzQWN0aXZlKQogICAg
ICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0FjdGl2ZU1lZGlhU3RyZWFtVHJhY2soKTsKLSAgICAg
ICAgZG9jdW1lbnQtPnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiAgICAgfQogfQogCiB2b2lkIE1l
ZGlhU3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAgYXV0byBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsK
ICAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewogICAgICAgICBtX3N0YXRlID0gc3RhdGU7CiAg
ICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDgzNmViNjNhODNlOWM4OWE3MzcwZWQ1MzBl
MjY5MWEyM2E2MmJlNDAuLjk4M2JkNTEzYWE4YWE4N2JiOTczODVkYjg3NmI0ZjkyMzY2NTVmNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LmgKQEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwKICAgICAsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZl
cgogICAgICwgcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICAsIHByaXZh
dGUgTWVkaWFQcm9kdWNlcgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIKICAg
ICAsIHByaXZhdGUgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQKICAgICAsIHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhU3RyZWFtPiB7CkBAIC0xMzYsOSArMTM1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAg
dm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICAvLyBNZWRpYVByb2R1
Y2VyCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwotICAgIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAg
IC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVu
dCYpIGZpbmFsOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPE9ic2Vy
dmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNz
aW9uPiBtX21lZGlhU2Vzc2lvbjsKIAotICAgIE1lZGlhU3RhdGVGbGFncyBtX3N0YXRlIHsgSXNO
b3RQbGF5aW5nIH07CisgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3RhdGUg
eyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKIAogICAgIGJvb2wgbV9pc0FjdGl2ZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCA2OTdjNjk1N2VkNDBlZjU4NjQyYzNjYTAyNjA0OTNkNDQwYTcyNzRkLi5jMGZm
ZmZhZGM0YTE1ODI3ZjJmNjc4ZDM3MzU2YWFkM2I2ZDQ2Y2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgog
I2luY2x1ZGUgIkpTT3ZlcmNvbnN0cmFpbmVkRXJyb3IuaCIKQEAgLTM4LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgIk92ZXJjb25zdHJhaW5lZEVycm9yLmgiCisjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtNTIsMTUgKzU0LDIyIEBAIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlh
U3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPE1lZGlhU3Ry
CiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3ByaXZhdGUoV1RGTW92
ZShwcml2YXRlVHJhY2spKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQorICAgICwgbV90
YXNrUXVldWUoY29udGV4dCkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIG1fcHJp
dmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkQXVkaW9Qcm9kdWNlcih0aGlzKTsK
IH0KIAogTWVkaWFTdHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQogewogICAgIG1fcHJp
dmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworCisgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Qcm9kdWNlcih0
aGlzKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNrOjpraW5kKCkg
Y29uc3QKQEAgLTEyOCw2ICsxMzcsOCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnN0b3BUcmFj
ayhTdG9wTW9kZSBtb2RlKQogCiAgICAgbV9wcml2YXRlLT5lbmRUcmFjaygpOwogICAgIG1fZW5k
ZWQgPSB0cnVlOworCisgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKIH0KIAogTWVkaWFT
dHJlYW1UcmFjazo6VHJhY2tTZXR0aW5ncyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRTZXR0aW5ncygp
IGNvbnN0CkBAIC0yODUsNiArMjk2LDUzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6cmVtb3Zl
T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZUZpcnN0
KCZvYnNlcnZlcik7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6cGFnZU11dGVkU3RhdGVE
aWRDaGFuZ2UoKQoreworICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
OworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQoZG9jdW1lbnQtPnBhZ2UoKS0+aXNNZWRpYUNh
cHR1cmVNdXRlZCgpKTsKK30KKworTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlh
U3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAoreworICAgIGlmIChtX2VuZGVkIHx8ICFp
c0NhcHR1cmVUcmFjaygpKQorICAgICAgICByZXR1cm4gSXNOb3RQbGF5aW5nOworCisgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8
ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1cm4gSXNOb3RQbGF5aW5nOworCisgICAg
Ym9vbCBwYWdlQ2FwdHVyZU11dGVkID0gZG9jdW1lbnQtPnBhZ2UoKS0+aXNNZWRpYUNhcHR1cmVN
dXRlZCgpOworCisgICAgaWYgKHNvdXJjZSgpLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbykgeworICAgICAgICBpZiAoc291cmNlKCkuaW50ZXJydXB0ZWQoKSAmJiAh
cGFnZUNhcHR1cmVNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBIYXNJbnRlcnJ1cHRlZEF1ZGlv
Q2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG11dGVkKCkpCisgICAgICAgICAgICByZXR1cm4g
SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIGlmIChtX3ByaXZhdGUtPmlzUHJv
ZHVjaW5nRGF0YSgpKQorICAgICAgICAgICAgcmV0dXJuIEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc291cmNlKCkuaW50ZXJydXB0ZWQoKSAm
JiAhcGFnZUNhcHR1cmVNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBIYXNJbnRlcnJ1cHRlZFZp
ZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgaWYgKG11dGVkKCkpCisgICAgICAgICAgICByZXR1
cm4gSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgIGlmIChtX3ByaXZhdGUtPmlz
UHJvZHVjaW5nRGF0YSgpKQorICAgICAgICAgICAgcmV0dXJuIEhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZTsKKyAgICB9CisKKyAgICByZXR1cm4gSXNOb3RQbGF5aW5nOworfQorCit2b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7
CisgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKICAgICAvLyBodHRw
Oi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi8jbGlmZS1jeWNsZQpAQCAtMzMyLDYg
KzM5MCwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3Vy
ZVRyYWNrUmVuZGVyaW5nKCkKIHsKKyAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10g
eworICAgICAgICBpZiAoYXV0byBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICBkb2N1bWVudC0+dXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKKyAgICB9KTsKKwogICAgIC8v
IDQuMy4xCiAgICAgLy8gLi4uIG1lZGlhIGZyb20gdGhlIHNvdXJjZSBvbmx5IGZsb3dzIHdoZW4g
YSBNZWRpYVN0cmVhbVRyYWNrIG9iamVjdCBpcyBib3RoIHVubXV0ZWQgYW5kIGVuYWJsZWQKIH0K
QEAgLTMzOSw2ICs0MDIsNyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNr
UmVuZGVyaW5nKCkKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcCgpCiB7CiAgICAgc3RvcFRy
YWNrKCk7CisgICAgbV90YXNrUXVldWUuY2xvc2UoKTsKIH0KIAogY29uc3QgY2hhciogTWVkaWFT
dHJlYW1UcmFjazo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC0zNjEsNiArNDI1LDEx
IEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhU3RyZWFtVHJhY2s6OmF1ZGlvU291cmNlUHJv
dmlkZXIoKQogICAgIHJldHVybiBtX3ByaXZhdGUtPmF1ZGlvU291cmNlUHJvdmlkZXIoKTsKIH0K
IAorRG9jdW1lbnQqIE1lZGlhU3RyZWFtVHJhY2s6OmRvY3VtZW50KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oCmluZGV4IDM4NzE1NTMxZDY3NDYwZTNjYzlhOGFmZjYwMmFjYzUyY2UwZTY0NGEu
LmY5YzBkMWFiOTE2ZmY0YjE4NWRhZTEyNmQ2YTdjMzc1YmQ1MmRjNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBA
IC0zMiwxOCArMzIsMjYgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRl
ICJEb3VibGVSYW5nZS5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiR2Vu
ZXJpY1Rhc2tRdWV1ZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5j
bHVkZSAiTG9uZ1JhbmdlLmgiCisjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFUcmFja0NvbnN0cmFp
bnRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRl
cjsKK2NsYXNzIERvY3VtZW50OwogCiBzdHJ1Y3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzOwogCi1j
bGFzcyBNZWRpYVN0cmVhbVRyYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFj
az4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CitjbGFzcyBN
ZWRpYVN0cmVhbVRyYWNrIDoKKyAgICBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNr
PiwKKyAgICBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LAorICAgIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhLAorICAgIHByaXZhdGUgTWVkaWFQcm9kdWNlciwKKyAgICBwcml2YXRlIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2Jz
ZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTExMCwxMSArMTE4LDE1IEBAIHB1YmxpYzoKICAgICBj
b25zdCBNZWRpYVRyYWNrQ29uc3RyYWludHMmIGdldENvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1
cm4gbV9jb25zdHJhaW50czsgfQogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBzdGQ6
Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50cz4mLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJldHVybiBtX3By
aXZhdGUtPnNvdXJjZSgpOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgY29u
c3QgeyByZXR1cm4gbV9wcml2YXRlLT5zb3VyY2UoKTsgfQogICAgIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJiBwcml2YXRlVHJhY2soKSB7IHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7IH0KIAogICAg
IEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKIAorICAgIC8vIE1l
ZGlhUHJvZHVjZXIKKyAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgZmluYWw7Cisg
ICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBmaW5h
bDsKKwogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKICAgICB2b2lkIHJlbW92ZU9i
c2VydmVyKE9ic2VydmVyJik7CiAKQEAgLTEzMiw2ICsxNDQsOCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOwogCisgICAgRG9jdW1lbnQqIGRvY3VtZW50
KCkgY29uc3Q7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZvaWQgc3RvcCgp
IGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5h
bDsKQEAgLTE0NCw2ICsxNTgsNyBAQCBwcml2YXRlOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVE
T01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgLy8gTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwpAQCAtMTU3LDYgKzE3Miw3IEBAIHByaXZh
dGU6CiAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAgICAgc3RkOjpv
cHRpb25hbDxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fcHJvbWlzZTsKICAgICBXZWFrUHRy
RmFjdG9yeTxNZWRpYVN0cmVhbVRyYWNrPiBtX3dlYWtQdHJGYWN0b3J5OworICAgIEdlbmVyaWNU
YXNrUXVldWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV90YXNrUXVldWU7CiAKICAgICBib29s
IG1fZW5kZWQgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggMGU1
MWVhYmE5Mzc3NGU1ZWY3MWU0Yjk4YjM4OTE4ZGEwOGMwZDkyMC4uYzNjZDk4ODAxNTA1MWEwMTNk
ZTMzZmI5MDE2YmM2NGJmNjg1YTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTIw
MSw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZVRy
YWNrOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgdHJhY2tTZXR0aW5n
c0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Q
cml2YXRlLmNwcAppbmRleCA0ZDBlNGU2MDIyNzFkNzQ0MTY0NGQ4MzVhMjc4YjZkOTY2YTUyNDZk
Li5iMjRlNjRlMTE1Zjc3NTdlMDAxYjdkZTg5YTllMzNjNjg4N2UyZWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKQEAgLTI4MSw2ICsyODEsMTMgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnRy
YWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAgIH0pOwogfQog
Cit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tTdGFydGVkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAgICBj
aGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1Q
cml2YXRlOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKICAgICBzY2hl
ZHVsZURlZmVycmVkVGFzayhbdGhpc10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCBhNzk3MDRkZDg1
YTM1OTg5M2ZiNGNmZjU4NzM4YTU2YWQ5YTE2YWNiLi4yMTJkZjkwMzEwODMwYTUwZWMwMDIwODBi
MjdkZDIxMjQ0MjYxZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHBy
aXZhdGU6CiAgICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJiwgU3RyaW5nJiYpOwogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja1N0YXJ0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CmluZGV4IGY1YjRlMjllOWZiZTYyNmE1ODU2NmY5YjA4MWU1ZjYzYThjYWNlNGUuLmVlNTQ3ZTMy
ZmQ4NjNjZGYwMjY4OWZjZGE3OTZlOTQ5NjM4ZGZiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5jcHAKQEAgLTE1MSw2ICsxNTEsMTIgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogICAgIHJldHVybiBtX3Nv
dXJjZS0+YXVkaW9Tb3VyY2VQcm92aWRlcigpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9v
YnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT50cmFja1N0YXJ0ZWQoKnRoaXMpOworfQorCiB2
b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VTdG9wcGVkKCkKIHsKICAgICBpZiAo
bV9pc0VuZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggYWVkMzc5MTU4ZDFiN2Yw
NWNjYzhhZmNiYzkyODU3NjBhMjNlOWFjYy4uYTk2Yzc2YmE2OGMwNjZhM2FiYTU2ZjRlODExOWUw
YmRjMzdiMTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC00Myw2ICs0Myw3IEBA
IHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAK
KyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhcnRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja011dGVkQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNr
U2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwpAQCAtMTAyLDYg
KzEwMyw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYsIFN0cmluZyYmIGlkKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2VPYnNlcnZlcgorICAgIHZvaWQgc291cmNlU3RhcnRlZCgpIGZpbmFsOwogICAgIHZvaWQg
c291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmlu
YWw7CiAgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcAppbmRleCA1NzU4NjI5NGVjMGQyMDA4OWVmYWY2MmE0NzU2Mjk1MjYyNTRjN2JhLi4w
NmNiNDQzNTY5NzFjYjNmNjBhNWQ4NjA3MGI1NTIzODEyNTZjNTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcApAQCAtMTYyLDYgKzE2Miw5IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3Rh
cnQoKQogCiAgICAgbV9pc1Byb2R1Y2luZ0RhdGEgPSB0cnVlOwogICAgIHN0YXJ0UHJvZHVjaW5n
RGF0YSgpOworCisgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAg
ICAgICAgb2JzZXJ2ZXIuc291cmNlU3RhcnRlZCgpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFkYmMwN2RiNGZmZDZhYmVmNWM3
Y2VlNzViZTliN2MwNmY1YjE3YmEuLjNhNjMxMDg2ODIxNTcyYWM5ODk0ZjI2M2FlMDQwYzc0YTRh
ZGVjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAg
ICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQogICAgICAgICAKICAgICAgICAgLy8gU291cmNl
IHN0YXRlIGNoYW5nZXMuCisgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VTdGFydGVkKCkgeyB9
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VTdG9wcGVkKCkgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHNv
dXJjZUVuYWJsZWRDaGFuZ2VkKCkgeyB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMDliZjU3ZWMxZDM0NzBkZDVhNDRlNGE0NjhhYjk0OGU3MzYy
ZjEwOS4uNmY1ODJmNGQxN2FlMmY3NWY5MGYyMTVjMmRkOTE5NWM0ZDdkMmM2NiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDE3LTA2LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAg
IFtXZWJSVENdIFJlbW92aW5nIGEgTWVkaWFTdHJlYW1UcmFjayBmcm9tIGEgTWVkaWFTdHJlYW0g
cmVwb3J0cyBubyByZWNvcmRpbmcgdG8gV2ViS2l0IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM5OAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzI1OTI5NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL01lZGlhU3RyZWFt
VHJhY2tEZXRhY2hlZC5tbTogQWRkZWQuCisgICAgICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRh
Y2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JE
ZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtN
ZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3OmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKC1bTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBf
d2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRp
YXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA2LTE2ICBNYXR0IExl
d2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjIxODM3NS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGNiNjY5MzUzYjFiMTNmMDQ3
NzNmMWQ0MWJmODVhNThkNmVlNDFlMC4uM2FmZTdhMjY0YTYyOTZjMTg2ZDkxYWIzMGViNDJkN2Jh
MTMxZWE0MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYwMSw2ICs2MDEsOCBAQAogCQlD
REM4RTQ5NTFCQzZGMTA4MDA1OTRGRUMgLyogdmlkZW8td2l0aC1hdWRpby5tcDQgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEU0OEExQkM1
Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8ubXA0ICovOyB9OwogCQlDREM4RTQ5NjFC
QzZGMTA4MDA1OTRGRUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhFNDhCMUJDNUM5NjIw
MDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgKi87IH07CiAJCUNEQzhFNDk3MUJD
NkYxMDgwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RTQ4QzFCQzVDOTYyMDA1
OTRGRUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5tcDQgKi87IH07CisJCUNEQzk0NDJFMUVGMUZD
MDgwMDU5QzNDNCAvKiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM5NDQyQzFFRjFGQzA4MDA1OUMzQzQg
LyogTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tICovOyB9OworCQlDREM5NDQyRjFFRjIwNUQ2
MDA1OUMzQzQgLyogbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzk0NDJCMUVGMUZCRDIw
MDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwgKi87IH07CiAJCUNEQ0ZB
N0FBMUU0NTE4MzIwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDRkE3QTkxRTQ1MTIyRjAwQzI0MzNEIC8qIFNh
bXBsZU1hcC5jcHAgKi87IH07CiAJCUNERTE5NUI1MUNGRTBCODgwMDUzRDI1NiAvKiBGdWxsc2Ny
ZWVuVG9wQ29udGVudEluc2V0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFMTk1QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3Jl
ZW5Ub3BDb250ZW50SW5zZXQuaHRtbCAqLzsgfTsKIAkJQ0UwNkRGOUIxRTE4NTFGMjAwRTU3MEM5
IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENFMDZERjlBMUUxODUxRjIwMEU1NzBDOSAvKiBTZWN1cml0eU9yaWdpbi5j
cHAgKi87IH07CkBAIC03MDksNiArNzExLDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJ
LnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJ
Q0RDOTQ0MkYxRUYyMDVENjAwNTlDM0M0IC8qIG1lZGlhc3RyZWFtdHJhY2stZGV0YWNoZWQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyog
cmljaC1hbmQtcGxhaW4tdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzRTJE
Mjc2MUVEN0Q1MzIwMEZBNzZGNiAvKiBvZmZzY3JlZW4taWZyYW1lLW9mLW1lZGlhLWRvY3VtZW50
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRBQTU1
IC8qIGFwcGxlLmdpZiBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1MjMsNiArMTUyNiw4IEBA
CiAJCUNEQzhFNDhBMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13aXRoLWF1ZGlvLm1wNCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGgg
PSAidmlkZW8td2l0aC1hdWRpby5tcDQiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REM4RTQ4QjFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gInZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRl
by13aXRob3V0LWF1ZGlvLm1wNCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAidmlkZW8td2l0aG91dC1hdWRpby5tcDQiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREM5NDQyQjFFRjFGQkQyMDA1OUMzQzQgLyogbWVk
aWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm1lZGlhc3RyZWFtdHJhY2st
ZGV0YWNoZWQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzk0NDJDMUVG
MUZDMDgwMDU5QzNDNCAvKiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQ0ZBN0E5MUU0NTEyMkYwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFMTk1QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxz
Y3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEZ1
bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RFMTk1QjMxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGdWxsc2NyZWVuVG9w
Q29udGVudEluc2V0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE2Myw2ICsy
MTY4LDcgQEAKIAkJCQkzM0RDODkxMDE0MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9T
ZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCAqLywKIAkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdF
RjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8s
CiAJCQkJOEFBMjhDMTkxNkQyRkE3QjAwMkZGNERCIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8s
CisJCQkJQ0RDOTQ0MkMxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hl
ZC5tbSAqLywKIAkJCQk3QTU2MjMxMDFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91
c2VFdmVudHMuY3BwICovLAogCQkJCTUxQ0I0QUQ3MUIzQTA3OUMwMEMxQjFDNiAvKiBNb2RhbEFs
ZXJ0c1NQSS5jcHAgKi8sCiAJCQkJMzNCRTVBRjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2guY3BwICovLApAQCAtMjM0Nyw2ICsyMzUzLDcgQEAKIAkJCQk5MzBBRDQwMTE1
MDY5OEIzMDA2Nzk3MEYgLyogbG90cy1vZi10ZXh0Lmh0bWwgKi8sCiAJCQkJNTc5N0ZFMzIxRUIx
NUE4OTAwQjJGNEEwIC8qIG5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi8s
CiAJCQkJQUQ1N0FDMUQxREE3NDYzODAwRkYxQkRFIC8qIG1hbnktaWZyYW1lcy5odG1sICovLAor
CQkJCUNEQzk0NDJCMUVGMUZCRDIwMDU5QzNDNCAvKiBtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVk
Lmh0bWwgKi8sCiAJCQkJNTFDRDFDNzExQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFsLWFsZXJ0cy1p
bi1uZXctYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgKi8sCiAJCQkJN0ExNDU4RkIxQUQ1QzAzNTAw
RTA2NzcyIC8qIG1vdXNlLWJ1dHRvbi1saXN0ZW5lci5odG1sICovLAogCQkJCTMzRTc5RTA1MTM3
QjVGQ0UwMEUzMkQ5OSAvKiBtb3VzZS1tb3ZlLWxpc3RlbmVyLmh0bWwgKi8sCkBAIC0yOTA3LDYg
KzI5MTQsNyBAQAogCQkJCTUxRDEyNDlCMUU3ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3Vu
dGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyog
Q3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RD
OTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjkxQTQxMUIxMDAwNDQ3QzRDIC8qIEN1c3RvbVBy
b3RvY29sc0ludmFsaWRTY2hlbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyQTFBNDEx
QjEwMDA0NDdDNEMgLyogQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9NZWRpYVN0
cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
TWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkY2E1MzEyZjU2ZWQyMjcx
YzhlMzhkMGM0OGQwNmQ1MTNiMjMzNTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC0wLDAg
KzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9F
TkFCTEVECisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgor
I2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tVSURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4K
Kworc3RhdGljIGJvb2wgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CisK
K0BpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0
PFdLVUlEZWxlZ2F0ZT4KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVS
TCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWlu
RnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworQGVu
ZAorCitAaW1wbGVtZW50YXRpb24gTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZQor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0
aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VS
TCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNp
c2lvbkhhbmRsZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFt
ZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZy
YW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBC
T09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihA
IjB4OTg3NjU0MzIxIiwgWUVTKTsKK30KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0
YXRlCit7CisgICAgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9w
aG9uZSkKKyAgICAgICAgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gdHJ1ZTsKK30K
K0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdDIsIE1lZGlh
U3RyZWFtVHJhY2tEZXRhY2hlZCkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX21lZGlhRGV2aWNlc0VuYWJsZWQgPSBZRVM7Cisg
ICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZy5nZXQoKV0pOwor
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRl
bGVnYXRlLmdldCgpOworCisgICAgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFs
c2U7CisgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJtZWRpYXN0cmVhbXRyYWNrLWRl
dGFjaGVkIl07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2lldmVkQ29y
cmVjdENhcHR1cmVTdGF0ZSk7CisKKworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tZWRp
YXN0cmVhbXRyYWNrLWRldGFjaGVkLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYzE2OTIy
YjA2MDNhYWY0NWVlODI2MTkxNjNjODJkZTNiM2NlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWVkaWFzdHJlYW10cmFjay1kZXRhY2hlZC5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+Cit2YXIgYXVkaW9UcmFjazsKKworZnVuY3Rpb24gZ28oKSB7CisgICAgdmFyIGNvbnN0
cmFpbnRzID0geyBhdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9OworICAgIG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKS50aGVuKGdvdFVzZXJNZWRpYSk7Cit9
CisKK2Z1bmN0aW9uIGdvdFVzZXJNZWRpYShzdHJlYW0pIHsKKyAgICBhdWRpb1RyYWNrID0gc3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgc3RyZWFtLnJlbW92ZVRyYWNrKGF1ZGlvVHJh
Y2spOworCisgICAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4geyB0cmFjay5z
dG9wKCk7IH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImdvKCkiPgor
ICAgIDxkaXY+VGhpcyB0ZXN0cyB0aGUgYmVoYXZpb3Igb2YgdGhlIG1lZGlhIGNhcHR1cmUgaW5k
aWNhdG9yIHdoZW4gYSBsaXZlIE1lZGlhU3RyZWFtVHJhY2sgaXMgcmVtb3ZlZCBmcm9tIGEgTWVk
aWFTdHJlYW0sIGFuZCBhbGwgdGhlIG90aGVyIHRyYWNrcyBhcmUgc3RvcHBlZC4gVGhlIHBhZ2Ug
c2hvdWxkIHJlcXVlc3QgYWNjZXNzIHRvIHRoZSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUsIGFuZCB0
aGVuIGRpc3BsYXkgYSBhdWRpby1jYXB0dXJlIGljb24uIElmIHRoZSBwYWdlIGRpc3BsYXlzIGEg
Y2FtZXJhIGljb24gb3Igbm8gY2FwdHVyZSBpY29uIGF0IGFsbCwgdGhlIHRlc3QgaGFzIGZhaWxl
ZC48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>