<?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>216641</bug_id>
          
          <creation_ts>2020-09-17 02:51:10 -0700</creation_ts>
          <short_desc>Add support for speaker selection</short_desc>
          <delta_ts>2025-08-02 07:30:21 -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>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=286223</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BrowserCompat, InRadar, WPTImpact</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>709922234</cc>
    
    <cc>annulen</cc>
    
    <cc>arman.ninoyan</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>csantos</cc>
    
    <cc>davidswalkabout</cc>
    
    <cc>dibotero</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haimomesi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jose.hernandez</cc>
    
    <cc>jovanchohan</cc>
    
    <cc>kangil.han</cc>
    
    <cc>karlcow</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>laiz+webkit</cc>
    
    <cc>lwarlow</cc>
    
    <cc>michael.hagar</cc>
    
    <cc>mifenton</cc>
    
    <cc>oanguenot</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>teodor.atroshenko</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689400</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 02:51:10 -0700</bug_when>
    <thetext>Add support for speaker selection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689404</commentid>
    <comment_count>1</comment_count>
      <attachid>409016</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 03:10:55 -0700</bug_when>
    <thetext>Created attachment 409016
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689420</commentid>
    <comment_count>2</comment_count>
      <attachid>409022</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 04:44:08 -0700</bug_when>
    <thetext>Created attachment 409022
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689422</commentid>
    <comment_count>3</comment_count>
      <attachid>409024</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 05:07:51 -0700</bug_when>
    <thetext>Created attachment 409024
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689428</commentid>
    <comment_count>4</comment_count>
      <attachid>409025</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 05:34:36 -0700</bug_when>
    <thetext>Created attachment 409025
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689435</commentid>
    <comment_count>5</comment_count>
      <attachid>409027</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 06:16:03 -0700</bug_when>
    <thetext>Created attachment 409027
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689438</commentid>
    <comment_count>6</comment_count>
      <attachid>409029</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 06:37:05 -0700</bug_when>
    <thetext>Created attachment 409029
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689440</commentid>
    <comment_count>7</comment_count>
      <attachid>409030</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-17 06:47:42 -0700</bug_when>
    <thetext>Created attachment 409030
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689770</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-18 05:19:25 -0700</bug_when>
    <thetext>*** Bug 179415 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689863</commentid>
    <comment_count>9</comment_count>
      <attachid>409030</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-09-18 10:47:59 -0700</bug_when>
    <thetext>Comment on attachment 409030
WIP

View in context: https://bugs.webkit.org/attachment.cgi?id=409030&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=216641
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        MediaDevices now receive non hashed device IDs.

I think it would be a good idea to point to the spec here.

&gt; Source/WebCore/ChangeLog:9
&gt; +        We hash them before exposing them and keep a mapping in WebProcess between hashed audoi output device Ids and the persistent Ids.

s/audoi/audio/

&gt; Source/WebCore/ChangeLog:21
&gt; +        All these methods can be used based on user gesture.

This is unclear, it makes it sound like they are optionally gated on a user gesture.

&gt; Source/WebCore/Modules/mediastream/MediaDevices.cpp:227
&gt; +        auto groupId = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(newDevice.groupId(), m_groupIdHashSalt);

All of the capture classes should now set supportedConstraints.setSupportsGroupId(true) so MediaTrackSupportedConstraints.groupId returns `true`

&gt; Source/WebCore/Modules/mediastream/MediaDevices.cpp:356
&gt; +    document-&gt;topDocument().setDefaultAudioOutputDeviceId(WTFMove(persistentId));
&gt; +    m_audioOutputDeviceId = WTFMove(deviceId);

It might be better to swap the order of these lines in case a side effect of calling setDefaultAudioOutputDeviceId checks audioOutputDevice()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691443</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-24 02:52:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69491182&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788083</commentid>
    <comment_count>11</comment_count>
    <who name="Jovan Chohan">jovanchohan</who>
    <bug_when>2021-08-27 11:35:21 -0700</bug_when>
    <thetext>Is there any timeline for this feature support?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881993</commentid>
    <comment_count>12</comment_count>
    <who name="David P">davidswalkabout</who>
    <bug_when>2022-07-10 17:15:10 -0700</bug_when>
    <thetext>Support for setSinkId is listed for Safari Tech Preview release 148 at https://developer.apple.com/safari/technology-preview/release-notes/ and it seems the current release is 136 https://webkit.org/blog/category/safari-technology-preview/page/2/

So should this issue have a status other than New?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1937874</commentid>
    <comment_count>13</comment_count>
    <who name="Olivier Anguenot">oanguenot</who>
    <bug_when>2023-03-01 12:13:31 -0800</bug_when>
    <thetext>Hi,
any news about this feature ?

Thanks i advance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1942446</commentid>
    <comment_count>14</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2023-03-19 17:36:18 -0700</bug_when>
    <thetext>https://wpt.fyi/results/audio-output/idlharness.https.window.html
https://wpt.live/audio-output/idlharness.https.window.html

Activating on STP Allow speaker device selection in Experimental features makes 3 more tests green. 

The 3 remaining are

* MediaDevices interface: operation selectAudioOutput(optional AudioOutputOptions)	
* MediaDevices interface: navigator.mediaDevices must inherit property &quot;selectAudioOutput(optional AudioOutputOptions)&quot; with the proper type	
* MediaDevices interface: calling selectAudioOutput(optional AudioOutputOptions) on navigator.mediaDevices with too few arguments must throw TypeError</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1942447</commentid>
    <comment_count>15</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2023-03-19 17:38:54 -0700</bug_when>
    <thetext>It also improves the results on
https://wpt.live/audio-output/setSinkId-permissions-policy.https.sub.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2007214</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Hagar">michael.hagar</who>
    <bug_when>2024-01-24 07:33:07 -0800</bug_when>
    <thetext>Any update on this?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409016</attachid>
            <date>2020-09-17 03:10:55 -0700</date>
            <delta_ts>2020-09-17 04:44:04 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917121053.patch</filename>
            <type>text/plain</type>
            <size>69574</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVhY2RjMDdiNjBiOGZk
ZGRjOWRlNGM1ZTY0NzM3YTQ5NDBhYThlYi4uZTBmYmUzN2Y2ZWZjMzYwNDdhZWM3YmMyNmRmNDg2
YzA0MDk2NjAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEFsbCB0aGVzZSBtZXRob2RzIGNhbiBiZSB1
c2VkIGJhc2VkIG9uIHVzZXIgZ2VzdHVyZS4KKyAgICAgICAgVXBkYXRlIFJlbmRlck1lbnVMaXN0
IHRvIGFjdGl2YXRlIHVzZXIgZ2VzdHVyZSB3aGVuIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRo
ZSBsaXN0LgorCisgICAgICAgIFRlc3RzIHRvIGJlIGFkZGVkLgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFE
ZXZpY2VzOjpNZWRpYURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpy
ZWZyZXNoRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmVudW1lcmF0
ZURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpzZXRBdWRpb091dHB1
dERldmljZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFsbG93KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpmb3JFYWNoQXVkaW9Qcm9kdWNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERlZmF1bHRBdWRpb091dHB1dERldmljZUlkKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1
ZGlvT3V0cHV0RGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmF1ZGlvT3V0cHV0RGV2aWNlSWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFn
ZS9NZWRpYVByb2R1Y2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpkZWZh
dWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpk
ZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmZvckVhY2hBdWRpb1Byb2R1Y2VyKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAg
KiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25m
aWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6
OmF1ZGlvT3V0cHV0RGV2aWNlSWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJDbGllbnQ6OmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
cmVhdGVBVlBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YXVkaW9PdXRwdXRE
ZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNv
Y29hOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0OjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAg
ICAgICAoUmVuZGVyTWVudUxpc3Q6OnZhbHVlQ2hhbmdlZCk6CisKIDIwMjAtMDktMTYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFhIUi50aW1lb3V0IGlzIGFm
ZmVjdGVkIGJ5IGxvbmcgdGFza3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjY5ZTA0MWY3OTQyMjFhMjVjMmQxYjkz
ZjJhODg0NmU3NTJhMDI4Ny4uNDBlMzM3YTNiYTc5ZTIyOWNmYmIxYzc5MGVjMjJjN2VjNDUxY2Nl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0wOS0xNyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNwZWFrZXIgc2Vs
ZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTY2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnRyb2R1Y2UgYW4gZXhwZXJpbWVudGFsIGZsYWcgZm9yIHBlciBlbGVtZW50IHNwZWFrZXIgc2Vs
ZWN0aW9uLgorCisgICAgICAgIFByZXZpb3VzbHksIHdlIHdlcmUgbm90IGV4cG9zaW5nIHJlYWwg
ZGV2aWNlIElEcyB0byBXZWJQcm9jZXNzLCBidXQgaW5zdGVhZCB3ZXJlIGhhc2hpbmcgdGhlbSBi
ZWZvcmUgc2VuZGluZyB0aGVtIHRvIFdlYlByb2Nlc3MuCisgICAgICAgIFdlIG5vdyBzZW5kIHRo
ZSByZWFsIGRldmljZSBJZHMgYW5kIGxldCBXZWJQcm9jZXNzIGRvIHRoZSBoYXNoaW5nIHBlciBv
cmlnaW4uCisKKyAgICAgICAgSW1wbGVtZW50IEF1ZGlvT3V0cHV0UHJvdmlkZXIgZm9yIE1hYyBi
eSBsb29waW5nIHRocm91Z2ggYWxsIGF1ZGlvIHByb2R1Y2VycyBhbmQgbm90aWZ5aW5nIHRoZW0g
dGhhdCB0aGUgZGVmYXVsdCBhdWRpbyBvdXRwdXQgZGV2aWNlIGNoYW5nZWQuCisKKyAgICAgICAg
Rml4ZXMgdW5pZmllZCBidWlsZCBpc3N1ZXMgaW4gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuY3BwLCBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCwgV2ViUGFnZU92ZXJsYXkuaCBh
bmQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS4KKworICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJv
dW5kRG9tYWlucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaDoKKwogMjAyMC0wOS0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgWEhSLnRpbWVvdXQgaXMgYWZmZWN0ZWQgYnkgbG9uZyB0YXNrcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCmluZGV4IGUzZDkzMGY0Zjg0ZGRiM2UzNWE4YjQyMDA2YzUxNzQ1NzQ2
Y2RjNTkuLjJiNTQ1M2Y5NTBiNGMxNTU4NWMyYTA5OTdjNTQ5ZTMwYmExNWZhZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wOS0xNyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNw
ZWFrZXIgc2VsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTY2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2Vi
VmlldyBpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdy
b3VwTmFtZTpdKToKKwogMjAyMC0wOS0xNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHJ1bnRpbWUgc2V0dGluZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5n
IFNoYWRvd0RPTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCmluZGV4IDI3YmMzZTEwYWFmNjBhMzc4OWYxOTFiMGE2NTEyNzcxODE1
M2ZkZWIuLjZkMzEyYzExYTc3ZDNlMzM1NzZiMTQ1MTQzNjJhNDFmZjkzNzNjNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAK
QEAgLTU3LDcgKzU3LDcgQEAgaW5saW5lIE1lZGlhRGV2aWNlczo6TWVkaWFEZXZpY2VzKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKICAgICAsIG1f
c2NoZWR1bGVkRXZlbnRUaW1lcigqdGhpcywgJk1lZGlhRGV2aWNlczo6c2NoZWR1bGVkRXZlbnRU
aW1lckZpcmVkKQogICAgICwgbV9ldmVudE5hbWVzKGV2ZW50TmFtZXMoKSkKLSAgICAsIG1faWRI
YXNoU2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCisgICAgLCBtX2dyb3VwSWRIYXNo
U2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVk
KCk7CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgaW5saW5lIE1lZGlhRGV2aWNlSW5mbzo6
S2luZCB0b01lZGlhRGV2aWNlSW5mb0tpbmQoQ2FwdHVyZURldmljZTo6RGV2aWNlVAogICAgIHJl
dHVybiBNZWRpYURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQ7CiB9CiAKLXZvaWQgTWVkaWFE
ZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0Rl
dmljZXMpCit2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENh
cHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzLCBjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQp
CiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9j
dW1lbnQpCkBAIC0yMDIsNiArMjAyLDggQEAgdm9pZCBNZWRpYURldmljZXM6OnJlZnJlc2hEZXZp
Y2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcykKICAgICBib29sIGNh
bkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoKmRvY3VtZW50KTsKICAg
ICBib29sIGNhbkFjY2Vzc1NwZWFrZXIgPSBjaGVja1NwZWFrZXJBY2Nlc3MoKmRvY3VtZW50KTsK
IAorICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmNsZWFyKCk7CisKICAg
ICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7CiAgICAgZm9yIChhdXRvJiBu
ZXdEZXZpY2UgOiBuZXdEZXZpY2VzKSB7CiAgICAgICAgIGlmICghY2FuQWNjZXNzTWljcm9waG9u
ZSAmJiBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUpCkBAIC0yMTcsMTEgKzIxOSwxNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERl
dmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogICAgICAgICB9
KTsKICAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKSB7CiAgICAgICAgICAgICBkZXZpY2Vz
LmFwcGVuZChtX2RldmljZXNbaW5kZXhdLmNvcHlSZWYoKSk7CisgICAgICAgICAgICBpZiAobmV3
RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAg
ICAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmFkZChtX2Rl
dmljZXNbaW5kZXhdLT5kZXZpY2VJZCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKyAgICAgICAgYXV0byBkZXZpY2VJZCA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChu
ZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNhbHQpOworICAgICAgICBhdXRv
IGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91cElkSGFzaFNhbHQpOworCisg
ICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJ
ZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7CiAKLSAgICAgICAgYXV0
byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0
cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91cElkKCksIG1faWRIYXNoU2FsdCk7Ci0gICAgICAg
IGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKG5ld0RldmljZS5sYWJlbCgp
LCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIFdURk1vdmUoZ3JvdXBJZCksIGRldmljZUtpbmQp
KTsKKyAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2
aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCBkZXZpY2VL
aW5kKSk7CiAgICAgfQogICAgIG1fZGV2aWNlcyA9IFdURk1vdmUoZGV2aWNlcyk7CiB9CkBAIC0y
NDQsMTIgKzI1MiwxMSBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVt
ZXJhdGVEZXZpY2VzUHJvbWlzZSYmIHByb21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBjb250cm9sbGVyLT5lbnVtZXJhdGVNZWRpYURldmljZXMoKmRvY3VtZW50LCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KGNvbnN0IGF1dG8mIG5ld0RldmljZXMsIGNvbnN0IGF1dG8mIGRldmljZUlESGFzaFNhbHQpIG11
dGFibGUgeworICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQs
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byYmIG5ld0RldmljZXMsIGF1dG8mJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy0+ZG9jdW1lbnQoKS0+c2V0RGV2aWNlSURI
YXNoU2FsdChkZXZpY2VJREhhc2hTYWx0KTsKLSAgICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2
aWNlcyk7CisgICAgICAgIHJlZnJlc2hEZXZpY2VzKG5ld0RldmljZXMsIGRldmljZUlESGFzaFNh
bHQpOwogICAgICAgICBwcm9taXNlLnJlc29sdmUobV9kZXZpY2VzKTsKICAgICB9KTsKIH0KQEAg
LTMyMCw2ICszMjcsMzQgQEAgYm9vbCBNZWRpYURldmljZXM6OmFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW4KICAgICByZXR1cm4gRXZl
bnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1v
dmUobGlzdGVuZXIpLCBvcHRpb25zKTsKIH0KIAordm9pZCBNZWRpYURldmljZXM6OnNldEF1ZGlv
T3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVu
dFVzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCAiQSB1c2VyIGdlc3R1cmUgaXMgcmVxdWlyZWQiX3MgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZXZpY2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCku
c2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoeyB9KTsKKyAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHBlcnNpc3RlbnRJZCA9
IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmdldChkZXZpY2VJZCk7CisgICAg
aWYgKHBlcnNpc3RlbnRJZC5pc051bGwoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
ZG9jdW1lbnQtPnRvcERvY3VtZW50KCkuc2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoV1RG
TW92ZShwZXJzaXN0ZW50SWQpKTsKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4
IGJlNWQ2YjhmYjVkMWU0M2U1ODM5MTQ5NmRkNDFkYTcwN2I5Yjg4OGQuLjVlMmI0OTAwMjg4MDZh
MjgwNGFkYjFmMTY0YjYzODM1NmZlZjM1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtODksNiArODksOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwog
ICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50
cygpOwogCisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmlj
ZUlkLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0
RGV2aWNlSWRGcm9tRGV2aWNlSWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1
cm4gbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQor
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxNZWRpYURldmljZXM+OjpkZXJlZjsKIApAQCAtOTgsNyArMTAxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCgpOwogICAgIGJvb2wgYWRkRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVy
PiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCByZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKKyAgICB2b2lk
IHJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgbGlzdGVuRm9yRGV2aWNlQ2hhbmdlcygpOwogCiAgICAgZnJpZW5kIGNs
YXNzIEpTTWVkaWFEZXZpY2VzT3duZXI7CkBAIC0xMjYsOCArMTI5LDkgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBFdmVudE5hbWVzJiBtX2V2ZW50TmFtZXM7IC8vIE5lZWQgdG8gY2FjaGUgdGhpcyBz
byB3ZSBjYW4gdXNlIGl0IGZyb20gR0MgdGhyZWFkcy4KICAgICBib29sIG1fbGlzdGVuaW5nRm9y
RGV2aWNlQ2hhbmdlcyB7IGZhbHNlIH07CiAKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBt
X2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZDsKICAgICBWZWN0b3I8UmVmPE1lZGlh
RGV2aWNlSW5mbz4+IG1fZGV2aWNlczsKLSAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAgIFN0
cmluZyBtX2dyb3VwSWRIYXNoU2FsdDsKIAogICAgIE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJl
cXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVudEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2Vy
R2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJlVG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKaW5kZXggOTJhOWRkN2M1
NDJhMjc4MjdmYjQwODcwMjYyMzcyMjEyMmE4YmYzOS4uOTc1YTFiYzI0MWUxZDU0OGYyY2U3MDBl
ZWExZTM0MGNjYjcxMGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApAQCAtMzksNiArMzksNyBAQAogICAgIE1lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogICAgIFtQ
cml2YXRlSWRlbnRpZmllciwgUHVibGljSWRlbnRpZmllcl0gUHJvbWlzZTxNZWRpYVN0cmVhbT4g
Z2V0VXNlck1lZGlhKG9wdGlvbmFsIE1lZGlhU3RyZWFtQ29uc3RyYWludHMgY29uc3RyYWludHMp
OwogICAgIFtFbmFibGVkQnlTZXR0aW5nPVNjcmVlbkNhcHR1cmVdIFByb21pc2U8TWVkaWFTdHJl
YW0+IGdldERpc3BsYXlNZWRpYShvcHRpb25hbCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50
cyBjb25zdHJhaW50cyk7CisgICAgW0VuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnNdIFBy
b21pc2U8dW5kZWZpbmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2aWNlSWQp
OwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZGYyYTVlNDRlYzEyNzljMGEyMzNiYzFkYWM0
NzM1OWQ1MzVlMTgzNi4uOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwCkBAIC0yNzEsOCArMjcxLDYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0
OjphbGxvdyhDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0QKICAgICAgICAgfTsKIAogICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3Vt
ZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZG9jdW1lbnQuc2V0RGV2
aWNlSURIYXNoU2FsdChkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwotCiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKGRvY3Vt
ZW50LmxvZ2dlcigpLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlKSwgV1RGTW92ZSh2aWRlb0RldmljZSksIG1f
cmVxdWVzdCk7CiAKICAgICAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjgyNGVkMGI0MTdhMzY0OTBhOTAyYjAxMjYyMjQzMDUwMzBkNjZjNS4uNGRlNDRiZjc5NjlhNzc2
ZjU0MGI4OWQwMzFmNDBlODc5OWU2MWQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAxOSw2ICsxMDE5LDcgQEAKIAkJM0ZC
QzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZCQzRBRjEx
ODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovOyB9
OwogCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
QkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTNGRjgx
M0E3MURCQTg2NDAwMDlCRjAwMSAvKiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRkM0MzRGMTkyNDA2QTkwMEEw
RDNCNSAvKiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTAwRUM0NjI1MTM1OEVCMDA3Qjg1RDkgLyogQXVk
aW9PdXRwdXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTA3
OTA4QzFGQzNGMDMzMDA2MUIyN0EgLyogQ2xpZW50T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyog
Q2xpZW50T3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExMDBDODAy
M0Y3NDU4MzAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAwQzdFMjNGNzM5ODIwMDFC
QzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc0MTksNiArNzQyMCw3IEBACiAJCTNGODAy
MDM0MUU5RTM4MUQwMERFQzYxRCAvKiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkJDNEFGMTE4OTg4MTU2MDA0
NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4
IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091dHB1
dFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvT3V0cHV0UHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA2MjZBNzIy
ODBBMjJBMDA2RDFCNTkgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb05vZGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyogQ2xpZW50T3JpZ2lu
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudE9yaWdpbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE0NDksNiArMjE0NTEsNyBAQAogCQkJCTcyNEVF
NTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLywK
IAkJCQlCQ0Y0OENFNjEzNzBEMTE0MDA0RTg3RDYgLyogQWRqdXN0Vmlld1NpemVPck5vdC5oICov
LAogCQkJCUNFREExMkQ2MTUyQ0ExQ0IwMEQ5RTA4RCAvKiBBbHRlcm5hdGl2ZVRleHRDbGllbnQu
aCAqLywKKwkJCQk0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRl
ci5oICovLAogCQkJCUM5RDQ2NzA0MUU2MEMzRUIwMDgxOTVGQiAvKiBBdXRvcGxheUV2ZW50Lmgg
Ki8sCiAJCQkJNDU4MzBENEIxNjc5QjRGODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVy
LmNwcCAqLywKIAkJCQk0NTgzMEQ0QzE2NzlCNEY4MDBBQ0Y4QzMgLyogQXV0b3Njcm9sbENvbnRy
b2xsZXIuaCAqLywKQEAgLTMyNTIxLDYgKzMyNTI0LDcgQEAKIAkJCQlCMkZBM0Q5QjBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkIyNzNFODUy
MDg2RTc0RDAwQTU0RTg3IC8qIEpTU1ZHR2VvbWV0cnlFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjdCMjgyODBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdHbHlwaEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMDBFQzQ2MjUxMzU4RUIwMDdCODVEOSAvKiBBdWRpb091dHB1dFBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNEQ5MTI5QTEzQ0E5NzE0MDBEMjE5MTUgLyog
SlNTVkdHbHlwaFJlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDlEMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR0dyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGMxNGNkZGMzYzEzNWY2NWQzMDk2
OGJlMzRmOWI2NjQ3YmY2NTg5MmEuLmIxZmQyOTljNzhmZGM1NWIwMjljNzViNjkzODM1NTc2ZmZh
NDVjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTgwNCw2ICsxODA0LDExIEBAIHZv
aWQgRG9jdW1lbnQ6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1M
TWVkaWFFbGVtZW50Jik+JiBmdW5jCiAgICAgICAgIGZ1bmN0aW9uKGVsZW1lbnQpOwogfQogCit2
b2lkIERvY3VtZW50Ojpmb3JFYWNoQXVkaW9Qcm9kdWNlcihjb25zdCBGdW5jdGlvbjx2b2lkKE1l
ZGlhUHJvZHVjZXImKT4mIGZ1bmN0aW9uKQoreworICAgIG1fYXVkaW9Qcm9kdWNlcnMuZm9yRWFj
aChmdW5jdGlvbik7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnN0b3BBbGxNZWRpYVBsYXliYWNrKCkK
IHsKICAgICBpZiAoYXV0byogcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyID0gUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkKQEAgLTc5NTYsMTMg
Kzc5NjEsMjMgQEAgdm9pZCBEb2N1bWVudDo6bWVkaWFTdHJlYW1DYXB0dXJlU3RhdGVDaGFuZ2Vk
KCkKICAgICB9KTsKIH0KIAotdm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlSURIYXNoU2FsdChjb25z
dCBTdHJpbmcmIHNhbHQpCisjZW5kaWYKKworU3RyaW5nIERvY3VtZW50OjpkZWZhdWx0QXVkaW9P
dXRwdXREZXZpY2VJZCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1faWRIYXNoU2FsdC5pc0VtcHR5
KCkgfHwgbV9pZEhhc2hTYWx0ID09IHNhbHQpOwotICAgIG1faWRIYXNoU2FsdCA9IHNhbHQ7Cisg
ICAgcmV0dXJuIGlzVG9wRG9jdW1lbnQoKSA/IG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQg
OiB0b3BEb2N1bWVudCgpLmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkKCk7CiB9CiAKLSNlbmRp
Zgordm9pZCBEb2N1bWVudDo6c2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoU3RyaW5nJiYg
ZGV2aWNlSWQpCit7CisgICAgQVNTRVJUKGlzVG9wRG9jdW1lbnQoKSk7CisgICAgaWYgKG1fZGVm
YXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQgPT0gZGV2aWNlSWQpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2RlZmF1bHRBdWRpb091dHB1dERldmljZUlkID0gV1RGTW92ZShkZXZpY2VJZCk7CisKKyAg
ICBpZiAoYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+ZGVmYXVsdEF1
ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQogCiBjb25zdCBBdG9tU3RyaW5nJiBEb2N1bWVu
dDo6YmdDb2xvcigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDVhYmMyNGViYjk4
MWU1NjRmMDdhZGViOGU1ZmMxMTU4MTMxYzUzNTUuLjJkMGU2ZWE3ZWQxNGIxYzljODVhNDc2MGY3
YmY5OWViNjQ1ZTgwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNDI1LDEyICsxNDI1LDEz
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc2V0SGFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2soKSB7IG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sg
PSB0cnVlOyB9CiAgICAgYm9vbCBoYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2s7IH0KLSAgICB2b2lkIHNl
dERldmljZUlESGFzaFNhbHQoY29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIGRldmljZUlESGFz
aFNhbHQoKSBjb25zdCB7IHJldHVybiBtX2lkSGFzaFNhbHQ7IH0KICAgICB2b2lkIHN0b3BNZWRp
YUNhcHR1cmUoKTsKICAgICB2b2lkIG1lZGlhU3RyZWFtQ2FwdHVyZVN0YXRlQ2hhbmdlZCgpOwog
I2VuZGlmCiAKKyAgICBTdHJpbmcgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdDsK
KyAgICB2b2lkIHNldERlZmF1bHRBdWRpb091dHB1dERldmljZUlkKFN0cmluZyYmKTsKKwogLy8g
RklYTUU6IEZpbmQgYSBiZXR0ZXIgcGxhY2UgZm9yIHRoaXMgZnVuY3Rpb25hbGl0eS4KICNpZiBF
TkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pCiAgICAgLy8gVGhlc2UgZnVuY3Rpb25z
IHByb3ZpZGUgYSB0d28tbGV2ZWwgc2V0dGluZzoKQEAgLTE1MTAsNiArMTUxMSw3IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdm9pZCBmb3JFYWNoTWVkaWFFbGVtZW50KGNvbnN0
IEZ1bmN0aW9uPHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOwogI2VuZGlmCisgICAgdm9pZCBm
b3JFYWNoQXVkaW9Qcm9kdWNlcihjb25zdCBGdW5jdGlvbjx2b2lkKE1lZGlhUHJvZHVjZXImKT4m
KTsKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgaGFuZGxpbmdUb3Vj
aEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGluZ1RvdWNoRXZlbnQ7IH0KQEAgLTIwNzYs
NyArMjA3OCw2IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIEhh
c2hTZXQ8SFRNTE1lZGlhRWxlbWVudCo+IG1fbWVkaWFTdHJlYW1TdGF0ZUNoYW5nZUVsZW1lbnRz
OwotICAgIFN0cmluZyBtX2lkSGFzaFNhbHQ7CiAgICAgYm9vbCBtX2hhc0hhZENhcHR1cmVNZWRp
YVN0cmVhbVRyYWNrIHsgZmFsc2UgfTsKICNlbmRpZgogCkBAIC0yMTQxLDYgKzIxNDIsOCBAQCBw
cml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9lZGl0b3I7CiAgICAgVW5pcXVlUmVm
PEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKworICAgIFN0cmluZyBtX2RlZmF1bHRBdWRp
b091dHB1dERldmljZUlkOwogfTsKIAogRWxlbWVudCogZXZlbnRUYXJnZXRFbGVtZW50Rm9yRG9j
dW1lbnQoRG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGE0ZjM2Nzk4ZTU0YWY0ZmQzOTRmNDIzYzZmYjBhNmZhMDg2OTZiMjEuLjc0OWUzMTBj
MWI0Y2MxMDY1NDU0ZjNhOWNjNDNmMjdjOTkzZWYzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBl
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZWRp
YUNvbnRyb2xzSG9zdC5oIgorI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk1l
ZGlhRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiTWVkaWFG
cmFnbWVudFVSSVBhcnNlci5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIk1lZGlh
UmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIKICNp
bmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJlZS5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI4NDMsNiArMjg0NSw1NSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmZhc3RTZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICBzZWVrV2l0aFRv
bGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpLCB0
cnVlKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTdHJpbmcgSFRNTE1lZGlhRWxl
bWVudDo6YXVkaW9PdXRwdXREZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX2F1ZGlvT3V0
cHV0RGV2aWNlSWQ7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VXNlckdl
c3R1cmUoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2Vk
RXJyb3IsICJBIHVzZXIgZ2VzdHVyZSBpcyByZXF1aXJlZCJfcyB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50KCkuZG9tV2luZG93KCk7Cisg
ICAgYXV0byogbWVkaWFEZXZpY2VzID0gd2luZG93ID8gTmF2aWdhdG9yTWVkaWFEZXZpY2VzOjpt
ZWRpYURldmljZXMod2luZG93LT5uYXZpZ2F0b3IoKSkgOiBudWxscHRyOworICAgIGlmICghbWVk
aWFEZXZpY2VzKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93
ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkZXZpY2VJZC5p
c0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFtX2F1ZGlvT3V0cHV0RGV2aWNlSWQuaXNFbXB0eSgp
ICYmIG1fcGxheWVyKSB7CisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWQgPSB7IH07
CisgICAgICAgICAgICBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7CisgICAg
ICAgIH0KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBtZWRpYURldmljZXMtPmF1ZGlvT3V0
cHV0RGV2aWNlSWRGcm9tRGV2aWNlSWQoZGV2aWNlSWQpOworICAgIGlmIChhdWRpb091dHB1dERl
dmljZUlkLmlzTnVsbCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChhdWRp
b091dHB1dERldmljZUlkICE9IG1fYXVkaW9PdXRwdXREZXZpY2VJZCkgeworICAgICAgICBtX2F1
ZGlvT3V0cHV0RGV2aWNlSWQgPSBXVEZNb3ZlKGF1ZGlvT3V0cHV0RGV2aWNlSWQpOworICAgICAg
ICBpZiAobV9wbGF5ZXIpCisgICAgICAgICAgICBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VD
aGFuZ2VkKCk7CisgICAgfQorICAgIHByb21pc2UucmVzb2x2ZSgpOworfQorI2VuZGlmCisKK1N0
cmluZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIW1fYXVkaW9PdXRwdXREZXZpY2VJZC5pc0VtcHR5KCkgPyBtX2F1ZGlvT3V0cHV0
RGV2aWNlSWQgOiBkb2N1bWVudCgpLmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkKCk7Cit9CisK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7CiAg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKQEAgLTc2OTgsNiArNzc0OSwxMyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkKICAgICB9
CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hh
bmdlZCgpCit7CisgICAgaWYgKCFtX3BsYXllciB8fCAhbV9hdWRpb091dHB1dERldmljZUlkLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmlj
ZUNoYW5nZWQoKTsKK30KKwogZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6OmVmZmVjdGl2ZVZvbHVt
ZSgpIGNvbnN0CiB7CiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhYjJiMDAxMWI1OTQzOWVhNTFlOGFh
M2UyMDhmZTAxMmM2M2QxMmVkLi43ZDgzMjY3MGY2ZTRkNDA0ZGZmN2RiMDUyZmFkMTEyZWE4Y2Rh
M2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjY4LDYgKzI2
OCwxMSBAQCBwdWJsaWM6CiAgICAgZG91YmxlIG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0Owog
ICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJhdGUoKSBjb25zdDsKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlkLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJik7CisjZW5kaWYKKwogICAgIHVzaW5nIEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6QnVmZmVyaW5nUG9saWN5OwogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KEJ1ZmZl
cmluZ1BvbGljeSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgQnVmZmVyaW5nUG9saWN5IGJ1ZmZlcmlu
Z1BvbGljeSgpIGNvbnN0OwpAQCAtNjA0LDYgKzYwOSw4IEBAIHByb3RlY3RlZDoKICAgICBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcg
YXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBhdWRpb091dHB1
dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F1ZGlvT3V0cHV0RGV2
aWNlSWQ7IH0KIAogICAgIGJvb2wgbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9y
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3I7
IH0KICAgICB2b2lkIHNldE1lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3Rvcihib29s
KTsKQEAgLTg4Miw2ICs4ODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc0lzU3VzcGVu
ZGVkQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgp
IG92ZXJyaWRlOworICAgIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZp
bmFsOwogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKICAgICB2b2lk
IGhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZShBdWRpb1Nlc3Npb24qKSBmaW5hbDsKQEAgLTEx
OTcsNiArMTIwNSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUGxheWluZ1RvV2lyZWxlc3NU
YXJnZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wbGF5aW5nT25TZWNvbmRTY3JlZW4geyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9yZW1vdmVkQmVoYXZpb3JSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNl
ckdlc3R1cmUgeyBmYWxzZSB9OworCisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsK
IH07CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhIVE1MTWVkaWFFbGVtZW50
OjpBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmlkbAppbmRleCBiNDJkMGVhMzcxMDZiNDcyYmJjOWNlZGY2MDc4M2ZlMGEzOWVm
ZmM5Li5lMmI0MzYyMzBlYTUxNjZkMGNkNzIyMGQ1M2NkMTZlNjViYzkzZDJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKQEAgLTg2LDYgKzg2LDExIEBAIHR5cGVk
ZWYgKAogICAgIHVuZGVmaW5lZCBwYXVzZSgpOwogICAgIHVuZGVmaW5lZCBmYXN0U2Vlayh1bnJl
c3RyaWN0ZWQgZG91YmxlIHRpbWUpOwogCisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwg
RW5hYmxlZEJ5U2V0dGluZz1QZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbl0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBhdWRpb091dHB1dERldmljZTsKKyAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPVBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uLCBJ
bXBsZW1lbnRlZEFzPWF1ZGlvT3V0cHV0RGV2aWNlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHNpbmtJZDsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0
aW5nPVBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0QXVk
aW9PdXRwdXREZXZpY2UoRE9NU3RyaW5nIGRldmljZUlkKTsKKyAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPVBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uLCBJ
bXBsZW1lbnRlZEFzPXNldEF1ZGlvT3V0cHV0RGV2aWNlXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0
U2lua0lkKERPTVN0cmluZyBkZXZpY2VJZCk7CisKICAgICAvLyBjb250cm9scwogICAgIFtDRVJl
YWN0aW9ucz1Ob3ROZWVkZWRdIGF0dHJpYnV0ZSBib29sZWFuIGNvbnRyb2xzOwogICAgIGF0dHJp
YnV0ZSBkb3VibGUgdm9sdW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCAyOWY3ZTcyN2YyYjJhYzJiOGZiZWQ1M2VhNjlmNzIyY2Q0NWI3YWQ4Li5lY2JhMmY1MjA5
YmNhNGJjNzk2YWZjZDZjYWU3OGUwZGQxOGE3MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkVtcHR5Q2xpZW50cy5o
IgogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJBdWRp
b091dHB1dFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDbGllbnQuaCIKICNpbmNs
dWRlICJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgpA
QCAtNjEzLDcgKzYxNCw4IEBAIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0
aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIENvb2tpZUph
cjo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4oKSwKLSAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQorICAgICAgICBtYWtlVW5p
cXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAorICAgICAgICBtYWtlVW5pcXVl
UmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+KCkKICAgICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEVtcHR5Q2hyb21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAxYzUxZWU3NjhlZmQ2MmE2N2QwODY2N2VhZTgw
MWQ2Njg5My4uZDFkMjFlZmRjN2NjZDQ1ZTAxNDMyOTIwZjhjODczZjJkNTcwNDYxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAg
IHR5cGVkZWYgdW5zaWduZWQgTXV0ZWRTdGF0ZUZsYWdzOwogCiAgICAgdmlydHVhbCB2b2lkIHBh
Z2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0QXVk
aW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9OwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
TWVkaWFQcm9kdWNlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGY2OTQwNWVj
MjYwZjJiZmNiY2ZjMzJmM2IwZWU3MjYyMWM4OWQ0OGYuLjFmYzkxZDI2ODNhMjQxZDYyNzJlYzU3
M2Y1YTg3MzdkMTNmMzY3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkZy
YW1lUmF0ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCisjaW5jbHVk
ZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9y
d2FyZENsaWVudC5oIgpAQCAtMjU1LDYgKzI1Niw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3Vy
YXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRp
ZgogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCisgICAgLCBtX2F1ZGlvT3V0cHV0UHJvdmlkZXIo
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYXVkaW9PdXRwdXRQcm92aWRlcikpKQogICAgICwg
bV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmxpYldlYlJUQ1By
b3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNp
dHlBbGxvd2VkKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFz
dGljaXR5QWxsb3dlZCkKQEAgLTIwNjcsNiArMjA2OSwxMSBAQCB2b2lkIFBhZ2U6OnJlc3VtZUFs
bE1lZGlhQnVmZmVyaW5nKCkKICNlbmRpZgogfQogCit2b2lkIFBhZ2U6OmRlZmF1bHRBdWRpb091
dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fYXVkaW9PdXRwdXRQcm92aWRlci0+ZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgqdGhpcyk7Cit9CisKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKIAogdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2
ZW50VHlwZSkKQEAgLTMxMjcsNiArMzEzNCwxMyBAQCB2b2lkIFBhZ2U6OmZvckVhY2hNZWRpYUVs
ZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVtZW50Jik+JiBmdW5jdG9yKQog
I2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIoY29uc3QgRnVuY3Rp
b248dm9pZChNZWRpYVByb2R1Y2VyJik+JiBmdW5jdG9yKQoreworICAgIGZvckVhY2hEb2N1bWVu
dChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5mb3JFYWNoQXVk
aW9Qcm9kdWNlcihmdW5jdG9yKTsKKyAgICB9KTsKK30KKwogdm9pZCBQYWdlOjphcHBsaWNhdGlv
bldpbGxSZXNpZ25BY3RpdmUoKQogewogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggYWRmOTA2MmNiMGEyYTk2ODk5NDI3YjRiYmJhMzYxZTgxMTdkOTk3MC4uMGQwNTAxMmMxN2Q4
ZWZkZGE0NTRmMDU0NjkzZDFmNWMxY2IzNDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg4LDYgKzg4
LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwogY2xhc3MgQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OwogY2xhc3MgQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U7CitjbGFzcyBBdWRpb091dHB1dFByb3ZpZGVyOwogY2xhc3MgQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yOwogY2xhc3MgQmFja0ZvcndhcmRDb250cm9sbGVyOwogY2xh
c3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC02NTAsNiArNjUxLDggQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQWxsTWVkaWFCdWZmZXJpbmcoKTsKICAgICBib29s
IG1lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQnVmZmVy
aW5nSXNTdXNwZW5kZWQ7IH0KIAorICAgIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hh
bmdlZCgpOworCiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpIHsg
bV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAgICBib29sIGhhc1Jlc291cmNlTG9h
ZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3VyY2VMb2FkQ2xpZW50OyB9CiAKQEAg
LTc2Miw3ICs3NjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZm9yRWFjaERvY3VtZW50KGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYp
IGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOworICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVu
dChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVk
aWFQcm9kdWNlciYpPiYpOwogCiAgICAgYm9vbCBzaG91bGREaXNhYmxlQ29yc0ZvclJlcXVlc3RU
byhjb25zdCBVUkwmKSBjb25zdDsKIApAQCAtODU3LDYgKzg2MSw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRl
clByb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiBtX2F1ZGlvT3V0
cHV0UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJU
Q1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGFmYzU3YzNiNDBkMGQ3NmNj
NTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjI5NjRjMWY5NjlkZmUyOWY4ZGY0ZThjYmI5ZjMwNDJl
YzAyOTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCIKICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNh
Y2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCkBAIC01OCw3ICs1
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNs
aWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRl
ciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8
Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9y
d2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVK
YXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZy
YW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92
aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNh
Y2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRD
bGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVy
Q2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIsIFVuaXF1ZVJlZjxBdWRpb091dHB1
dFByb3ZpZGVyPiYmIGF1ZGlvT3V0cHV0UHJvdmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNv
Y2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNjksNiArNzAsNyBAQCBQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKFdU
Rk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclBy
b3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKKyAgICAsIGF1ZGlvT3V0cHV0
UHJvdmlkZXIoV1RGTW92ZShhdWRpb091dHB1dFByb3ZpZGVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcx
Mjk2MzI1NGQ5OTMyNzJlYzguLmE0MmRlNmM0MGQ1NmZiOWI4NWY3Y2M4ZjZjMzJkMjhiNDdiNWQ1
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTQzLDYgKzQz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Owog
Y2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFzcyBBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JDbGllbnQ7CitjbGFzcyBBdWRpb091dHB1dFByb3ZpZGVyOwogY2xhc3MgQmFja0Zvcndh
cmRDbGllbnQ7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKIGNsYXNzIENvb2tpZUphcjsK
QEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
LCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRl
cj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVS
ZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxBdWRpb091
dHB1dFByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24o
KTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI5
LDYgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBh
dHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7CisgICAgVW5pcXVlUmVmPEF1ZGlvT3V0
cHV0UHJvdmlkZXI+IGF1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291
cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CiAgICAg
Ym9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA0OTgzYjFmYWNjNmY1YWJmNTE5MjQ0ODc0MjUz
ODZiNDRhMDBhYmQwLi4yOGVlMGI1NWQyNDJlZjY5NGYxZjkxOWVhMGU0YTliZGQ2NjU3Njc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjYsNiArODI2LDkgQEAgbWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICBpbml0aWFsOiBmYWxz
ZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0b3J5OgogICB0eXBlOiBTdHJp
bmcKICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNjNjZjNjY2VlODEx
MmUxNTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4OTk3ZjcyNmNmYjE3YTYyNmJkOWU5
NDY1ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQogICAg
IG1fcHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtb2RlKTsKIH0KIAordm9p
ZCBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBtX3ByaXZh
dGUtPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRpYVBsYXllckxvZ2dlcigpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRl
eCBlYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzLi5kNDY3MzFhMmJhZGY4
ODU3MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2ICsyNzMsOSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBhdWRpb091dHB1dERl
dmljZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9n
SWRlbnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dl
ciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEsNiArNjM0LDEwIEBAIHB1YmxpYzoK
ICAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoKSBjb25zdCB7
IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7IH0KICAgICB2b2lkIHNldFByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAKKyAgICBTdHJpbmcgYXVk
aW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlk
T3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOwor
CiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVk
aWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBwdWJsaWM6CiB9OwogCiAKK2lubGlu
ZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkKCkgOiBTdHJp
bmcgeyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5h
dWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmluZyB7IH07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXgg
NjcwYzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1OTc4ZC4uODEyNTMzMDI3NmRkNTQ0
ZTFmY2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKSB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5k
ZXggYWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3OGJiZDNlMy4uODVjZTgxZDEwM2I4
NWQxZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAt
MzE4LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRPYnNlcnZlVGltZUNv
bnRyb2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNo
YW5nZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAg
ICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
aW5kZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4MjMwMDJiNTYxNS4uZmRjZjVmZTE2
NzRkMzQxYTA2Y2QwMmNmNDE1ZTNlMjM4NTM4NDIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CkBAIC05NTMsNiArOTUzLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2UGxheWVySXRlbSkKICAgICAgICAg
c2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsKIAorICAgIGF1dG8gYXVkaW9P
dXRwdXREZXZpY2VJZCA9IHBsYXllcigpLT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKTsK
KyAgICBpZiAoIWF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpCisgICAgICAgIG1fYXZQbGF5
ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IGF1ZGlvT3V0cHV0RGV2aWNlSWQ7
CisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMsNiArMzI5Nywx
MyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sK
KyAgICBpZiAoIW1fYXZQbGF5ZXIgfHwgIXBsYXllcigpKQorICAgICAgICByZXR1cm47CisgICAg
bV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gcGxheWVyKCktPmF1
ZGlvT3V0cHV0RGV2aWNlSWQoKTsKK30KKwogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5hbWVz
KCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdp
dGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAwOWJmNTU3NDg0MzMxZDU4
MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZkZjk3MDJmMmY5NTE4YWQ2OWRk
ODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjU0LDYgKzI1NCw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5j
dGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOworICAgIHZvaWQgYXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAg
ICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA4
Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5Li40NWQ5ODNhNWVkYWVlOTQ0
MzBhZjM1MGU3M2M4ZDJjOWZkNGE3NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBA
IC0xMTY2LDYgKzExNjYsMTAgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAg
ICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZvbHVtZSgpXTsKICAgICBbYXVk
aW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToobV9wbGF5ZXItPnByZXNlcnZl
c1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3BlY3RyYWwgOiBBVkF1ZGlvVGlt
ZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5
ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghZGV2aWNlSWQuaXNO
dWxsKCkpCisgICAgICAgIGF1ZGlvUmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworCiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXplciBhZGRSZW5k
ZXJlcjphdWRpb1JlbmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9u
KSB7CkBAIC0xMjc2LDYgKzEyODAsMTUgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX3BsYXllcikKKyAg
ICAgICAgcmV0dXJuOworICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXRE
ZXZpY2VJZCgpOworICAgIGZvciAoYXV0byYga2V5IDogbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyTWFwLmtleXMoKSkKKyAgICAgICAgKChfX2JyaWRnZSBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXIgKilrZXkuZ2V0KCkpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsK
K30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRiMjhmYWMzOWNiMWJmYmU5
OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0MjkwMDAyNTBlOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRlZDsgfQogCiAgICAgdm9p
ZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7CiAgICAgdm9pZCB1cGRh
dGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMmRiNTBiYjg5
NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAzNi4uMGZhYjhiMWRlNDBiNjMzY2JiNzYwMWZk
ZjY4NzQ2OTgyNjQzZTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtODY3LDcg
Kzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRh
dGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIGN1cnJlbnRU
cmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAKLSAgICBhdXRvIHNldEF1
ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtJiB0cmFj
aywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3Bs
YXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgYXV0byBzZXRBdWRpb1Ry
YWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
JiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAgIHsKICAgICAgICAgc3dp
dGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJlbW92ZToKQEAgLTg4NCw2
ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBk
YXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZShtX3ZvbHVtZSk7CiAgICAg
ICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAgICAgIHRyYWNrLnNldEVu
YWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRyYWNrLnN0cmVhbVRyYWNr
KCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAg
ICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworCiAgICAg
ICAgICAgICBpZiAocGxheWluZygpKQogICAgICAgICAgICAgICAgIHRyYWNrLnBsYXkoKTsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMTAxNyw2ICsxMDIxLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6
OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5mbHVzaEFuZFJlbW92
ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIGlmICghbV9wbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2
aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFs
dWVzKCkpCisgICAgICAgIGF1ZGlvVHJhY2stPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNl
SWQpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2No
ZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBB
U1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKaW5k
ZXggNjQ4OWY5ZGE3YzU2MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAwYi4uNDhlNWYzMjcxYWI0
OGM3YTI3OTYwNWEzNTE0YWI2OWQyYThkYTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Vm9sdW1lKGZsb2F0KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAorICAgIHZpcnR1
YWwgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOworCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiwgY29u
c3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEwIEBAIGlubGluZSBjb25zdCBjaGFy
KiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NOYW1lKCkgY29uc3QKIH0K
ICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0
QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKQoreworfQorCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1ZjkwZDQ5OWRlMDM4MDk3OTZhYzljNWFjLi42YmUw
YTE4ZjMwNTg2M2NhZWZiZTg5ZWIxNmU2OGI4ZGU3MjQ3NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcsNiArOTcsMTEgQEAgdm9pZCBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIHVwZGF0ZVJl
bmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVk
aW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIG1fcmVuZGVy
ZXItPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworfQorCiBmbG9hdCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Jl
bmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAppbmRl
eCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUzLi45M2E0MDY1M2MxN2Rj
NTdmOGQ4Y2QyODAyOTc2OTk5ZTk0OGNiMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBt
X2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2soKSB7
IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCA3NjIzMmI3OWQ5ZDA3ZWIx
Yjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li5mMDE1MTFmZmU4OGY2OTRlYzVhYTY2NmY1MmQ5MmE1
NmE3NTE0YzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuY3BwCkBAIC02Nyw2ICs2NywxMiBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2E6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgICAgIG1fZGF0
YVNvdXJjZS0+c2V0Vm9sdW1lKHZvbHVtZSk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRl
dmljZUlkKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY3JlYXRlIGEgdW5pdCBmb3Igb3Vy
c2VsdmVzIGhlcmUgb3IgdXNlIHRoZSBkZWZhdWx0IHVuaXQgaWYgZGV2aWNlSWQgaXMgbWF0Y2hp
bmcuCisgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzaW5nbGV0b24oKS5z
ZXRBdWRpb091dHB1dERldmljZUlkKGRldmljZUlkKTsKK30KKwogdm9pZCBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNhbXBs
ZVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRleCA1MWFjNDMzN2M0ZTAzNThmZGRjYjRlYTg1NDdm
MmFiYjBiYzBmYTg3Li5lZjZiODQyY2E1ZjBkNTIyZmNhNzMyODg1N2JkMzZhMTA5ZDJhMDIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgK
QEAgLTUzLDYgKzUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKICAgICB2
b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpIGZpbmFsOworICAg
IHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVzY3Jp
cHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291cmNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApp
bmRleCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcwYjE1Li5kMjc1ZWNlN2Yy
NjEwZGJiMmVkZDU1YjA4M2M4NDE2ZjBjNTBlOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYsNiArMzYsMTEgQEAKICNp
bmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJl
RGV2aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKKyNl
bmRpZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDIyIEBAIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCiAgICAgc3RvcCgp
OwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9P
dXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworICAgIGF1dG8gZGV2aWNl
ID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0Rl
dmljZVdpdGhVSUQoZGV2aWNlSUQpOworICAgIGlmICghZGV2aWNlIHx8IG1fZGV2aWNlSUQgPT0g
ZGV2aWNlLT5kZXZpY2VJRCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHNob3VsZFJl
c3RhcnQgPSBtX2lzU3RhcnRlZDsKKyAgICBpZiAobV9pc1N0YXJ0ZWQpCisgICAgICAgIHN0b3Ao
KTsKKworICAgIG1fZGV2aWNlSUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CisKKyAgICBpZiAoc2hv
dWxkUmVzdGFydCkKKyAgICAgICAgc3RhcnQoKTsKK30KKwogdm9pZCBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYm
IHNvdXJjZSkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwpAQCAtMTYxLDYgKzE4MiwxNiBAQCB2b2lkIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQo
KQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChtX2RldmljZUlE
KSB7CisgICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBr
QXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0ds
b2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7CisgICAgICAgIGlmIChl
cnJvcikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB1
bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAoaW50
KWVycm9yLCAoY2hhciopJmVycm9yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKyNlbmRpZgorCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsg
aW5wdXRQcm9jLCBudWxscHRyIH07CiAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShy
ZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlv
VW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBp
ZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQuaAppbmRleCA0NDA3NmE1NmVjOTc0ZjliYjg3MzQyYmZjNzQ4MzBjODU5Yzc3MmY2Li4x
YjIyMzdmOGQzOGRhZWIxYjk3ZGE5ZWYzZTY0MTMzNmNmOWZjNmU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCkBAIC01MSw2ICs1MSw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9wKCk7CiAKKyAgICB2b2lk
IHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIGFkZFNv
dXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJj
ZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAtNjgsNiArNzAsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFsc2UgfTsKICAgICBMb2Nr
IG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZhbHNlIH07CisgICAgdWlu
dDMyX3QgbV9kZXZpY2VJRCB7IDAgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGMwMjU4MWNhOTYzMzk5ZDNlMjFhYzM2OWUwMTNk
ZWQ0ZmMyNTY4YmYuLjM4NjA2YWJlZmVjNzk1ZTVkMDg2ZmFmYTljMmE0ODkzYzcxN2Y2OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzg2LDYg
KzM4Niw4IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0
SW5kZXgsIGJvb2wgZmlyZU9uQ2hhbmdlKQogICAgIGlmICgmZG9jdW1lbnQoKSAhPSBkb2N1bWVu
dCgpLmZyYW1lKCktPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCAmZG9j
dW1lbnQoKSk7CisKICAgICBzZWxlY3RFbGVtZW50KCkub3B0aW9uU2VsZWN0ZWRCeVVzZXIoc2Vs
ZWN0RWxlbWVudCgpLmxpc3RUb09wdGlvbkluZGV4KGxpc3RJbmRleCksIGZpcmVPbkNoYW5nZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKaW5kZXgg
MWZjNTZkODIxYmJkOTNmYzg5OWYyODUzYTExNTkxYTUyMGVjOThhNy4uZGU4NTI0ZDRhYmI0MWEz
MTJkMjJkZTk5ZjI4OGZiODQ4ZDQ4NWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5jcHAKQEAgLTEzNiw0ICsxMzYsNiBAQCB2b2lkIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRp
bWUsCiAKIH0KIAorI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyLmNwcAppbmRleCA2MDM0YzJkNWY4ZDI1OGJhZTQ1ZWE1MzVhOTU2MDQxYTc2NTc0NjFmLi4w
YWI3ODQ3MzA5NWM3MTJiMDQxZWU1ZjI0OWQyODg4NDlhNTg5OWE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAK
QEAgLTEzNyw0ICsxMzcsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRp
bmcoKQogCiB9CiAKKyN1bmRlZiBNRVNTQUdFX0NIRUNLCisKICNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBI
QVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCmluZGV4IDQ2YmZiYjRhNjIzNjM3ZjYwN2M1ODkzZjdiMWVmYzhlMGU5YzMyYmEu
LjcwYzY3OGYxNDg3OGVkZWE4ZjM1NWY0ODdmNmMwODhmYmMyM2ZhZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNjc5LDYgKzY3OSwxNCBAQCBFeHBvc2VT
cGVha2Vyc0VuYWJsZWQ6CiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKICAgY29uZGl0aW9uOiBF
TkFCTEUoV0VCX1JUQykKIAorUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICB0
eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJB
bGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2VyIGRldmljZSBzZWxlY3Rpb24iCisgIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHBlciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2
aWNlIHNlbGVjdGlvbiIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICBjb25kaXRpb246IEVO
QUJMRShXRUJfUlRDKQorCiBWUDlEZWNvZGVyRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZh
dWx0VmFsdWU6IGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBjODg0
ZjBlZGU4YjlkZmFiMzMyYzg0M2RlNGI4NWIxMTYxMjBiMGI5Li5mMzMxY2YwZTgwYTEyMjZiM2Zi
MDRmYzRkNDI1YTI4NTVjMjBhMmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTU1NSw2ICs1NTUsNyBAQCBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDIzZWQ0ZjAyY2I4MTc4
MmFjMWUzYTFlZmE1NGYzNjQyMDJhNzBkZDQuLjMxMGNmYWZlYjg1MDQ0YzYwMTE5YmU5ZDI0MTJl
N2E2OTJkMzk5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NSw2ICs1NjUsNyBAQCBX
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL0F1ZGlvT3V0cHV0UHJvdmlkZXJN
YWMuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVDb2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNv
Y29hLm1tCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGMyNjZjM2JiZTBk
NjE3OWMzOWFlYTZkYTM1YzM3ZjdhNjQyYzhjOTQuLmNmNDVhZGE2NDUzZTZiMTlhNTMyMTA0ZDA4
MGVhNGMxZTI0NDM3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAg
LTYwNSw3ICs2MDUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGF2ZU1pY3JvcGhvbmVEZXZpY2Uo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBkZQogICAgIH0pOwogfQogCi1W
ZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMsIGNv
bnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCkKK1ZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNl
TGlzdChib29sIHJldmVhbElkc0FuZExhYmVscykKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IGRl
ZmF1bHRNYXhpbXVtQ2FtZXJhQ291bnQgPSAxOwogICAgIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVs
dE1heGltdW1NaWNyb3Bob25lQ291bnQgPSAxOwpAQCAtNjMyLDE2ICs2MzIsNyBAQCBWZWN0b3I8
Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNv
bXB1dGVGaWx0ZXJlZERldgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
LSAgICAgICAgYXV0byBsYWJlbCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGF1dG8gaWQgPSBl
bXB0eVN0cmluZygpOwotICAgICAgICBhdXRvIGdyb3VwSWQgPSBlbXB0eVN0cmluZygpOwotICAg
ICAgICBpZiAocmV2ZWFsSWRzQW5kTGFiZWxzKSB7Ci0gICAgICAgICAgICBsYWJlbCA9IGRldmlj
ZS5sYWJlbCgpOwotICAgICAgICAgICAgaWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZp
Y2VJREhhc2hTYWx0KTsKLSAgICAgICAgICAgIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoZGV2aWNlLmdyb3VwSWQoKSwg
ZGV2aWNlSURIYXNoU2FsdCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmaWx0ZXJlZERldmljZXMu
YXBwZW5kKENhcHR1cmVEZXZpY2UoaWQsIGRldmljZS50eXBlKCksIGxhYmVsLCBncm91cElkKSk7
CisgICAgICAgIGZpbHRlcmVkRGV2aWNlcy5hcHBlbmQocmV2ZWFsSWRzQW5kTGFiZWxzID8gZGV2
aWNlIDogQ2FwdHVyZURldmljZSh7IH0sIGRldmljZS50eXBlKCksIHsgfSwgeyB9KSk7CiAgICAg
fQogCiAgICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSAhcmV2ZWFsSWRzQW5kTGFiZWxzOwpA
QCAtNjk5LDcgKzY5MCw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKEZyYW1lCiAgICAgICAgICAgICBi
b29sIHJldmVhbElkc0FuZExhYmVscyA9IG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MgfHwgd2Fz
R3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAKICAgICAgICAgICAgIGNh
bGxDb21wbGV0aW9uSGFuZGxlci5yZWxlYXNlKCk7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0FuZExhYmVscywgZGV2aWNl
SURIYXNoU2FsdCksIGRldmljZUlESGFzaFNhbHQpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChyZXZlYWxJZHNBbmRMYWJlbHMpLCBkZXZp
Y2VJREhhc2hTYWx0KTsKICAgICAgICAgfSk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKaW5kZXggZGY5ZmRkNWMxNTNkY2NmN2Y3NjliMWE0OGI3YjFjNmE2ZjFkYzEz
Ny4uOTU4YTE2ZDA1ZWMyNDEwNzBjNjc3YzQxYjExYjI0OTkxM2RlN2E1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4p
OwogCi0gICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0ZXJlZERl
dmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURI
YXNoU2FsdCk7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0
ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMpOwogCiAgICAgdm9pZCBwcm9j
ZXNzVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsKICAgICB2b2lkIHByb2Nlc3NVc2VyTWVk
aWFQZXJtaXNzaW9uSW52YWxpZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWlu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyNTY4MWVkNGQ5YmIyNWZkNDkwNTliMTkzZjdkMGEyNTEzOTQ2OGEzLi5lZTY4MDEwNzJl
ZjI3NTJmNWUyYzVhYmYwNzFkNTU0MmZiY2JhMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzNzMsNiArMzM3Myw5IEBACiAJCTNG
OTE1QzBFMUY1NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVySU9TLm1tOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y5
MTVDMEYxRjU2NERFRDAwMTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOyBwYXRo
ID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkIwOEU0MjFGNjBCMjQwMDA1RTUzMTIgLyogaU9T
LnhjYXNzZXRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZm9sZGVyLmFzc2V0Y2F0YWxvZzsgcGF0aCA9IGlPUy54Y2Fzc2V0czsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDMyNTEzNTc5RjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9P
dXRwdXRQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDBFQzQ0
MjUxMzU3OUYwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvT3V0cHV0UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDUyNTEzNTg1NjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJv
dmlkZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9P
dXRwdXRQcm92aWRlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDI0
RkMwMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMjRGQzEyM0NGMTA0
NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDNGQkExMjA2MUJEQjcw
MEMyRUFGOCAvKiBOZXR3b3JrTG9hZENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01NTE4LDYgKzU1MjEsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMURBRjVBNEQyM0VD
OUY3OTAwQjdCNTE4IC8qIGNvY29hICovLAogCQkJCUNEQTk1OTM5MjQxMkIxNzUwMDkxMEVFRiAv
KiBpb3MgKi8sCisJCQkJNDEwMEVDNDMyNTEzNTc5RjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJv
dmlkZXIuY3BwICovLAorCQkJCTQxMDBFQzQ0MjUxMzU3OUYwMDdCODVEOSAvKiBBdWRpb091dHB1
dFByb3ZpZGVyLmggKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkzQkI3MDA2ODBEN0MgLyog
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4
RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKQEAgLTY0OTUsNiArNjUwMCw3
IEBACiAJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDEwMEVDNDUyNTEzNTg1NjAwN0I4NUQ5
IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXJNYWMuY3BwICovLAogCQkJCTFEOTdFQzdEMjQwODk4RDIw
MDQ2NkZGQSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbSAqLywKIAkJCQkxREZE
RDBFMDIzRjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8sCiAJCQkJ
MURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMjI0
NjJhNzA3MDk3NTljMjM1NzU5NjNiNTFmNGQ3MzhiYWUyODc1ZS4uNTY3ZmJhMTM1N2JkYzJmYmZk
MDRkM2JhNjNjNzkyMDYwYmFhMmNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFQSUFycmF5
LmgiCiAjaW5jbHVkZSAiQVBJR2VvbWV0cnkuaCIKKyNpbmNsdWRlICJBdWRpb091dHB1dFByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9s
bGVyQWN0aW9uLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKQEAgLTQ5OSw3ICs1MDAsOCBA
QCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmNvb2tpZUphcigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudD4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50
PihtX21haW5GcmFtZS5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVj
b3JkZXJQcm92aWRlcj4oKQorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPigpCiAg
ICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21l
Q2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oCmluZGV4IDFlOTkzNzE0
OWFmZjJiMWIwNGQ3YzVlY2NiMmM2ZDk4YmQ3M2NkYjEuLmEzZTY4NjI2YmI5Yjc2OWY4NjA5Njk1
YjA5N2JlMDc1N2MyYTNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZU92ZXJsYXkuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NpbXBsZVJhbmdlLmg+CiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIEREQWN0aW9uQ29udGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcAppbmRleCA5ODRmYmJmNGM3ODM0NGQ1ZjgzN2I5YWE1YzlhZTc4
YTM1ZmQxZGJmLi5iZWZhY2JkODE4MWEzODNiZWU2MjI1NmFkODY4ZTY1OTE4OGRhODU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKaW5k
ZXggMzc1NDA4YzM5MDI0NTExZDJmYmE1MzY3ZWQ1OGQxNzU3ZGFhMTU4Ni4uMWM4OTBiZWIxYjAz
MTNkNGUyMzAyOTUyOWY1MWQxMTE3MGU5YjViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0z
MCw2ICszMCwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKwor
bmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNzFlYzBhZjMyY2U1MmVlYzlkYzljZTZiZDA1
ZGVhMGMxZDk2YmQyNi4uMGQ3ZTkzNmRmZTU1ODAzYjUxNmYyNGEyNTVmZDRlNDQxMjZkZTU3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTMwLDYg
KzEzMCw3IEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlUmVmLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb091dHB1
dFByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NT
U0FuaW1hdGlvbkNvbnRyb2xsZXIuaD4KQEAgLTE2MDMsNyArMTYwNCw4IEBAIHN0YXRpYyB2b2lk
IFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdl
YkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCi0gICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAorICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvT3V0cHV0UHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9
IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xODgzLDcgKzE4ODUsOCBAQCBzdGF0aWMg
dm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAg
ICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAotICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQorICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpBdWRpb091dHB1dFByb3ZpZGVyPigpCiAgICAgKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9T
KHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409022</attachid>
            <date>2020-09-17 04:44:08 -0700</date>
            <delta_ts>2020-09-17 05:08:34 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917134406.patch</filename>
            <type>text/plain</type>
            <size>70037</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3Njg5ZDA2MTdlOTI4
N2Q4ZjEzYzg1Yjg5N2ExMGU2MDMwNDRiMC4uZGRjZmQ5MjQwMDM5N2E2ZjU2Y2M5ZjgxMWQ0NGYz
Zjg0MmQ3MTFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEZvciBNZWRpYVN0cmVhbVRyYWNrLCB3ZSBy
ZXNldCB0aGUgQXVkaW9TYW1wbGVEYXRhU291cmNlIHdoZW4gc3dpdGNoaW5nIG9mIGF1ZGlvIGRl
dmljZSBvdXRwdXQuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3ZSBkbyBub3QgZW5kIHVwIHJl
bmRlcmluZyBhdWRpbyB3aXRoIHNvbWUgZGVsYXkgb24gdGhlIG5ldyBkZXZpY2UuCisKKyAgICAg
ICAgQWxsIHRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgYmFzZWQgb24gdXNlciBnZXN0dXJlLgor
ICAgICAgICBVcGRhdGUgUmVuZGVyTWVudUxpc3QgdG8gYWN0aXZhdGUgdXNlciBnZXN0dXJlIHdo
ZW4gdXNlciBzZWxlY3RzIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCisKKyAgICAgICAgVGVzdHMgdG8g
YmUgYWRkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYURldmljZXM6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YWxs
b3cpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZvckVh
Y2hBdWRpb1Byb2R1Y2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZWZhdWx0QXVk
aW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omhhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNr
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkZWZhdWx0QXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsOgorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUNvbmZpZ3VyYXRpb25XaXRo
RW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBwYWdlL01lZGlhUHJvZHVjZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQp
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9u
KToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5n
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZTo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJh
Y2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojpj
cmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChSZW5kZXJNZW51TGlzdDo6dmFsdWVD
aGFuZ2VkKToKKwogMjAyMC0wOS0xNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbmlmaWVkIGJ1aWxkIGZpeCBmb3IgInJlZGVmaW5pdGlvbiBvZiAna0NNVmlk
ZW9Db2RlY1R5cGVfVlA5IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzOGU0YmY0ZTIyYTZhOWE3YWQ2NDdhOWU3YzUx
ODU2ZmNhMjFkYWVhLi5mNTc3ODZiMTQxOGQ5YzhjNmZiM2ExZmNmODQ4OGUyNDg5NmU2Zjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3BlYWtlciBzZWxlY3Rp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY0
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSBhbiBleHBlcmltZW50YWwgZmxhZyBmb3IgcGVyIGVsZW1lbnQgc3BlYWtlciBzZWxlY3Rp
b24uCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd2VyZSBub3QgZXhwb3NpbmcgcmVhbCBkZXZp
Y2UgSURzIHRvIFdlYlByb2Nlc3MsIGJ1dCBpbnN0ZWFkIHdlcmUgaGFzaGluZyB0aGVtIGJlZm9y
ZSBzZW5kaW5nIHRoZW0gdG8gV2ViUHJvY2Vzcy4KKyAgICAgICAgV2Ugbm93IHNlbmQgdGhlIHJl
YWwgZGV2aWNlIElkcyBhbmQgbGV0IFdlYlByb2Nlc3MgZG8gdGhlIGhhc2hpbmcgcGVyIG9yaWdp
bi4KKworICAgICAgICBJbXBsZW1lbnQgQXVkaW9PdXRwdXRQcm92aWRlciBmb3IgTWFjIGJ5IGxv
b3BpbmcgdGhyb3VnaCBhbGwgYXVkaW8gcHJvZHVjZXJzIGFuZCBub3RpZnlpbmcgdGhlbSB0aGF0
IHRoZSBkZWZhdWx0IGF1ZGlvIG91dHB1dCBkZXZpY2UgY2hhbmdlZC4KKworICAgICAgICBGaXhl
cyB1bmlmaWVkIGJ1aWxkIGlzc3VlcyBpbiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHAsIFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwLCBXZWJQYWdlT3ZlcmxheS5oIGFuZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OgorCiAyMDIwLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVuaWZpZWQgYnVpbGQgZml4IGZvciAicmVkZWZpbml0aW9uIG9mICdrQ01WaWRlb0NvZGVj
VHlwZV9WUDkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZjRkYjBjMTFjOTZjMWE4
ZThhNWNiMmJiMTQ5NzFhZjA5MmM5ODIyMy4uYjg4MWNjZmYyNGMwYWVhZWY3NDc1ZDNhYWJjODky
YTFhMTcxMTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1l
Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6
ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTA5LTE2ICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgcnVudGltZSBzZXR0aW5nIGZv
ciBlbmFibGluZy9kaXNhYmxpbmcgQ1NTIHNoYWRvdyBwYXJ0cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDI3YmMzZTEw
YWFmNjBhMzc4OWYxOTFiMGE2NTEyNzcxODE1M2ZkZWIuLmVkODRlZTE5MWMwZTYwMzA5ZDA2MzBh
NTgzYjAyNGMyNjVjNzEyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgaW5saW5lIE1lZGlh
RGV2aWNlczo6TWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURP
TU9iamVjdChkb2N1bWVudCkKICAgICAsIG1fc2NoZWR1bGVkRXZlbnRUaW1lcigqdGhpcywgJk1l
ZGlhRGV2aWNlczo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9ldmVudE5hbWVz
KGV2ZW50TmFtZXMoKSkKLSAgICAsIG1faWRIYXNoU2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCkpCisgICAgLCBtX2dyb3VwSWRIYXNoU2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5n
KCkpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0
aWMgaW5saW5lIE1lZGlhRGV2aWNlSW5mbzo6S2luZCB0b01lZGlhRGV2aWNlSW5mb0tpbmQoQ2Fw
dHVyZURldmljZTo6RGV2aWNlVAogICAgIHJldHVybiBNZWRpYURldmljZUluZm86OktpbmQ6OkF1
ZGlvaW5wdXQ7CiB9CiAKLXZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCit2b2lkIE1lZGlhRGV2aWNlczo6cmVm
cmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzLCBjb25z
dCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCkBAIC0yMDIsNiArMjAyLDggQEAgdm9p
ZCBNZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiYgbmV3RGV2aWNlcykKICAgICBib29sIGNhbkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3Jv
cGhvbmVBY2Nlc3MoKmRvY3VtZW50KTsKICAgICBib29sIGNhbkFjY2Vzc1NwZWFrZXIgPSBjaGVj
a1NwZWFrZXJBY2Nlc3MoKmRvY3VtZW50KTsKIAorICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRv
UGVyc2lzdGVudElkLmNsZWFyKCk7CisKICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+
IGRldmljZXM7CiAgICAgZm9yIChhdXRvJiBuZXdEZXZpY2UgOiBuZXdEZXZpY2VzKSB7CiAgICAg
ICAgIGlmICghY2FuQWNjZXNzTWljcm9waG9uZSAmJiBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCkBAIC0yMTcsMTEgKzIxOSwxNyBAQCB2
b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBuZXdEZXZpY2VzKQogICAgICAgICB9KTsKICAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZv
dW5kKSB7CiAgICAgICAgICAgICBkZXZpY2VzLmFwcGVuZChtX2RldmljZXNbaW5kZXhdLmNvcHlS
ZWYoKSk7CisgICAgICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAgICAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZFRvUGVyc2lzdGVudElkLmFkZChtX2RldmljZXNbaW5kZXhdLT5kZXZpY2VJZCgpLCBuZXdE
ZXZpY2UucGVyc2lzdGVudElkKCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
KyAgICAgICAgYXV0byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmlj
ZUlESGFzaFNhbHQpOworICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQo
KSwgbV9ncm91cElkSGFzaFNhbHQpOworCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlv
T3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJz
aXN0ZW50SWQoKSk7CiAKLSAgICAgICAgYXV0byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91cElk
KCksIG1faWRIYXNoU2FsdCk7Ci0gICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5m
bzo6Y3JlYXRlKG5ld0RldmljZS5sYWJlbCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIFdU
Rk1vdmUoZ3JvdXBJZCksIGRldmljZUtpbmQpKTsKKyAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVk
aWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQp
LCBXVEZNb3ZlKGdyb3VwSWQpLCBkZXZpY2VLaW5kKSk7CiAgICAgfQogICAgIG1fZGV2aWNlcyA9
IFdURk1vdmUoZGV2aWNlcyk7CiB9CkBAIC0yNDQsMTIgKzI1MiwxMSBAQCB2b2lkIE1lZGlhRGV2
aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmIHByb21pc2Up
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb250cm9sbGVyLT5lbnVtZXJhdGVNZWRp
YURldmljZXMoKmRvY3VtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGNvbnN0IGF1dG8mIG5ld0RldmljZXMsIGNvbnN0
IGF1dG8mIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgeworICAgIGNvbnRyb2xsZXItPmVudW1l
cmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIG5ld0RldmljZXMsIGF1
dG8mJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhp
cy0+ZG9jdW1lbnQoKS0+c2V0RGV2aWNlSURIYXNoU2FsdChkZXZpY2VJREhhc2hTYWx0KTsKLSAg
ICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcyk7CisgICAgICAgIHJlZnJlc2hEZXZpY2Vz
KG5ld0RldmljZXMsIGRldmljZUlESGFzaFNhbHQpOwogICAgICAgICBwcm9taXNlLnJlc29sdmUo
bV9kZXZpY2VzKTsKICAgICB9KTsKIH0KQEAgLTMyMCw2ICszMjcsMzYgQEAgYm9vbCBNZWRpYURl
dmljZXM6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8
RXZlbnRMaXN0ZW4KICAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6YWRkRXZl
bnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKIH0KIAor
dm9pZCBNZWRpYURldmljZXM6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlk
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJl
cXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoZGV2aWNlSWQuaXNFbXB0eSgpKSB7CisgICAgICAgIGRv
Y3VtZW50LT50b3BEb2N1bWVudCgpLnNldERlZmF1bHRBdWRpb091dHB1dERldmljZUlkKHsgfSk7
CisgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IHsgfTsKKyAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHBlcnNpc3RlbnRJ
ZCA9IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmdldChkZXZpY2VJZCk7Cisg
ICAgaWYgKHBlcnNpc3RlbnRJZC5pc051bGwoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCkuc2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQo
V1RGTW92ZShwZXJzaXN0ZW50SWQpKTsKKyAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWQgPSBXVEZN
b3ZlKGRldmljZUlkKTsKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IGJlNWQ2
YjhmYjVkMWU0M2U1ODM5MTQ5NmRkNDFkYTcwN2I5Yjg4OGQuLjQ3ZGM4MjMyMTRiOThmOWVlYTk2
MTkxNmRmM2M0OGZkYWVlMjA4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtODksNiArODksMTEgQEAgcHVibGljOgogICAg
IHZvaWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsKICAgICBN
ZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgZ2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKTsK
IAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2UoKSBjb25zdCB7IHJl
dHVybiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWQ7IH0KKworICAgIFN0cmluZyBhdWRpb091dHB1dERl
dmljZUlkRnJvbURldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmdldChkZXZpY2VJZCk7IH0KKwog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VzPjo6cmVmOwogICAgIHVzaW5nIFJlZkNv
dW50ZWQ8TWVkaWFEZXZpY2VzPjo6ZGVyZWY7CiAKQEAgLTk4LDcgKzEwMyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoKTsKICAgICBib29sIGFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4m
JiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKIAotICAgIHZvaWQg
cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CisgICAgdm9pZCBy
ZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGxpc3RlbkZvckRldmljZUNoYW5nZXMoKTsKIAogICAgIGZyaWVuZCBjbGFz
cyBKU01lZGlhRGV2aWNlc093bmVyOwpAQCAtMTI2LDggKzEzMSwxMSBAQCBwcml2YXRlOgogICAg
IGNvbnN0IEV2ZW50TmFtZXMmIG1fZXZlbnROYW1lczsgLy8gTmVlZCB0byBjYWNoZSB0aGlzIHNv
IHdlIGNhbiB1c2UgaXQgZnJvbSBHQyB0aHJlYWRzLgogICAgIGJvb2wgbV9saXN0ZW5pbmdGb3JE
ZXZpY2VDaGFuZ2VzIHsgZmFsc2UgfTsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1f
YXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkOworICAgIFN0cmluZyBtX2F1ZGlvT3V0
cHV0RGV2aWNlSWQ7CisKICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IG1fZGV2aWNl
czsKLSAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAgIFN0cmluZyBtX2dyb3VwSWRIYXNoU2Fs
dDsKIAogICAgIE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVz
Rm9yQ3VycmVudEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJl
bnRHZXN0dXJlVG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5pZGwKaW5kZXggOTJhOWRkN2M1NDJhMjc4MjdmYjQwODcwMjYyMzcy
MjEyMmE4YmYzOS4uZWU4NWNlZDA4N2FjYzM2ZmJhYjY2ZGFhYjRlYWI2MGM1ZTc4NDVkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmlkbApAQCAtMzksNiArMzksOSBAQAogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogICAgIFtQcml2YXRlSWRlbnRpZmllciwgUHVi
bGljSWRlbnRpZmllcl0gUHJvbWlzZTxNZWRpYVN0cmVhbT4gZ2V0VXNlck1lZGlhKG9wdGlvbmFs
IE1lZGlhU3RyZWFtQ29uc3RyYWludHMgY29uc3RyYWludHMpOwogICAgIFtFbmFibGVkQnlTZXR0
aW5nPVNjcmVlbkNhcHR1cmVdIFByb21pc2U8TWVkaWFTdHJlYW0+IGdldERpc3BsYXlNZWRpYShv
cHRpb25hbCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cyk7CisKKyAg
ICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vyc10gUHJvbWlzZTx1bmRlZmluZWQ+IHNl
dEF1ZGlvT3V0cHV0RGV2aWNlKERPTVN0cmluZyBkZXZpY2VJZCk7CisgICAgW0VuYWJsZWRCeVNl
dHRpbmc9RXhwb3NlU3BlYWtlcnNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2U7CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBkZjJhNWU0NGVjMTI3OWMw
YTIzM2JjMWRhYzQ3MzU5ZDUzNWUxODM2Li45YTAwMGQ0ZmQ4ZWI0MDljNDUxOGQzNWZmNzNkZGRl
ODFiZjllZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTI3MSw4ICsyNzEsNiBAQCB2b2lkIFVzZXJN
ZWRpYVJlcXVlc3Q6OmFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVyZURl
dmljZSYmIHZpZGVvRAogICAgICAgICB9OwogCiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBkb2N1
bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk7Ci0KICAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuY3JlYXRlTWVkaWFT
dHJlYW0oZG9jdW1lbnQubG9nZ2VyKCksIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1vdmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVv
RGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAgICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0ZmJhMjAyNzAzM2M4ZTZmMjI1N2NkNWFiNWMxOTE5ODYxZGNjOGM2Li4yYmU1
NzJlYWUxMGU0MDExMGJmNGUzMDJlYjkxODkwYzcyOTE3ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDE4LDYgKzEwMTgs
NyBAQAogCQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRkJDNEFGMTE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0gKi87IH07CiAJCTNGQkM0QUY0MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAxIC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNGQzQzNEYx
OTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMDBFQzQ2MjUxMzU4RUIwMDdC
ODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRw
dXRQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxMDc5MDhDMUZDM0YwMzMwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDc5MDhBMUZDM0U0RjIw
MDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MTBFNDQ2MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MTEwMEM4MDIzRjc0NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDBDN0Uy
M0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzQxOSw2ICs3NDIwLDcg
QEAKIAkJM0Y4MDIwMzQxRTlFMzgxRDAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYx
MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8q
IEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9PdXRwdXRQcm92aWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5
OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMDYyNkE3MjI4MEEyMkEwMDZEMUI1OSAvKiBKU0F1ZGlvTm9kZUN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1ZGlvTm9kZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDc5MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBD
bGllbnRPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpZW50T3Jp
Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTQ0OCw2ICsyMTQ1MCw3IEBA
CiAJCQkJNzI0RUU1NEYxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNl
cnZlci5oICovLAogCQkJCUJDRjQ4Q0U2MTM3MEQxMTQwMDRFODdENiAvKiBBZGp1c3RWaWV3U2l6
ZU9yTm90LmggKi8sCiAJCQkJQ0VEQTEyRDYxNTJDQTFDQjAwRDlFMDhEIC8qIEFsdGVybmF0aXZl
VGV4dENsaWVudC5oICovLAorCQkJCTQxMDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091
dHB1dFByb3ZpZGVyLmggKi8sCiAJCQkJQzlENDY3MDQxRTYwQzNFQjAwODE5NUZCIC8qIEF1dG9w
bGF5RXZlbnQuaCAqLywKIAkJCQk0NTgzMEQ0QjE2NzlCNEY4MDBBQ0Y4QzMgLyogQXV0b3Njcm9s
bENvbnRyb2xsZXIuY3BwICovLAogCQkJCTQ1ODMwRDRDMTY3OUI0RjgwMEFDRjhDMyAvKiBBdXRv
c2Nyb2xsQ29udHJvbGxlci5oICovLApAQCAtMzI1MjIsNiArMzI1MjUsNyBAQAogCQkJCUIyRkEz
RDlCMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGQjI3M0U4NTIwODZFNzREMDBBNTRFODcgLyogSlNTVkdHZW9tZXRyeUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyN0IyODI4MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1
ZGlvT3V0cHV0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI0RDkxMjlBMTNDQTk3MTQw
MEQyMTkxNSAvKiBKU1NWR0dseXBoUmVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJG
QTNEOUQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOTA5NmYyNjQ2
NzkxMzBhNzg0YTUxYTlhZGM4YmFkZWJlYzdjN2FjNC4uZmNiMmJjNzhhM2QzYjUzOGQ0MmNiNGEx
ZjhhN2M2MDZiYjBkZjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xODAzLDYgKzE4
MDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlv
bjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmMKICAgICAgICAgZnVuY3Rpb24oZWxlbWVu
dCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYgZnVuY3Rpb24pCit7CisgICAgbV9hdWRpb1Byb2R1
Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c3RvcEFsbE1lZGlh
UGxheWJhY2soKQogewogICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIg
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygpKQpA
QCAtNzk1NSwxMyArNzk2MCwyMyBAQCB2b2lkIERvY3VtZW50OjptZWRpYVN0cmVhbUNhcHR1cmVT
dGF0ZUNoYW5nZWQoKQogICAgIH0pOwogfQogCi12b2lkIERvY3VtZW50OjpzZXREZXZpY2VJREhh
c2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKKyNlbmRpZgorCitTdHJpbmcgRG9jdW1lbnQ6OmRl
ZmF1bHRBdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9pZEhhc2hT
YWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7Ci0gICAgbV9pZEhhc2hTYWx0
ID0gc2FsdDsKKyAgICByZXR1cm4gaXNUb3BEb2N1bWVudCgpID8gbV9kZWZhdWx0QXVkaW9PdXRw
dXREZXZpY2VJZCA6IHRvcERvY3VtZW50KCkuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsK
IH0KIAotI2VuZGlmCit2b2lkIERvY3VtZW50OjpzZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJ
ZChTdHJpbmcmJiBkZXZpY2VJZCkKK3sKKyAgICBBU1NFUlQoaXNUb3BEb2N1bWVudCgpKTsKKyAg
ICBpZiAobV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA9PSBkZXZpY2VJZCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBXVEZNb3ZlKGRldmlj
ZUlkKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAgICBwYWdl
LT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9CiAKIGNvbnN0IEF0b21TdHJp
bmcmIERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
NWFiYzI0ZWJiOTgxZTU2NGYwN2FkZWI4ZTVmYzExNTgxMzFjNTM1NS4uMmQwZTZlYTdlZDE0YjFj
OWM4NWE0NzYwZjdiZjk5ZWI2NDVlODA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0MjUs
MTIgKzE0MjUsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9p
ZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIHsgbV9oYXNIYWRDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRy
YWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazsgfQot
ICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcg
ZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1faWRIYXNoU2FsdDsgfQogICAgIHZv
aWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogICAgIHZvaWQgbWVkaWFTdHJlYW1DYXB0dXJlU3RhdGVD
aGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJ
ZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoU3RyaW5n
JiYpOworCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBmb3IgdGhpcyBmdW5jdGlvbmFs
aXR5LgogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikKICAgICAvLyBUaGVz
ZSBmdW5jdGlvbnMgcHJvdmlkZSBhIHR3by1sZXZlbCBzZXR0aW5nOgpAQCAtMTUxMCw2ICsxNTEx
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lkIGZvckVhY2hNZWRpYUVs
ZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVtZW50Jik+Jik7CiAjZW5kaWYK
KyAgICB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQ
cm9kdWNlciYpPiYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBo
YW5kbGluZ1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nVG91Y2hFdmVudDsg
fQpAQCAtMjA3Niw3ICsyMDc4LDYgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9tZWRpYVN0cmVhbVN0YXRlQ2hh
bmdlRWxlbWVudHM7Ci0gICAgU3RyaW5nIG1faWRIYXNoU2FsdDsKICAgICBib29sIG1faGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgeyBmYWxzZSB9OwogI2VuZGlmCiAKQEAgLTIxNDEsNiAr
MjE0Miw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAg
ICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9uOworCisgICAgU3RyaW5nIG1f
ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIy
MS4uNzQ5ZTMxMGMxYjRjYzEwNjU0NTRmM2E5Y2M0M2YyN2M5OTNlZjNiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVk
ZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAj
aW5jbHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lZGlhRXJyb3IuaCIKICNpbmNs
dWRlICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2ICs3OSw3IEBACiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5j
bHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2
aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50
ZXJ2YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0Myw2ICsyODQ1LDU1IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAg
IHNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWU6Onpl
cm9UaW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1N0cmluZyBI
VE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRB
dWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlkLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5kb21X
aW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5kb3cgPyBOYXZpZ2F0b3JNZWRp
YURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRvcigpKSA6IG51bGxwdHI7Cisg
ICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KGRldmljZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIW1fYXVkaW9PdXRwdXREZXZpY2VJ
ZC5pc0VtcHR5KCkgJiYgbV9wbGF5ZXIpIHsKKyAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZCA9IHsgfTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5n
ZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gYXVkaW9PdXRwdXREZXZpY2VJZCA9IG1lZGlhRGV2aWNl
cy0+YXVkaW9PdXRwdXREZXZpY2VJZEZyb21EZXZpY2VJZChkZXZpY2VJZCk7CisgICAgaWYgKGF1
ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQgIT0gbV9hdWRpb091dHB1dERldmljZUlkKSB7Cisg
ICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUoYXVkaW9PdXRwdXREZXZpY2VJ
ZCk7CisgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRpb091
dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICB9CisgICAgcHJvbWlzZS5yZXNvbHZlKCk7Cit9Cisj
ZW5kaWYKKworU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBj
b25zdAoreworICAgIHJldHVybiAhbV9hdWRpb091dHB1dERldmljZUlkLmlzRW1wdHkoKSA/IG1f
YXVkaW9PdXRwdXREZXZpY2VJZCA6IGRvY3VtZW50KCkuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
SWQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrKGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHRpbWUpOwpAQCAtNzY5OCw2
ICs3NzQ5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkZWZhdWx0QXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVyIHx8ICFtX2F1ZGlvT3V0cHV0
RGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6ZWZm
ZWN0aXZlVm9sdW1lKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGFiMmIwMDExYjU5
NDM5ZWE1MWU4YWEzZTIwOGZlMDEyYzYzZDEyZWQuLjdkODMyNjcwZjZlNGQ0MDRkZmY3ZGIwNTJm
YWQxMTJlYThjZGEzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC0yNjgsNiArMjY4LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRl
KCkgY29uc3Q7CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0OwogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2UoKSBjb25z
dDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyNlbmRpZgorCiAgICAgdXNpbmcgSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpCdWZmZXJpbmdQb2xpY3k7CiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQ
b2xpY3koQnVmZmVyaW5nUG9saWN5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBCdWZmZXJpbmdQb2xp
Y3kgYnVmZmVyaW5nUG9saWN5KCkgY29uc3Q7CkBAIC02MDQsNiArNjA5LDggQEAgcHJvdGVjdGVk
OgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IGZpbmFsOwor
ICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5n
IGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXVk
aW9PdXRwdXREZXZpY2VJZDsgfQogCiAgICAgYm9vbCBtZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdl
U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VT
Y2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxl
RmFjdG9yKGJvb2wpOwpAQCAtODgyLDYgKzg4OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9j
ZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRl
RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VD
aGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFD
KQogICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKEF1ZGlvU2Vzc2lvbiopIGZp
bmFsOwpAQCAtMTE5Nyw2ICsxMjA1LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQbGF5aW5n
VG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNlY29uZFNj
cmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0aW9uc0Fm
dGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1
dERldmljZUlkOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxN
ZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCmluZGV4IGI0MmQwZWEzNzEwNmI0NzJiYmM5Y2VkZjYw
NzgzZmUwYTM5ZWZmYzkuLmUyYjQzNjIzMGVhNTE2NmQwY2Q3MjIwZDUzY2QxNmU2NWJjOTNkMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtODYsNiArODYs
MTEgQEAgdHlwZWRlZiAoCiAgICAgdW5kZWZpbmVkIHBhdXNlKCk7CiAgICAgdW5kZWZpbmVkIGZh
c3RTZWVrKHVucmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAKKyAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPVBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJT
ZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXREZXZpY2VdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgc2lua0lkOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVu
YWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25dIFByb21pc2U8dW5kZWZp
bmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2aWNlSWQpOworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJT
ZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9c2V0QXVkaW9PdXRwdXREZXZpY2VdIFByb21pc2U8dW5k
ZWZpbmVkPiBzZXRTaW5rSWQoRE9NU3RyaW5nIGRldmljZUlkKTsKKwogICAgIC8vIGNvbnRyb2xz
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIGJvb2xlYW4gY29udHJvbHM7
CiAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJlZDUzZWE2OWY3MjJjZDQ1YjdhZDgu
LmVjYmEyZjUyMDliY2E0YmM3OTZhZmNkNmNhZTc4ZTBkZDE4YTcxNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRW1w
dHlDbGllbnRzLmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2lu
Y2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVu
dC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29sb3JD
aG9vc2VyLmgiCkBAIC02MTMsNyArNjE0LDggQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZp
Z3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAg
ICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJv
dmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVu
dD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50PigpLAot
ICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCisgICAg
ICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAgIH07CiAKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAppbmRleCA4YjFmMDFjNTFlZTc2OGVmZDYyYTY3
ZDA4NjY3ZWFlODAxZDY2ODkzLi5kMWQyMWVmZGM3Y2NkNDVlMDE0MzI5MjBmOGM4NzNmMmQ1NzA0
NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApAQCAtNzksNiArNzksNyBAQCBw
dWJsaWM6CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBNdXRlZFN0YXRlRmxhZ3M7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoKSB7IH07CiAKIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIH5NZWRpYVByb2R1Y2VyKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggYTBhNzdkMjg4MzY0ODIxYzUxMGIyZDUxMmJhNzBlNzI5YzIxYjZkNS4uMDdiYTk4YTg1NDMy
YzRkMTc3Mjk1Y2IzOTcyZDQzN2E5ZmFlMjgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNCw2
ICsyNCw3IEBACiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAi
QW5pbWF0aW9uRnJhbWVSYXRlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2Uu
aCIKKyNpbmNsdWRlICJBdWRpb091dHB1dFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1
ZGUgIkJhY2tGb3J3YXJkQ2xpZW50LmgiCkBAIC0yNTUsNiArMjU2LDcgQEAgUGFnZTo6UGFnZShQ
YWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV9zcGVlY2hTeW50
aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGll
bnQpKQogI2VuZGlmCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKKyAgICAsIG1fYXVkaW9PdXRw
dXRQcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5hdWRpb091dHB1dFByb3ZpZGVy
KSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24u
bGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Ny
b2xsRWxhc3RpY2l0eUFsbG93ZWQpCiAgICAgLCBtX2hvcml6b250YWxTY3JvbGxFbGFzdGljaXR5
KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAtMjA2Niw2ICsyMDY4LDExIEBAIHZvaWQgUGFn
ZTo6cmVzdW1lQWxsTWVkaWFCdWZmZXJpbmcoKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6ZGVm
YXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgbV9hdWRpb091dHB1dFByb3Zp
ZGVyLT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCp0aGlzKTsKK30KKwogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OKQogCiB2b2lkIFBhZ2U6OmhhbmRsZU1lZGlhRXZlbnQoTWVkaWFF
dmVudFR5cGUgZXZlbnRUeXBlKQpAQCAtMzEyNiw2ICszMTMzLDEzIEBAIHZvaWQgUGFnZTo6Zm9y
RWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4m
IGZ1bmN0b3IpCiAjZW5kaWYKIH0KIAordm9pZCBQYWdlOjpmb3JFYWNoQXVkaW9Qcm9kdWNlcihj
b25zdCBGdW5jdGlvbjx2b2lkKE1lZGlhUHJvZHVjZXImKT4mIGZ1bmN0b3IpCit7CisgICAgZm9y
RWFjaERvY3VtZW50KFsmXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50
LmZvckVhY2hBdWRpb1Byb2R1Y2VyKGZ1bmN0b3IpOworICAgIH0pOworfQorCiB2b2lkIFBhZ2U6
OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiB7CiAjaWYgRU5BQkxFKFZJREVPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCAwYTFkZDZiNGIzZjU1NWQwOTVhMGRjZWUzM2FhMTVlMDA4M2FjNzFlLi45
ODNiNjVlM2I4NjZmOWI1MTdlZjU0MjFmNDMzNWRjYjM0ZGQ5MDdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtODgsNiArODgsNyBAQCBjbGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXI7CiBjbGFzcyBBY3Rp
dml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI7CiBjbGFzcyBBbHRlcm5hdGl2ZVRleHRDbGllbnQ7CiBj
bGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKK2NsYXNzIEF1ZGlvT3V0cHV0UHJvdmlkZXI7
CiBjbGFzcyBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I7CiBjbGFzcyBCYWNrRm9yd2FyZENvbnRy
b2xsZXI7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKQEAgLTY1MCw2ICs2NTEsOCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN1bWVBbGxNZWRpYUJ1ZmZlcmluZygp
OwogICAgIGJvb2wgbWVkaWFCdWZmZXJpbmdJc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFCdWZmZXJpbmdJc1N1c3BlbmRlZDsgfQogCisgICAgdm9pZCBkZWZhdWx0QXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKCk7CisKICAgICB2b2lkIHNldEhhc1Jlc291cmNlTG9hZENsaWVudChi
b29sIGhhcykgeyBtX2hhc1Jlc291cmNlTG9hZENsaWVudCA9IGhhczsgfQogICAgIGJvb2wgaGFz
UmVzb3VyY2VMb2FkQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSZXNvdXJjZUxvYWRDbGll
bnQ7IH0KIApAQCAtNzYyLDcgKzc2NSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBmb3JFYWNoRG9jdW1lbnQoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKERv
Y3VtZW50Jik+JikgY29uc3Q7Ci0gICAgdm9pZCBmb3JFYWNoTWVkaWFFbGVtZW50KGNvbnN0IFdU
Rjo6RnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVtZW50Jik+Jik7CisgICAgdm9pZCBmb3JFYWNo
TWVkaWFFbGVtZW50KGNvbnN0IEZ1bmN0aW9uPHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yRWFjaEF1ZGlvUHJvZHVjZXIoY29uc3QgRnVuY3Rp
b248dm9pZChNZWRpYVByb2R1Y2VyJik+Jik7CiAKICAgICBib29sIHNob3VsZERpc2FibGVDb3Jz
Rm9yUmVxdWVzdFRvKGNvbnN0IFVSTCYpIGNvbnN0OwogCkBAIC04NTcsNiArODYxLDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9t
ZWRpYVJlY29yZGVyUHJvdmlkZXI7CisgICAgVW5pcXVlUmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+
IG1fYXVkaW9PdXRwdXRQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+
IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxlciBtX3J0Y0NvbnRyb2xsZXI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYWZjNTdj
M2I0MGQwZDc2Y2M1NGJkNTUwMDcxZWM4YzllZThmMTcxMy4uMjk2NGMxZjk2OWRmZTI5ZjhkZjRl
OGNiYjlmMzA0MmVjMDI5MDhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENs
aWVudC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCisjaW5jbHVkZSAi
QXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2xpZW50LmgiCiAj
aW5jbHVkZSAiQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIK
QEAgLTU4LDcgKzU5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJh
dGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVS
ZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNv
Y2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJv
dmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwg
UmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFy
PiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVz
c1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGll
bnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFS
ZWNvcmRlclByb3ZpZGVyKQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JD
bGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBi
YWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQ
cm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8
RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlciwgVW5pcXVlUmVm
PEF1ZGlvT3V0cHV0UHJvdmlkZXI+JiYgYXVkaW9PdXRwdXRQcm92aWRlcikKICAgICA6IHNlc3Np
b25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQp
KQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02OSw2
ICs3MCw3IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBsb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUoV1RGTW92ZShsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVT
dG9yYWdlUHJvdmlkZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCiAgICAgLCBtZWRp
YVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQorICAgICwg
YXVkaW9PdXRwdXRQcm92aWRlcihXVEZNb3ZlKGF1ZGlvT3V0cHV0UHJvdmlkZXIpKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZjI4NDg4MjZhNmIw
MGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4uYTQyZGU2YzQwZDU2ZmI5Yjg1ZjdjYzhmNmMz
MmQyOGI0N2I1ZDViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApA
QCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBbHRlcm5hdGl2ZVRl
eHRDbGllbnQ7CiBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKIGNsYXNzIEF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvckNsaWVudDsKK2NsYXNzIEF1ZGlvT3V0cHV0UHJvdmlkZXI7CiBjbGFz
cyBCYWNrRm9yd2FyZENsaWVudDsKIGNsYXNzIENhY2hlU3RvcmFnZVByb3ZpZGVyOwogY2xhc3Mg
Q29va2llSmFyOwpAQCAtNzMsNyArNzQsNyBAQCBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7
CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFn
ZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVm
PEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2Vi
UlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3
YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0
aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0
UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3Rv
cmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+
JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxv
YWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29u
ZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYp
OwogCkBAIC0xMjksNiArMTMwLDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgVmVjdG9yPFVzZXJD
b250ZW50VVJMUGF0dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAgIFVuaXF1ZVJlZjxN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKKyAgICBVbmlxdWVS
ZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4gYXVkaW9PdXRwdXRQcm92aWRlcjsKICAgICBib29sIGxv
YWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yayB7IHRy
dWUgfTsKICAgICBib29sIHVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsg
dHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IGZiZjA4YzRmOTMyODMwZjQx
ODc2NGNkMjgyMmMwNDNlZTVkY2RhNzcuLmYzMTJjZDgyM2YwNmUwN2UyNTg3YjRhMjA3Y2IwMGFl
NWIzOWVmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTgyNiw2ICs4MjYsOSBA
QCBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OgogZXhwb3NlU3BlYWtlcnNFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQogCitwZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIGlu
aXRpYWw6IGZhbHNlCisKIG1lZGlhRGV2aWNlSWRlbnRpZmllclN0b3JhZ2VEaXJlY3Rvcnk6CiAg
IHR5cGU6IFN0cmluZwogICBjb25kaXRpb25hbDogRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA2
M2NmM2NjZWU4MTEyZTE1NWUxOTM4MDVhNjQ0OGNlOGRiYTFlM2EyLi45MDJmNTg5OTdmNzI2Y2Zi
MTdhNjI2YmQ5ZTk0NjVlNTlkZGVjYjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNjA0LDYgKzE2MDQsMTEgQEAgdm9pZCBN
ZWRpYVBsYXllcjo6c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2Rl
IG1vZGUpCiAgICAgbV9wcml2YXRlLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUp
OwogfQogCit2b2lkIE1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQorewor
ICAgIG1fcHJpdmF0ZS0+YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9CisKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKIGNvbnN0IExvZ2dlciYgTWVkaWFQbGF5ZXI6Om1lZGlhUGxheWVy
TG9nZ2VyKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCmluZGV4IGVhMjU3ZjEyYWNmMDllMGJiZGZiMzI5YjExNTNjY2U1MWFjYWY0ZjMuLmQ0
NjczMWEyYmFkZjg4NTcwMTgwMTk4ODE1NjIzMmMzNGIxZmRmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjczLDYgKzI3Myw5IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW5EYXRhIGRvY3VtZW50U2VjdXJp
dHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIGF1
ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiB7IH07IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiB7IH07IH0K
KwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogbWVk
aWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwg
Y29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpID0gMDsKQEAgLTYzMSw2ICs2MzQsMTAg
QEAgcHVibGljOgogICAgIER5bmFtaWNSYW5nZU1vZGUgcHJlZmVycmVkRHluYW1pY1JhbmdlTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsgfQogICAgIHZv
aWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsKIAorICAg
IFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3Q7CisgICAgU3RyaW5nIGF1ZGlvT3V0
cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0OworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VD
aGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQm
KTsKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYsIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CkBAIC03MDUsNiArNzEyLDE2IEBAIHB1YmxpYzoKIH07
CiAKIAoraW5saW5lIFN0cmluZyBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmF1ZGlvT3V0cHV0RGV2aWNl
SWQoKSA6IFN0cmluZyB7IH07Cit9CisKK2lubGluZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlv
T3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ID8g
bV9jbGllbnQtPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIDogU3RyaW5nIHsgfTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAppbmRleCA2NzBjMGE0OTRjMTFhMjczNzYwNDI4NDE4M2MwMDc4OGQ5NzU5NzhkLi44MTI1
MzMwMjc2ZGQ1NDRlMWZjYWJkYTE3ZDYzNmNiY2Y4N2JhZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMjg5
LDYgKzI4OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSW50cmlu
c2ljU2l6ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKSB7IH0KKworICAgIHZpcnR1YWwg
dm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaAppbmRleCBhZGUwNjMyYzlmNmNkYzBjMTRkNWRhODg1Y2E3Yjc0Mjc4YmJkM2UzLi44
NWNlODFkMTAzYjg1ZDFkNDI2YjdhMzQ4ZDhmMDNhMGJlMzY2NDUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCkBAIC0zMTgsNiArMzE4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNob3VsZE9i
c2VydmVUaW1lQ29udHJvbFN0YXR1cyhib29sKTsKIAogICAgIHZvaWQgc2V0UHJlZmVycmVkRHlu
YW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1f
YXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQppbmRleCBhYzBmOGZmYTAyODgzZTRhYWZmZjMyYmYzODBmODgyMzAwMmI1NjE1
Li5mZGNmNWZlMTY3NGQzNDFhMDZjZDAyY2Y0MTVlM2UyMzg1Mzg0MjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTk1Myw2ICs5NTMsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAgICAgaWYgKG1fYXZQbGF5ZXJJdGVt
KQogICAgICAgICBzZXRBVlBsYXllckl0ZW0obV9hdlBsYXllckl0ZW0uZ2V0KCkpOwogCisgICAg
YXV0byBhdWRpb091dHB1dERldmljZUlkID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRP
dmVycmlkZSgpOworICAgIGlmICghYXVkaW9PdXRwdXREZXZpY2VJZC5pc051bGwoKSkKKyAgICAg
ICAgbV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gYXVkaW9PdXRw
dXREZXZpY2VJZDsKKwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKIH0KIApAQCAtMzI5
Myw2ICszMjk3LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuCiAjZW5kaWYKIH0KIAordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphdWRpb091dHB1dERldmljZUNo
YW5nZWQoKQoreworICAgIGlmICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBw
bGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworfQorCiBOU0FycmF5KiBhc3NldE1ldGFk
YXRhS2V5TmFtZXMoKQogewogICAgIHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tOU0FycmF5IGFs
bG9jXSBpbml0V2l0aE9iamVjdHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDA5YmY1
NTc0ODQzMzFkNTgyMjBkMjBmNWYyMDMzMjk2ZTY5Y2VjNDIuLjhjZTNiN2I0MDVkZmRmOTcwMmYy
Zjk1MThhZDY5ZGQ4NWJkZjc3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yNTQs
NiArMjU0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CisgICAg
dm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgZW5zdXJl
TGF5ZXIoKTsKICAgICB2b2lkIGRlc3Ryb3lMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCmluZGV4IDhiOTQxNTA3YzAzODgxYzAyMTZiNGU3OTJlMzlkYjI2ZTM1N2ZkYjkuLjQ1ZDk4
M2E1ZWRhZWU5NDQzMGFmMzUwZTczYzhkMmM5ZmQ0YTc2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KQEAgLTExNjYsNiArMTE2NiwxMCBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VB
UkRTX0VORAogICAgIFthdWRpb1JlbmRlcmVyIHNldFZvbHVtZTptX3BsYXllci0+dm9sdW1lKCld
OwogICAgIFthdWRpb1JlbmRlcmVyIHNldEF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtOihtX3BsYXll
ci0+cHJlc2VydmVzUGl0Y2goKSA/IEFWQXVkaW9UaW1lUGl0Y2hBbGdvcml0aG1TcGVjdHJhbCA6
IEFWQXVkaW9UaW1lUGl0Y2hBbGdvcml0aG1WYXJpc3BlZWQpXTsKIAorICAgIGF1dG8gZGV2aWNl
SWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFk
ZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgYXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmlj
ZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisKICAgICBAdHJ5IHsKICAgICAgICAgW21fc3luY2hyb25p
emVyIGFkZFJlbmRlcmVyOmF1ZGlvUmVuZGVyZXJdOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9u
ICpleGNlcHRpb24pIHsKQEAgLTEyNzYsNiArMTI4MCwxNSBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0
aW9uPAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1f
cGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5h
dWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgICAgICAoKF9fYnJpZGdlIEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworfQorCiBXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAogewogICAgIHJldHVybiBMb2dNZWRpYVNv
dXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggOGRlODk1ZDdiMjQxMThmZGIyOGZh
YzM5Y2IxYmZiZTk4YjhmNzYxMy4uNjMxZjMwMzFlYTQzODBlYTM4ZDFkNDVhZjZiMzQyOTAwMDI1
MGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTE1OSw2ICsxNTksNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgZW5kZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VuZGVkOyB9
CiAKICAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9s
aWN5KSBvdmVycmlkZTsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFs
OwogCiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKICAg
ICB2b2lkIHVwZGF0ZVJlYWR5U3RhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRl
eCAyZGI1MGJiODk1NzRlZGMzN2FkOWM3Y2M5YmFiZmNjMTkzNzAzMDM2Li4wZmFiOGIxZGU0MGI2
MzNjYmI3NjAxZmRmNjg3NDY5ODI2NDNlODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CkBAIC04NjcsNyArODY3LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnVwZGF0ZVRyYWNrcygpCiB7CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0
b3IgY3VycmVudFRyYWNrcyA9IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKTsKIAotICAg
IGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0gW3RoaXNdKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0mIHRyYWNrLCBpbnQgaW5kZXgsIFRyYWNrU3RhdGUgc3RhdGUpCisgICAgYXV0byBkZXZp
Y2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKTsKKyAgICBhdXRv
IHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzLCAmZGV2aWNlSWRdKEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0mIHRyYWNrLCBpbnQgaW5kZXgsIFRyYWNrU3RhdGUgc3RhdGUpCiAgICAgewog
ICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgICAgIGNhc2UgVHJhY2tTdGF0ZTo6UmVtb3Zl
OgpAQCAtODg0LDYgKzg4NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp1cGRhdGVUcmFja3MoKQogICAgICAgICAgICAgdHJhY2suc2V0Vm9sdW1lKG1fdm9s
dW1lKTsKICAgICAgICAgICAgIHRyYWNrLnNldE11dGVkKG1fbXV0ZWQpOwogICAgICAgICAgICAg
dHJhY2suc2V0RW5hYmxlZCh0cmFjay5zdHJlYW1UcmFjaygpLmVuYWJsZWQoKSAmJiAhdHJhY2su
c3RyZWFtVHJhY2soKS5tdXRlZCgpKTsKKyAgICAgICAgICAgIGlmICghZGV2aWNlSWQuaXNOdWxs
KCkpCisgICAgICAgICAgICAgICAgdHJhY2suc2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJ
ZCk7CisKICAgICAgICAgICAgIGlmIChwbGF5aW5nKCkpCiAgICAgICAgICAgICAgICAgdHJhY2su
cGxheSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDE3LDYgKzEwMjEsMTUgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldEJ1ZmZlcmluZ1BvbGljeShN
ZWRpYVBsYXllcjo6QnVmZmUKICAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZs
dXNoQW5kUmVtb3ZlSW1hZ2UoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX3Bs
YXllcikKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVk
aW9PdXRwdXREZXZpY2VJZCgpOworICAgIGZvciAoYXV0byYgYXVkaW9UcmFjayA6IG1fYXVkaW9U
cmFja01hcC52YWx1ZXMoKSkKKyAgICAgICAgYXVkaW9UcmFjay0+c2V0QXVkaW9PdXRwdXREZXZp
Y2VJZChkZXZpY2VJZCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9u
KQogewogICAgIEFTU0VSVChmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuaAppbmRleCA2NDg5ZjlkYTdjNTYyNmMyMDI5Nzg1M2YxYTAxZTllYWZiZTU2MDBiLi40
OGU1ZjMyNzFhYjQ4YzdhMjc5NjA1YTM1MTRhYjY5ZDJhOGRhNWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgIGZsb2F0IHZvbHVtZSgpIGNvbnN0Owog
CisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7
CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2b2lkIHNldExvZ2dlcihjb25zdCBM
b2dnZXImLCBjb25zdCB2b2lkKik7CiAjZW5kaWYKQEAgLTEwOSw2ICsxMTEsMTAgQEAgaW5saW5l
IGNvbnN0IGNoYXIqIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpsb2dDbGFzc05hbWUo
KSBjb25zdAogfQogI2VuZGlmCiAKK2lubGluZSB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjpzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpCit7Cit9CisKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uY3BwCmluZGV4IGExODVjZDQ3MDM2M2U2MDVmOTBkNDk5ZGUwMzgwOTc5NmFj
OWM1YWMuLjZiZTBhMThmMzA1ODYzY2FlZmJlODllYjE2ZTY4YjhkZTcyNDc0ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCkBAIC05Nyw2ICs5NywxMSBAQCB2b2lk
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAg
ICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7Cisg
ICAgbV9yZW5kZXJlci0+c2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJZCk7Cit9CisKIGZs
b2F0IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnZvbHVtZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fcmVuZGVyZXItPnZvbHVtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oCmluZGV4IGE0ODVjMThjYTg3YTFjNmYzMmE2MTllZThjZGM1YTNjOGVhZDc0ZTMuLjkz
YTQwNjUzYzE3ZGM1N2Y4ZDhjZDI4MDI5NzY5OTllOTQ4Y2IyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKCk7CiAKICAgICB2b2lkIHNldFRyYWNrSW5kZXgoaW50
IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZp
Y2VJZChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzdHJl
YW1UcmFjaygpIHsgcmV0dXJuIG1fc3RyZWFtVHJhY2suZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCmluZGV4IDc2MjMy
Yjc5ZDlkMDdlYjFiODljNDJlYjUzNDRkZGMzMDU0MmFlMDguLjNkMzk0MDE2ZjFiMDI1NzliYjRk
MmNlZDQ3YmI1MjExNDQ2NjgwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKQEAgLTY3LDExICs2NywxOCBAQCB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAg
ICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0Vm9sdW1lKHZvbHVtZSk7CiB9CiAKK3ZvaWQgQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25z
dCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY3JlYXRlIGEg
dW5pdCBmb3Igb3Vyc2VsdmVzIGhlcmUgb3IgdXNlIHRoZSBkZWZhdWx0IHVuaXQgaWYgZGV2aWNl
SWQgaXMgbWF0Y2hpbmcuCisgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojpz
aW5nbGV0b24oKS5zZXRBdWRpb091dHB1dERldmljZUlkKGRldmljZUlkKTsKKyAgICBtX3Nob3Vs
ZFJlc2V0ID0gdHJ1ZTsKK30KKwogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNv
Y29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBl
ID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwotICAgIGlm
ICghbV9kYXRhU291cmNlIHx8ICFtX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSB8fCAq
bV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgIT0gZGVzY3JpcHRpb24pIHsKKyAgICBp
ZiAoIW1fZGF0YVNvdXJjZSB8fCBtX3Nob3VsZFJlc2V0IHx8ICFtX2RhdGFTb3VyY2UtPmlucHV0
RGVzY3JpcHRpb24oKSB8fCAqbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgIT0gZGVz
Y3JpcHRpb24pIHsKICAgICAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291
cmNlOjpjcmVhdGUoZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMiwgKnRoaXMpOwogCiAgICAg
ICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdCh0b0NBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbihkZXNjcmlwdGlvbikpKSB7CkBAIC05NSw2ICsxMDIsNyBAQCB2b2lkIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2Ft
cGxlVGltZQogICAgICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojpz
aW5nbGV0b24oKS5hZGRTb3VyY2UoV1RGTW92ZShuZXdTb3VyY2UpKTsKICAgICAgICAgfSk7CiAg
ICAgICAgIG1fZGF0YVNvdXJjZSA9IFdURk1vdmUoZGF0YVNvdXJjZSk7CisgICAgICAgIG1fc2hv
dWxkUmVzZXQgPSBmYWxzZTsKICAgICB9CiAKICAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVz
KHNhbXBsZVRpbWUsIGF1ZGlvRGF0YSwgc2FtcGxlQ291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKaW5kZXggNTFhYzQzMzdjNGUwMzU4
ZmRkY2I0ZWE4NTQ3ZjJhYmIwYmMwZmE4Ny4uNTAyNTU2MTY3NGQwNWVhMGU4ZGUwZGU4NWU0MmI1
ZWM0NDU2MTc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJDb2NvYS5oCkBAIC01Myw5ICs1MywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcCgp
IGZpbmFsOwogICAgIHZvaWQgY2xlYXIoKSBmaW5hbDsKICAgICB2b2lkIHNldFZvbHVtZShmbG9h
dCkgZmluYWw7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYp
IGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4g
bV9vdXRwdXREZXNjcmlwdGlvbjsKICAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBt
X2RhdGFTb3VyY2U7CisgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAK
aW5kZXggZGFjNzRhMTI1NWM1ZTU0YTUyMzQzNmZlNjlhOGU0NDRjMmU3MGIxNS4uZDI3NWVjZTdm
MjYxMGRiYjJlZGQ1NWIwODNjODQxNmYwYzUwZThjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKQEAgLTM2LDYgKzM2LDExIEBACiAj
aW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9BdWRpb1Rvb2xib3hTUEkuaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5oIgorI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisj
ZW5kaWYKKwogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC01MSw2ICs1NiwyMiBAQCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQ6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQoKQogICAgIHN0b3Ao
KTsKIH0KIAordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1ZGlv
T3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyAgICBhdXRvIGRldmlj
ZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9E
ZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKKyAgICBpZiAoIWRldmljZSB8fCBtX2RldmljZUlEID09
IGRldmljZS0+ZGV2aWNlSUQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBzaG91bGRS
ZXN0YXJ0ID0gbV9pc1N0YXJ0ZWQ7CisgICAgaWYgKG1faXNTdGFydGVkKQorICAgICAgICBzdG9w
KCk7CisKKyAgICBtX2RldmljZUlEID0gZGV2aWNlLT5kZXZpY2VJRCgpOworCisgICAgaWYgKHNo
b3VsZFJlc3RhcnQpCisgICAgICAgIHN0YXJ0KCk7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UoUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4m
JiBzb3VyY2UpCiB7CiAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UiKTsKQEAgLTE2MSw2ICsxODIsMTYgQEAgdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVk
KCkKICAgICB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9kZXZpY2VJ
RCkgeworICAgICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwg
a0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOworICAgICAgICBpZiAo
ZXJyb3IpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQg
dW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChpbnQpbV9kZXZpY2VJRCwgKGlu
dCllcnJvciwgKGNoYXIqKSZlcnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisjZW5kaWYKKwogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7
IGlucHV0UHJvYywgbnVsbHB0ciB9OwogICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRp
b1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAg
aWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmgKaW5kZXggNDQwNzZhNTZlYzk3NGY5YmI4NzM0MmJmYzc0ODMwYzg1OWM3NzJmNi4u
MWIyMjM3ZjhkMzhkYWViMWI5N2RhOWVmM2U2NDEzMzZjZjlmYzZlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyVW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaApAQCAtNTEsNiArNTEsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOwogCisgICAgdm9p
ZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBhZGRT
b3VyY2UoUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3Vy
Y2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJik7CiAKQEAgLTY4LDYgKzcwLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2hvdWxkVXBkYXRlUmVuZGVyU291cmNlcyB7IGZhbHNlIH07CiAgICAgTG9j
ayBtX3NvdXJjZXNMb2NrOwogICAgIGJvb2wgbV9pc1N0YXJ0ZWQgeyBmYWxzZSB9OworICAgIHVp
bnQzMl90IG1fZGV2aWNlSUQgeyAwIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBjMDI1ODFjYTk2MzM5OWQzZTIxYWMzNjllMDEz
ZGVkNGZjMjU2OGJmLi4zODYwNmFiZWZlYzc5NWU1ZDA4NmZhZmE5YzJhNDg5M2M3MTdmNjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTM4Niw2
ICszODYsOCBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlz
dEluZGV4LCBib29sIGZpcmVPbkNoYW5nZSkKICAgICBpZiAoJmRvY3VtZW50KCkgIT0gZG9jdW1l
bnQoKS5mcmFtZSgpLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBVc2VyR2Vz
dHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgJmRv
Y3VtZW50KCkpOworCiAgICAgc2VsZWN0RWxlbWVudCgpLm9wdGlvblNlbGVjdGVkQnlVc2VyKHNl
bGVjdEVsZW1lbnQoKS5saXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpLCBmaXJlT25DaGFuZ2Up
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCmluZGV4
IDFmYzU2ZDgyMWJiZDkzZmM4OTlmMjg1M2ExMTU5MWE1MjBlYzk4YTcuLmRlODUyNGQ0YWJiNDFh
MzEyZDIyZGU5OWYyODhmYjg0OGQ0ODVlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuY3BwCkBAIC0xMzYsNCArMTM2LDYgQEAgdm9pZCBSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0
aW1lLAogCiB9CiAKKyN1bmRlZiBNRVNTQUdFX0NIRUNLCisKICNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlci5jcHAKaW5kZXggNjAzNGMyZDVmOGQyNThiYWU0NWVhNTM1YTk1NjA0MWE3NjU3NDYxZi4u
MGFiNzg0NzMwOTVjNzEyYjA0MWVlNWYyNDlkMjg4ODQ5YTU4OTlhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3Bw
CkBAIC0xMzcsNCArMTM3LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3Jk
aW5nKCkKIAogfQogCisjdW5kZWYgTUVTU0FHRV9DSEVDSworCiAjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
SEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBmMzU2YWUyNzBhMTkyM2Jj
NzMyNDU4YzZhMWVlNTU5MWVmOTljNDdjLi5kMWNhNGI1NmFmY2JiNTVhMGJhNzc2YjNhMWNjMjAy
NTE1Y2E1N2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTE1NCw2ICsxNTQsMTQgQEAgRXhwb3NlU3BlYWtlcnNF
bmFibGVkOgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAgIGNvbmRpdGlvbjogRU5BQkxFKFdF
Ql9SVEMpCiAKK1BlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9v
bAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWxsb3cgcGVy
IG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2VyIGRldmljZSBzZWxl
Y3Rpb24iCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKyAgY29uZGl0aW9uOiBFTkFCTEUoV0VC
X1JUQykKKwogVlA5RGVjb2RlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVl
OiBkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggYzg4NGYwZWRlOGI5
ZGZhYjMzMmM4NDNkZTRiODViMTE2MTIwYjBiOS4uZjMzMWNmMGU4MGExMjI2YjNmYjA0ZmM0ZDQy
NWEyODU1YzIwYTJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01NTUsNiArNTU1LDcgQEAgV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlh
L0F1ZGlvT3V0cHV0UHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBjMjY2YzNi
YmUwZDYxNzljMzlhZWE2ZGEzNWMzN2Y3YTY0MmM4Yzk0Li5jZjQ1YWRhNjQ1M2U2YjE5YTUzMjEw
NGQwODBlYTRjMWUyNDQzN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CkBAIC02MDUsNyArNjA1LDcgQEAgc3RhdGljIGlubGluZSBib29sIGhhdmVNaWNyb3Bob25lRGV2
aWNlKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgZGUKICAgICB9KTsKIH0K
IAotVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxz
LCBjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQpCitWZWN0b3I8Q2FwdHVyZURldmljZT4g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERl
dmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMpCiB7CiAgICAgc3RhdGljIGNvbnN0IGlu
dCBkZWZhdWx0TWF4aW11bUNhbWVyYUNvdW50ID0gMTsKICAgICBzdGF0aWMgY29uc3QgaW50IGRl
ZmF1bHRNYXhpbXVtTWljcm9waG9uZUNvdW50ID0gMTsKQEAgLTYzMiwxNiArNjMyLDcgQEAgVmVj
dG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojpjb21wdXRlRmlsdGVyZWREZXYKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIGF1dG8gbGFiZWwgPSBlbXB0eVN0cmluZygpOwotICAgICAgICBhdXRvIGlk
ID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgYXV0byBncm91cElkID0gZW1wdHlTdHJpbmcoKTsK
LSAgICAgICAgaWYgKHJldmVhbElkc0FuZExhYmVscykgewotICAgICAgICAgICAgbGFiZWwgPSBk
ZXZpY2UubGFiZWwoKTsKLSAgICAgICAgICAgIGlkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KGRldmljZS5wZXJzaXN0ZW50SWQoKSwg
ZGV2aWNlSURIYXNoU2FsdCk7Ci0gICAgICAgICAgICBncm91cElkID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KGRldmljZS5ncm91cElk
KCksIGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICB9Ci0KLSAgICAgICAgZmlsdGVyZWREZXZp
Y2VzLmFwcGVuZChDYXB0dXJlRGV2aWNlKGlkLCBkZXZpY2UudHlwZSgpLCBsYWJlbCwgZ3JvdXBJ
ZCkpOworICAgICAgICBmaWx0ZXJlZERldmljZXMuYXBwZW5kKHJldmVhbElkc0FuZExhYmVscyA/
IGRldmljZSA6IENhcHR1cmVEZXZpY2UoeyB9LCBkZXZpY2UudHlwZSgpLCB7IH0sIHsgfSkpOwog
ICAgIH0KIAogICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0gIXJldmVhbElkc0FuZExhYmVs
czsKQEAgLTY5OSw3ICs2OTAsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShGcmFtZQogICAgICAgICAg
ICAgYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMgPSBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzIHx8
IHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4uZ2V0KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpOwogCiAgICAgICAgICAg
ICBjYWxsQ29tcGxldGlvbkhhbmRsZXIucmVsZWFzZSgpOwotICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChyZXZlYWxJZHNBbmRMYWJlbHMsIGRl
dmljZUlESGFzaFNhbHQpLCBkZXZpY2VJREhhc2hTYWx0KTsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzKSwg
ZGV2aWNlSURIYXNoU2FsdCk7CiAgICAgICAgIH0pOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oCmluZGV4IGRmOWZkZDVjMTUzZGNjZjdmNzY5YjFhNDhiN2IxYzZhNmYx
ZGMxMzcuLjk1OGExNmQwNWVjMjQxMDcwYzY3N2M0MWIxMWIyNDk5MTNkZTdhNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKTsKIAotICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21wdXRlRmlsdGVy
ZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb25zdCBTdHJpbmcmIGRldmlj
ZUlESGFzaFNhbHQpOworICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21wdXRl
RmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzKTsKIAogICAgIHZvaWQg
cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCk7CiAgICAgdm9pZCBwcm9jZXNzVXNl
ck1lZGlhUGVybWlzc2lvbkludmFsaWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggM2YyZWNlY2U5Y2I4Y2Q0ZDk3OGY5ZjA2MGQ3ODA2M2M4OWJkYmViOS4uZDcyMzAx
NDU5YmFiY2NiZGZlZWNhOTYzMGViYzJiNzdhMDE3YWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzczLDYgKzMzNzMsOCBAQAog
CQkzRjkxNUMwRTFGNTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTNGOTE1QzBGMUY1NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaDsg
cGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCMDhFNDIxRjYwQjI0MDAwNUU1MzEyIC8q
IGlPUy54Y2Fzc2V0cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGZvbGRlci5hc3NldGNhdGFsb2c7IHBhdGggPSBpT1MueGNhc3NldHM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDBFQzQzMjUxMzU3OUYwMDdCODVEOSAvKiBBdWRpb091
dHB1dFByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
ZGlvT3V0cHV0UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAw
RUM0NDI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMDI0RkMwMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEwMjRGQzEyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMDNGQkExMjA2MUJEQjcwMEMyRUFGOCAvKiBOZXR3b3JrTG9hZENoZWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTIxLDYgKzU1MjMsOCBAQAogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICovLAogCQkJCUNE
QTk1OTM5MjQxMkIxNzUwMDkxMEVFRiAvKiBpb3MgKi8sCisJCQkJNDEwMEVDNDMyNTEzNTc5RjAw
N0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuY3BwICovLAorCQkJCTQxMDBFQzQ0MjUxMzU3
OUYwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggKi8sCiAJCQkJMDcxQkM1NzkyM0M5
M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFC
QzU3NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJ
CQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggZmYwZGI0ZWQxNDhjMGY1MjFjNjdhN2M0OWExZTgzMzY3NGU5MGI0NC4uOGQ4ODQyNGIzMWUy
NzJlYWZkMGRhMTQxMjI5NjYxMzE5NGE4NzA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFQ
SUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJR2VvbWV0cnkuaCIKKyNpbmNsdWRlICJBdWRpb091dHB1
dFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRyYWdD
b250cm9sbGVyQWN0aW9uLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKQEAgLTQ5OSw3ICs1
MDAsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmNvb2tpZUphcigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudD4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVy
Q2xpZW50PihtX21haW5GcmFtZS5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPE1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4oKQorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVy
PigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2Vi
Q2hyb21lQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oCmluZGV4IDFl
OTkzNzE0OWFmZjJiMWIwNGQ3YzVlY2NiMmM2ZDk4YmQ3M2NkYjEuLmEzZTY4NjI2YmI5Yjc2OWY4
NjA5Njk1YjA5N2JlMDc1N2MyYTNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NpbXBsZVJhbmdlLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIEREQWN0aW9uQ29udGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA5ODRmYmJmNGM3ODM0NGQ1ZjgzN2I5YWE1
YzlhZTc4YTM1ZmQxZGJmLi41ZjljMmFhZDA5MTk2MmUzNTk2ZWY4OTNiMzU5YzFkMWQ2ODRhZTM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw5ICszMywxMSBAQAogI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCmluZGV4IDM3NTQwOGMzOTAyNDUxMWQyZmJhNTM2N2VkNThkMTc1N2RhYTE1ODYuLjFjODkw
YmViMWIwMzEzZDRlMjMwMjk1MjlmNTFkMTExNzBlOWI1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aApAQCAtMzAsNiArMzAsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGE0MjVjY2YxYzVjOWU3Nzk5NzQ0
YzViZTUzOTM3NGRmZjgyN2I2OWUuLjU2YzFhMjEzZDg2NDRlNDA4YzFmMThkZWFhMjc0ZmY5NjA5
NWI5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgog
I2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXVk
aW9PdXRwdXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9DU1NBbmltYXRpb25Db250cm9sbGVyLmg+CkBAIC0xNjAzLDcgKzE2MDQsOCBAQCBzdGF0
aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAg
ICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigp
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYp
LAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAotICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQorICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKKyAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpBdWRpb091dHB1dFByb3ZpZGVyPigpCiAgICAgKTsK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVD
bGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOwpAQCAtMTg4Myw3ICsxODg1LDggQEAg
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkK
ICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlS
ZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Pihz
ZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKLSAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKKyAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAg
ICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNs
aWVudElPUyhzZWxmKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQo=
</data>
<flag name="commit-queue"
          id="424596"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409024</attachid>
            <date>2020-09-17 05:07:51 -0700</date>
            <delta_ts>2020-09-17 05:45:25 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917140749.patch</filename>
            <type>text/plain</type>
            <size>76161</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3Njg5ZDA2MTdlOTI4
N2Q4ZjEzYzg1Yjg5N2ExMGU2MDMwNDRiMC4uZGRjZmQ5MjQwMDM5N2E2ZjU2Y2M5ZjgxMWQ0NGYz
Zjg0MmQ3MTFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEZvciBNZWRpYVN0cmVhbVRyYWNrLCB3ZSBy
ZXNldCB0aGUgQXVkaW9TYW1wbGVEYXRhU291cmNlIHdoZW4gc3dpdGNoaW5nIG9mIGF1ZGlvIGRl
dmljZSBvdXRwdXQuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3ZSBkbyBub3QgZW5kIHVwIHJl
bmRlcmluZyBhdWRpbyB3aXRoIHNvbWUgZGVsYXkgb24gdGhlIG5ldyBkZXZpY2UuCisKKyAgICAg
ICAgQWxsIHRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgYmFzZWQgb24gdXNlciBnZXN0dXJlLgor
ICAgICAgICBVcGRhdGUgUmVuZGVyTWVudUxpc3QgdG8gYWN0aXZhdGUgdXNlciBnZXN0dXJlIHdo
ZW4gdXNlciBzZWxlY3RzIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCisKKyAgICAgICAgVGVzdHMgdG8g
YmUgYWRkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYURldmljZXM6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YWxs
b3cpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZvckVh
Y2hBdWRpb1Byb2R1Y2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZWZhdWx0QXVk
aW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omhhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNr
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkZWZhdWx0QXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsOgorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUNvbmZpZ3VyYXRpb25XaXRo
RW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBwYWdlL01lZGlhUHJvZHVjZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQp
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9u
KToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5n
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZTo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJh
Y2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojpj
cmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChSZW5kZXJNZW51TGlzdDo6dmFsdWVD
aGFuZ2VkKToKKwogMjAyMC0wOS0xNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbmlmaWVkIGJ1aWxkIGZpeCBmb3IgInJlZGVmaW5pdGlvbiBvZiAna0NNVmlk
ZW9Db2RlY1R5cGVfVlA5IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzOGU0YmY0ZTIyYTZhOWE3YWQ2NDdhOWU3YzUx
ODU2ZmNhMjFkYWVhLi5mNTc3ODZiMTQxOGQ5YzhjNmZiM2ExZmNmODQ4OGUyNDg5NmU2Zjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3BlYWtlciBzZWxlY3Rp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY0
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSBhbiBleHBlcmltZW50YWwgZmxhZyBmb3IgcGVyIGVsZW1lbnQgc3BlYWtlciBzZWxlY3Rp
b24uCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd2VyZSBub3QgZXhwb3NpbmcgcmVhbCBkZXZp
Y2UgSURzIHRvIFdlYlByb2Nlc3MsIGJ1dCBpbnN0ZWFkIHdlcmUgaGFzaGluZyB0aGVtIGJlZm9y
ZSBzZW5kaW5nIHRoZW0gdG8gV2ViUHJvY2Vzcy4KKyAgICAgICAgV2Ugbm93IHNlbmQgdGhlIHJl
YWwgZGV2aWNlIElkcyBhbmQgbGV0IFdlYlByb2Nlc3MgZG8gdGhlIGhhc2hpbmcgcGVyIG9yaWdp
bi4KKworICAgICAgICBJbXBsZW1lbnQgQXVkaW9PdXRwdXRQcm92aWRlciBmb3IgTWFjIGJ5IGxv
b3BpbmcgdGhyb3VnaCBhbGwgYXVkaW8gcHJvZHVjZXJzIGFuZCBub3RpZnlpbmcgdGhlbSB0aGF0
IHRoZSBkZWZhdWx0IGF1ZGlvIG91dHB1dCBkZXZpY2UgY2hhbmdlZC4KKworICAgICAgICBGaXhl
cyB1bmlmaWVkIGJ1aWxkIGlzc3VlcyBpbiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHAsIFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwLCBXZWJQYWdlT3ZlcmxheS5oIGFuZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OgorCiAyMDIwLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVuaWZpZWQgYnVpbGQgZml4IGZvciAicmVkZWZpbml0aW9uIG9mICdrQ01WaWRlb0NvZGVj
VHlwZV9WUDkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZjRkYjBjMTFjOTZjMWE4
ZThhNWNiMmJiMTQ5NzFhZjA5MmM5ODIyMy4uYjg4MWNjZmYyNGMwYWVhZWY3NDc1ZDNhYWJjODky
YTFhMTcxMTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1l
Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6
ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTA5LTE2ICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgcnVudGltZSBzZXR0aW5nIGZv
ciBlbmFibGluZy9kaXNhYmxpbmcgQ1NTIHNoYWRvdyBwYXJ0cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDI3YmMzZTEw
YWFmNjBhMzc4OWYxOTFiMGE2NTEyNzcxODE1M2ZkZWIuLmVkODRlZTE5MWMwZTYwMzA5ZDA2MzBh
NTgzYjAyNGMyNjVjNzEyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgaW5saW5lIE1lZGlh
RGV2aWNlczo6TWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURP
TU9iamVjdChkb2N1bWVudCkKICAgICAsIG1fc2NoZWR1bGVkRXZlbnRUaW1lcigqdGhpcywgJk1l
ZGlhRGV2aWNlczo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9ldmVudE5hbWVz
KGV2ZW50TmFtZXMoKSkKLSAgICAsIG1faWRIYXNoU2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCkpCisgICAgLCBtX2dyb3VwSWRIYXNoU2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5n
KCkpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0
aWMgaW5saW5lIE1lZGlhRGV2aWNlSW5mbzo6S2luZCB0b01lZGlhRGV2aWNlSW5mb0tpbmQoQ2Fw
dHVyZURldmljZTo6RGV2aWNlVAogICAgIHJldHVybiBNZWRpYURldmljZUluZm86OktpbmQ6OkF1
ZGlvaW5wdXQ7CiB9CiAKLXZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCit2b2lkIE1lZGlhRGV2aWNlczo6cmVm
cmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzLCBjb25z
dCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlz
LT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCkBAIC0yMDIsNiArMjAyLDggQEAgdm9p
ZCBNZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiYgbmV3RGV2aWNlcykKICAgICBib29sIGNhbkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3Jv
cGhvbmVBY2Nlc3MoKmRvY3VtZW50KTsKICAgICBib29sIGNhbkFjY2Vzc1NwZWFrZXIgPSBjaGVj
a1NwZWFrZXJBY2Nlc3MoKmRvY3VtZW50KTsKIAorICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRv
UGVyc2lzdGVudElkLmNsZWFyKCk7CisKICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+
IGRldmljZXM7CiAgICAgZm9yIChhdXRvJiBuZXdEZXZpY2UgOiBuZXdEZXZpY2VzKSB7CiAgICAg
ICAgIGlmICghY2FuQWNjZXNzTWljcm9waG9uZSAmJiBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCkBAIC0yMTcsMTEgKzIxOSwxNyBAQCB2
b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBuZXdEZXZpY2VzKQogICAgICAgICB9KTsKICAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZv
dW5kKSB7CiAgICAgICAgICAgICBkZXZpY2VzLmFwcGVuZChtX2RldmljZXNbaW5kZXhdLmNvcHlS
ZWYoKSk7CisgICAgICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAgICAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZFRvUGVyc2lzdGVudElkLmFkZChtX2RldmljZXNbaW5kZXhdLT5kZXZpY2VJZCgpLCBuZXdE
ZXZpY2UucGVyc2lzdGVudElkKCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
KyAgICAgICAgYXV0byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmlj
ZUlESGFzaFNhbHQpOworICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQo
KSwgbV9ncm91cElkSGFzaFNhbHQpOworCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlv
T3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJz
aXN0ZW50SWQoKSk7CiAKLSAgICAgICAgYXV0byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91cElk
KCksIG1faWRIYXNoU2FsdCk7Ci0gICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5m
bzo6Y3JlYXRlKG5ld0RldmljZS5sYWJlbCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIFdU
Rk1vdmUoZ3JvdXBJZCksIGRldmljZUtpbmQpKTsKKyAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVk
aWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQp
LCBXVEZNb3ZlKGdyb3VwSWQpLCBkZXZpY2VLaW5kKSk7CiAgICAgfQogICAgIG1fZGV2aWNlcyA9
IFdURk1vdmUoZGV2aWNlcyk7CiB9CkBAIC0yNDQsMTIgKzI1MiwxMSBAQCB2b2lkIE1lZGlhRGV2
aWNlczo6ZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmIHByb21pc2Up
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb250cm9sbGVyLT5lbnVtZXJhdGVNZWRp
YURldmljZXMoKmRvY3VtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGNvbnN0IGF1dG8mIG5ld0RldmljZXMsIGNvbnN0
IGF1dG8mIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgeworICAgIGNvbnRyb2xsZXItPmVudW1l
cmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIG5ld0RldmljZXMsIGF1
dG8mJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCBpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhp
cy0+ZG9jdW1lbnQoKS0+c2V0RGV2aWNlSURIYXNoU2FsdChkZXZpY2VJREhhc2hTYWx0KTsKLSAg
ICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcyk7CisgICAgICAgIHJlZnJlc2hEZXZpY2Vz
KG5ld0RldmljZXMsIGRldmljZUlESGFzaFNhbHQpOwogICAgICAgICBwcm9taXNlLnJlc29sdmUo
bV9kZXZpY2VzKTsKICAgICB9KTsKIH0KQEAgLTMyMCw2ICszMjcsMzYgQEAgYm9vbCBNZWRpYURl
dmljZXM6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8
RXZlbnRMaXN0ZW4KICAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6YWRkRXZl
bnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKIH0KIAor
dm9pZCBNZWRpYURldmljZXM6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlk
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJl
cXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogZG9jdW1l
bnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoZGV2aWNlSWQuaXNFbXB0eSgpKSB7CisgICAgICAgIGRv
Y3VtZW50LT50b3BEb2N1bWVudCgpLnNldERlZmF1bHRBdWRpb091dHB1dERldmljZUlkKHsgfSk7
CisgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IHsgfTsKKyAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHBlcnNpc3RlbnRJ
ZCA9IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmdldChkZXZpY2VJZCk7Cisg
ICAgaWYgKHBlcnNpc3RlbnRJZC5pc051bGwoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCkuc2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQo
V1RGTW92ZShwZXJzaXN0ZW50SWQpKTsKKyAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWQgPSBXVEZN
b3ZlKGRldmljZUlkKTsKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IGJlNWQ2
YjhmYjVkMWU0M2U1ODM5MTQ5NmRkNDFkYTcwN2I5Yjg4OGQuLjQ3ZGM4MjMyMTRiOThmOWVlYTk2
MTkxNmRmM2M0OGZkYWVlMjA4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtODksNiArODksMTEgQEAgcHVibGljOgogICAg
IHZvaWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKTsKICAgICBN
ZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgZ2V0U3VwcG9ydGVkQ29uc3RyYWludHMoKTsK
IAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2UoKSBjb25zdCB7IHJl
dHVybiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWQ7IH0KKworICAgIFN0cmluZyBhdWRpb091dHB1dERl
dmljZUlkRnJvbURldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkLmdldChkZXZpY2VJZCk7IH0KKwog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFEZXZpY2VzPjo6cmVmOwogICAgIHVzaW5nIFJlZkNv
dW50ZWQ8TWVkaWFEZXZpY2VzPjo6ZGVyZWY7CiAKQEAgLTk4LDcgKzEwMyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoKTsKICAgICBib29sIGFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4m
JiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKIAotICAgIHZvaWQg
cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CisgICAgdm9pZCBy
ZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGxpc3RlbkZvckRldmljZUNoYW5nZXMoKTsKIAogICAgIGZyaWVuZCBjbGFz
cyBKU01lZGlhRGV2aWNlc093bmVyOwpAQCAtMTI2LDggKzEzMSwxMSBAQCBwcml2YXRlOgogICAg
IGNvbnN0IEV2ZW50TmFtZXMmIG1fZXZlbnROYW1lczsgLy8gTmVlZCB0byBjYWNoZSB0aGlzIHNv
IHdlIGNhbiB1c2UgaXQgZnJvbSBHQyB0aHJlYWRzLgogICAgIGJvb2wgbV9saXN0ZW5pbmdGb3JE
ZXZpY2VDaGFuZ2VzIHsgZmFsc2UgfTsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1f
YXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lzdGVudElkOworICAgIFN0cmluZyBtX2F1ZGlvT3V0
cHV0RGV2aWNlSWQ7CisKICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IG1fZGV2aWNl
czsKLSAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAgIFN0cmluZyBtX2dyb3VwSWRIYXNoU2Fs
dDsKIAogICAgIE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVz
Rm9yQ3VycmVudEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJl
bnRHZXN0dXJlVG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5pZGwKaW5kZXggOTJhOWRkN2M1NDJhMjc4MjdmYjQwODcwMjYyMzcy
MjEyMmE4YmYzOS4uZWU4NWNlZDA4N2FjYzM2ZmJhYjY2ZGFhYjRlYWI2MGM1ZTc4NDVkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmlkbApAQCAtMzksNiArMzksOSBAQAogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogICAgIFtQcml2YXRlSWRlbnRpZmllciwgUHVi
bGljSWRlbnRpZmllcl0gUHJvbWlzZTxNZWRpYVN0cmVhbT4gZ2V0VXNlck1lZGlhKG9wdGlvbmFs
IE1lZGlhU3RyZWFtQ29uc3RyYWludHMgY29uc3RyYWludHMpOwogICAgIFtFbmFibGVkQnlTZXR0
aW5nPVNjcmVlbkNhcHR1cmVdIFByb21pc2U8TWVkaWFTdHJlYW0+IGdldERpc3BsYXlNZWRpYShv
cHRpb25hbCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cyk7CisKKyAg
ICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vyc10gUHJvbWlzZTx1bmRlZmluZWQ+IHNl
dEF1ZGlvT3V0cHV0RGV2aWNlKERPTVN0cmluZyBkZXZpY2VJZCk7CisgICAgW0VuYWJsZWRCeVNl
dHRpbmc9RXhwb3NlU3BlYWtlcnNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2U7CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBkZjJhNWU0NGVjMTI3OWMw
YTIzM2JjMWRhYzQ3MzU5ZDUzNWUxODM2Li45YTAwMGQ0ZmQ4ZWI0MDljNDUxOGQzNWZmNzNkZGRl
ODFiZjllZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTI3MSw4ICsyNzEsNiBAQCB2b2lkIFVzZXJN
ZWRpYVJlcXVlc3Q6OmFsbG93KENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVyZURl
dmljZSYmIHZpZGVvRAogICAgICAgICB9OwogCiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBkb2N1
bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk7Ci0KICAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuY3JlYXRlTWVkaWFT
dHJlYW0oZG9jdW1lbnQubG9nZ2VyKCksIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1vdmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVv
RGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAgICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0ZmJhMjAyNzAzM2M4ZTZmMjI1N2NkNWFiNWMxOTE5ODYxZGNjOGM2Li4yYmU1
NzJlYWUxMGU0MDExMGJmNGUzMDJlYjkxODkwYzcyOTE3ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDE4LDYgKzEwMTgs
NyBAQAogCQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRkJDNEFGMTE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0gKi87IH07CiAJCTNGQkM0QUY0MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAxIC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNGQzQzNEYx
OTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMDBFQzQ2MjUxMzU4RUIwMDdC
ODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRw
dXRQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxMDc5MDhDMUZDM0YwMzMwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDc5MDhBMUZDM0U0RjIw
MDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MTBFNDQ2MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MTEwMEM4MDIzRjc0NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDBDN0Uy
M0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzQxOSw2ICs3NDIwLDcg
QEAKIAkJM0Y4MDIwMzQxRTlFMzgxRDAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYx
MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8q
IEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9PdXRwdXRQcm92aWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5
OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMDYyNkE3MjI4MEEyMkEwMDZEMUI1OSAvKiBKU0F1ZGlvTm9kZUN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1ZGlvTm9kZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDc5MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBD
bGllbnRPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpZW50T3Jp
Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTQ0OCw2ICsyMTQ1MCw3IEBA
CiAJCQkJNzI0RUU1NEYxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNl
cnZlci5oICovLAogCQkJCUJDRjQ4Q0U2MTM3MEQxMTQwMDRFODdENiAvKiBBZGp1c3RWaWV3U2l6
ZU9yTm90LmggKi8sCiAJCQkJQ0VEQTEyRDYxNTJDQTFDQjAwRDlFMDhEIC8qIEFsdGVybmF0aXZl
VGV4dENsaWVudC5oICovLAorCQkJCTQxMDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091
dHB1dFByb3ZpZGVyLmggKi8sCiAJCQkJQzlENDY3MDQxRTYwQzNFQjAwODE5NUZCIC8qIEF1dG9w
bGF5RXZlbnQuaCAqLywKIAkJCQk0NTgzMEQ0QjE2NzlCNEY4MDBBQ0Y4QzMgLyogQXV0b3Njcm9s
bENvbnRyb2xsZXIuY3BwICovLAogCQkJCTQ1ODMwRDRDMTY3OUI0RjgwMEFDRjhDMyAvKiBBdXRv
c2Nyb2xsQ29udHJvbGxlci5oICovLApAQCAtMzI1MjIsNiArMzI1MjUsNyBAQAogCQkJCUIyRkEz
RDlCMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGQjI3M0U4NTIwODZFNzREMDBBNTRFODcgLyogSlNTVkdHZW9tZXRyeUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyN0IyODI4MENFRjBDMDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1
ZGlvT3V0cHV0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI0RDkxMjlBMTNDQTk3MTQw
MEQyMTkxNSAvKiBKU1NWR0dseXBoUmVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJG
QTNEOUQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOTA5NmYyNjQ2
NzkxMzBhNzg0YTUxYTlhZGM4YmFkZWJlYzdjN2FjNC4uZmNiMmJjNzhhM2QzYjUzOGQ0MmNiNGEx
ZjhhN2M2MDZiYjBkZjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xODAzLDYgKzE4
MDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlv
bjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmMKICAgICAgICAgZnVuY3Rpb24oZWxlbWVu
dCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYgZnVuY3Rpb24pCit7CisgICAgbV9hdWRpb1Byb2R1
Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c3RvcEFsbE1lZGlh
UGxheWJhY2soKQogewogICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIg
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygpKQpA
QCAtNzk1NSwxMyArNzk2MCwyMyBAQCB2b2lkIERvY3VtZW50OjptZWRpYVN0cmVhbUNhcHR1cmVT
dGF0ZUNoYW5nZWQoKQogICAgIH0pOwogfQogCi12b2lkIERvY3VtZW50OjpzZXREZXZpY2VJREhh
c2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKKyNlbmRpZgorCitTdHJpbmcgRG9jdW1lbnQ6OmRl
ZmF1bHRBdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9pZEhhc2hT
YWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7Ci0gICAgbV9pZEhhc2hTYWx0
ID0gc2FsdDsKKyAgICByZXR1cm4gaXNUb3BEb2N1bWVudCgpID8gbV9kZWZhdWx0QXVkaW9PdXRw
dXREZXZpY2VJZCA6IHRvcERvY3VtZW50KCkuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsK
IH0KIAotI2VuZGlmCit2b2lkIERvY3VtZW50OjpzZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJ
ZChTdHJpbmcmJiBkZXZpY2VJZCkKK3sKKyAgICBBU1NFUlQoaXNUb3BEb2N1bWVudCgpKTsKKyAg
ICBpZiAobV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA9PSBkZXZpY2VJZCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBXVEZNb3ZlKGRldmlj
ZUlkKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAgICBwYWdl
LT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9CiAKIGNvbnN0IEF0b21TdHJp
bmcmIERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
NWFiYzI0ZWJiOTgxZTU2NGYwN2FkZWI4ZTVmYzExNTgxMzFjNTM1NS4uMmQwZTZlYTdlZDE0YjFj
OWM4NWE0NzYwZjdiZjk5ZWI2NDVlODA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0MjUs
MTIgKzE0MjUsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9p
ZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIHsgbV9oYXNIYWRDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRy
YWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazsgfQot
ICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcg
ZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1faWRIYXNoU2FsdDsgfQogICAgIHZv
aWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogICAgIHZvaWQgbWVkaWFTdHJlYW1DYXB0dXJlU3RhdGVD
aGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJ
ZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoU3RyaW5n
JiYpOworCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBmb3IgdGhpcyBmdW5jdGlvbmFs
aXR5LgogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikKICAgICAvLyBUaGVz
ZSBmdW5jdGlvbnMgcHJvdmlkZSBhIHR3by1sZXZlbCBzZXR0aW5nOgpAQCAtMTUxMCw2ICsxNTEx
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lkIGZvckVhY2hNZWRpYUVs
ZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVtZW50Jik+Jik7CiAjZW5kaWYK
KyAgICB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQ
cm9kdWNlciYpPiYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBo
YW5kbGluZ1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nVG91Y2hFdmVudDsg
fQpAQCAtMjA3Niw3ICsyMDc4LDYgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9tZWRpYVN0cmVhbVN0YXRlQ2hh
bmdlRWxlbWVudHM7Ci0gICAgU3RyaW5nIG1faWRIYXNoU2FsdDsKICAgICBib29sIG1faGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgeyBmYWxzZSB9OwogI2VuZGlmCiAKQEAgLTIxNDEsNiAr
MjE0Miw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAg
ICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9uOworCisgICAgU3RyaW5nIG1f
ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIy
MS4uNzQ5ZTMxMGMxYjRjYzEwNjU0NTRmM2E5Y2M0M2YyN2M5OTNlZjNiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVk
ZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAj
aW5jbHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lZGlhRXJyb3IuaCIKICNpbmNs
dWRlICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2ICs3OSw3IEBACiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5j
bHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2
aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50
ZXJ2YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0Myw2ICsyODQ1LDU1IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAg
IHNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWU6Onpl
cm9UaW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1N0cmluZyBI
VE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRB
dWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlkLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5kb21X
aW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5kb3cgPyBOYXZpZ2F0b3JNZWRp
YURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRvcigpKSA6IG51bGxwdHI7Cisg
ICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KGRldmljZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIW1fYXVkaW9PdXRwdXREZXZpY2VJ
ZC5pc0VtcHR5KCkgJiYgbV9wbGF5ZXIpIHsKKyAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZCA9IHsgfTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5n
ZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gYXVkaW9PdXRwdXREZXZpY2VJZCA9IG1lZGlhRGV2aWNl
cy0+YXVkaW9PdXRwdXREZXZpY2VJZEZyb21EZXZpY2VJZChkZXZpY2VJZCk7CisgICAgaWYgKGF1
ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQgIT0gbV9hdWRpb091dHB1dERldmljZUlkKSB7Cisg
ICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUoYXVkaW9PdXRwdXREZXZpY2VJ
ZCk7CisgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRpb091
dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICB9CisgICAgcHJvbWlzZS5yZXNvbHZlKCk7Cit9Cisj
ZW5kaWYKKworU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBj
b25zdAoreworICAgIHJldHVybiAhbV9hdWRpb091dHB1dERldmljZUlkLmlzRW1wdHkoKSA/IG1f
YXVkaW9PdXRwdXREZXZpY2VJZCA6IGRvY3VtZW50KCkuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
SWQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrKGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHRpbWUpOwpAQCAtNzY5OCw2
ICs3NzQ5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkZWZhdWx0QXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVyIHx8ICFtX2F1ZGlvT3V0cHV0
RGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6ZWZm
ZWN0aXZlVm9sdW1lKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGFiMmIwMDExYjU5
NDM5ZWE1MWU4YWEzZTIwOGZlMDEyYzYzZDEyZWQuLjdkODMyNjcwZjZlNGQ0MDRkZmY3ZGIwNTJm
YWQxMTJlYThjZGEzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC0yNjgsNiArMjY4LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRl
KCkgY29uc3Q7CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0OwogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2UoKSBjb25z
dDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyNlbmRpZgorCiAgICAgdXNpbmcgSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpCdWZmZXJpbmdQb2xpY3k7CiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQ
b2xpY3koQnVmZmVyaW5nUG9saWN5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBCdWZmZXJpbmdQb2xp
Y3kgYnVmZmVyaW5nUG9saWN5KCkgY29uc3Q7CkBAIC02MDQsNiArNjA5LDggQEAgcHJvdGVjdGVk
OgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IGZpbmFsOwor
ICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5n
IGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXVk
aW9PdXRwdXREZXZpY2VJZDsgfQogCiAgICAgYm9vbCBtZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdl
U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VT
Y2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxl
RmFjdG9yKGJvb2wpOwpAQCAtODgyLDYgKzg4OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9j
ZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRl
RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VD
aGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFD
KQogICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdlKEF1ZGlvU2Vzc2lvbiopIGZp
bmFsOwpAQCAtMTE5Nyw2ICsxMjA1LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQbGF5aW5n
VG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNlY29uZFNj
cmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0aW9uc0Fm
dGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1
dERldmljZUlkOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxN
ZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCmluZGV4IGI0MmQwZWEzNzEwNmI0NzJiYmM5Y2VkZjYw
NzgzZmUwYTM5ZWZmYzkuLmUyYjQzNjIzMGVhNTE2NmQwY2Q3MjIwZDUzY2QxNmU2NWJjOTNkMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtODYsNiArODYs
MTEgQEAgdHlwZWRlZiAoCiAgICAgdW5kZWZpbmVkIHBhdXNlKCk7CiAgICAgdW5kZWZpbmVkIGZh
c3RTZWVrKHVucmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAKKyAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPVBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJT
ZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXREZXZpY2VdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgc2lua0lkOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVu
YWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25dIFByb21pc2U8dW5kZWZp
bmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2aWNlSWQpOworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJT
ZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9c2V0QXVkaW9PdXRwdXREZXZpY2VdIFByb21pc2U8dW5k
ZWZpbmVkPiBzZXRTaW5rSWQoRE9NU3RyaW5nIGRldmljZUlkKTsKKwogICAgIC8vIGNvbnRyb2xz
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIGJvb2xlYW4gY29udHJvbHM7
CiAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJlZDUzZWE2OWY3MjJjZDQ1YjdhZDgu
LmVjYmEyZjUyMDliY2E0YmM3OTZhZmNkNmNhZTc4ZTBkZDE4YTcxNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRW1w
dHlDbGllbnRzLmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2lu
Y2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVu
dC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29sb3JD
aG9vc2VyLmgiCkBAIC02MTMsNyArNjE0LDggQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZp
Z3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAg
ICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJv
dmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVu
dD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50PigpLAot
ICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCisgICAg
ICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAgIH07CiAKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGVh
MTBjYzg5OGU0MTNiNzM0NzNkNzBmYmI2NmEwYzQ5MWIwMDJlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFBhZ2U7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvT3V0cHV0UHJvdmlkZXIgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEF1ZGlvT3V0cHV0UHJv
dmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+QXVkaW9PdXRwdXRQcm92aWRlcigpID0g
ZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKFBhZ2UmKTsKK307CisKK2lubGluZSB2b2lkIEF1ZGlvT3V0cHV0UHJvdmlkZXI6OmRlZmF1
bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYpCit7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAxYzUxZWU3NjhlZmQ2MmE2N2QwODY2N2VhZTgw
MWQ2Njg5My4uZDFkMjFlZmRjN2NjZDQ1ZTAxNDMyOTIwZjhjODczZjJkNTcwNDYxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAg
IHR5cGVkZWYgdW5zaWduZWQgTXV0ZWRTdGF0ZUZsYWdzOwogCiAgICAgdmlydHVhbCB2b2lkIHBh
Z2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0QXVk
aW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9OwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
TWVkaWFQcm9kdWNlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGEwYTc3ZDI4
ODM2NDgyMWM1MTBiMmQ1MTJiYTcwZTcyOWMyMWI2ZDUuLjA3YmE5OGE4NTQzMmM0ZDE3NzI5NWNi
Mzk3MmQ0MzdhOWZhZTI4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkZy
YW1lUmF0ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCisjaW5jbHVk
ZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9y
d2FyZENsaWVudC5oIgpAQCAtMjU1LDYgKzI1Niw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3Vy
YXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRp
ZgogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCisgICAgLCBtX2F1ZGlvT3V0cHV0UHJvdmlkZXIo
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYXVkaW9PdXRwdXRQcm92aWRlcikpKQogICAgICwg
bV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmxpYldlYlJUQ1By
b3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNp
dHlBbGxvd2VkKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFz
dGljaXR5QWxsb3dlZCkKQEAgLTIwNjYsNiArMjA2OCwxMSBAQCB2b2lkIFBhZ2U6OnJlc3VtZUFs
bE1lZGlhQnVmZmVyaW5nKCkKICNlbmRpZgogfQogCit2b2lkIFBhZ2U6OmRlZmF1bHRBdWRpb091
dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fYXVkaW9PdXRwdXRQcm92aWRlci0+ZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgqdGhpcyk7Cit9CisKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKIAogdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2
ZW50VHlwZSkKQEAgLTMxMjYsNiArMzEzMywxMyBAQCB2b2lkIFBhZ2U6OmZvckVhY2hNZWRpYUVs
ZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVtZW50Jik+JiBmdW5jdG9yKQog
I2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIoY29uc3QgRnVuY3Rp
b248dm9pZChNZWRpYVByb2R1Y2VyJik+JiBmdW5jdG9yKQoreworICAgIGZvckVhY2hEb2N1bWVu
dChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5mb3JFYWNoQXVk
aW9Qcm9kdWNlcihmdW5jdG9yKTsKKyAgICB9KTsKK30KKwogdm9pZCBQYWdlOjphcHBsaWNhdGlv
bldpbGxSZXNpZ25BY3RpdmUoKQogewogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggMGExZGQ2YjRiM2Y1NTVkMDk1YTBkY2VlMzNhYTE1ZTAwODNhYzcxZS4uOTgzYjY1ZTNiODY2
ZjliNTE3ZWY1NDIxZjQzMzVkY2IzNGRkOTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg4LDYgKzg4
LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwogY2xhc3MgQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OwogY2xhc3MgQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U7CitjbGFzcyBBdWRpb091dHB1dFByb3ZpZGVyOwogY2xhc3MgQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yOwogY2xhc3MgQmFja0ZvcndhcmRDb250cm9sbGVyOwogY2xh
c3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC02NTAsNiArNjUxLDggQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQWxsTWVkaWFCdWZmZXJpbmcoKTsKICAgICBib29s
IG1lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQnVmZmVy
aW5nSXNTdXNwZW5kZWQ7IH0KIAorICAgIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hh
bmdlZCgpOworCiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpIHsg
bV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAgICBib29sIGhhc1Jlc291cmNlTG9h
ZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3VyY2VMb2FkQ2xpZW50OyB9CiAKQEAg
LTc2Miw3ICs3NjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZm9yRWFjaERvY3VtZW50KGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYp
IGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOworICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVu
dChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVk
aWFQcm9kdWNlciYpPiYpOwogCiAgICAgYm9vbCBzaG91bGREaXNhYmxlQ29yc0ZvclJlcXVlc3RU
byhjb25zdCBVUkwmKSBjb25zdDsKIApAQCAtODU3LDYgKzg2MSw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRl
clByb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiBtX2F1ZGlvT3V0
cHV0UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJU
Q1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGFmYzU3YzNiNDBkMGQ3NmNj
NTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjI5NjRjMWY5NjlkZmUyOWY4ZGY0ZThjYmI5ZjMwNDJl
YzAyOTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCIKICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNh
Y2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCkBAIC01OCw3ICs1
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNs
aWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRl
ciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8
Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9y
d2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVK
YXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZy
YW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92
aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNh
Y2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRD
bGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVy
Q2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIsIFVuaXF1ZVJlZjxBdWRpb091dHB1
dFByb3ZpZGVyPiYmIGF1ZGlvT3V0cHV0UHJvdmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNv
Y2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNjksNiArNzAsNyBAQCBQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKFdU
Rk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclBy
b3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKKyAgICAsIGF1ZGlvT3V0cHV0
UHJvdmlkZXIoV1RGTW92ZShhdWRpb091dHB1dFByb3ZpZGVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcx
Mjk2MzI1NGQ5OTMyNzJlYzguLmE0MmRlNmM0MGQ1NmZiOWI4NWY3Y2M4ZjZjMzJkMjhiNDdiNWQ1
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTQzLDYgKzQz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Owog
Y2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFzcyBBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JDbGllbnQ7CitjbGFzcyBBdWRpb091dHB1dFByb3ZpZGVyOwogY2xhc3MgQmFja0Zvcndh
cmRDbGllbnQ7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKIGNsYXNzIENvb2tpZUphcjsK
QEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
LCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRl
cj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVS
ZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxBdWRpb091
dHB1dFByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24o
KTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI5
LDYgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBh
dHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7CisgICAgVW5pcXVlUmVmPEF1ZGlvT3V0
cHV0UHJvdmlkZXI+IGF1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291
cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CiAgICAg
Ym9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiB7IHRydWUgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBmYmYwOGM0ZjkzMjgzMGY0MTg3NjRjZDI4MjJj
MDQzZWU1ZGNkYTc3Li5mMzEyY2Q4MjNmMDZlMDdlMjU4N2I0YTIwN2NiMDBhZTViMzllZjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjYsNiArODI2LDkgQEAgbWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICBpbml0aWFsOiBmYWxz
ZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0b3J5OgogICB0eXBlOiBTdHJp
bmcKICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNjNjZjNjY2VlODEx
MmUxNTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4OTk3ZjcyNmNmYjE3YTYyNmJkOWU5
NDY1ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQogICAg
IG1fcHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtb2RlKTsKIH0KIAordm9p
ZCBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBtX3ByaXZh
dGUtPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRpYVBsYXllckxvZ2dlcigpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRl
eCBlYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzLi5kNDY3MzFhMmJhZGY4
ODU3MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2ICsyNzMsOSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBhdWRpb091dHB1dERl
dmljZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9n
SWRlbnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dl
ciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEsNiArNjM0LDEwIEBAIHB1YmxpYzoK
ICAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoKSBjb25zdCB7
IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7IH0KICAgICB2b2lkIHNldFByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAKKyAgICBTdHJpbmcgYXVk
aW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlk
T3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOwor
CiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVk
aWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBwdWJsaWM6CiB9OwogCiAKK2lubGlu
ZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkKCkgOiBTdHJp
bmcgeyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5h
dWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmluZyB7IH07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXgg
NjcwYzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1OTc4ZC4uODEyNTMzMDI3NmRkNTQ0
ZTFmY2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKSB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5k
ZXggYWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3OGJiZDNlMy4uODVjZTgxZDEwM2I4
NWQxZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAt
MzE4LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRPYnNlcnZlVGltZUNv
bnRyb2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNo
YW5nZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAg
ICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
aW5kZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4MjMwMDJiNTYxNS4uZmRjZjVmZTE2
NzRkMzQxYTA2Y2QwMmNmNDE1ZTNlMjM4NTM4NDIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CkBAIC05NTMsNiArOTUzLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2UGxheWVySXRlbSkKICAgICAgICAg
c2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsKIAorICAgIGF1dG8gYXVkaW9P
dXRwdXREZXZpY2VJZCA9IHBsYXllcigpLT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKTsK
KyAgICBpZiAoIWF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpCisgICAgICAgIG1fYXZQbGF5
ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IGF1ZGlvT3V0cHV0RGV2aWNlSWQ7
CisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMsNiArMzI5Nywx
MyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sK
KyAgICBpZiAoIW1fYXZQbGF5ZXIgfHwgIXBsYXllcigpKQorICAgICAgICByZXR1cm47CisgICAg
bV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gcGxheWVyKCktPmF1
ZGlvT3V0cHV0RGV2aWNlSWQoKTsKK30KKwogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5hbWVz
KCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdp
dGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAwOWJmNTU3NDg0MzMxZDU4
MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZkZjk3MDJmMmY5NTE4YWQ2OWRk
ODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjU0LDYgKzI1NCw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5j
dGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOworICAgIHZvaWQgYXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAg
ICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA4
Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5Li40NWQ5ODNhNWVkYWVlOTQ0
MzBhZjM1MGU3M2M4ZDJjOWZkNGE3NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBA
IC0xMTY2LDYgKzExNjYsMTAgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAg
ICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZvbHVtZSgpXTsKICAgICBbYXVk
aW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToobV9wbGF5ZXItPnByZXNlcnZl
c1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3BlY3RyYWwgOiBBVkF1ZGlvVGlt
ZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5
ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghZGV2aWNlSWQuaXNO
dWxsKCkpCisgICAgICAgIGF1ZGlvUmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworCiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXplciBhZGRSZW5k
ZXJlcjphdWRpb1JlbmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9u
KSB7CkBAIC0xMjc2LDYgKzEyODAsMTUgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX3BsYXllcikKKyAg
ICAgICAgcmV0dXJuOworICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXRE
ZXZpY2VJZCgpOworICAgIGZvciAoYXV0byYga2V5IDogbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyTWFwLmtleXMoKSkKKyAgICAgICAgKChfX2JyaWRnZSBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXIgKilrZXkuZ2V0KCkpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsK
K30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRiMjhmYWMzOWNiMWJmYmU5
OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0MjkwMDAyNTBlOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRlZDsgfQogCiAgICAgdm9p
ZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7CiAgICAgdm9pZCB1cGRh
dGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMmRiNTBiYjg5
NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAzNi4uMGZhYjhiMWRlNDBiNjMzY2JiNzYwMWZk
ZjY4NzQ2OTgyNjQzZTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtODY3LDcg
Kzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRh
dGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIGN1cnJlbnRU
cmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAKLSAgICBhdXRvIHNldEF1
ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtJiB0cmFj
aywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3Bs
YXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgYXV0byBzZXRBdWRpb1Ry
YWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
JiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAgIHsKICAgICAgICAgc3dp
dGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJlbW92ZToKQEAgLTg4NCw2
ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBk
YXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZShtX3ZvbHVtZSk7CiAgICAg
ICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAgICAgIHRyYWNrLnNldEVu
YWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRyYWNrLnN0cmVhbVRyYWNr
KCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAg
ICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworCiAgICAg
ICAgICAgICBpZiAocGxheWluZygpKQogICAgICAgICAgICAgICAgIHRyYWNrLnBsYXkoKTsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMTAxNyw2ICsxMDIxLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6
OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5mbHVzaEFuZFJlbW92
ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIGlmICghbV9wbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2
aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFs
dWVzKCkpCisgICAgICAgIGF1ZGlvVHJhY2stPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNl
SWQpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2No
ZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBB
U1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKaW5k
ZXggNjQ4OWY5ZGE3YzU2MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAwYi4uNDhlNWYzMjcxYWI0
OGM3YTI3OTYwNWEzNTE0YWI2OWQyYThkYTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Vm9sdW1lKGZsb2F0KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAorICAgIHZpcnR1
YWwgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOworCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiwgY29u
c3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEwIEBAIGlubGluZSBjb25zdCBjaGFy
KiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NOYW1lKCkgY29uc3QKIH0K
ICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0
QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKQoreworfQorCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1ZjkwZDQ5OWRlMDM4MDk3OTZhYzljNWFjLi42YmUw
YTE4ZjMwNTg2M2NhZWZiZTg5ZWIxNmU2OGI4ZGU3MjQ3NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcsNiArOTcsMTEgQEAgdm9pZCBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIHVwZGF0ZVJl
bmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVk
aW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIG1fcmVuZGVy
ZXItPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworfQorCiBmbG9hdCBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Jl
bmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAppbmRl
eCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUzLi45M2E0MDY1M2MxN2Rj
NTdmOGQ4Y2QyODAyOTc2OTk5ZTk0OGNiMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBt
X2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2soKSB7
IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCA3NjIzMmI3OWQ5ZDA3ZWIx
Yjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li4zZDM5NDAxNmYxYjAyNTc5YmI0ZDJjZWQ0N2JiNTIx
MTQ0NjY4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuY3BwCkBAIC02NywxMSArNjcsMTggQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgICAgICBtX2Rh
dGFTb3VyY2UtPnNldFZvbHVtZSh2b2x1bWUpOwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNyZWF0ZSBhIHVuaXQgZm9yIG91
cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVmYXVsdCB1bml0IGlmIGRldmljZUlkIGlzIG1hdGNo
aW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCku
c2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJZCk7CisgICAgbV9zaG91bGRSZXNldCA9IHRy
dWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNh
bXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
c2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAg
IEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9y
bURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKLSAgICBpZiAoIW1fZGF0YVNv
dXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJj
ZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CisgICAgaWYgKCFtX2RhdGFT
b3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9u
KCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7
CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRl
KGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIsICp0aGlzKTsKIAogICAgICAgICBpZiAoZGF0
YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oZGVzY3Jp
cHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUKICAg
ICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCku
YWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7CiAgICAgICAgIH0pOwogICAgICAgICBtX2Rh
dGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBtX3Nob3VsZFJlc2V0ID0g
ZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyhzYW1wbGVUaW1l
LCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4IDUxYWM0MzM3YzRlMDM1OGZkZGNiNGVhODU0
N2YyYWJiMGJjMGZhODcuLjUwMjU1NjE2NzRkMDVlYTBlOGRlMGRlODVlNDJiNWVjNDQ1NjE3NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2Eu
aApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKICAg
ICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpIGZpbmFsOwor
ICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVz
Y3JpcHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291cmNl
OworICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCmluZGV4IGRhYzc0
YTEyNTVjNWU1NGE1MjM0MzZmZTY5YThlNDQ0YzJlNzBiMTUuLmQyNzVlY2U3ZjI2MTBkYmIyZWRk
NTViMDgzYzg0MTZmMGM1MGU4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0zNiw2ICszNiwxMSBAQAogI2luY2x1ZGUgPHBh
bC9zcGkvY29jb2EvQXVkaW9Ub29sYm94U1BJLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAor
I2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCIK
KyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgorI2VuZGlmCisKICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNTEsNiArNTYsMjIgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp+
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkKICAgICBzdG9wKCk7CiB9CiAKK3Zv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRBdWRpb091dHB1dERldmlj
ZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7CisgICAgYXV0byBkZXZpY2UgPSBDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0aFVJ
RChkZXZpY2VJRCk7CisgICAgaWYgKCFkZXZpY2UgfHwgbV9kZXZpY2VJRCA9PSBkZXZpY2UtPmRl
dmljZUlEKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgc2hvdWxkUmVzdGFydCA9IG1f
aXNTdGFydGVkOworICAgIGlmIChtX2lzU3RhcnRlZCkKKyAgICAgICAgc3RvcCgpOworCisgICAg
bV9kZXZpY2VJRCA9IGRldmljZS0+ZGV2aWNlSUQoKTsKKworICAgIGlmIChzaG91bGRSZXN0YXJ0
KQorICAgICAgICBzdGFydCgpOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyVW5pdDo6YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYgc291cmNlKQog
ewogICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6YWRkU291cmNlIik7CkBAIC0xNjEsNiArMTgyLDE2IEBAIHZvaWQgQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgfQog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fZGV2aWNlSUQpIHsKKyAgICAg
ICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1
dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAm
bV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHVuaXQgZGV2aWNl
IElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2aWNlSUQsIChpbnQpZXJyb3IsIChj
aGFyKikmZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2Vu
ZGlmCisKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBpbnB1dFByb2Ms
IG51bGxwdHIgfTsKICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVf
R2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCmlu
ZGV4IDQ0MDc2YTU2ZWM5NzRmOWJiODczNDJiZmM3NDgzMGM4NTljNzcyZjYuLjFiMjIzN2Y4ZDM4
ZGFlYjFiOTdkYTllZjNlNjQxMzM2Y2Y5ZmM2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgog
ICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKIAorICAgIHZvaWQgc2V0QXVkaW9P
dXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQgYWRkU291cmNlKFJlZjxB
dWRpb1NhbXBsZURhdGFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZSYpOwogCkBAIC02OCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9OwogICAgIExvY2sgbV9zb3VyY2Vz
TG9jazsKICAgICBib29sIG1faXNTdGFydGVkIHsgZmFsc2UgfTsKKyAgICB1aW50MzJfdCBtX2Rl
dmljZUlEIHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHAKaW5kZXggYzAyNTgxY2E5NjMzOTlkM2UyMWFjMzY5ZTAxM2RlZDRmYzI1Njhi
Zi4uMzg2MDZhYmVmZWM3OTVlNWQwODZmYWZhOWMyYTQ4OTNjNzE3ZjY5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zODYsNiArMzg2LDggQEAg
dm9pZCBSZW5kZXJNZW51TGlzdDo6dmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9v
bCBmaXJlT25DaGFuZ2UpCiAgICAgaWYgKCZkb2N1bWVudCgpICE9IGRvY3VtZW50KCkuZnJhbWUo
KS0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZ2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUsICZkb2N1bWVudCgpKTsK
KwogICAgIHNlbGVjdEVsZW1lbnQoKS5vcHRpb25TZWxlY3RlZEJ5VXNlcihzZWxlY3RFbGVtZW50
KCkubGlzdFRvT3B0aW9uSW5kZXgobGlzdEluZGV4KSwgZmlyZU9uQ2hhbmdlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRleCAxZmM1NmQ4MjFi
YmQ5M2ZjODk5ZjI4NTNhMTE1OTFhNTIwZWM5OGE3Li5kZTg1MjRkNGFiYjQxYTMxMmQyMmRlOTlm
Mjg4ZmI4NDhkNDg1ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmNwcApAQCAtMTM2LDQgKzEzNiw2IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwKIAogfQog
CisjdW5kZWYgTUVTU0FHRV9DSEVDSworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCmlu
ZGV4IDYwMzRjMmQ1ZjhkMjU4YmFlNDVlYTUzNWE5NTYwNDFhNzY1NzQ2MWYuLjBhYjc4NDczMDk1
YzcxMmIwNDFlZTVmMjQ5ZDI4ODg0OWE1ODk5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMTM3LDQg
KzEzNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCiAKIH0K
IAorI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NF
VFdSSVRFUkRFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZjM1NmFlMjcwYTE5MjNiYzczMjQ1OGM2YTFl
ZTU1OTFlZjk5YzQ3Yy4uZDFjYTRiNTZhZmNiYjU1YTBiYTc3NmIzYTFjYzIwMjUxNWNhNTdlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCkBAIC0xNTQsNiArMTU0LDE0IEBAIEV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAg
Y2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQogCitQ
ZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVs
dFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHBlciBtZWRpYSBlbGVt
ZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9u
OiAiQWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBj
YXRlZ29yeTogZXhwZXJpbWVudGFsCisgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCisKIFZQ
OURlY29kZXJFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFZQ
OURlY29kZXJFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM4ODRmMGVkZThiOWRmYWIzMzJjODQz
ZGU0Yjg1YjExNjEyMGIwYjkuLmYzMzFjZjBlODBhMTIyNmIzZmIwNGZjNGQ0MjVhMjg1NWMyMGEy
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dApAQCAtNTU1LDYgKzU1NSw3IEBAIFdlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1
dFByb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYzI2NmMzYmJlMGQ2MTc5YzM5
YWVhNmRhMzVjMzdmN2E2NDJjOGM5NC4uY2Y0NWFkYTY0NTNlNmIxOWE1MzIxMDRkMDgwZWE0YzFl
MjQ0MzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNjA1LDcg
KzYwNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZlTWljcm9waG9uZURldmljZShjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGRlCiAgICAgfSk7CiB9CiAKLVZlY3RvcjxD
YXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29t
cHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3Ry
aW5nJiBkZXZpY2VJREhhc2hTYWx0KQorVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KGJv
b2wgcmV2ZWFsSWRzQW5kTGFiZWxzKQogewogICAgIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdE1h
eGltdW1DYW1lcmFDb3VudCA9IDE7CiAgICAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0TWF4aW11
bU1pY3JvcGhvbmVDb3VudCA9IDE7CkBAIC02MzIsMTYgKzYzMiw3IEBAIFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZp
bHRlcmVkRGV2CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAg
ICBhdXRvIGxhYmVsID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgYXV0byBpZCA9IGVtcHR5U3Ry
aW5nKCk7Ci0gICAgICAgIGF1dG8gZ3JvdXBJZCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGlm
IChyZXZlYWxJZHNBbmRMYWJlbHMpIHsKLSAgICAgICAgICAgIGxhYmVsID0gZGV2aWNlLmxhYmVs
KCk7Ci0gICAgICAgICAgICBpZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFz
aFNhbHQpOwotICAgICAgICAgICAgZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UuZ3JvdXBJZCgpLCBkZXZpY2VJ
REhhc2hTYWx0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZpbHRlcmVkRGV2aWNlcy5hcHBlbmQo
Q2FwdHVyZURldmljZShpZCwgZGV2aWNlLnR5cGUoKSwgbGFiZWwsIGdyb3VwSWQpKTsKKyAgICAg
ICAgZmlsdGVyZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNBbmRMYWJlbHMgPyBkZXZpY2UgOiBD
YXB0dXJlRGV2aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9LCB7IH0pKTsKICAgICB9CiAKICAg
ICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9ICFyZXZlYWxJZHNBbmRMYWJlbHM7CkBAIC02OTks
NyArNjkwLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoRnJhbWUKICAgICAgICAgICAgIGJvb2wgcmV2
ZWFsSWRzQW5kTGFiZWxzID0gb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB8fCB3YXNHcmFudGVk
VmlkZW9PckF1ZGlvQWNjZXNzKGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgp
LCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKTsKIAogICAgICAgICAgICAgY2FsbENvbXBs
ZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNv
bXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hT
YWx0KSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihj
b21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0FuZExhYmVscyksIGRldmljZUlESGFz
aFNhbHQpOwogICAgICAgICB9KTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaAppbmRleCBkZjlmZGQ1YzE1M2RjY2Y3Zjc2OWIxYTQ4YjdiMWM2YTZmMWRjMTM3Li45NThh
MTZkMDVlYzI0MTA3MGM2NzdjNDFiMTFiMjQ5OTEzZGU3YTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB3
YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKLSAg
ICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlz
dChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0
KTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2
aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscyk7CiAKICAgICB2b2lkIHByb2Nlc3NVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpOwogICAgIHZvaWQgcHJvY2Vzc1VzZXJNZWRpYVBlcm1p
c3Npb25JbnZhbGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNm
MmVjZWNlOWNiOGNkNGQ5NzhmOWYwNjBkNzgwNjNjODliZGJlYjkuLmQ3MjMwMTQ1OWJhYmNjYmRm
ZWVjYTk2MzBlYmMyYjc3YTAxN2FlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM3Myw2ICszMzczLDggQEAKIAkJM0Y5MTVDMEUx
RjU2NERFRDAwMTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXJJT1MubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjkxNUMwRjFG
NTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHBhdGggPSBpb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTNGQjA4RTQyMUY2MEIyNDAwMDVFNTMxMiAvKiBpT1MueGNhc3Nl
dHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xk
ZXIuYXNzZXRjYXRhbG9nOyBwYXRoID0gaU9TLnhjYXNzZXRzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTAwRUM0MzI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb091dHB1dFBy
b3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDQyNTEzNTc5
RjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXVkaW9PdXRwdXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAyNEZDMDIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MDI0RkMxMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAz
RkJBMTIwNjFCREI3MDBDMkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTUyMSw2ICs1NTIzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQlDREE5NTkzOTI0MTJC
MTc1MDA5MTBFRUYgLyogaW9zICovLAorCQkJCTQxMDBFQzQzMjUxMzU3OUYwMDdCODVEOSAvKiBB
dWRpb091dHB1dFByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTAwRUM0NDI1MTM1NzlGMDA3Qjg1RDkg
LyogQXVkaW9PdXRwdXRQcm92aWRlci5oICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3
QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JC
NzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEy
MzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvT3V0cHV0UHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1
dFByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjFmNDI5ZTA2YzgwMDhhMTY0ZDVjYTZjYjQzOGE1
OTM4YWY0NmFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIu
aCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIEF1ZGlvT3V0cHV0UHJvdmlkZXI6OmRlZmF1
bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYgcGFnZSkKK3sKKyNpZiBQTEFURk9STShN
QUMpCisgICAgcGFnZS5mb3JFYWNoQXVkaW9Qcm9kdWNlcihbXShhdXRvJiBhdWRpb1Byb2R1Y2Vy
KSB7CisgICAgICAgIGF1ZGlvUHJvZHVjZXIuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdl
ZCgpOworICAgIH0pOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2IzYzk5MWI1MWNmOWIxNzRhYzY4YThjMzdkMDgwZGJlMjQ5N2RjOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRl
ci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPFdlYkNvcmUvQXVkaW9PdXRwdXRQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgQXVkaW9PdXRwdXRQcm92aWRlciA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb091dHB1
dFByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBBdWRpb091dHB1dFByb3ZpZGVyKCkgPSBkZWZhdWx0
OworCitwcml2YXRlOgorICAgIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZChX
ZWJDb3JlOjpQYWdlJikgZmluYWw7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZmMGRiNGVkMTQ4YzBmNTIxYzY3YTdjNDlhMWU4
MzM2NzRlOTBiNDQuLjhkODg0MjRiMzFlMjcyZWFmZDBkYTE0MTIyOTY2MTMxOTRhODcwNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUdlb21ldHJ5
LmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgogI2luY2x1ZGUgIkRy
YXdpbmdBcmVhLmgiCkBAIC00OTksNyArNTAwLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUuY29weVJlZigpKSwK
LSAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlx
dWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZU92ZXJsYXkuaAppbmRleCAxZTk5MzcxNDlhZmYyYjFiMDRkN2M1ZWNjYjJjNmQ5OGJk
NzNjZGIxLi5hM2U2ODYyNmJiOWI3NjlmODYwOTY5NWIwOTdiZTA3NTdjMmEzYjE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAog
T0JKQ19DTEFTUyBEREFjdGlvbkNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
OTg0ZmJiZjRjNzgzNDRkNWY4MzdiOWFhNWM5YWU3OGEzNWZkMWRiZi4uNWY5YzJhYWQwOTE5NjJl
MzU5NmVmODkzYjM1OWMxZDFkNjg0YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAt
MzMsOSArMzMsMTEgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0
cmFpbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAzNzU0MDhjMzkwMjQ1MTFkMmZiYTUz
NjdlZDU4ZDE3NTdkYWExNTg2Li4xYzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcwZTli
NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMwLDYgKzMwLDExIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENv
bm5lY3Rpb247Cit9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCBhNDI1Y2NmMWM1YzllNzc5OTc0NGM1YmU1MzkzNzRkZmY4MjdiNjllLi41NmMxYTIxM2Q4
NjQ0ZTQwOGMxZjE4ZGVhYTI3NGZmOTYwOTViOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0
VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oPgpA
QCAtMTYwMyw3ICsxNjA0LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQ
cm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUo
c3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4oKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9P
dXRwdXRQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxm
KTsKQEAgLTE4ODMsNyArMTg4NSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1l
cGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3Jl
YXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdl
YlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
RnJhbWVMb2FkZXJDbGllbnQ+KCksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyPigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkF1
ZGlvT3V0cHV0UHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9t
ZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkK
</data>
<flag name="commit-queue"
          id="424599"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409025</attachid>
            <date>2020-09-17 05:34:36 -0700</date>
            <delta_ts>2020-09-17 06:20:03 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917143434.patch</filename>
            <type>text/plain</type>
            <size>77589</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3Njg5ZDA2MTdlOTI4
N2Q4ZjEzYzg1Yjg5N2ExMGU2MDMwNDRiMC4uMjZkNWQ1NTk3MTgyYmFmMmEwNGVkNWJmNTIwMjRm
YzE1M2ZiZTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEZvciBNZWRpYVN0cmVhbVRyYWNrLCB3ZSBy
ZXNldCB0aGUgQXVkaW9TYW1wbGVEYXRhU291cmNlIHdoZW4gc3dpdGNoaW5nIG9mIGF1ZGlvIGRl
dmljZSBvdXRwdXQuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3ZSBkbyBub3QgZW5kIHVwIHJl
bmRlcmluZyBhdWRpbyB3aXRoIHNvbWUgZGVsYXkgb24gdGhlIG5ldyBkZXZpY2UuCisKKyAgICAg
ICAgQWxsIHRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgYmFzZWQgb24gdXNlciBnZXN0dXJlLgor
ICAgICAgICBVcGRhdGUgUmVuZGVyTWVudUxpc3QgdG8gYWN0aXZhdGUgdXNlciBnZXN0dXJlIHdo
ZW4gdXNlciBzZWxlY3RzIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCisKKyAgICAgICAgVGVzdHMgdG8g
YmUgYWRkZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2
aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6cmVm
cmVzaERldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjplbnVtZXJhdGVE
ZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFz
SGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRp
b091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5pZGw6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2Uv
TWVkaWFQcm9kdWNlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6ZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGVm
YXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpm
b3JFYWNoQXVkaW9Qcm9kdWNlcik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojph
dWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3Jl
YXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAg
ICAgKFJlbmRlck1lbnVMaXN0Ojp2YWx1ZUNoYW5nZWQpOgorCiAyMDIwLTA5LTE3ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4IGZv
ciAicmVkZWZpbml0aW9uIG9mICdrQ01WaWRlb0NvZGVjVHlwZV9WUDkiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4
ZTRiZjRlMjJhNmE5YTdhZDY0N2E5ZTdjNTE4NTZmY2EyMWRhZWEuLmY1Nzc4NmIxNDE4ZDljOGM2
ZmIzYTFmY2Y4NDg4ZTI0ODk2ZTZmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAt
MDktMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzcGVha2VyIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGFuIGV4cGVyaW1lbnRhbCBmbGFnIGZvciBw
ZXIgZWxlbWVudCBzcGVha2VyIHNlbGVjdGlvbi4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3
ZXJlIG5vdCBleHBvc2luZyByZWFsIGRldmljZSBJRHMgdG8gV2ViUHJvY2VzcywgYnV0IGluc3Rl
YWQgd2VyZSBoYXNoaW5nIHRoZW0gYmVmb3JlIHNlbmRpbmcgdGhlbSB0byBXZWJQcm9jZXNzLgor
ICAgICAgICBXZSBub3cgc2VuZCB0aGUgcmVhbCBkZXZpY2UgSWRzIGFuZCBsZXQgV2ViUHJvY2Vz
cyBkbyB0aGUgaGFzaGluZyBwZXIgb3JpZ2luLgorCisgICAgICAgIEltcGxlbWVudCBBdWRpb091
dHB1dFByb3ZpZGVyIGZvciBNYWMgYnkgbG9vcGluZyB0aHJvdWdoIGFsbCBhdWRpbyBwcm9kdWNl
cnMgYW5kIG5vdGlmeWluZyB0aGVtIHRoYXQgdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmlj
ZSBjaGFuZ2VkLgorCisgICAgICAgIEZpeGVzIHVuaWZpZWQgYnVpbGQgaXNzdWVzIGluIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCwgUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAsIFdlYlBhZ2VPdmVybGF5LmggYW5kIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisKIDIwMjAtMDktMTcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZmllZCBidWlsZCBmaXggZm9yICJyZWRl
ZmluaXRpb24gb2YgJ2tDTVZpZGVvQ29kZWNUeXBlX1ZQOSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBmNGRiMGMxMWM5NmMxYThlOGE1Y2IyYmIxNDk3MWFmMDkyYzk4MjIzLi5iODgx
Y2NmZjI0YzBhZWFlZjc0NzVkM2FhYmM4OTJhMWExNzExMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzcGVha2VyIHNlbGVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMjAtMDktMTYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBydW50aW1lIHNldHRpbmcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBDU1Mgc2hhZG93
IHBhcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjYzhlN2FjZjNiOTA4NDc5NmQ1YjZkMzc1YTA4
ODU2MjM4YjdhYmJlLi4zY2I1OGY1NDRhMjhiM2RjMzBiOTNiMGY1ODZlZTIwNmFhOWVjOGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTc4Nyw2ICs3ODcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9BY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIu
aAogICAgIHBhZ2UvQWRqdXN0Vmlld1NpemVPck5vdC5oCiAgICAgcGFnZS9BbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaAorICAgIHBhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oCiAgICAgcGFnZS9BdXRv
cGxheUV2ZW50LmgKICAgICBwYWdlL0Jhc2U2NFV0aWxpdGllcy5oCiAgICAgcGFnZS9DYWNoZVN0
b3JhZ2VQcm92aWRlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggMjdiYzNlMTBhYWY2MGEzNzg5ZjE5MWIwYTY1MTI3
NzE4MTUzZmRlYi4uZWQ4NGVlMTkxYzBlNjAzMDlkMDYzMGE1ODNiMDI0YzI2NWM3MTJhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcApAQCAtNTcsNyArNTcsNyBAQCBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAg
ICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRF
dmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX2V2ZW50TmFtZXMoZXZlbnROYW1lcygpKQotICAgICwg
bV9pZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKKyAgICAsIG1fZ3JvdXBJ
ZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKIHsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbmxpbmUgTWVkaWFEZXZpY2VJ
bmZvOjpLaW5kIHRvTWVkaWFEZXZpY2VJbmZvS2luZChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUCiAg
ICAgcmV0dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dDsKIH0KIAotdm9pZCBN
ZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
bmV3RGV2aWNlcykKK3ZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0
b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNo
U2FsdCkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYg
KCFkb2N1bWVudCkKQEAgLTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVz
aERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogICAgIGJv
b2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IGNoZWNrTWljcm9waG9uZUFjY2VzcygqZG9jdW1lbnQp
OwogICAgIGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2VzcygqZG9jdW1l
bnQpOwogCisgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsK
KwogICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1
dG8mIG5ld0RldmljZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNy
b3Bob25lICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKQEAgLTIxNywxMSArMjE5LDE3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpyZWZy
ZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCiAgICAg
ICAgIH0pOwogICAgICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgIGRl
dmljZXMuYXBwZW5kKG1fZGV2aWNlc1tpbmRleF0uY29weVJlZigpKTsKKyAgICAgICAgICAgIGlm
IChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIp
CisgICAgICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuYWRk
KG1fZGV2aWNlc1tpbmRleF0tPmRldmljZUlkKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBhdXRvIGRldmljZUlk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAg
IGF1dG8gZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UuZ3JvdXBJZCgpLCBtX2dyb3VwSWRIYXNoU2FsdCk7
CisKKyAgICAgICAgaWYgKG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U3BlYWtlcikKKyAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lz
dGVudElkLmFkZChkZXZpY2VJZCwgbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpKTsKIAotICAgICAg
ICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5o
YXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9pZEhhc2hTYWx0KTsKLSAg
ICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxh
YmVsKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgV1RGTW92ZShncm91cElkKSwgZGV2aWNl
S2luZCkpOworICAgICAgICBkZXZpY2VzLmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShu
ZXdEZXZpY2UubGFiZWwoKSwgV1RGTW92ZShkZXZpY2VJZCksIFdURk1vdmUoZ3JvdXBJZCksIGRl
dmljZUtpbmQpKTsKICAgICB9CiAgICAgbV9kZXZpY2VzID0gV1RGTW92ZShkZXZpY2VzKTsKIH0K
QEAgLTI0NCwxMiArMjUyLDExIEBAIHZvaWQgTWVkaWFEZXZpY2VzOjplbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0byYgZGV2aWNlSURIYXNoU2Fs
dCkgbXV0YWJsZSB7CisgICAgY29udHJvbGxlci0+ZW51bWVyYXRlTWVkaWFEZXZpY2VzKCpkb2N1
bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvJiYgbmV3RGV2aWNlcywgYXV0byYmIGRldmljZUlESGFzaFNhbHQp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGlzQ29udGV4dFN0b3BwZWQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5zZXREZXZp
Y2VJREhhc2hTYWx0KGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICByZWZyZXNoRGV2aWNlcyhu
ZXdEZXZpY2VzKTsKKyAgICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcywgZGV2aWNlSURI
YXNoU2FsdCk7CiAgICAgICAgIHByb21pc2UucmVzb2x2ZShtX2RldmljZXMpOwogICAgIH0pOwog
fQpAQCAtMzIwLDYgKzMyNywzNiBAQCBib29sIE1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbgogICAgIHJldHVy
biBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwg
V1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOwogfQogCit2b2lkIE1lZGlhRGV2aWNlczo6c2V0
QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVu
dFVzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCAiQSB1c2VyIGdlc3R1cmUgaXMgcmVxdWlyZWQiX3MgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZXZpY2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCku
c2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoeyB9KTsKKyAgICAgICAgbV9hdWRpb091dHB1
dERldmljZUlkID0geyB9OworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcGVyc2lzdGVudElkID0gbV9hdWRpb091dHB1dERldmlj
ZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsKKyAgICBpZiAocGVyc2lzdGVudElkLmlz
TnVsbCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS5zZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZChXVEZNb3ZlKHBlcnNpc3RlbnRJZCkp
OworICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUoZGV2aWNlSWQpOworICAgIHBy
b21pc2UucmVzb2x2ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggYmU1ZDZiOGZiNWQxZTQzZTU4MzkxNDk2ZGQ0
MWRhNzA3YjliODg4ZC4uNDdkYzgyMzIxNGI5OGY5ZWVhOTYxOTE2ZGYzYzQ4ZmRhZWUyMDhmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCkBAIC04OSw2ICs4OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25z
dHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZShTdHJpbmcmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIFN0
cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZDsgfQorCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRGcm9tRGV2aWNlSWQoY29u
c3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcgUmVmQ291bnRlZDxN
ZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURldmljZXM+Ojpk
ZXJlZjsKIApAQCAtOTgsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2
ZW50VGltZXJGaXJlZCgpOwogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3Rl
bmVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKKyAgICB2b2lkIHJlZnJlc2hEZXZpY2VzKGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbGlzdGVuRm9y
RGV2aWNlQ2hhbmdlcygpOwogCiAgICAgZnJpZW5kIGNsYXNzIEpTTWVkaWFEZXZpY2VzT3duZXI7
CkBAIC0xMjYsOCArMTMxLDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgRXZlbnROYW1lcyYgbV9l
dmVudE5hbWVzOyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2FuIHVzZSBpdCBmcm9tIEdD
IHRocmVhZHMuCiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgeyBmYWxzZSB9
OwogCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlkVG9Q
ZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKKwogICAgIFZl
Y3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gbV9kZXZpY2VzOwotICAgIFN0cmluZyBtX2lkSGFz
aFNhbHQ7CisgICAgU3RyaW5nIG1fZ3JvdXBJZEhhc2hTYWx0OwogCiAgICAgT3B0aW9uU2V0PEdl
c3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAg
ICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApp
bmRleCA5MmE5ZGQ3YzU0MmEyNzgyN2ZiNDA4NzAyNjIzNzIyMTIyYThiZjM5Li5lZTg1Y2VkMDg3
YWNjMzZmYmFiNjZkYWFiNGVhYjYwYzVlNzg0NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCkBAIC0zOSw2ICszOSw5IEBA
CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFp
bnRzKCk7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNl
PE1lZGlhU3RyZWFtPiBnZXRVc2VyTWVkaWEob3B0aW9uYWwgTWVkaWFTdHJlYW1Db25zdHJhaW50
cyBjb25zdHJhaW50cyk7CiAgICAgW0VuYWJsZWRCeVNldHRpbmc9U2NyZWVuQ2FwdHVyZV0gUHJv
bWlzZTxNZWRpYVN0cmVhbT4gZ2V0RGlzcGxheU1lZGlhKG9wdGlvbmFsIERpc3BsYXlNZWRpYVN0
cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKworICAgIFtFbmFibGVkQnlTZXR0aW5nPUV4
cG9zZVNwZWFrZXJzXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0QXVkaW9PdXRwdXREZXZpY2UoRE9N
U3RyaW5nIGRldmljZUlkKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vyc10g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdWRpb091dHB1dERldmljZTsKIH07CiAKIFsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCmluZGV4IGRmMmE1ZTQ0ZWMxMjc5YzBhMjMzYmMxZGFjNDczNTlkNTM1ZTE4
MzYuLjlhMDAwZDRmZDhlYjQwOWM0NTE4ZDM1ZmY3M2RkZGU4MWJmOWVkZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcApAQCAtMjcxLDggKzI3MSw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coQ2Fw
dHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9ECiAgICAgICAg
IH07CiAKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGRvY3VtZW50LnNldERldmljZUlESGFzaFNh
bHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLQogICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShkb2N1bWVudC5sb2dnZXIo
KSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwg
V1RGTW92ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOwog
CiAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRmYmEyMDI3MDMz
YzhlNmYyMjU3Y2Q1YWI1YzE5MTk4NjFkY2M4YzYuLjQ2MTVmNDY0NzFlM2U2YmM4YjUwNTU1ZDM2
OTY1MjE3MzJlZmYwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMTgsNiArMTAxOCw3IEBACiAJCTNGQkM0QUYzMTg5ODgx
NTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkM0QUYxMTg5ODgxNTYwMDQ2
RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLzsgfTsKIAkJM0ZCQzRB
RjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzRkY4MTNBNzFEQkE4NjQw
MDA5QkYwMDEgLyogUG9pbnRlckxvY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0ZDNDM0RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9p
bnRlckxvY2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAwQzgwMjNGNzQ1ODMwMDFC
QzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwMEM3RTIzRjczOTgyMDAxQkMzM0IgLyogV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC03NDE5LDYgKzc0MjAsNyBAQAogCQkzRjgwMjAzNDFFOUUzODFE
MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4IC8qIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQx
QjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxNDQ4LDYgKzIxNDUwLDcgQEAKIAkJCQk3MjRFRTU0RjFEQzdGMjVC
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJQkNGNDhD
RTYxMzcwRDExNDAwNEU4N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLywKIAkJCQlDRURB
MTJENjE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCisJCQkJ
NDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLywKIAkJ
CQlDOUQ0NjcwNDFFNjBDM0VCMDA4MTk1RkIgLyogQXV0b3BsYXlFdmVudC5oICovLAogCQkJCTQ1
ODMwRDRCMTY3OUI0RjgwMEFDRjhDMyAvKiBBdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJNDU4MzBENEMxNjc5QjRGODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVyLmggKi8s
CkBAIC0zMDQyNSw2ICszMDQyOCw3IEBACiAJCQkJRkQzMTYwMTYxMkIwMjY3NjAwQzFBMzU5IC8q
IEF1ZGlvTm9kZUlucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNzE0NjdCMzI0QUJBRUYyMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMTgx
MkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvTm9kZU91dHB1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDFEMTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb1BhcmFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDM1OTE5MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRp
bWVsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyog
QXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggOTA5NmYyNjQ2NzkxMzBhNzg0YTUxYTlhZGM4YmFkZWJlYzdjN2FjNC4uZmNiMmJj
NzhhM2QzYjUzOGQ0MmNiNGExZjhhN2M2MDZiYjBkZjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0xODAzLDYgKzE4MDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6Zm9yRWFjaE1lZGlhRWxl
bWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmMKICAgICAg
ICAgZnVuY3Rpb24oZWxlbWVudCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmZvckVhY2hBdWRpb1By
b2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYgZnVuY3Rpb24pCit7
CisgICAgbV9hdWRpb1Byb2R1Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBEb2N1
bWVudDo6c3RvcEFsbE1lZGlhUGxheWJhY2soKQogewogICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXJJZkV4aXN0cygpKQpAQCAtNzk1NSwxMyArNzk2MCwyMyBAQCB2b2lkIERvY3VtZW50Ojpt
ZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKQogICAgIH0pOwogfQogCi12b2lkIERvY3Vt
ZW50OjpzZXREZXZpY2VJREhhc2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKKyNlbmRpZgorCitT
dHJpbmcgRG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKIHsKLSAg
ICBBU1NFUlQobV9pZEhhc2hTYWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7
Ci0gICAgbV9pZEhhc2hTYWx0ID0gc2FsdDsKKyAgICByZXR1cm4gaXNUb3BEb2N1bWVudCgpID8g
bV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA6IHRvcERvY3VtZW50KCkuZGVmYXVsdEF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKIH0KIAotI2VuZGlmCit2b2lkIERvY3VtZW50OjpzZXREZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZChTdHJpbmcmJiBkZXZpY2VJZCkKK3sKKyAgICBBU1NFUlQoaXNU
b3BEb2N1bWVudCgpKTsKKyAgICBpZiAobV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA9PSBk
ZXZpY2VJZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
SWQgPSBXVEZNb3ZlKGRldmljZUlkKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpKQorICAgICAgICBwYWdlLT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggNWFiYzI0ZWJiOTgxZTU2NGYwN2FkZWI4ZTVmYzExNTgxMzFjNTM1
NS4uMmQwZTZlYTdlZDE0YjFjOWM4NWE0NzYwZjdiZjk5ZWI2NDVlODA2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTE0MjUsMTIgKzE0MjUsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIHsgbV9o
YXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhhc0hhZENh
cHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJp
bmcmKTsKLSAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1faWRI
YXNoU2FsdDsgfQogICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogICAgIHZvaWQgbWVkaWFT
dHJlYW1DYXB0dXJlU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEF1ZGlvT3V0
cHV0RGV2aWNlSWQoU3RyaW5nJiYpOworCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBm
b3IgdGhpcyBmdW5jdGlvbmFsaXR5LgogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgcHJvdmlkZSBhIHR3by1sZXZlbCBzZXR0aW5n
OgpAQCAtMTUxMCw2ICsxNTExLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2
b2lkIGZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+Jik7CiAjZW5kaWYKKyAgICB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiAgICAgYm9vbCBoYW5kbGluZ1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hh
bmRsaW5nVG91Y2hFdmVudDsgfQpAQCAtMjA3Niw3ICsyMDc4LDYgQEAgcHJpdmF0ZToKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9t
ZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHM7Ci0gICAgU3RyaW5nIG1faWRIYXNoU2FsdDsK
ICAgICBib29sIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAKQEAgLTIxNDEsNiArMjE0Miw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRp
dG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9u
OworCisgICAgU3RyaW5nIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCiBFbGVt
ZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0
MjNjNmZiMGE2ZmEwODY5NmIyMS4uNzQ5ZTMxMGMxYjRjYzEwNjU0NTRmM2E5Y2M0M2YyN2M5OTNl
ZjNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2
ICs3MSw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlh
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAi
TWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1l
ZGlhRXJyb3IuaCIKICNpbmNsdWRlICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2
ICs3OSw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0
Myw2ICsyODQ1LDU1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVk
aWFUaW1lJiB0aW1lKQogICAgIHNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJh
bmNlLCBNZWRpYVRpbWU6Onplcm9UaW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKK30KKwordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlk
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJl
cXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5k
b3cgPyBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRv
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIW1f
YXVkaW9PdXRwdXREZXZpY2VJZC5pc0VtcHR5KCkgJiYgbV9wbGF5ZXIpIHsKKyAgICAgICAgICAg
IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IHsgfTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYXVkaW9PdXRwdXREZXZp
Y2VJZCA9IG1lZGlhRGV2aWNlcy0+YXVkaW9PdXRwdXREZXZpY2VJZEZyb21EZXZpY2VJZChkZXZp
Y2VJZCk7CisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQgIT0gbV9hdWRpb091
dHB1dERldmljZUlkKSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUo
YXVkaW9PdXRwdXREZXZpY2VJZCk7CisgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgICAg
IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICB9CisgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7Cit9CisjZW5kaWYKKworU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9hdWRpb091dHB1dERldmlj
ZUlkLmlzRW1wdHkoKSA/IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA6IGRvY3VtZW50KCkuZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
KGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IHRpbWUpOwpAQCAtNzY5OCw2ICs3NzQ5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVy
IHx8ICFtX2F1ZGlvT3V0cHV0RGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiBkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlVm9sdW1lKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQoKS5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IGFiMmIwMDExYjU5NDM5ZWE1MWU4YWEzZTIwOGZlMDEyYzYzZDEyZWQuLjdkODMyNjcw
ZjZlNGQ0MDRkZmY3ZGIwNTJmYWQxMTJlYThjZGEzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC0yNjgsNiArMjY4LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
bWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0
ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyNlbmRpZgor
CiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJpbmdQb2xpY3k7CiAgICAg
dm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsKICAgICBXRUJDT1JFX0VY
UE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29uc3Q7CkBAIC02MDQsNiAr
NjA5LDggQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3Qg
ZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsgfQogCiAgICAgYm9vbCBtZWRpYUNv
bnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29u
dHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0TWVkaWFDb250cm9s
c0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtODgyLDYgKzg4OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2
b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdl
KEF1ZGlvU2Vzc2lvbiopIGZpbmFsOwpAQCAtMTE5Nyw2ICsxMjA1LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhh
dmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisKKyAgICBT
dHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCmluZGV4IGI0MmQwZWEz
NzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLmUyYjQzNjIzMGVhNTE2NmQwY2Q3MjIw
ZDUzY2QxNmU2NWJjOTNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAgdW5kZWZpbmVkIHBhdXNlKCk7
CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPVBlckVsZW1lbnRT
cGVha2VyU2VsZWN0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0
RGV2aWNlOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9
UGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXREZXZp
Y2VdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2lua0lkOworICAgIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9UGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rp
b25dIFByb21pc2U8dW5kZWZpbmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2
aWNlSWQpOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9
UGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9c2V0QXVkaW9PdXRwdXRE
ZXZpY2VdIFByb21pc2U8dW5kZWZpbmVkPiBzZXRTaW5rSWQoRE9NU3RyaW5nIGRldmljZUlkKTsK
KwogICAgIC8vIGNvbnRyb2xzCiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRl
IGJvb2xlYW4gY29udHJvbHM7CiAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJlZDUz
ZWE2OWY3MjJjZDQ1YjdhZDguLmVjYmEyZjUyMDliY2E0YmM3OTZhZmNkNmNhZTc4ZTBkZDE4YTcx
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCkBAIC02MTMsNyArNjE0LDggQEAgUGFnZUNvbmZp
Z3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0
eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVBy
b2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50PigpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJv
dmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4oKQog
ICAgIH07CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1
bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091
dHB1dFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1ZGlvT3V0cHV0UHJvdmlkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZGVhMTBjYzg5OGU0MTNiNzM0NzNkNzBmYmI2NmEwYzQ5MWIwMDJlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3ZpZGVy
LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlv
T3V0cHV0UHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIEF1ZGlvT3V0cHV0UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+QXVkaW9P
dXRwdXRQcm92aWRlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0QXVk
aW9PdXRwdXREZXZpY2VDaGFuZ2VkKFBhZ2UmKTsKK307CisKK2lubGluZSB2b2lkIEF1ZGlvT3V0
cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYpCit7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAxYzUxZWU3Njhl
ZmQ2MmE2N2QwODY2N2VhZTgwMWQ2Njg5My4uZDFkMjFlZmRjN2NjZDQ1ZTAxNDMyOTIwZjhjODcz
ZjJkNTcwNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTc5LDYgKzc5
LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdW5zaWduZWQgTXV0ZWRTdGF0ZUZsYWdzOwogCiAg
ICAgdmlydHVhbCB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9OwogCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFQcm9kdWNlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IGEwYTc3ZDI4ODM2NDgyMWM1MTBiMmQ1MTJiYTcwZTcyOWMyMWI2ZDUuLjA3YmE5
OGE4NTQzMmM0ZDE3NzI5NWNiMzk3MmQ0MzdhOWZhZTI4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgogI2lu
Y2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIK
ICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgpAQCAtMjU1LDYgKzI1Niw3IEBAIFBhZ2U6
OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fc3Bl
ZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhl
c2lzQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1v
dmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCisgICAgLCBtX2F1
ZGlvT3V0cHV0UHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYXVkaW9PdXRwdXRQ
cm92aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xsRWxh
c3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKQEAgLTIwNjYsNiArMjA2OCwxMSBAQCB2
b2lkIFBhZ2U6OnJlc3VtZUFsbE1lZGlhQnVmZmVyaW5nKCkKICNlbmRpZgogfQogCit2b2lkIFBh
Z2U6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fYXVkaW9PdXRw
dXRQcm92aWRlci0+ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgqdGhpcyk7Cit9CisK
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAogdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2ZW50
KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKQEAgLTMxMjYsNiArMzEzMywxMyBAQCB2b2lkIFBh
Z2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEF1ZGlvUHJv
ZHVjZXIoY29uc3QgRnVuY3Rpb248dm9pZChNZWRpYVByb2R1Y2VyJik+JiBmdW5jdG9yKQorewor
ICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBk
b2N1bWVudC5mb3JFYWNoQXVkaW9Qcm9kdWNlcihmdW5jdG9yKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBQYWdlOjphcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogewogI2lmIEVOQUJMRShWSURF
TykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggMGExZGQ2YjRiM2Y1NTVkMDk1YTBkY2VlMzNhYTE1ZTAwODNh
YzcxZS4uOTgzYjY1ZTNiODY2ZjliNTE3ZWY1NDIxZjQzMzVkY2IzNGRkOTA3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwogY2xh
c3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CitjbGFzcyBBdWRpb091dHB1dFBy
b3ZpZGVyOwogY2xhc3MgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOwogY2xhc3MgQmFja0Zvcndh
cmRDb250cm9sbGVyOwogY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC02NTAsNiArNjUx
LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQWxsTWVkaWFCdWZm
ZXJpbmcoKTsKICAgICBib29sIG1lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQ7IH0KIAorICAgIHZvaWQgZGVmYXVsdEF1
ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxvYWRD
bGllbnQoYm9vbCBoYXMpIHsgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAgICBi
b29sIGhhc1Jlc291cmNlTG9hZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3VyY2VM
b2FkQ2xpZW50OyB9CiAKQEAgLTc2Miw3ICs3NjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yRWFjaERvY3VtZW50KGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVudChj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOworICAgIHZvaWQg
Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQm
KT4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0
IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAgICAgYm9vbCBzaG91bGREaXNh
YmxlQ29yc0ZvclJlcXVlc3RUbyhjb25zdCBVUkwmKSBjb25zdDsKIApAQCAtODU3LDYgKzg2MSw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxBdWRpb091dHB1dFBy
b3ZpZGVyPiBtX2F1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1By
b3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250
cm9sbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4
IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjI5NjRjMWY5NjlkZmUy
OWY4ZGY0ZThjYmI5ZjMwNDJlYzAyOTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbHRlcm5hdGl2
ZVRleHRDbGllbnQuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2lu
Y2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVu
dC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29va2ll
SmFyLmgiCkBAIC01OCw3ICs1OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNv
bmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRl
cj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldl
YlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJv
dmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENv
b2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYg
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYm
IG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJh
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYg
ZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1
ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3Rv
cmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIsIFVu
aXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmIGF1ZGlvT3V0cHV0UHJvdmlkZXIpCiAgICAg
OiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9y
Q2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpA
QCAtNjksNiArNzAsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgbG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAs
IGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAg
ICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkK
KyAgICAsIGF1ZGlvT3V0cHV0UHJvdmlkZXIoV1RGTW92ZShhdWRpb091dHB1dFByb3ZpZGVyKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4
ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmE0MmRlNmM0MGQ1NmZiOWI4NWY3
Y2M4ZjZjMzJkMjhiNDdiNWQ1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFzcyBB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQ7CitjbGFzcyBBdWRpb091dHB1dFByb3ZpZGVy
OwogY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsK
IGNsYXNzIENvb2tpZUphcjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lz
Q2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVu
aXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVm
PExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxC
YWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNz
VHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVS
ZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29u
ZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVm
PFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxD
YWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29v
a2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYs
IFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+
UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJh
dGlvbiYmKTsKIApAQCAtMTI5LDYgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZlY3Rv
cjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBVbmlx
dWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7CisgICAg
VW5pcXVlUmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+IGF1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAg
Ym9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5ldHdv
cmsgeyB0cnVlIH07CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNh
dGlvbiB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBmYmYwOGM0Zjkz
MjgzMGY0MTg3NjRjZDI4MjJjMDQzZWU1ZGNkYTc3Li5mMzEyY2Q4MjNmMDZlMDdlMjU4N2I0YTIw
N2NiMDBhZTViMzllZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjYsNiAr
ODI2LDkgQEAgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5hYmxl
ZDoKICAgaW5pdGlhbDogZmFsc2UKIAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVk
OgorICBpbml0aWFsOiBmYWxzZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0
b3J5OgogICB0eXBlOiBTdHJpbmcKICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
aW5kZXggNjNjZjNjY2VlODExMmUxNTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4OTk3
ZjcyNmNmYjE3YTYyNmJkOWU5NDY1ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDExIEBA
IHZvaWQgTWVkaWFQbGF5ZXI6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1Jh
bmdlTW9kZSBtb2RlKQogICAgIG1fcHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9k
ZShtb2RlKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KCkKK3sKKyAgICBtX3ByaXZhdGUtPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRp
YVBsYXllckxvZ2dlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAppbmRleCBlYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2Fm
NGYzLi5kNDY3MzFhMmJhZGY4ODU3MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2ICsy
NzMsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFsIFN0
cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmly
dHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4g
eyB9OyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZv
aWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2
aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEsNiAr
NjM0LDEwIEBAIHB1YmxpYzoKICAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7IH0K
ICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7
CiAKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmluZyBh
dWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVy
Q2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBwdWJs
aWM6CiB9OwogCiAKK2lubGluZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNl
SWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1
dERldmljZUlkKCkgOiBTdHJpbmcgeyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVy
OjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2Ns
aWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmluZyB7
IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURF
TykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKaW5kZXggNjcwYzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1OTc4
ZC4uODEyNTMzMDI3NmRkNTQ0ZTFmY2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
QEAgLTI4OSw2ICsyODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9y
ZUludHJpbnNpY1NpemUoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNl
dFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKaW5kZXggYWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3OGJi
ZDNlMy4uODVjZTgxZDEwM2I4NWQxZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRT
aG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9pZCBh
dWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVSTEFz
c2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KaW5kZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4MjMw
MDJiNTYxNS4uOGY0ZTQwM2NmYjExZWRkYTk2MDE2NWJhZjliZTY1NWZmODhlOTYzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCkBAIC05NTMsNiArOTUzLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2UGxh
eWVySXRlbSkKICAgICAgICAgc2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsK
IAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBwbGF5
ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFhdWRpb091dHB1
dERldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0
RGV2aWNlVW5pcXVlSUQgPSBhdWRpb091dHB1dERldmljZUlkOworI2VuZGlmCisKICAgICBzZXRE
ZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMsNiArMzI5OSwxNSBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgaWYgKCFtX2F2UGxheWVyIHx8ICFwbGF5ZXIoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IHBsYXll
cigpLT5hdWRpb091dHB1dERldmljZUlkKCk7CisjZW5kaWYKK30KKwogTlNBcnJheSogYXNzZXRN
ZXRhZGF0YUtleU5hbWVzKCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJh
eSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAw
OWJmNTU3NDg0MzMxZDU4MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZkZjk3
MDJmMmY5NTE4YWQ2OWRkODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAt
MjU0LDYgKzI1NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRhc2tB
dE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwor
ICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIGVu
c3VyZUxheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQppbmRleCA4Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5Li43
YjEwZGI0YzlmN2IzM2JjYTUyNDkxYjk2NDllNmYyZGUwZGFmMmUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCkBAIC0xMTY2LDYgKzExNjYsMTIgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VU
X0dVQVJEU19FTkQKICAgICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZvbHVt
ZSgpXTsKICAgICBbYXVkaW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToobV9w
bGF5ZXItPnByZXNlcnZlc1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3BlY3Ry
YWwgOiBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUlk
T3ZlcnJpZGUoKTsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBhdWRpb1Jl
bmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyNlbmRpZgorCiAg
ICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXplciBhZGRSZW5kZXJlcjphdWRpb1JlbmRl
cmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CkBAIC0xMjc2LDYg
KzEyODIsMTcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbV9wbGF5ZXIp
CisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0
cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGtleSA6IG1fc2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlck1hcC5rZXlzKCkpCisgICAgICAgICgoX19icmlkZ2UgQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyICopa2V5LmdldCgpKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNl
SWQ7CisjZW5kaWYKK30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVkaWFT
b3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRiMjhm
YWMzOWNiMWJmYmU5OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0MjkwMDAy
NTBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRlZDsg
fQogCiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1Bv
bGljeSkgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5h
bDsKIAogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7CiAg
ICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5k
ZXggMmRiNTBiYjg5NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAzNi4uMGZhYjhiMWRlNDBi
NjMzY2JiNzYwMWZkZjY4NzQ2OTgyNjQzZTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQpAQCAtODY3LDcgKzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp1cGRhdGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVj
dG9yIGN1cnJlbnRUcmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAKLSAg
ICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8gZGV2
aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgYXV0
byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAgIHsK
ICAgICAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJlbW92
ZToKQEAgLTg4NCw2ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZShtX3Zv
bHVtZSk7CiAgICAgICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAgICAg
IHRyYWNrLnNldEVuYWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRyYWNr
LnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlzTnVs
bCgpKQorICAgICAgICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNl
SWQpOworCiAgICAgICAgICAgICBpZiAocGxheWluZygpKQogICAgICAgICAgICAgICAgIHRyYWNr
LnBsYXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAxNyw2ICsxMDIxLDE1IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xpY3ko
TWVkaWFQbGF5ZXI6OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5m
bHVzaEFuZFJlbW92ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIGlmICghbV9w
bGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1
ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX2F1ZGlv
VHJhY2tNYXAudmFsdWVzKCkpCisgICAgICAgIGF1ZGlvVHJhY2stPnNldEF1ZGlvT3V0cHV0RGV2
aWNlSWQoZGV2aWNlSWQpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlv
bikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmgKaW5kZXggNjQ4OWY5ZGE3YzU2MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAwYi4u
NDhlNWYzMjcxYWI0OGM3YTI3OTYwNWEzNTE0YWI2OWQyYThkYTVjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsK
IAorICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYp
OworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3Qg
TG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEwIEBAIGlubGlu
ZSBjb25zdCBjaGFyKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NOYW1l
KCkgY29uc3QKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKQoreworfQorCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1ZjkwZDQ5OWRlMDM4MDk3OTZh
YzljNWFjLi42YmUwYTE4ZjMwNTg2M2NhZWZiZTg5ZWIxNmU2OGI4ZGU3MjQ3NGY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcsNiArOTcsMTEgQEAgdm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQog
ICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKQorewor
ICAgIG1fcmVuZGVyZXItPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworfQorCiBm
bG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewogICAg
IHJldHVybiBtX3JlbmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uaAppbmRleCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUzLi45
M2E0MDY1M2MxN2RjNTdmOGQ4Y2QyODAyOTc2OTk5ZTk0OGNiMmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+QXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGlu
dCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2
aWNlSWQoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3Ry
ZWFtVHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCA3NjIz
MmI3OWQ5ZDA3ZWIxYjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li4zZDM5NDAxNmYxYjAyNTc5YmI0
ZDJjZWQ0N2JiNTIxMTQ0NjY4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC02NywxMSArNjcsMTggQEAgdm9pZCBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQog
ICAgICAgICBtX2RhdGFTb3VyY2UtPnNldFZvbHVtZSh2b2x1bWUpOwogfQogCit2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29u
c3QgU3RyaW5nJiBkZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNyZWF0ZSBh
IHVuaXQgZm9yIG91cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVmYXVsdCB1bml0IGlmIGRldmlj
ZUlkIGlzIG1hdGNoaW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2luZ2xldG9uKCkuc2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJZCk7CisgICAgbV9zaG91
bGRSZXNldCA9IHRydWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlw
ZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKLSAgICBp
ZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwg
Km1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CisgICAg
aWYgKCFtX2RhdGFTb3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9kYXRhU291cmNlLT5pbnB1
dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRl
c2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIsICp0aGlzKTsKIAogICAg
ICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24oZGVzY3JpcHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAgdm9pZCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNh
bXBsZVRpbWUKICAgICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2luZ2xldG9uKCkuYWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7CiAgICAgICAgIH0pOwog
ICAgICAgICBtX2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBtX3No
b3VsZFJlc2V0ID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxl
cyhzYW1wbGVUaW1lLCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4IDUxYWM0MzM3YzRlMDM1
OGZkZGNiNGVhODU0N2YyYWJiMGJjMGZhODcuLjUwMjU1NjE2NzRkMDVlYTBlOGRlMGRlODVlNDJi
NWVjNDQ1NjE3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuaApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3Ao
KSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxv
YXQpIGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcm
KSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+
IG1fb3V0cHV0RGVzY3JpcHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4g
bV9kYXRhU291cmNlOworICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3Bw
CmluZGV4IGRhYzc0YTEyNTVjNWU1NGE1MjM0MzZmZTY5YThlNDQ0YzJlNzBiMTUuLmQyNzVlY2U3
ZjI2MTBkYmIyZWRkNTViMDgzYzg0MTZmMGM1MGU4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0zNiw2ICszNiwxMSBAQAog
I2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQXVkaW9Ub29sYm94U1BJLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1
cmVEZXZpY2UuaCIKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgor
I2VuZGlmCisKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTEsNiArNTYsMjIgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0Ojp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkKICAgICBzdG9w
KCk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRBdWRp
b091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7CisgICAgYXV0byBkZXZp
Y2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlv
RGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CisgICAgaWYgKCFkZXZpY2UgfHwgbV9kZXZpY2VJRCA9
PSBkZXZpY2UtPmRldmljZUlEKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgc2hvdWxk
UmVzdGFydCA9IG1faXNTdGFydGVkOworICAgIGlmIChtX2lzU3RhcnRlZCkKKyAgICAgICAgc3Rv
cCgpOworCisgICAgbV9kZXZpY2VJRCA9IGRldmljZS0+ZGV2aWNlSUQoKTsKKworICAgIGlmIChz
aG91bGRSZXN0YXJ0KQorICAgICAgICBzdGFydCgpOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+
JiYgc291cmNlKQogewogICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlIik7CkBAIC0xNjEsNiArMTgyLDE2IEBAIHZvaWQg
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRl
ZCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fZGV2aWNl
SUQpIHsKKyAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQs
IGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVf
R2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgaWYg
KGVycm9yKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0
IHVuaXQgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2aWNlSUQsIChp
bnQpZXJyb3IsIChjaGFyKikmZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfQorI2VuZGlmCisKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0g
eyBpbnB1dFByb2MsIG51bGxwdHIgfTsKICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5
KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAg
IGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyVW5pdC5oCmluZGV4IDQ0MDc2YTU2ZWM5NzRmOWJiODczNDJiZmM3NDgzMGM4NTljNzcyZjYu
LjFiMjIzN2Y4ZDM4ZGFlYjFiOTdkYTllZjNlNjQxMzM2Y2Y5ZmM2ZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTUxLDYgKzUxLDgg
QEAgcHVibGljOgogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKIAorICAgIHZv
aWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQgYWRk
U291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291
cmNlKEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYpOwogCkBAIC02OCw2ICs3MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9OwogICAgIExv
Y2sgbV9zb3VyY2VzTG9jazsKICAgICBib29sIG1faXNTdGFydGVkIHsgZmFsc2UgfTsKKyAgICB1
aW50MzJfdCBtX2RldmljZUlEIHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggYzAyNTgxY2E5NjMzOTlkM2UyMWFjMzY5ZTAx
M2RlZDRmYzI1NjhiZi4uMzg2MDZhYmVmZWM3OTVlNWQwODZmYWZhOWMyYTQ4OTNjNzE3ZjY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zODYs
NiArMzg2LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6dmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxp
c3RJbmRleCwgYm9vbCBmaXJlT25DaGFuZ2UpCiAgICAgaWYgKCZkb2N1bWVudCgpICE9IGRvY3Vt
ZW50KCkuZnJhbWUoKS0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgVXNlckdl
c3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUsICZk
b2N1bWVudCgpKTsKKwogICAgIHNlbGVjdEVsZW1lbnQoKS5vcHRpb25TZWxlY3RlZEJ5VXNlcihz
ZWxlY3RFbGVtZW50KCkubGlzdFRvT3B0aW9uSW5kZXgobGlzdEluZGV4KSwgZmlyZU9uQ2hhbmdl
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRl
eCAxZmM1NmQ4MjFiYmQ5M2ZjODk5ZjI4NTNhMTE1OTFhNTIwZWM5OGE3Li5kZTg1MjRkNGFiYjQx
YTMxMmQyMmRlOTlmMjg4ZmI4NDhkNDg1ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcApAQCAtMTM2LDQgKzEzNiw2IEBAIHZvaWQgUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUg
dGltZSwKIAogfQogCisjdW5kZWYgTUVTU0FHRV9DSEVDSworCiAjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwCmluZGV4IDYwMzRjMmQ1ZjhkMjU4YmFlNDVlYTUzNWE5NTYwNDFhNzY1NzQ2MWYu
LjBhYjc4NDczMDk1YzcxMmIwNDFlZTVmMjQ5ZDI4ODg0OWE1ODk5YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNw
cApAQCAtMTM3LDQgKzEzNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29y
ZGluZygpCiAKIH0KIAorI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKwogI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYm
IEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZjM1NmFlMjcwYTE5MjNi
YzczMjQ1OGM2YTFlZTU1OTFlZjk5YzQ3Yy4uZDFjYTRiNTZhZmNiYjU1YTBiYTc3NmIzYTFjYzIw
MjUxNWNhNTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xNTQsNiArMTU0LDE0IEBAIEV4cG9zZVNwZWFrZXJz
RW5hYmxlZDoKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICBjb25kaXRpb246IEVOQUJMRShX
RUJfUlRDKQogCitQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJv
b2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHBl
ciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiQWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2Vs
ZWN0aW9uIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIGNvbmRpdGlvbjogRU5BQkxFKFdF
Ql9SVEMpCisKIFZQOURlY29kZXJFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1
ZTogZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM4ODRmMGVkZThi
OWRmYWIzMzJjODQzZGU0Yjg1YjExNjEyMGIwYjkuLmYzMzFjZjBlODBhMTIyNmIzZmIwNGZjNGQ0
MjVhMjg1NWMyMGEyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTU1LDYgKzU1NSw3IEBAIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRp
YS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYzI2NmMz
YmJlMGQ2MTc5YzM5YWVhNmRhMzVjMzdmN2E2NDJjOGM5NC4uY2Y0NWFkYTY0NTNlNmIxOWE1MzIx
MDRkMDgwZWE0YzFlMjQ0MzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtNjA1LDcgKzYwNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZlTWljcm9waG9uZURl
dmljZShjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGRlCiAgICAgfSk7CiB9
CiAKLVZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVs
cywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KQorVmVjdG9yPENhcHR1cmVEZXZpY2U+
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWRE
ZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzKQogewogICAgIHN0YXRpYyBjb25zdCBp
bnQgZGVmYXVsdE1heGltdW1DYW1lcmFDb3VudCA9IDE7CiAgICAgc3RhdGljIGNvbnN0IGludCBk
ZWZhdWx0TWF4aW11bU1pY3JvcGhvbmVDb3VudCA9IDE7CkBAIC02MzIsMTYgKzYzMiw3IEBAIFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBhdXRvIGxhYmVsID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgYXV0byBp
ZCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGF1dG8gZ3JvdXBJZCA9IGVtcHR5U3RyaW5nKCk7
Ci0gICAgICAgIGlmIChyZXZlYWxJZHNBbmRMYWJlbHMpIHsKLSAgICAgICAgICAgIGxhYmVsID0g
ZGV2aWNlLmxhYmVsKCk7Ci0gICAgICAgICAgICBpZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UucGVyc2lzdGVudElkKCks
IGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICAgICAgZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UuZ3JvdXBJ
ZCgpLCBkZXZpY2VJREhhc2hTYWx0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZpbHRlcmVkRGV2
aWNlcy5hcHBlbmQoQ2FwdHVyZURldmljZShpZCwgZGV2aWNlLnR5cGUoKSwgbGFiZWwsIGdyb3Vw
SWQpKTsKKyAgICAgICAgZmlsdGVyZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNBbmRMYWJlbHMg
PyBkZXZpY2UgOiBDYXB0dXJlRGV2aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9LCB7IH0pKTsK
ICAgICB9CiAKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9ICFyZXZlYWxJZHNBbmRMYWJl
bHM7CkBAIC02OTksNyArNjkwLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoRnJhbWUKICAgICAgICAg
ICAgIGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzID0gb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB8
fCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKTsKIAogICAgICAgICAg
ICAgY2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBk
ZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0FuZExhYmVscyks
IGRldmljZUlESGFzaFNhbHQpOwogICAgICAgICB9KTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaAppbmRleCBkZjlmZGQ1YzE1M2RjY2Y3Zjc2OWIxYTQ4YjdiMWM2YTZm
MWRjMTM3Li45NThhMTZkMDVlYzI0MTA3MGM2NzdjNDFiMTFiMjQ5OTEzZGU3YTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbik7CiAKLSAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRl
cmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0KTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscyk7CiAKICAgICB2b2lk
IHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpOwogICAgIHZvaWQgcHJvY2Vzc1Vz
ZXJNZWRpYVBlcm1pc3Npb25JbnZhbGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGludmFsaWRDb25z
dHJhaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDNmMmVjZWNlOWNiOGNkNGQ5NzhmOWYwNjBkNzgwNjNjODliZGJlYjkuLjE4NWUx
MjlmYWQ5ZTlhMmRkN2ZhZjQ2ZjIxMmMxZTRlNThjMDFkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM3Myw2ICszMzczLDggQEAK
IAkJM0Y5MTVDMEUxRjU2NERFRDAwMTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzRjkxNUMwRjFGNTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7
IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQjA4RTQyMUY2MEIyNDAwMDVFNTMxMiAv
KiBpT1MueGNhc3NldHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBmb2xkZXIuYXNzZXRjYXRhbG9nOyBwYXRoID0gaU9TLnhjYXNzZXRzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwRUM0MzI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9P
dXRwdXRQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dWRpb091dHB1dFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MEVDNDQyNTEzNTc5RjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9PdXRwdXRQcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTAyNEZDMDIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMDI0RkMxMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAzRkJBMTIwNjFCREI3MDBDMkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2hlY2tlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTUyMSw2ICs1NTIzLDggQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQlD
REE5NTkzOTI0MTJCMTc1MDA5MTBFRUYgLyogaW9zICovLAorCQkJCTQxMDBFQzQzMjUxMzU3OUYw
MDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTAwRUM0NDI1MTM1
NzlGMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5oICovLAogCQkJCTA3MUJDNTc5MjND
OTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcx
QkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJ
CQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAgKi8sCkBAIC02MTYzLDEwICs2MTY3LDEwIEBACiAJCQkJQkM1NzQ0RUUxMjYzOEZCMzAwNkYw
RjEyIC8qIFdlYlBvcHVwSXRlbS5oICovLAogCQkJCTdDREU3MzlGMUY5REEzN0EwMDM5MDMxMiAv
KiBXZWJQcmVmZXJlbmNlcy55YW1sICovLAogCQkJCTdDMkUwQkU1MjUxMkNBRkUwMDVGM0M4NyAv
KiBXZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgKi8sCi0JCQkJN0MyRTBCRTMyNTEyQzg0NjAwNUYz
Qzg3IC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgKi8sCi0JCQkJN0MyRTBCRTEy
NTEyQzVDQjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCAqLywKIAkJCQkz
MTEwRUQ2MjIwMTI3Q0IzMDAzNTBCMjAgLyogV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNw
cCAqLywKIAkJCQk3Q0RFNzNBMDFGOURBMzdCMDAzOTAzMTIgLyogV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLmggKi8sCisJCQkJN0MyRTBCRTMyNTEyQzg0NjAwNUYzQzg3IC8qIFdlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgKi8sCisJCQkJN0MyRTBCRTEyNTEyQzVDQjAwNUYzQzg3
IC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCAqLywKIAkJCQlCQ0Q1OThBQjExMkI3RkRG
MDBFQzhDMjMgLyogV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgKi8sCiAJCQkJQkNENTk4QUExMTJC
N0ZERjAwRUM4QzIzIC8qIFdlYlByZWZlcmVuY2VzU3RvcmUuaCAqLywKIAkJCQlCQzMwNjgyMzEy
NUE2Qjk0MDBFNzEyNzggLyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvT3V0cHV0
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091
dHB1dFByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjFmNDI5ZTA2YzgwMDhhMTY0ZDVjYTZjYjQz
OGE1OTM4YWY0NmFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIEF1ZGlvT3V0cHV0UHJvdmlkZXI6OmRl
ZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYgcGFnZSkKK3sKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgcGFnZS5mb3JFYWNoQXVkaW9Qcm9kdWNlcihbXShhdXRvJiBhdWRpb1Byb2R1
Y2VyKSB7CisgICAgICAgIGF1ZGlvUHJvZHVjZXIuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hh
bmdlZCgpOworICAgIH0pOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2IzYzk5MWI1MWNmOWIxNzRhYzY4YThjMzdkMDgwZGJlMjQ5N2RjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92
aWRlci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9PdXRwdXRQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgQXVkaW9PdXRwdXRQcm92aWRlciA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb091
dHB1dFByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBBdWRpb091dHB1dFByb3ZpZGVyKCkgPSBkZWZh
dWx0OworCitwcml2YXRlOgorICAgIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdl
ZChXZWJDb3JlOjpQYWdlJikgZmluYWw7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZmMGRiNGVkMTQ4YzBmNTIxYzY3YTdjNDlh
MWU4MzM2NzRlOTBiNDQuLjhkODg0MjRiMzFlMjcyZWFmZDBkYTE0MTIyOTY2MTMxOTRhODcwNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUdlb21l
dHJ5LmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhLmgiCkBAIC00OTksNyArNTAwLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUuY29weVJlZigp
KSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKKyAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VV
bmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZU92ZXJsYXkuaAppbmRleCAxZTk5MzcxNDlhZmYyYjFiMDRkN2M1ZWNjYjJjNmQ5
OGJkNzNjZGIxLi5hM2U2ODYyNmJiOWI3NjlmODYwOTY5NWIwOTdiZTA3NTdjMmEzYjE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
IAogT0JKQ19DTEFTUyBEREFjdGlvbkNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggOTg0ZmJiZjRjNzgzNDRkNWY4MzdiOWFhNWM5YWU3OGEzNWZkMWRiZi4uNWY5YzJhYWQwOTE5
NjJlMzU5NmVmODkzYjM1OWMxZDFkNjg0YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApA
QCAtMzMsOSArMzMsMTEgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgog
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNv
bnN0cmFpbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9C
dWZmZXJMaXN0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAzNzU0MDhjMzkwMjQ1MTFkMmZi
YTUzNjdlZDU4ZDE3NTdkYWExNTg2Li4xYzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcw
ZTliNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMwLDYgKzMwLDExIEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNz
IENvbm5lY3Rpb247Cit9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCBhNDI1Y2NmMWM1YzllNzc5OTc0NGM1YmU1MzkzNzRkZmY4MjdiNjllLi41NmMxYTIx
M2Q4NjQ0ZTQwOGMxZjE4ZGVhYTI3NGZmOTYwOTViOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVU
ZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5o
PgpAQCAtMTYwMyw3ICsxNjA0LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJG
cmFtZUxvYWRlckNsaWVudD4oKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJvdmlkZXI+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6QXVk
aW9PdXRwdXRQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChz
ZWxmKTsKQEAgLTE4ODMsNyArMTg4NSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVH
YW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6
Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
OkF1ZGlvT3V0cHV0UHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkK
</data>
<flag name="commit-queue"
          id="424604"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409027</attachid>
            <date>2020-09-17 06:16:03 -0700</date>
            <delta_ts>2020-09-17 06:54:13 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917151601.patch</filename>
            <type>text/plain</type>
            <size>77739</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3Njg5ZDA2MTdlOTI4
N2Q4ZjEzYzg1Yjg5N2ExMGU2MDMwNDRiMC4uMjZkNWQ1NTk3MTgyYmFmMmEwNGVkNWJmNTIwMjRm
YzE1M2ZiZTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEZvciBNZWRpYVN0cmVhbVRyYWNrLCB3ZSBy
ZXNldCB0aGUgQXVkaW9TYW1wbGVEYXRhU291cmNlIHdoZW4gc3dpdGNoaW5nIG9mIGF1ZGlvIGRl
dmljZSBvdXRwdXQuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3ZSBkbyBub3QgZW5kIHVwIHJl
bmRlcmluZyBhdWRpbyB3aXRoIHNvbWUgZGVsYXkgb24gdGhlIG5ldyBkZXZpY2UuCisKKyAgICAg
ICAgQWxsIHRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgYmFzZWQgb24gdXNlciBnZXN0dXJlLgor
ICAgICAgICBVcGRhdGUgUmVuZGVyTWVudUxpc3QgdG8gYWN0aXZhdGUgdXNlciBnZXN0dXJlIHdo
ZW4gdXNlciBzZWxlY3RzIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCisKKyAgICAgICAgVGVzdHMgdG8g
YmUgYWRkZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2
aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6cmVm
cmVzaERldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjplbnVtZXJhdGVE
ZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFz
SGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRp
b091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5pZGw6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2Uv
TWVkaWFQcm9kdWNlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6ZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGVm
YXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpm
b3JFYWNoQXVkaW9Qcm9kdWNlcik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojph
dWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3Jl
YXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAg
ICAgKFJlbmRlck1lbnVMaXN0Ojp2YWx1ZUNoYW5nZWQpOgorCiAyMDIwLTA5LTE3ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4IGZv
ciAicmVkZWZpbml0aW9uIG9mICdrQ01WaWRlb0NvZGVjVHlwZV9WUDkiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4
ZTRiZjRlMjJhNmE5YTdhZDY0N2E5ZTdjNTE4NTZmY2EyMWRhZWEuLmY1Nzc4NmIxNDE4ZDljOGM2
ZmIzYTFmY2Y4NDg4ZTI0ODk2ZTZmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAt
MDktMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzcGVha2VyIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGFuIGV4cGVyaW1lbnRhbCBmbGFnIGZvciBw
ZXIgZWxlbWVudCBzcGVha2VyIHNlbGVjdGlvbi4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3
ZXJlIG5vdCBleHBvc2luZyByZWFsIGRldmljZSBJRHMgdG8gV2ViUHJvY2VzcywgYnV0IGluc3Rl
YWQgd2VyZSBoYXNoaW5nIHRoZW0gYmVmb3JlIHNlbmRpbmcgdGhlbSB0byBXZWJQcm9jZXNzLgor
ICAgICAgICBXZSBub3cgc2VuZCB0aGUgcmVhbCBkZXZpY2UgSWRzIGFuZCBsZXQgV2ViUHJvY2Vz
cyBkbyB0aGUgaGFzaGluZyBwZXIgb3JpZ2luLgorCisgICAgICAgIEltcGxlbWVudCBBdWRpb091
dHB1dFByb3ZpZGVyIGZvciBNYWMgYnkgbG9vcGluZyB0aHJvdWdoIGFsbCBhdWRpbyBwcm9kdWNl
cnMgYW5kIG5vdGlmeWluZyB0aGVtIHRoYXQgdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmlj
ZSBjaGFuZ2VkLgorCisgICAgICAgIEZpeGVzIHVuaWZpZWQgYnVpbGQgaXNzdWVzIGluIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCwgUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAsIFdlYlBhZ2VPdmVybGF5LmggYW5kIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisKIDIwMjAtMDktMTcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZmllZCBidWlsZCBmaXggZm9yICJyZWRl
ZmluaXRpb24gb2YgJ2tDTVZpZGVvQ29kZWNUeXBlX1ZQOSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBmNGRiMGMxMWM5NmMxYThlOGE1Y2IyYmIxNDk3MWFmMDkyYzk4MjIzLi5iODgx
Y2NmZjI0YzBhZWFlZjc0NzVkM2FhYmM4OTJhMWExNzExMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzcGVha2VyIHNlbGVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMjAtMDktMTYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBydW50aW1lIHNldHRpbmcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBDU1Mgc2hhZG93
IHBhcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjYzhlN2FjZjNiOTA4NDc5NmQ1YjZkMzc1YTA4
ODU2MjM4YjdhYmJlLi4zY2I1OGY1NDRhMjhiM2RjMzBiOTNiMGY1ODZlZTIwNmFhOWVjOGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTc4Nyw2ICs3ODcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9BY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIu
aAogICAgIHBhZ2UvQWRqdXN0Vmlld1NpemVPck5vdC5oCiAgICAgcGFnZS9BbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaAorICAgIHBhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oCiAgICAgcGFnZS9BdXRv
cGxheUV2ZW50LmgKICAgICBwYWdlL0Jhc2U2NFV0aWxpdGllcy5oCiAgICAgcGFnZS9DYWNoZVN0
b3JhZ2VQcm92aWRlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggMjdiYzNlMTBhYWY2MGEzNzg5ZjE5MWIwYTY1MTI3
NzE4MTUzZmRlYi4uZWQ4NGVlMTkxYzBlNjAzMDlkMDYzMGE1ODNiMDI0YzI2NWM3MTJhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcApAQCAtNTcsNyArNTcsNyBAQCBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAg
ICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRF
dmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX2V2ZW50TmFtZXMoZXZlbnROYW1lcygpKQotICAgICwg
bV9pZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKKyAgICAsIG1fZ3JvdXBJ
ZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKIHsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbmxpbmUgTWVkaWFEZXZpY2VJ
bmZvOjpLaW5kIHRvTWVkaWFEZXZpY2VJbmZvS2luZChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUCiAg
ICAgcmV0dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dDsKIH0KIAotdm9pZCBN
ZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
bmV3RGV2aWNlcykKK3ZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0
b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNo
U2FsdCkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYg
KCFkb2N1bWVudCkKQEAgLTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVz
aERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogICAgIGJv
b2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IGNoZWNrTWljcm9waG9uZUFjY2VzcygqZG9jdW1lbnQp
OwogICAgIGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2VzcygqZG9jdW1l
bnQpOwogCisgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsK
KwogICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1
dG8mIG5ld0RldmljZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNy
b3Bob25lICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKQEAgLTIxNywxMSArMjE5LDE3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpyZWZy
ZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCiAgICAg
ICAgIH0pOwogICAgICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgIGRl
dmljZXMuYXBwZW5kKG1fZGV2aWNlc1tpbmRleF0uY29weVJlZigpKTsKKyAgICAgICAgICAgIGlm
IChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIp
CisgICAgICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuYWRk
KG1fZGV2aWNlc1tpbmRleF0tPmRldmljZUlkKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBhdXRvIGRldmljZUlk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAg
IGF1dG8gZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UuZ3JvdXBJZCgpLCBtX2dyb3VwSWRIYXNoU2FsdCk7
CisKKyAgICAgICAgaWYgKG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U3BlYWtlcikKKyAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lz
dGVudElkLmFkZChkZXZpY2VJZCwgbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpKTsKIAotICAgICAg
ICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5o
YXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9pZEhhc2hTYWx0KTsKLSAg
ICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxh
YmVsKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgV1RGTW92ZShncm91cElkKSwgZGV2aWNl
S2luZCkpOworICAgICAgICBkZXZpY2VzLmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShu
ZXdEZXZpY2UubGFiZWwoKSwgV1RGTW92ZShkZXZpY2VJZCksIFdURk1vdmUoZ3JvdXBJZCksIGRl
dmljZUtpbmQpKTsKICAgICB9CiAgICAgbV9kZXZpY2VzID0gV1RGTW92ZShkZXZpY2VzKTsKIH0K
QEAgLTI0NCwxMiArMjUyLDExIEBAIHZvaWQgTWVkaWFEZXZpY2VzOjplbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0byYgZGV2aWNlSURIYXNoU2Fs
dCkgbXV0YWJsZSB7CisgICAgY29udHJvbGxlci0+ZW51bWVyYXRlTWVkaWFEZXZpY2VzKCpkb2N1
bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvJiYgbmV3RGV2aWNlcywgYXV0byYmIGRldmljZUlESGFzaFNhbHQp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGlzQ29udGV4dFN0b3BwZWQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5zZXREZXZp
Y2VJREhhc2hTYWx0KGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICByZWZyZXNoRGV2aWNlcyhu
ZXdEZXZpY2VzKTsKKyAgICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcywgZGV2aWNlSURI
YXNoU2FsdCk7CiAgICAgICAgIHByb21pc2UucmVzb2x2ZShtX2RldmljZXMpOwogICAgIH0pOwog
fQpAQCAtMzIwLDYgKzMyNywzNiBAQCBib29sIE1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbgogICAgIHJldHVy
biBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwg
V1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOwogfQogCit2b2lkIE1lZGlhRGV2aWNlczo6c2V0
QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVu
dFVzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCAiQSB1c2VyIGdlc3R1cmUgaXMgcmVxdWlyZWQiX3MgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZXZpY2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCku
c2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoeyB9KTsKKyAgICAgICAgbV9hdWRpb091dHB1
dERldmljZUlkID0geyB9OworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcGVyc2lzdGVudElkID0gbV9hdWRpb091dHB1dERldmlj
ZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsKKyAgICBpZiAocGVyc2lzdGVudElkLmlz
TnVsbCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS5zZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZChXVEZNb3ZlKHBlcnNpc3RlbnRJZCkp
OworICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUoZGV2aWNlSWQpOworICAgIHBy
b21pc2UucmVzb2x2ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggYmU1ZDZiOGZiNWQxZTQzZTU4MzkxNDk2ZGQ0
MWRhNzA3YjliODg4ZC4uNDdkYzgyMzIxNGI5OGY5ZWVhOTYxOTE2ZGYzYzQ4ZmRhZWUyMDhmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCkBAIC04OSw2ICs4OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25z
dHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZShTdHJpbmcmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIFN0
cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZDsgfQorCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRGcm9tRGV2aWNlSWQoY29u
c3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcgUmVmQ291bnRlZDxN
ZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURldmljZXM+Ojpk
ZXJlZjsKIApAQCAtOTgsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2
ZW50VGltZXJGaXJlZCgpOwogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3Rl
bmVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKKyAgICB2b2lkIHJlZnJlc2hEZXZpY2VzKGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbGlzdGVuRm9y
RGV2aWNlQ2hhbmdlcygpOwogCiAgICAgZnJpZW5kIGNsYXNzIEpTTWVkaWFEZXZpY2VzT3duZXI7
CkBAIC0xMjYsOCArMTMxLDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgRXZlbnROYW1lcyYgbV9l
dmVudE5hbWVzOyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2FuIHVzZSBpdCBmcm9tIEdD
IHRocmVhZHMuCiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgeyBmYWxzZSB9
OwogCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlkVG9Q
ZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKKwogICAgIFZl
Y3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gbV9kZXZpY2VzOwotICAgIFN0cmluZyBtX2lkSGFz
aFNhbHQ7CisgICAgU3RyaW5nIG1fZ3JvdXBJZEhhc2hTYWx0OwogCiAgICAgT3B0aW9uU2V0PEdl
c3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAg
ICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApp
bmRleCA5MmE5ZGQ3YzU0MmEyNzgyN2ZiNDA4NzAyNjIzNzIyMTIyYThiZjM5Li5lZTg1Y2VkMDg3
YWNjMzZmYmFiNjZkYWFiNGVhYjYwYzVlNzg0NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCkBAIC0zOSw2ICszOSw5IEBA
CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFp
bnRzKCk7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNl
PE1lZGlhU3RyZWFtPiBnZXRVc2VyTWVkaWEob3B0aW9uYWwgTWVkaWFTdHJlYW1Db25zdHJhaW50
cyBjb25zdHJhaW50cyk7CiAgICAgW0VuYWJsZWRCeVNldHRpbmc9U2NyZWVuQ2FwdHVyZV0gUHJv
bWlzZTxNZWRpYVN0cmVhbT4gZ2V0RGlzcGxheU1lZGlhKG9wdGlvbmFsIERpc3BsYXlNZWRpYVN0
cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKworICAgIFtFbmFibGVkQnlTZXR0aW5nPUV4
cG9zZVNwZWFrZXJzXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0QXVkaW9PdXRwdXREZXZpY2UoRE9N
U3RyaW5nIGRldmljZUlkKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vyc10g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdWRpb091dHB1dERldmljZTsKIH07CiAKIFsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCmluZGV4IGRmMmE1ZTQ0ZWMxMjc5YzBhMjMzYmMxZGFjNDczNTlkNTM1ZTE4
MzYuLjlhMDAwZDRmZDhlYjQwOWM0NTE4ZDM1ZmY3M2RkZGU4MWJmOWVkZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcApAQCAtMjcxLDggKzI3MSw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coQ2Fw
dHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9ECiAgICAgICAg
IH07CiAKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGRvY3VtZW50LnNldERldmljZUlESGFzaFNh
bHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLQogICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShkb2N1bWVudC5sb2dnZXIo
KSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwg
V1RGTW92ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOwog
CiAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRmYmEyMDI3MDMz
YzhlNmYyMjU3Y2Q1YWI1YzE5MTk4NjFkY2M4YzYuLjQ2MTVmNDY0NzFlM2U2YmM4YjUwNTU1ZDM2
OTY1MjE3MzJlZmYwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMTgsNiArMTAxOCw3IEBACiAJCTNGQkM0QUYzMTg5ODgx
NTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkM0QUYxMTg5ODgxNTYwMDQ2
RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLzsgfTsKIAkJM0ZCQzRB
RjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzRkY4MTNBNzFEQkE4NjQw
MDA5QkYwMDEgLyogUG9pbnRlckxvY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0ZDNDM0RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9p
bnRlckxvY2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAwQzgwMjNGNzQ1ODMwMDFC
QzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwMEM3RTIzRjczOTgyMDAxQkMzM0IgLyogV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC03NDE5LDYgKzc0MjAsNyBAQAogCQkzRjgwMjAzNDFFOUUzODFE
MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4IC8qIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQx
QjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxNDQ4LDYgKzIxNDUwLDcgQEAKIAkJCQk3MjRFRTU0RjFEQzdGMjVC
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJQkNGNDhD
RTYxMzcwRDExNDAwNEU4N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLywKIAkJCQlDRURB
MTJENjE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCisJCQkJ
NDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLywKIAkJ
CQlDOUQ0NjcwNDFFNjBDM0VCMDA4MTk1RkIgLyogQXV0b3BsYXlFdmVudC5oICovLAogCQkJCTQ1
ODMwRDRCMTY3OUI0RjgwMEFDRjhDMyAvKiBBdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJNDU4MzBENEMxNjc5QjRGODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVyLmggKi8s
CkBAIC0zMDQyNSw2ICszMDQyOCw3IEBACiAJCQkJRkQzMTYwMTYxMkIwMjY3NjAwQzFBMzU5IC8q
IEF1ZGlvTm9kZUlucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNzE0NjdCMzI0QUJBRUYyMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMTgx
MkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvTm9kZU91dHB1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDFEMTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb1BhcmFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDM1OTE5MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRp
bWVsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyog
QXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggOTA5NmYyNjQ2NzkxMzBhNzg0YTUxYTlhZGM4YmFkZWJlYzdjN2FjNC4uZmNiMmJj
NzhhM2QzYjUzOGQ0MmNiNGExZjhhN2M2MDZiYjBkZjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0xODAzLDYgKzE4MDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6Zm9yRWFjaE1lZGlhRWxl
bWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmMKICAgICAg
ICAgZnVuY3Rpb24oZWxlbWVudCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmZvckVhY2hBdWRpb1By
b2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYgZnVuY3Rpb24pCit7
CisgICAgbV9hdWRpb1Byb2R1Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBEb2N1
bWVudDo6c3RvcEFsbE1lZGlhUGxheWJhY2soKQogewogICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXJJZkV4aXN0cygpKQpAQCAtNzk1NSwxMyArNzk2MCwyMyBAQCB2b2lkIERvY3VtZW50Ojpt
ZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKQogICAgIH0pOwogfQogCi12b2lkIERvY3Vt
ZW50OjpzZXREZXZpY2VJREhhc2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKKyNlbmRpZgorCitT
dHJpbmcgRG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKIHsKLSAg
ICBBU1NFUlQobV9pZEhhc2hTYWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7
Ci0gICAgbV9pZEhhc2hTYWx0ID0gc2FsdDsKKyAgICByZXR1cm4gaXNUb3BEb2N1bWVudCgpID8g
bV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA6IHRvcERvY3VtZW50KCkuZGVmYXVsdEF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKIH0KIAotI2VuZGlmCit2b2lkIERvY3VtZW50OjpzZXREZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZChTdHJpbmcmJiBkZXZpY2VJZCkKK3sKKyAgICBBU1NFUlQoaXNU
b3BEb2N1bWVudCgpKTsKKyAgICBpZiAobV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA9PSBk
ZXZpY2VJZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
SWQgPSBXVEZNb3ZlKGRldmljZUlkKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpKQorICAgICAgICBwYWdlLT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggNWFiYzI0ZWJiOTgxZTU2NGYwN2FkZWI4ZTVmYzExNTgxMzFjNTM1
NS4uMmQwZTZlYTdlZDE0YjFjOWM4NWE0NzYwZjdiZjk5ZWI2NDVlODA2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTE0MjUsMTIgKzE0MjUsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIHsgbV9o
YXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhhc0hhZENh
cHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJp
bmcmKTsKLSAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1faWRI
YXNoU2FsdDsgfQogICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogICAgIHZvaWQgbWVkaWFT
dHJlYW1DYXB0dXJlU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEF1ZGlvT3V0
cHV0RGV2aWNlSWQoU3RyaW5nJiYpOworCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBm
b3IgdGhpcyBmdW5jdGlvbmFsaXR5LgogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgcHJvdmlkZSBhIHR3by1sZXZlbCBzZXR0aW5n
OgpAQCAtMTUxMCw2ICsxNTExLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2
b2lkIGZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+Jik7CiAjZW5kaWYKKyAgICB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiAgICAgYm9vbCBoYW5kbGluZ1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hh
bmRsaW5nVG91Y2hFdmVudDsgfQpAQCAtMjA3Niw3ICsyMDc4LDYgQEAgcHJpdmF0ZToKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9t
ZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHM7Ci0gICAgU3RyaW5nIG1faWRIYXNoU2FsdDsK
ICAgICBib29sIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAKQEAgLTIxNDEsNiArMjE0Miw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRp
dG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9u
OworCisgICAgU3RyaW5nIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCiBFbGVt
ZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0
MjNjNmZiMGE2ZmEwODY5NmIyMS4uNzQ5ZTMxMGMxYjRjYzEwNjU0NTRmM2E5Y2M0M2YyN2M5OTNl
ZjNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2
ICs3MSw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlh
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAi
TWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1l
ZGlhRXJyb3IuaCIKICNpbmNsdWRlICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2
ICs3OSw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0
Myw2ICsyODQ1LDU1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVk
aWFUaW1lJiB0aW1lKQogICAgIHNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJh
bmNlLCBNZWRpYVRpbWU6Onplcm9UaW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKK30KKwordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlk
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJl
cXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5k
b3cgPyBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRv
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIW1f
YXVkaW9PdXRwdXREZXZpY2VJZC5pc0VtcHR5KCkgJiYgbV9wbGF5ZXIpIHsKKyAgICAgICAgICAg
IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IHsgfTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYXVkaW9PdXRwdXREZXZp
Y2VJZCA9IG1lZGlhRGV2aWNlcy0+YXVkaW9PdXRwdXREZXZpY2VJZEZyb21EZXZpY2VJZChkZXZp
Y2VJZCk7CisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQgIT0gbV9hdWRpb091
dHB1dERldmljZUlkKSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUo
YXVkaW9PdXRwdXREZXZpY2VJZCk7CisgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgICAg
IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICB9CisgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7Cit9CisjZW5kaWYKKworU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9hdWRpb091dHB1dERldmlj
ZUlkLmlzRW1wdHkoKSA/IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA6IGRvY3VtZW50KCkuZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
KGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IHRpbWUpOwpAQCAtNzY5OCw2ICs3NzQ5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVy
IHx8ICFtX2F1ZGlvT3V0cHV0RGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiBkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlVm9sdW1lKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQoKS5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IGFiMmIwMDExYjU5NDM5ZWE1MWU4YWEzZTIwOGZlMDEyYzYzZDEyZWQuLjdkODMyNjcw
ZjZlNGQ0MDRkZmY3ZGIwNTJmYWQxMTJlYThjZGEzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC0yNjgsNiArMjY4LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
bWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0
ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyNlbmRpZgor
CiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJpbmdQb2xpY3k7CiAgICAg
dm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsKICAgICBXRUJDT1JFX0VY
UE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29uc3Q7CkBAIC02MDQsNiAr
NjA5LDggQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3Qg
ZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsgfQogCiAgICAgYm9vbCBtZWRpYUNv
bnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29u
dHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0TWVkaWFDb250cm9s
c0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtODgyLDYgKzg4OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2
b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdl
KEF1ZGlvU2Vzc2lvbiopIGZpbmFsOwpAQCAtMTE5Nyw2ICsxMjA1LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhh
dmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisKKyAgICBT
dHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCmluZGV4IGI0MmQwZWEz
NzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLjUxNDMwYWExNTU0MWY2MjA2YTU4Mjk1
NzNhZTk4MTQ3NjQ4MmE1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAgdW5kZWZpbmVkIHBhdXNlKCk7
CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPUV4cG9zZVNwZWFr
ZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVu
YWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24s
IEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXREZXZpY2VdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgc2lua0lkOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNl
dHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25dIFByb21pc2U8
dW5kZWZpbmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2aWNlSWQpOworICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtl
cnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9c2V0QXVkaW9PdXRw
dXREZXZpY2VdIFByb21pc2U8dW5kZWZpbmVkPiBzZXRTaW5rSWQoRE9NU3RyaW5nIGRldmljZUlk
KTsKKwogICAgIC8vIGNvbnRyb2xzCiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmli
dXRlIGJvb2xlYW4gY29udHJvbHM7CiAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJl
ZDUzZWE2OWY3MjJjZDQ1YjdhZDguLmVjYmEyZjUyMDliY2E0YmM3OTZhZmNkNmNhZTc4ZTBkZDE4
YTcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNs
dWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCkBAIC02MTMsNyArNjE0LDggQEAgUGFnZUNv
bmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBF
bXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0
eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50PigpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4o
KQogICAgIH07CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+
IGR1bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRp
b091dHB1dFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1ZGlvT3V0cHV0UHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGVhMTBjYzg5OGU0MTNiNzM0NzNkNzBmYmI2NmEwYzQ5MWIwMDJl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3Zp
ZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1
ZGlvT3V0cHV0UHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIEF1ZGlvT3V0cHV0UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+QXVk
aW9PdXRwdXRQcm92aWRlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKFBhZ2UmKTsKK307CisKK2lubGluZSB2b2lkIEF1ZGlv
T3V0cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYpCit7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAxYzUxZWU3
NjhlZmQ2MmE2N2QwODY2N2VhZTgwMWQ2Njg5My4uZDFkMjFlZmRjN2NjZDQ1ZTAxNDMyOTIwZjhj
ODczZjJkNTcwNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1
Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTc5LDYg
Kzc5LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdW5zaWduZWQgTXV0ZWRTdGF0ZUZsYWdzOwog
CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9OwogCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFQcm9kdWNlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IGEwYTc3ZDI4ODM2NDgyMWM1MTBiMmQ1MTJiYTcwZTcyOWMyMWI2ZDUuLjA3
YmE5OGE4NTQzMmM0ZDE3NzI5NWNiMzk3MmQ0MzdhOWZhZTI4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgog
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUu
aCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgpAQCAtMjU1LDYgKzI1Niw3IEBAIFBh
Z2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1f
c3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3lu
dGhlc2lzQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCisgICAgLCBt
X2F1ZGlvT3V0cHV0UHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYXVkaW9PdXRw
dXRQcm92aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFz
dGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xs
RWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKQEAgLTIwNjYsNiArMjA2OCwxMSBA
QCB2b2lkIFBhZ2U6OnJlc3VtZUFsbE1lZGlhQnVmZmVyaW5nKCkKICNlbmRpZgogfQogCit2b2lk
IFBhZ2U6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fYXVkaW9P
dXRwdXRQcm92aWRlci0+ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgqdGhpcyk7Cit9
CisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAogdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2
ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKQEAgLTMxMjYsNiArMzEzMywxMyBAQCB2b2lk
IFBhZ2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFF
bGVtZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEF1ZGlv
UHJvZHVjZXIoY29uc3QgRnVuY3Rpb248dm9pZChNZWRpYVByb2R1Y2VyJik+JiBmdW5jdG9yKQor
eworICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAg
ICBkb2N1bWVudC5mb3JFYWNoQXVkaW9Qcm9kdWNlcihmdW5jdG9yKTsKKyAgICB9KTsKK30KKwog
dm9pZCBQYWdlOjphcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogewogI2lmIEVOQUJMRShW
SURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMGExZGQ2YjRiM2Y1NTVkMDk1YTBkY2VlMzNhYTE1ZTAw
ODNhYzcxZS4uOTgzYjY1ZTNiODY2ZjliNTE3ZWY1NDIxZjQzMzVkY2IzNGRkOTA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwog
Y2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0
Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CitjbGFzcyBBdWRpb091dHB1
dFByb3ZpZGVyOwogY2xhc3MgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOwogY2xhc3MgQmFja0Zv
cndhcmRDb250cm9sbGVyOwogY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC02NTAsNiAr
NjUxLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQWxsTWVkaWFC
dWZmZXJpbmcoKTsKICAgICBib29sIG1lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQoKSBjb25zdCB7
IHJldHVybiBtX21lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQ7IH0KIAorICAgIHZvaWQgZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxv
YWRDbGllbnQoYm9vbCBoYXMpIHsgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAg
ICBib29sIGhhc1Jlc291cmNlTG9hZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50OyB9CiAKQEAgLTc2Miw3ICs3NjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yRWFjaERvY3VtZW50KGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVu
dChjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOworICAgIHZv
aWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1l
bnQmKT4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAgICAgYm9vbCBzaG91bGRE
aXNhYmxlQ29yc0ZvclJlcXVlc3RUbyhjb25zdCBVUkwmKSBjb25zdDsKIApAQCAtODU3LDYgKzg2
MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJv
dmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxBdWRpb091dHB1
dFByb3ZpZGVyPiBtX2F1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGND
b250cm9sbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmlu
ZGV4IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjI5NjRjMWY5Njlk
ZmUyOWY4ZGY0ZThjYmI5ZjMwNDJlYzAyOTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgor
I2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENs
aWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCkBAIC01OCw3ICs1OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFn
ZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92
aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxp
YldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdl
UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVm
PENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYg
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+
JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hl
U3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRD
bGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBV
bmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIs
IFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmIGF1ZGlvT3V0cHV0UHJvdmlkZXIpCiAg
ICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRp
dG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIp
KQpAQCAtNjksNiArNzAsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgbG9hZGVy
Q2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAg
ICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQog
ICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVy
KSkKKyAgICAsIGF1ZGlvT3V0cHV0UHJvdmlkZXIoV1RGTW92ZShhdWRpb091dHB1dFByb3ZpZGVy
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYy
ODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmE0MmRlNmM0MGQ1NmZiOWI4
NWY3Y2M4ZjZjMzJkMjhiNDdiNWQ1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFz
cyBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQ7CitjbGFzcyBBdWRpb091dHB1dFByb3Zp
ZGVyOwogY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRl
cjsKIGNsYXNzIENvb2tpZUphcjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhl
c2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlx
dWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwg
UmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJl
ZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8
Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVS
ZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmln
dXJhdGlvbiYmKTsKIApAQCAtMTI5LDYgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZl
Y3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBV
bmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7Cisg
ICAgVW5pcXVlUmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+IGF1ZGlvT3V0cHV0UHJvdmlkZXI7CiAg
ICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5l
dHdvcmsgeyB0cnVlIH07CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlm
aWNhdGlvbiB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBmYmYwOGM0
ZjkzMjgzMGY0MTg3NjRjZDI4MjJjMDQzZWU1ZGNkYTc3Li5mMzEyY2Q4MjNmMDZlMDdlMjU4N2I0
YTIwN2NiMDBhZTViMzllZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjYs
NiArODI2LDkgQEAgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFi
bGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGly
ZWN0b3J5OgogICB0eXBlOiBTdHJpbmcKICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKaW5kZXggNjNjZjNjY2VlODExMmUxNTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4
OTk3ZjcyNmNmYjE3YTYyNmJkOWU5NDY1ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDEx
IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1p
Y1JhbmdlTW9kZSBtb2RlKQogICAgIG1fcHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZShtb2RlKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKCkKK3sKKyAgICBtX3ByaXZhdGUtPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQor
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjpt
ZWRpYVBsYXllckxvZ2dlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFh
Y2FmNGYzLi5kNDY3MzFhMmJhZGY4ODU3MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2
ICsyNzMsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1
bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFs
IFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAg
dmlydHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1
cm4geyB9OyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0
IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEs
NiArNjM0LDEwIEBAIHB1YmxpYzoKICAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFt
aWNSYW5nZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7
IH0KICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9k
ZSk7CiAKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmlu
ZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBw
dWJsaWM6CiB9OwogCiAKK2lubGluZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2
aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091
dHB1dERldmljZUlkKCkgOiBTdHJpbmcgeyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBt
X2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmlu
ZyB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShW
SURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKaW5kZXggNjcwYzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1
OTc4ZC4uODEyNTMzMDI3NmRkNTQ0ZTFmY2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKQEAgLTI4OSw2ICsyODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEln
bm9yZUludHJpbnNpY1NpemUoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3
OGJiZDNlMy4uODVjZTgxZDEwM2I4NWQxZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVS
TEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4
MjMwMDJiNTYxNS4uOGY0ZTQwM2NmYjExZWRkYTk2MDE2NWJhZjliZTY1NWZmODhlOTYzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC05NTMsNiArOTUzLDEyIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2
UGxheWVySXRlbSkKICAgICAgICAgc2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgp
KTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBw
bGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFhdWRpb091
dHB1dERldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0
cHV0RGV2aWNlVW5pcXVlSUQgPSBhdWRpb091dHB1dERldmljZUlkOworI2VuZGlmCisKICAgICBz
ZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMsNiArMzI5OSwxNSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgaWYgKCFtX2F2UGxheWVyIHx8ICFwbGF5ZXIoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IHBs
YXllcigpLT5hdWRpb091dHB1dERldmljZUlkKCk7CisjZW5kaWYKK30KKwogTlNBcnJheSogYXNz
ZXRNZXRhZGF0YUtleU5hbWVzKCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNB
cnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRl
eCAwOWJmNTU3NDg0MzMxZDU4MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZk
Zjk3MDJmMmY5NTE4YWQ2OWRkODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApA
QCAtMjU0LDYgKzI1NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRh
c2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFs
OworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lk
IGVuc3VyZUxheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCA4Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5
Li43YjEwZGI0YzlmN2IzM2JjYTUyNDkxYjk2NDllNmYyZGUwZGFmMmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0xMTY2LDYgKzExNjYsMTIgQEAgQUxMT1dfTkVXX0FQSV9XSVRI
T1VUX0dVQVJEU19FTkQKICAgICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZv
bHVtZSgpXTsKICAgICBbYXVkaW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToo
bV9wbGF5ZXItPnByZXNlcnZlc1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3Bl
Y3RyYWwgOiBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUoKTsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBhdWRp
b1JlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyNlbmRpZgor
CiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXplciBhZGRSZW5kZXJlcjphdWRpb1Jl
bmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CkBAIC0xMjc2
LDYgKzEyODIsMTcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbV9wbGF5
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGtleSA6IG1fc2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlck1hcC5rZXlzKCkpCisgICAgICAgICgoX19icmlkZ2UgQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyICopa2V5LmdldCgpKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2
aWNlSWQ7CisjZW5kaWYKK30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVk
aWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRi
MjhmYWMzOWNiMWJmYmU5OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0Mjkw
MDAyNTBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRl
ZDsgfQogCiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmlu
Z1BvbGljeSkgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBm
aW5hbDsKIAogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7
CiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
aW5kZXggMmRiNTBiYjg5NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAzNi4uMGZhYjhiMWRl
NDBiNjMzY2JiNzYwMWZkZjY4NzQ2OTgyNjQzZTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQpAQCAtODY3LDcgKzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
VmVjdG9yIGN1cnJlbnRUcmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAK
LSAgICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8g
ZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAg
YXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJl
bW92ZToKQEAgLTg4NCw2ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZSht
X3ZvbHVtZSk7CiAgICAgICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAg
ICAgIHRyYWNrLnNldEVuYWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRy
YWNrLnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlz
TnVsbCgpKQorICAgICAgICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2
aWNlSWQpOworCiAgICAgICAgICAgICBpZiAocGxheWluZygpKQogICAgICAgICAgICAgICAgIHRy
YWNrLnBsYXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAxNyw2ICsxMDIxLDE1IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xp
Y3koTWVkaWFQbGF5ZXI6OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LT5mbHVzaEFuZFJlbW92ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIGlmICgh
bV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXIt
PmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX2F1
ZGlvVHJhY2tNYXAudmFsdWVzKCkpCisgICAgICAgIGF1ZGlvVHJhY2stPnNldEF1ZGlvT3V0cHV0
RGV2aWNlSWQoZGV2aWNlSWQpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5j
dGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmgKaW5kZXggNjQ4OWY5ZGE3YzU2MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAw
Yi4uNDhlNWYzMjcxYWI0OGM3YTI3OTYwNWEzNTE0YWI2OWQyYThkYTVjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25z
dDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmlu
ZyYpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29u
c3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEwIEBAIGlu
bGluZSBjb25zdCBjaGFyKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NO
YW1lKCkgY29uc3QKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKQoreworfQor
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1ZjkwZDQ5OWRlMDM4MDk3
OTZhYzljNWFjLi42YmUwYTE4ZjMwNTg2M2NhZWZiZTg5ZWIxNmU2OGI4ZGU3MjQ3NGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcsNiArOTcsMTEgQEAg
dm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1l
KQogICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKQor
eworICAgIG1fcmVuZGVyZXItPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworfQor
CiBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3JlbmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaAppbmRleCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUz
Li45M2E0MDY1M2MxN2RjNTdmOGQ4Y2QyODAyOTc2OTk5ZTk0OGNiMmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4
KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0
RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
c3RyZWFtVHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCA3
NjIzMmI3OWQ5ZDA3ZWIxYjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li4zZDM5NDAxNmYxYjAyNTc5
YmI0ZDJjZWQ0N2JiNTIxMTQ0NjY4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC02NywxMSArNjcsMTggQEAgdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1l
KQogICAgICAgICBtX2RhdGFTb3VyY2UtPnNldFZvbHVtZSh2b2x1bWUpOwogfQogCit2b2lkIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNyZWF0
ZSBhIHVuaXQgZm9yIG91cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVmYXVsdCB1bml0IGlmIGRl
dmljZUlkIGlzIG1hdGNoaW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2luZ2xldG9uKCkuc2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJZCk7CisgICAgbV9z
aG91bGRSZXNldCA9IHRydWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
dHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKLSAg
ICBpZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkg
fHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7Cisg
ICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9kYXRhU291cmNlLT5p
bnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9
IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIsICp0aGlzKTsKIAog
ICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAgdm9pZCBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUm
IHNhbXBsZVRpbWUKICAgICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2luZ2xldG9uKCkuYWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7CiAgICAgICAgIH0p
OwogICAgICAgICBtX2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBt
X3Nob3VsZFJlc2V0ID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291cmNlLT5wdXNoU2Ft
cGxlcyhzYW1wbGVUaW1lLCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4IDUxYWM0MzM3YzRl
MDM1OGZkZGNiNGVhODU0N2YyYWJiMGJjMGZhODcuLjUwMjU1NjE2NzRkMDVlYTBlOGRlMGRlODVl
NDJiNWVjNDQ1NjE3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuaApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpIGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJp
bmcmKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24+IG1fb3V0cHV0RGVzY3JpcHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4gbV9kYXRhU291cmNlOworICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
Y3BwCmluZGV4IGRhYzc0YTEyNTVjNWU1NGE1MjM0MzZmZTY5YThlNDQ0YzJlNzBiMTUuLmQxYzAx
Y2Y5NDVjMzM2ZDRkNjg3NTc1MjQzYWNiYTc1OWRhMjk0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0zNiw2ICszNiwxMSBA
QAogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQXVkaW9Ub29sYm94U1BJLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaCIKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgorI2VuZGlmCisKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsNiArNTYsMjcgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0Ojp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkKICAgICBz
dG9wKCk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRB
dWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7CisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6
OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOworICAgIGlmICgh
ZGV2aWNlIHx8IG1fZGV2aWNlSUQgPT0gZGV2aWNlLT5kZXZpY2VJRCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBib29sIHNob3VsZFJlc3RhcnQgPSBtX2lzU3RhcnRlZDsKKyAgICBpZiAobV9p
c1N0YXJ0ZWQpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fZGV2aWNlSUQgPSBkZXZpY2UtPmRl
dmljZUlEKCk7CisKKyAgICBpZiAoc2hvdWxkUmVzdGFydCkKKyAgICAgICAgc3RhcnQoKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGRldmljZUlEKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyNlbmRpZgorfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYgc291cmNlKQogewogICAgIFJF
TEVBU0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRk
U291cmNlIik7CkBAIC0xNjEsNiArMTg3LDE2IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgfQogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fZGV2aWNlSUQpIHsKKyAgICAgICAgZXJyb3Ig
PSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9w
ZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJ
RCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHVuaXQgZGV2aWNlIElEICVkLCBl
cnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2aWNlSUQsIChpbnQpZXJyb3IsIChjaGFyKikmZXJy
b3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAg
ICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBpbnB1dFByb2MsIG51bGxwdHIg
fTsKICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAw
LCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCmluZGV4IDQ0MDc2
YTU2ZWM5NzRmOWJiODczNDJiZmM3NDgzMGM4NTljNzcyZjYuLjFiMjIzN2Y4ZDM4ZGFlYjFiOTdk
YTllZjNlNjQxMzM2Y2Y5ZmM2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQg
c3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKIAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZp
Y2VJZChjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQgYWRkU291cmNlKFJlZjxBdWRpb1NhbXBs
ZURhdGFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZSYpOwogCkBAIC02OCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFVw
ZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9OwogICAgIExvY2sgbV9zb3VyY2VzTG9jazsKICAg
ICBib29sIG1faXNTdGFydGVkIHsgZmFsc2UgfTsKKyAgICB1aW50MzJfdCBtX2RldmljZUlEIHsg
MCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAKaW5kZXggYzAyNTgxY2E5NjMzOTlkM2UyMWFjMzY5ZTAxM2RlZDRmYzI1NjhiZi4uMzg2MDZh
YmVmZWM3OTVlNWQwODZmYWZhOWMyYTQ4OTNjNzE3ZjY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zODYsNiArMzg2LDggQEAgdm9pZCBSZW5k
ZXJNZW51TGlzdDo6dmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlT25D
aGFuZ2UpCiAgICAgaWYgKCZkb2N1bWVudCgpICE9IGRvY3VtZW50KCkuZnJhbWUoKS0+ZG9jdW1l
bnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVy
ZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUsICZkb2N1bWVudCgpKTsKKwogICAgIHNl
bGVjdEVsZW1lbnQoKS5vcHRpb25TZWxlY3RlZEJ5VXNlcihzZWxlY3RFbGVtZW50KCkubGlzdFRv
T3B0aW9uSW5kZXgobGlzdEluZGV4KSwgZmlyZU9uQ2hhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRleCAxZmM1NmQ4MjFiYmQ5M2ZjODk5
ZjI4NTNhMTE1OTFhNTIwZWM5OGE3Li5kZTg1MjRkNGFiYjQxYTMxMmQyMmRlOTlmMjg4ZmI4NDhk
NDg1ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApA
QCAtMTM2LDQgKzEzNiw2IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwKIAogfQogCisjdW5kZWYg
TUVTU0FHRV9DSEVDSworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDYwMzRj
MmQ1ZjhkMjU4YmFlNDVlYTUzNWE5NTYwNDFhNzY1NzQ2MWYuLjBhYjc4NDczMDk1YzcxMmIwNDFl
ZTVmMjQ5ZDI4ODg0OWE1ODk5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMTM3LDQgKzEzNyw2IEBA
IHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCiAKIH0KIAorI3VuZGVm
IE1FU1NBR0VfQ0hFQ0sKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRF
TEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwKaW5kZXggZjM1NmFlMjcwYTE5MjNiYzczMjQ1OGM2YTFlZTU1OTFlZjk5
YzQ3Yy4uZDFjYTRiNTZhZmNiYjU1YTBiYTc3NmIzYTFjYzIwMjUxNWNhNTdlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1s
CkBAIC0xNTQsNiArMTU0LDE0IEBAIEV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgY2F0ZWdvcnk6
IGV4cGVyaW1lbnRhbAogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQogCitQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBm
YWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHBlciBtZWRpYSBlbGVtZW50IHNwZWFr
ZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWxsb3cg
cGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBjYXRlZ29yeTog
ZXhwZXJpbWVudGFsCisgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCisKIFZQOURlY29kZXJF
bmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFZQOURlY29kZXJF
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM4ODRmMGVkZThiOWRmYWIzMzJjODQzZGU0Yjg1YjEx
NjEyMGIwYjkuLmYzMzFjZjBlODBhMTIyNmIzZmIwNGZjNGQ0MjVhMjg1NWMyMGEyZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtNTU1LDYgKzU1NSw3IEBAIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVy
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYzI2NmMzYmJlMGQ2MTc5YzM5YWVhNmRhMzVj
MzdmN2E2NDJjOGM5NC4uY2Y0NWFkYTY0NTNlNmIxOWE1MzIxMDRkMDgwZWE0YzFlMjQ0MzdmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNjA1LDcgKzYwNSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZlTWljcm9waG9uZURldmljZShjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mIGRlCiAgICAgfSk7CiB9CiAKLVZlY3RvcjxDYXB0dXJlRGV2
aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRl
cmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0KQorVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFs
SWRzQW5kTGFiZWxzKQogewogICAgIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdE1heGltdW1DYW1l
cmFDb3VudCA9IDE7CiAgICAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0TWF4aW11bU1pY3JvcGhv
bmVDb3VudCA9IDE7CkBAIC02MzIsMTYgKzYzMiw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGxh
YmVsID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgYXV0byBpZCA9IGVtcHR5U3RyaW5nKCk7Ci0g
ICAgICAgIGF1dG8gZ3JvdXBJZCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGlmIChyZXZlYWxJ
ZHNBbmRMYWJlbHMpIHsKLSAgICAgICAgICAgIGxhYmVsID0gZGV2aWNlLmxhYmVsKCk7Ci0gICAg
ICAgICAgICBpZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hT
dHJpbmdXaXRoU2FsdChkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNhbHQpOwot
ICAgICAgICAgICAgZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UuZ3JvdXBJZCgpLCBkZXZpY2VJREhhc2hTYWx0
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZpbHRlcmVkRGV2aWNlcy5hcHBlbmQoQ2FwdHVyZURl
dmljZShpZCwgZGV2aWNlLnR5cGUoKSwgbGFiZWwsIGdyb3VwSWQpKTsKKyAgICAgICAgZmlsdGVy
ZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNBbmRMYWJlbHMgPyBkZXZpY2UgOiBDYXB0dXJlRGV2
aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9LCB7IH0pKTsKICAgICB9CiAKICAgICBtX2hhc0Zp
bHRlcmVkRGV2aWNlTGlzdCA9ICFyZXZlYWxJZHNBbmRMYWJlbHM7CkBAIC02OTksNyArNjkwLDcg
QEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRl
TWVkaWFEZXZpY2VzRm9yRnJhbWUoRnJhbWUKICAgICAgICAgICAgIGJvb2wgcmV2ZWFsSWRzQW5k
TGFiZWxzID0gb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB8fCB3YXNHcmFudGVkVmlkZW9PckF1
ZGlvQWNjZXNzKGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLmdldCgpKTsKIAogICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5k
bGVyLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbXB1dGVGaWx0
ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2
aWNlSURIYXNoU2FsdCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb21wdXRlRmls
dGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0FuZExhYmVscyksIGRldmljZUlESGFzaFNhbHQpOwog
ICAgICAgICB9KTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRl
eCBkZjlmZGQ1YzE1M2RjY2Y3Zjc2OWIxYTQ4YjdiMWM2YTZmMWRjMTM3Li45NThhMTZkMDVlYzI0
MTA3MGM2NzdjNDFiMTFiMjQ5OTEzZGU3YTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB3YXNHcmFudGVk
VmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKLSAgICBWZWN0b3I8
V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJl
dmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KTsKKyAgICBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChi
b29sIHJldmVhbElkc0FuZExhYmVscyk7CiAKICAgICB2b2lkIHByb2Nlc3NVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCgpOwogICAgIHZvaWQgcHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25JbnZh
bGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNmMmVjZWNlOWNi
OGNkNGQ5NzhmOWYwNjBkNzgwNjNjODliZGJlYjkuLjE4NWUxMjlmYWQ5ZTlhMmRkN2ZhZjQ2ZjIx
MmMxZTRlNThjMDFkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzM3Myw2ICszMzczLDggQEAKIAkJM0Y5MTVDMEUxRjU2NERFRDAw
MTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJ
T1MubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjkxNUMwRjFGNTY0REVEMDAx
ODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHBhdGggPSBpb3MvZnVsbHNjcmVl
bi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTNGQjA4RTQyMUY2MEIyNDAwMDVFNTMxMiAvKiBpT1MueGNhc3NldHMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXIuYXNzZXRj
YXRhbG9nOyBwYXRoID0gaU9TLnhjYXNzZXRzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTAwRUM0MzI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDQyNTEzNTc5RjAwN0I4NUQ5
IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9PdXRwdXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTAyNEZDMDIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDI0RkMxMjND
RjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAzRkJBMTIwNjFC
REI3MDBDMkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTUyMSw2ICs1NTIzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEQUY1QTRE
MjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQlDREE5NTkzOTI0MTJCMTc1MDA5MTBF
RUYgLyogaW9zICovLAorCQkJCTQxMDBFQzQzMjUxMzU3OUYwMDdCODVEOSAvKiBBdWRpb091dHB1
dFByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTAwRUM0NDI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9P
dXRwdXRQcm92aWRlci5oICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdD
IC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC02MTYzLDEwICs2
MTY3LDEwIEBACiAJCQkJQkM1NzQ0RUUxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5o
ICovLAogCQkJCTdDREU3MzlGMUY5REEzN0EwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlcy55YW1s
ICovLAogCQkJCTdDMkUwQkU1MjUxMkNBRkUwMDVGM0M4NyAvKiBXZWJQcmVmZXJlbmNlc0RlYnVn
LnlhbWwgKi8sCi0JCQkJN0MyRTBCRTMyNTEyQzg0NjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgKi8sCi0JCQkJN0MyRTBCRTEyNTEyQzVDQjAwNUYzQzg3IC8qIFdl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCAqLywKIAkJCQkzMTEwRUQ2MjIwMTI3Q0IzMDAzNTBC
MjAgLyogV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcCAqLywKIAkJCQk3Q0RFNzNBMDFG
OURBMzdCMDAzOTAzMTIgLyogV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggKi8sCisJCQkJ
N0MyRTBCRTMyNTEyQzg0NjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlh
bWwgKi8sCisJCQkJN0MyRTBCRTEyNTEyQzVDQjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbCAqLywKIAkJCQlCQ0Q1OThBQjExMkI3RkRGMDBFQzhDMjMgLyogV2ViUHJlZmVy
ZW5jZXNTdG9yZS5jcHAgKi8sCiAJCQkJQkNENTk4QUExMTJCN0ZERjAwRUM4QzIzIC8qIFdlYlBy
ZWZlcmVuY2VzU3RvcmUuaCAqLywKIAkJCQlCQzMwNjgyMzEyNUE2Qjk0MDBFNzEyNzggLyogV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvT3V0cHV0UHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jYjFmNDI5ZTA2YzgwMDhhMTY0ZDVjYTZjYjQzOGE1OTM4YWY0NmFjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1
dFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKKworI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCit2b2lkIEF1ZGlvT3V0cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmlj
ZUNoYW5nZWQoUGFnZSYgcGFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgcGFnZS5mb3JF
YWNoQXVkaW9Qcm9kdWNlcihbXShhdXRvJiBhdWRpb1Byb2R1Y2VyKSB7CisgICAgICAgIGF1ZGlv
UHJvZHVjZXIuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworICAgIH0pOworI2Vu
ZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvQXVkaW9PdXRwdXRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IzYzk5MWI1MWNmOWIxNzRh
YzY4YThjMzdkMDgwZGJlMjQ5N2RjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRlci5oCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9P
dXRwdXRQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQXVkaW9PdXRw
dXRQcm92aWRlciA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb091dHB1dFByb3ZpZGVyIHsKK3B1Ymxp
YzoKKyAgICBBdWRpb091dHB1dFByb3ZpZGVyKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorICAg
IHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZChXZWJDb3JlOjpQYWdlJikgZmlu
YWw7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGZmMGRiNGVkMTQ4YzBmNTIxYzY3YTdjNDlhMWU4MzM2NzRlOTBiNDQuLjhkODg0
MjRiMzFlMjcyZWFmZDBkYTE0MTIyOTY2MTMxOTRhODcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUdlb21ldHJ5LmgiCisjaW5jbHVkZSAiQXVk
aW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCkBAIC00
OTksNyArNTAwLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQ
cm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3Zlcmxh
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaApp
bmRleCAxZTk5MzcxNDlhZmYyYjFiMDRkN2M1ZWNjYjJjNmQ5OGJkNzNjZGIxLi5hM2U2ODYyNmJi
OWI3NjlmODYwOTY5NWIwOTdiZTA3NTdjMmEzYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVS
YW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBEREFjdGlv
bkNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggOTg0ZmJiZjRjNzgzNDRkNWY4
MzdiOWFhNWM5YWU3OGEzNWZkMWRiZi4uNWY5YzJhYWQwOTE5NjJlMzU5NmVmODkzYjM1OWMxZDFk
Njg0YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMzMsOSArMzMsMTEgQEAKICNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1Nh
bXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaAppbmRleCAzNzU0MDhjMzkwMjQ1MTFkMmZiYTUzNjdlZDU4ZDE3NTdkYWExNTg2
Li4xYzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcwZTliNWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmgKQEAgLTMwLDYgKzMwLDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2
aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhNDI1Y2NmMWM1Yzll
Nzc5OTc0NGM1YmU1MzkzNzRkZmY4MjdiNjllLi41NmMxYTIxM2Q4NjQ0ZTQwOGMxZjE4ZGVhYTI3
NGZmOTYwOTViOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVS
ZWYuaD4KICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRD
YWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oPgpAQCAtMTYwMyw3ICsxNjA0LDgg
QEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5
KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNv
cHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwK
LSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkK
KyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCks
CisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9PdXRwdXRQcm92aWRlcj4oKQog
ICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
Y2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKQEAgLTE4ODMsNyArMTg4
NSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vz
c2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRl
ci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+
KCksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvT3V0cHV0UHJvdmlkZXI+
KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJD
aHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
</data>
<flag name="commit-queue"
          id="424609"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409029</attachid>
            <date>2020-09-17 06:37:05 -0700</date>
            <delta_ts>2020-09-17 07:14:59 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917153702.patch</filename>
            <type>text/plain</type>
            <size>77712</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3Njg5ZDA2MTdlOTI4
N2Q4ZjEzYzg1Yjg5N2ExMGU2MDMwNDRiMC4uMjZkNWQ1NTk3MTgyYmFmMmEwNGVkNWJmNTIwMjRm
YzE1M2ZiZTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEZvciBNZWRpYVN0cmVhbVRyYWNrLCB3ZSBy
ZXNldCB0aGUgQXVkaW9TYW1wbGVEYXRhU291cmNlIHdoZW4gc3dpdGNoaW5nIG9mIGF1ZGlvIGRl
dmljZSBvdXRwdXQuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3ZSBkbyBub3QgZW5kIHVwIHJl
bmRlcmluZyBhdWRpbyB3aXRoIHNvbWUgZGVsYXkgb24gdGhlIG5ldyBkZXZpY2UuCisKKyAgICAg
ICAgQWxsIHRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgYmFzZWQgb24gdXNlciBnZXN0dXJlLgor
ICAgICAgICBVcGRhdGUgUmVuZGVyTWVudUxpc3QgdG8gYWN0aXZhdGUgdXNlciBnZXN0dXJlIHdo
ZW4gdXNlciBzZWxlY3RzIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCisKKyAgICAgICAgVGVzdHMgdG8g
YmUgYWRkZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2
aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6cmVm
cmVzaERldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjplbnVtZXJhdGVE
ZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFz
SGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRp
b091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5pZGw6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2Uv
TWVkaWFQcm9kdWNlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6ZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGVm
YXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpm
b3JFYWNoQXVkaW9Qcm9kdWNlcik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojph
dWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3Jl
YXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAg
ICAgKFJlbmRlck1lbnVMaXN0Ojp2YWx1ZUNoYW5nZWQpOgorCiAyMDIwLTA5LTE3ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4IGZv
ciAicmVkZWZpbml0aW9uIG9mICdrQ01WaWRlb0NvZGVjVHlwZV9WUDkiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4
ZTRiZjRlMjJhNmE5YTdhZDY0N2E5ZTdjNTE4NTZmY2EyMWRhZWEuLmY1Nzc4NmIxNDE4ZDljOGM2
ZmIzYTFmY2Y4NDg4ZTI0ODk2ZTZmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAt
MDktMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzcGVha2VyIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGFuIGV4cGVyaW1lbnRhbCBmbGFnIGZvciBw
ZXIgZWxlbWVudCBzcGVha2VyIHNlbGVjdGlvbi4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3
ZXJlIG5vdCBleHBvc2luZyByZWFsIGRldmljZSBJRHMgdG8gV2ViUHJvY2VzcywgYnV0IGluc3Rl
YWQgd2VyZSBoYXNoaW5nIHRoZW0gYmVmb3JlIHNlbmRpbmcgdGhlbSB0byBXZWJQcm9jZXNzLgor
ICAgICAgICBXZSBub3cgc2VuZCB0aGUgcmVhbCBkZXZpY2UgSWRzIGFuZCBsZXQgV2ViUHJvY2Vz
cyBkbyB0aGUgaGFzaGluZyBwZXIgb3JpZ2luLgorCisgICAgICAgIEltcGxlbWVudCBBdWRpb091
dHB1dFByb3ZpZGVyIGZvciBNYWMgYnkgbG9vcGluZyB0aHJvdWdoIGFsbCBhdWRpbyBwcm9kdWNl
cnMgYW5kIG5vdGlmeWluZyB0aGVtIHRoYXQgdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmlj
ZSBjaGFuZ2VkLgorCisgICAgICAgIEZpeGVzIHVuaWZpZWQgYnVpbGQgaXNzdWVzIGluIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCwgUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAsIFdlYlBhZ2VPdmVybGF5LmggYW5kIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisKIDIwMjAtMDktMTcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZmllZCBidWlsZCBmaXggZm9yICJyZWRl
ZmluaXRpb24gb2YgJ2tDTVZpZGVvQ29kZWNUeXBlX1ZQOSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBmNGRiMGMxMWM5NmMxYThlOGE1Y2IyYmIxNDk3MWFmMDkyYzk4MjIzLi5iODgx
Y2NmZjI0YzBhZWFlZjc0NzVkM2FhYmM4OTJhMWExNzExMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzcGVha2VyIHNlbGVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMjAtMDktMTYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBydW50aW1lIHNldHRpbmcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBDU1Mgc2hhZG93
IHBhcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjYzhlN2FjZjNiOTA4NDc5NmQ1YjZkMzc1YTA4
ODU2MjM4YjdhYmJlLi4zY2I1OGY1NDRhMjhiM2RjMzBiOTNiMGY1ODZlZTIwNmFhOWVjOGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTc4Nyw2ICs3ODcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9BY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIu
aAogICAgIHBhZ2UvQWRqdXN0Vmlld1NpemVPck5vdC5oCiAgICAgcGFnZS9BbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaAorICAgIHBhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oCiAgICAgcGFnZS9BdXRv
cGxheUV2ZW50LmgKICAgICBwYWdlL0Jhc2U2NFV0aWxpdGllcy5oCiAgICAgcGFnZS9DYWNoZVN0
b3JhZ2VQcm92aWRlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggMjdiYzNlMTBhYWY2MGEzNzg5ZjE5MWIwYTY1MTI3
NzE4MTUzZmRlYi4uZWQ4NGVlMTkxYzBlNjAzMDlkMDYzMGE1ODNiMDI0YzI2NWM3MTJhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcApAQCAtNTcsNyArNTcsNyBAQCBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAg
ICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRF
dmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX2V2ZW50TmFtZXMoZXZlbnROYW1lcygpKQotICAgICwg
bV9pZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKKyAgICAsIG1fZ3JvdXBJ
ZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKIHsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbmxpbmUgTWVkaWFEZXZpY2VJ
bmZvOjpLaW5kIHRvTWVkaWFEZXZpY2VJbmZvS2luZChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUCiAg
ICAgcmV0dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dDsKIH0KIAotdm9pZCBN
ZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
bmV3RGV2aWNlcykKK3ZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0
b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNo
U2FsdCkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYg
KCFkb2N1bWVudCkKQEAgLTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVz
aERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogICAgIGJv
b2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IGNoZWNrTWljcm9waG9uZUFjY2VzcygqZG9jdW1lbnQp
OwogICAgIGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2VzcygqZG9jdW1l
bnQpOwogCisgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsK
KwogICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1
dG8mIG5ld0RldmljZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNy
b3Bob25lICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKQEAgLTIxNywxMSArMjE5LDE3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpyZWZy
ZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCiAgICAg
ICAgIH0pOwogICAgICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgIGRl
dmljZXMuYXBwZW5kKG1fZGV2aWNlc1tpbmRleF0uY29weVJlZigpKTsKKyAgICAgICAgICAgIGlm
IChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIp
CisgICAgICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuYWRk
KG1fZGV2aWNlc1tpbmRleF0tPmRldmljZUlkKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBhdXRvIGRldmljZUlk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAg
IGF1dG8gZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UuZ3JvdXBJZCgpLCBtX2dyb3VwSWRIYXNoU2FsdCk7
CisKKyAgICAgICAgaWYgKG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U3BlYWtlcikKKyAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lz
dGVudElkLmFkZChkZXZpY2VJZCwgbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpKTsKIAotICAgICAg
ICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5o
YXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9pZEhhc2hTYWx0KTsKLSAg
ICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxh
YmVsKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgV1RGTW92ZShncm91cElkKSwgZGV2aWNl
S2luZCkpOworICAgICAgICBkZXZpY2VzLmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShu
ZXdEZXZpY2UubGFiZWwoKSwgV1RGTW92ZShkZXZpY2VJZCksIFdURk1vdmUoZ3JvdXBJZCksIGRl
dmljZUtpbmQpKTsKICAgICB9CiAgICAgbV9kZXZpY2VzID0gV1RGTW92ZShkZXZpY2VzKTsKIH0K
QEAgLTI0NCwxMiArMjUyLDExIEBAIHZvaWQgTWVkaWFEZXZpY2VzOjplbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0byYgZGV2aWNlSURIYXNoU2Fs
dCkgbXV0YWJsZSB7CisgICAgY29udHJvbGxlci0+ZW51bWVyYXRlTWVkaWFEZXZpY2VzKCpkb2N1
bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvJiYgbmV3RGV2aWNlcywgYXV0byYmIGRldmljZUlESGFzaFNhbHQp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGlzQ29udGV4dFN0b3BwZWQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5zZXREZXZp
Y2VJREhhc2hTYWx0KGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICByZWZyZXNoRGV2aWNlcyhu
ZXdEZXZpY2VzKTsKKyAgICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcywgZGV2aWNlSURI
YXNoU2FsdCk7CiAgICAgICAgIHByb21pc2UucmVzb2x2ZShtX2RldmljZXMpOwogICAgIH0pOwog
fQpAQCAtMzIwLDYgKzMyNywzNiBAQCBib29sIE1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbgogICAgIHJldHVy
biBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwg
V1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOwogfQogCit2b2lkIE1lZGlhRGV2aWNlczo6c2V0
QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVu
dFVzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCAiQSB1c2VyIGdlc3R1cmUgaXMgcmVxdWlyZWQiX3MgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZXZpY2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCku
c2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoeyB9KTsKKyAgICAgICAgbV9hdWRpb091dHB1
dERldmljZUlkID0geyB9OworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcGVyc2lzdGVudElkID0gbV9hdWRpb091dHB1dERldmlj
ZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsKKyAgICBpZiAocGVyc2lzdGVudElkLmlz
TnVsbCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS5zZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZChXVEZNb3ZlKHBlcnNpc3RlbnRJZCkp
OworICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUoZGV2aWNlSWQpOworICAgIHBy
b21pc2UucmVzb2x2ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggYmU1ZDZiOGZiNWQxZTQzZTU4MzkxNDk2ZGQ0
MWRhNzA3YjliODg4ZC4uNDdkYzgyMzIxNGI5OGY5ZWVhOTYxOTE2ZGYzYzQ4ZmRhZWUyMDhmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCkBAIC04OSw2ICs4OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25z
dHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZShTdHJpbmcmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIFN0
cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZDsgfQorCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRGcm9tRGV2aWNlSWQoY29u
c3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcgUmVmQ291bnRlZDxN
ZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURldmljZXM+Ojpk
ZXJlZjsKIApAQCAtOTgsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2
ZW50VGltZXJGaXJlZCgpOwogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3Rl
bmVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKKyAgICB2b2lkIHJlZnJlc2hEZXZpY2VzKGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbGlzdGVuRm9y
RGV2aWNlQ2hhbmdlcygpOwogCiAgICAgZnJpZW5kIGNsYXNzIEpTTWVkaWFEZXZpY2VzT3duZXI7
CkBAIC0xMjYsOCArMTMxLDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgRXZlbnROYW1lcyYgbV9l
dmVudE5hbWVzOyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2FuIHVzZSBpdCBmcm9tIEdD
IHRocmVhZHMuCiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgeyBmYWxzZSB9
OwogCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlkVG9Q
ZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKKwogICAgIFZl
Y3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gbV9kZXZpY2VzOwotICAgIFN0cmluZyBtX2lkSGFz
aFNhbHQ7CisgICAgU3RyaW5nIG1fZ3JvdXBJZEhhc2hTYWx0OwogCiAgICAgT3B0aW9uU2V0PEdl
c3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAg
ICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApp
bmRleCA5MmE5ZGQ3YzU0MmEyNzgyN2ZiNDA4NzAyNjIzNzIyMTIyYThiZjM5Li5lZTg1Y2VkMDg3
YWNjMzZmYmFiNjZkYWFiNGVhYjYwYzVlNzg0NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCkBAIC0zOSw2ICszOSw5IEBA
CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFp
bnRzKCk7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNl
PE1lZGlhU3RyZWFtPiBnZXRVc2VyTWVkaWEob3B0aW9uYWwgTWVkaWFTdHJlYW1Db25zdHJhaW50
cyBjb25zdHJhaW50cyk7CiAgICAgW0VuYWJsZWRCeVNldHRpbmc9U2NyZWVuQ2FwdHVyZV0gUHJv
bWlzZTxNZWRpYVN0cmVhbT4gZ2V0RGlzcGxheU1lZGlhKG9wdGlvbmFsIERpc3BsYXlNZWRpYVN0
cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKworICAgIFtFbmFibGVkQnlTZXR0aW5nPUV4
cG9zZVNwZWFrZXJzXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0QXVkaW9PdXRwdXREZXZpY2UoRE9N
U3RyaW5nIGRldmljZUlkKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vyc10g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdWRpb091dHB1dERldmljZTsKIH07CiAKIFsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCmluZGV4IGRmMmE1ZTQ0ZWMxMjc5YzBhMjMzYmMxZGFjNDczNTlkNTM1ZTE4
MzYuLjlhMDAwZDRmZDhlYjQwOWM0NTE4ZDM1ZmY3M2RkZGU4MWJmOWVkZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcApAQCAtMjcxLDggKzI3MSw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coQ2Fw
dHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9ECiAgICAgICAg
IH07CiAKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGRvY3VtZW50LnNldERldmljZUlESGFzaFNh
bHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLQogICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShkb2N1bWVudC5sb2dnZXIo
KSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwg
V1RGTW92ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOwog
CiAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRmYmEyMDI3MDMz
YzhlNmYyMjU3Y2Q1YWI1YzE5MTk4NjFkY2M4YzYuLjQ2MTVmNDY0NzFlM2U2YmM4YjUwNTU1ZDM2
OTY1MjE3MzJlZmYwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMTgsNiArMTAxOCw3IEBACiAJCTNGQkM0QUYzMTg5ODgx
NTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkM0QUYxMTg5ODgxNTYwMDQ2
RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLzsgfTsKIAkJM0ZCQzRB
RjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzRkY4MTNBNzFEQkE4NjQw
MDA5QkYwMDEgLyogUG9pbnRlckxvY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0ZDNDM0RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9p
bnRlckxvY2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAwQzgwMjNGNzQ1ODMwMDFC
QzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwMEM3RTIzRjczOTgyMDAxQkMzM0IgLyogV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC03NDE5LDYgKzc0MjAsNyBAQAogCQkzRjgwMjAzNDFFOUUzODFE
MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4IC8qIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQx
QjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxNDQ4LDYgKzIxNDUwLDcgQEAKIAkJCQk3MjRFRTU0RjFEQzdGMjVC
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJQkNGNDhD
RTYxMzcwRDExNDAwNEU4N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLywKIAkJCQlDRURB
MTJENjE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCisJCQkJ
NDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLywKIAkJ
CQlDOUQ0NjcwNDFFNjBDM0VCMDA4MTk1RkIgLyogQXV0b3BsYXlFdmVudC5oICovLAogCQkJCTQ1
ODMwRDRCMTY3OUI0RjgwMEFDRjhDMyAvKiBBdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJNDU4MzBENEMxNjc5QjRGODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVyLmggKi8s
CkBAIC0zMDQyNSw2ICszMDQyOCw3IEBACiAJCQkJRkQzMTYwMTYxMkIwMjY3NjAwQzFBMzU5IC8q
IEF1ZGlvTm9kZUlucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNzE0NjdCMzI0QUJBRUYyMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMTgx
MkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvTm9kZU91dHB1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDFEMTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb1BhcmFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDM1OTE5MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRp
bWVsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyog
QXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggOTA5NmYyNjQ2NzkxMzBhNzg0YTUxYTlhZGM4YmFkZWJlYzdjN2FjNC4uZmNiMmJj
NzhhM2QzYjUzOGQ0MmNiNGExZjhhN2M2MDZiYjBkZjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0xODAzLDYgKzE4MDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6Zm9yRWFjaE1lZGlhRWxl
bWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmMKICAgICAg
ICAgZnVuY3Rpb24oZWxlbWVudCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmZvckVhY2hBdWRpb1By
b2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYgZnVuY3Rpb24pCit7
CisgICAgbV9hdWRpb1Byb2R1Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBEb2N1
bWVudDo6c3RvcEFsbE1lZGlhUGxheWJhY2soKQogewogICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXJJZkV4aXN0cygpKQpAQCAtNzk1NSwxMyArNzk2MCwyMyBAQCB2b2lkIERvY3VtZW50Ojpt
ZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKQogICAgIH0pOwogfQogCi12b2lkIERvY3Vt
ZW50OjpzZXREZXZpY2VJREhhc2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKKyNlbmRpZgorCitT
dHJpbmcgRG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKIHsKLSAg
ICBBU1NFUlQobV9pZEhhc2hTYWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7
Ci0gICAgbV9pZEhhc2hTYWx0ID0gc2FsdDsKKyAgICByZXR1cm4gaXNUb3BEb2N1bWVudCgpID8g
bV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA6IHRvcERvY3VtZW50KCkuZGVmYXVsdEF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKIH0KIAotI2VuZGlmCit2b2lkIERvY3VtZW50OjpzZXREZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZChTdHJpbmcmJiBkZXZpY2VJZCkKK3sKKyAgICBBU1NFUlQoaXNU
b3BEb2N1bWVudCgpKTsKKyAgICBpZiAobV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA9PSBk
ZXZpY2VJZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
SWQgPSBXVEZNb3ZlKGRldmljZUlkKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpKQorICAgICAgICBwYWdlLT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggNWFiYzI0ZWJiOTgxZTU2NGYwN2FkZWI4ZTVmYzExNTgxMzFjNTM1
NS4uMmQwZTZlYTdlZDE0YjFjOWM4NWE0NzYwZjdiZjk5ZWI2NDVlODA2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTE0MjUsMTIgKzE0MjUsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIHsgbV9o
YXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhhc0hhZENh
cHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJp
bmcmKTsKLSAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1faWRI
YXNoU2FsdDsgfQogICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogICAgIHZvaWQgbWVkaWFT
dHJlYW1DYXB0dXJlU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEF1ZGlvT3V0
cHV0RGV2aWNlSWQoU3RyaW5nJiYpOworCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBm
b3IgdGhpcyBmdW5jdGlvbmFsaXR5LgogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgcHJvdmlkZSBhIHR3by1sZXZlbCBzZXR0aW5n
OgpAQCAtMTUxMCw2ICsxNTExLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2
b2lkIGZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+Jik7CiAjZW5kaWYKKyAgICB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiAgICAgYm9vbCBoYW5kbGluZ1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hh
bmRsaW5nVG91Y2hFdmVudDsgfQpAQCAtMjA3Niw3ICsyMDc4LDYgQEAgcHJpdmF0ZToKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9t
ZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHM7Ci0gICAgU3RyaW5nIG1faWRIYXNoU2FsdDsK
ICAgICBib29sIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAKQEAgLTIxNDEsNiArMjE0Miw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRp
dG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9u
OworCisgICAgU3RyaW5nIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCiBFbGVt
ZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0
MjNjNmZiMGE2ZmEwODY5NmIyMS4uNzQ5ZTMxMGMxYjRjYzEwNjU0NTRmM2E5Y2M0M2YyN2M5OTNl
ZjNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2
ICs3MSw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlh
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAi
TWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1l
ZGlhRXJyb3IuaCIKICNpbmNsdWRlICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2
ICs3OSw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0
Myw2ICsyODQ1LDU1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVk
aWFUaW1lJiB0aW1lKQogICAgIHNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJh
bmNlLCBNZWRpYVRpbWU6Onplcm9UaW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKK30KKwordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlk
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJl
cXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5k
b3cgPyBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRv
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIW1f
YXVkaW9PdXRwdXREZXZpY2VJZC5pc0VtcHR5KCkgJiYgbV9wbGF5ZXIpIHsKKyAgICAgICAgICAg
IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IHsgfTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYXVkaW9PdXRwdXREZXZp
Y2VJZCA9IG1lZGlhRGV2aWNlcy0+YXVkaW9PdXRwdXREZXZpY2VJZEZyb21EZXZpY2VJZChkZXZp
Y2VJZCk7CisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQgIT0gbV9hdWRpb091
dHB1dERldmljZUlkKSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUo
YXVkaW9PdXRwdXREZXZpY2VJZCk7CisgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgICAg
IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICB9CisgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7Cit9CisjZW5kaWYKKworU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9hdWRpb091dHB1dERldmlj
ZUlkLmlzRW1wdHkoKSA/IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA6IGRvY3VtZW50KCkuZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
KGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IHRpbWUpOwpAQCAtNzY5OCw2ICs3NzQ5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVy
IHx8ICFtX2F1ZGlvT3V0cHV0RGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiBkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlVm9sdW1lKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQoKS5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IGFiMmIwMDExYjU5NDM5ZWE1MWU4YWEzZTIwOGZlMDEyYzYzZDEyZWQuLjdkODMyNjcw
ZjZlNGQ0MDRkZmY3ZGIwNTJmYWQxMTJlYThjZGEzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC0yNjgsNiArMjY4LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
bWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0
ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyNlbmRpZgor
CiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJpbmdQb2xpY3k7CiAgICAg
dm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsKICAgICBXRUJDT1JFX0VY
UE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29uc3Q7CkBAIC02MDQsNiAr
NjA5LDggQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3Qg
ZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsgfQogCiAgICAgYm9vbCBtZWRpYUNv
bnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29u
dHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0TWVkaWFDb250cm9s
c0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtODgyLDYgKzg4OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2
b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdl
KEF1ZGlvU2Vzc2lvbiopIGZpbmFsOwpAQCAtMTE5Nyw2ICsxMjA1LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhh
dmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisKKyAgICBT
dHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCmluZGV4IGI0MmQwZWEz
NzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLjUxNDMwYWExNTU0MWY2MjA2YTU4Mjk1
NzNhZTk4MTQ3NjQ4MmE1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAgdW5kZWZpbmVkIHBhdXNlKCk7
CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPUV4cG9zZVNwZWFr
ZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVu
YWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24s
IEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXREZXZpY2VdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgc2lua0lkOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNl
dHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25dIFByb21pc2U8
dW5kZWZpbmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2aWNlSWQpOworICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtl
cnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9c2V0QXVkaW9PdXRw
dXREZXZpY2VdIFByb21pc2U8dW5kZWZpbmVkPiBzZXRTaW5rSWQoRE9NU3RyaW5nIGRldmljZUlk
KTsKKwogICAgIC8vIGNvbnRyb2xzCiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmli
dXRlIGJvb2xlYW4gY29udHJvbHM7CiAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJl
ZDUzZWE2OWY3MjJjZDQ1YjdhZDguLmVjYmEyZjUyMDliY2E0YmM3OTZhZmNkNmNhZTc4ZTBkZDE4
YTcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNs
dWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCkBAIC02MTMsNyArNjE0LDggQEAgUGFnZUNv
bmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBF
bXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0
eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50PigpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4o
KQogICAgIH07CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+
IGR1bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRp
b091dHB1dFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1ZGlvT3V0cHV0UHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGVhMTBjYzg5OGU0MTNiNzM0NzNkNzBmYmI2NmEwYzQ5MWIwMDJl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3Zp
ZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1
ZGlvT3V0cHV0UHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIEF1ZGlvT3V0cHV0UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+QXVk
aW9PdXRwdXRQcm92aWRlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKFBhZ2UmKTsKK307CisKK2lubGluZSB2b2lkIEF1ZGlv
T3V0cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYpCit7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAxYzUxZWU3
NjhlZmQ2MmE2N2QwODY2N2VhZTgwMWQ2Njg5My4uZDFkMjFlZmRjN2NjZDQ1ZTAxNDMyOTIwZjhj
ODczZjJkNTcwNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1
Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTc5LDYg
Kzc5LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdW5zaWduZWQgTXV0ZWRTdGF0ZUZsYWdzOwog
CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9OwogCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFQcm9kdWNlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IGEwYTc3ZDI4ODM2NDgyMWM1MTBiMmQ1MTJiYTcwZTcyOWMyMWI2ZDUuLjA3
YmE5OGE4NTQzMmM0ZDE3NzI5NWNiMzk3MmQ0MzdhOWZhZTI4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgog
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUu
aCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgpAQCAtMjU1LDYgKzI1Niw3IEBAIFBh
Z2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1f
c3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3lu
dGhlc2lzQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCisgICAgLCBt
X2F1ZGlvT3V0cHV0UHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYXVkaW9PdXRw
dXRQcm92aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFz
dGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xs
RWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKQEAgLTIwNjYsNiArMjA2OCwxMSBA
QCB2b2lkIFBhZ2U6OnJlc3VtZUFsbE1lZGlhQnVmZmVyaW5nKCkKICNlbmRpZgogfQogCit2b2lk
IFBhZ2U6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fYXVkaW9P
dXRwdXRQcm92aWRlci0+ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgqdGhpcyk7Cit9
CisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAogdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2
ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKQEAgLTMxMjYsNiArMzEzMywxMyBAQCB2b2lk
IFBhZ2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFF
bGVtZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEF1ZGlv
UHJvZHVjZXIoY29uc3QgRnVuY3Rpb248dm9pZChNZWRpYVByb2R1Y2VyJik+JiBmdW5jdG9yKQor
eworICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAg
ICBkb2N1bWVudC5mb3JFYWNoQXVkaW9Qcm9kdWNlcihmdW5jdG9yKTsKKyAgICB9KTsKK30KKwog
dm9pZCBQYWdlOjphcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogewogI2lmIEVOQUJMRShW
SURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMGExZGQ2YjRiM2Y1NTVkMDk1YTBkY2VlMzNhYTE1ZTAw
ODNhYzcxZS4uOTgzYjY1ZTNiODY2ZjliNTE3ZWY1NDIxZjQzMzVkY2IzNGRkOTA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwog
Y2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0
Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CitjbGFzcyBBdWRpb091dHB1
dFByb3ZpZGVyOwogY2xhc3MgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOwogY2xhc3MgQmFja0Zv
cndhcmRDb250cm9sbGVyOwogY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC02NTAsNiAr
NjUxLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQWxsTWVkaWFC
dWZmZXJpbmcoKTsKICAgICBib29sIG1lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQoKSBjb25zdCB7
IHJldHVybiBtX21lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQ7IH0KIAorICAgIHZvaWQgZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxv
YWRDbGllbnQoYm9vbCBoYXMpIHsgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAg
ICBib29sIGhhc1Jlc291cmNlTG9hZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50OyB9CiAKQEAgLTc2Miw3ICs3NjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yRWFjaERvY3VtZW50KGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVu
dChjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOworICAgIHZv
aWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1l
bnQmKT4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAgICAgYm9vbCBzaG91bGRE
aXNhYmxlQ29yc0ZvclJlcXVlc3RUbyhjb25zdCBVUkwmKSBjb25zdDsKIApAQCAtODU3LDYgKzg2
MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJv
dmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxBdWRpb091dHB1
dFByb3ZpZGVyPiBtX2F1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGND
b250cm9sbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmlu
ZGV4IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjI5NjRjMWY5Njlk
ZmUyOWY4ZGY0ZThjYmI5ZjMwNDJlYzAyOTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgor
I2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENs
aWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCkBAIC01OCw3ICs1OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFn
ZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92
aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxp
YldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdl
UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVm
PENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYg
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+
JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hl
U3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRD
bGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBV
bmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIs
IFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmIGF1ZGlvT3V0cHV0UHJvdmlkZXIpCiAg
ICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRp
dG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIp
KQpAQCAtNjksNiArNzAsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgbG9hZGVy
Q2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAg
ICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQog
ICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVy
KSkKKyAgICAsIGF1ZGlvT3V0cHV0UHJvdmlkZXIoV1RGTW92ZShhdWRpb091dHB1dFByb3ZpZGVy
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYy
ODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmE0MmRlNmM0MGQ1NmZiOWI4
NWY3Y2M4ZjZjMzJkMjhiNDdiNWQ1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFz
cyBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQ7CitjbGFzcyBBdWRpb091dHB1dFByb3Zp
ZGVyOwogY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRl
cjsKIGNsYXNzIENvb2tpZUphcjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhl
c2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlx
dWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwg
UmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJl
ZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8
Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVS
ZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmln
dXJhdGlvbiYmKTsKIApAQCAtMTI5LDYgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZl
Y3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBV
bmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7Cisg
ICAgVW5pcXVlUmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+IGF1ZGlvT3V0cHV0UHJvdmlkZXI7CiAg
ICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5l
dHdvcmsgeyB0cnVlIH07CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlm
aWNhdGlvbiB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBmYmYwOGM0
ZjkzMjgzMGY0MTg3NjRjZDI4MjJjMDQzZWU1ZGNkYTc3Li5mMzEyY2Q4MjNmMDZlMDdlMjU4N2I0
YTIwN2NiMDBhZTViMzllZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjYs
NiArODI2LDkgQEAgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFi
bGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGly
ZWN0b3J5OgogICB0eXBlOiBTdHJpbmcKICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKaW5kZXggNjNjZjNjY2VlODExMmUxNTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4
OTk3ZjcyNmNmYjE3YTYyNmJkOWU5NDY1ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDEx
IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1p
Y1JhbmdlTW9kZSBtb2RlKQogICAgIG1fcHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZShtb2RlKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKCkKK3sKKyAgICBtX3ByaXZhdGUtPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQor
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjpt
ZWRpYVBsYXllckxvZ2dlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFh
Y2FmNGYzLi5kNDY3MzFhMmJhZGY4ODU3MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2
ICsyNzMsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1
bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFs
IFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAg
dmlydHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1
cm4geyB9OyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0
IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEs
NiArNjM0LDEwIEBAIHB1YmxpYzoKICAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFt
aWNSYW5nZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7
IH0KICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9k
ZSk7CiAKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmlu
ZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBw
dWJsaWM6CiB9OwogCiAKK2lubGluZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2
aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091
dHB1dERldmljZUlkKCkgOiBTdHJpbmcgeyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBt
X2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmlu
ZyB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShW
SURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKaW5kZXggNjcwYzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1
OTc4ZC4uODEyNTMzMDI3NmRkNTQ0ZTFmY2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKQEAgLTI4OSw2ICsyODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEln
bm9yZUludHJpbnNpY1NpemUoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3
OGJiZDNlMy4uODVjZTgxZDEwM2I4NWQxZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVS
TEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4
MjMwMDJiNTYxNS4uOGY0ZTQwM2NmYjExZWRkYTk2MDE2NWJhZjliZTY1NWZmODhlOTYzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC05NTMsNiArOTUzLDEyIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2
UGxheWVySXRlbSkKICAgICAgICAgc2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgp
KTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBw
bGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFhdWRpb091
dHB1dERldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0
cHV0RGV2aWNlVW5pcXVlSUQgPSBhdWRpb091dHB1dERldmljZUlkOworI2VuZGlmCisKICAgICBz
ZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMsNiArMzI5OSwxNSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgaWYgKCFtX2F2UGxheWVyIHx8ICFwbGF5ZXIoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IHBs
YXllcigpLT5hdWRpb091dHB1dERldmljZUlkKCk7CisjZW5kaWYKK30KKwogTlNBcnJheSogYXNz
ZXRNZXRhZGF0YUtleU5hbWVzKCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNB
cnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRl
eCAwOWJmNTU3NDg0MzMxZDU4MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZk
Zjk3MDJmMmY5NTE4YWQ2OWRkODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApA
QCAtMjU0LDYgKzI1NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRh
c2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFs
OworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lk
IGVuc3VyZUxheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCA4Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5
Li43YjEwZGI0YzlmN2IzM2JjYTUyNDkxYjk2NDllNmYyZGUwZGFmMmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0xMTY2LDYgKzExNjYsMTIgQEAgQUxMT1dfTkVXX0FQSV9XSVRI
T1VUX0dVQVJEU19FTkQKICAgICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZv
bHVtZSgpXTsKICAgICBbYXVkaW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToo
bV9wbGF5ZXItPnByZXNlcnZlc1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3Bl
Y3RyYWwgOiBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUoKTsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBhdWRp
b1JlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyNlbmRpZgor
CiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXplciBhZGRSZW5kZXJlcjphdWRpb1Jl
bmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CkBAIC0xMjc2
LDYgKzEyODIsMTcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbV9wbGF5
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGtleSA6IG1fc2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlck1hcC5rZXlzKCkpCisgICAgICAgICgoX19icmlkZ2UgQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyICopa2V5LmdldCgpKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2
aWNlSWQ7CisjZW5kaWYKK30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVk
aWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRi
MjhmYWMzOWNiMWJmYmU5OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0Mjkw
MDAyNTBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRl
ZDsgfQogCiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmlu
Z1BvbGljeSkgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBm
aW5hbDsKIAogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7
CiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
aW5kZXggMmRiNTBiYjg5NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAzNi4uMGZhYjhiMWRl
NDBiNjMzY2JiNzYwMWZkZjY4NzQ2OTgyNjQzZTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQpAQCAtODY3LDcgKzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
VmVjdG9yIGN1cnJlbnRUcmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAK
LSAgICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8g
ZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAg
YXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJl
bW92ZToKQEAgLTg4NCw2ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZSht
X3ZvbHVtZSk7CiAgICAgICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAg
ICAgIHRyYWNrLnNldEVuYWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRy
YWNrLnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlz
TnVsbCgpKQorICAgICAgICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2
aWNlSWQpOworCiAgICAgICAgICAgICBpZiAocGxheWluZygpKQogICAgICAgICAgICAgICAgIHRy
YWNrLnBsYXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAxNyw2ICsxMDIxLDE1IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xp
Y3koTWVkaWFQbGF5ZXI6OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LT5mbHVzaEFuZFJlbW92ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIGlmICgh
bV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXIt
PmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX2F1
ZGlvVHJhY2tNYXAudmFsdWVzKCkpCisgICAgICAgIGF1ZGlvVHJhY2stPnNldEF1ZGlvT3V0cHV0
RGV2aWNlSWQoZGV2aWNlSWQpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5j
dGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmgKaW5kZXggNjQ4OWY5ZGE3YzU2MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAw
Yi4uNDhlNWYzMjcxYWI0OGM3YTI3OTYwNWEzNTE0YWI2OWQyYThkYTVjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25z
dDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmlu
ZyYpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29u
c3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEwIEBAIGlu
bGluZSBjb25zdCBjaGFyKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NO
YW1lKCkgY29uc3QKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKQoreworfQor
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1ZjkwZDQ5OWRlMDM4MDk3
OTZhYzljNWFjLi42YmUwYTE4ZjMwNTg2M2NhZWZiZTg5ZWIxNmU2OGI4ZGU3MjQ3NGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcsNiArOTcsMTEgQEAg
dm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1l
KQogICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKQor
eworICAgIG1fcmVuZGVyZXItPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworfQor
CiBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3JlbmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaAppbmRleCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUz
Li45M2E0MDY1M2MxN2RjNTdmOGQ4Y2QyODAyOTc2OTk5ZTk0OGNiMmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4
KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0
RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
c3RyZWFtVHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCA3
NjIzMmI3OWQ5ZDA3ZWIxYjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li4zZDM5NDAxNmYxYjAyNTc5
YmI0ZDJjZWQ0N2JiNTIxMTQ0NjY4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC02NywxMSArNjcsMTggQEAgdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1l
KQogICAgICAgICBtX2RhdGFTb3VyY2UtPnNldFZvbHVtZSh2b2x1bWUpOwogfQogCit2b2lkIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNyZWF0
ZSBhIHVuaXQgZm9yIG91cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVmYXVsdCB1bml0IGlmIGRl
dmljZUlkIGlzIG1hdGNoaW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2luZ2xldG9uKCkuc2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJZCk7CisgICAgbV9z
aG91bGRSZXNldCA9IHRydWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
dHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKLSAg
ICBpZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkg
fHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7Cisg
ICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9kYXRhU291cmNlLT5p
bnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9
IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIsICp0aGlzKTsKIAog
ICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAgdm9pZCBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUm
IHNhbXBsZVRpbWUKICAgICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2luZ2xldG9uKCkuYWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7CiAgICAgICAgIH0p
OwogICAgICAgICBtX2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBt
X3Nob3VsZFJlc2V0ID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291cmNlLT5wdXNoU2Ft
cGxlcyhzYW1wbGVUaW1lLCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4IDUxYWM0MzM3YzRl
MDM1OGZkZGNiNGVhODU0N2YyYWJiMGJjMGZhODcuLjUwMjU1NjE2NzRkMDVlYTBlOGRlMGRlODVl
NDJiNWVjNDQ1NjE3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuaApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpIGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJp
bmcmKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24+IG1fb3V0cHV0RGVzY3JpcHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4gbV9kYXRhU291cmNlOworICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
Y3BwCmluZGV4IGRhYzc0YTEyNTVjNWU1NGE1MjM0MzZmZTY5YThlNDQ0YzJlNzBiMTUuLjExNGEz
NDBiZmJlNDc3ZDM3MzY4Mzg0YjEzYmMyZTg1ZDYwOTFkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0zNiw2ICszNiwxMSBA
QAogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQXVkaW9Ub29sYm94U1BJLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaCIKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgorI2VuZGlmCisKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsNiArNTYsMjYgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0Ojp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkKICAgICBz
dG9wKCk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRB
dWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7CisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6
OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOworICAgIGlmICgh
ZGV2aWNlIHx8IG1fZGV2aWNlSUQgPT0gZGV2aWNlLT5kZXZpY2VJRCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBib29sIHNob3VsZFJlc3RhcnQgPSBtX2lzU3RhcnRlZDsKKyAgICBpZiAobV9p
c1N0YXJ0ZWQpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fZGV2aWNlSUQgPSBkZXZpY2UtPmRl
dmljZUlEKCk7CisKKyAgICBpZiAoc2hvdWxkUmVzdGFydCkKKyAgICAgICAgc3RhcnQoKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGRldmljZUlEKTsKKyNlbmRpZgorfQorCiB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURh
dGFTb3VyY2U+JiYgc291cmNlKQogewogICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlIik7CkBAIC0xNjEsNiArMTg2LDE2
IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1Vu
aXRJZk5lZWRlZCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYg
KG1fZGV2aWNlSUQpIHsKKyAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1v
dGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAg
ICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFi
bGUgdG8gc2V0IHVuaXQgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2
aWNlSUQsIChpbnQpZXJyb3IsIChjaGFyKikmZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNh
bGxiYWNrID0geyBpbnB1dFByb2MsIG51bGxwdHIgfTsKICAgICBlcnJvciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxi
YWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFj
aykpOwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdC5oCmluZGV4IDQ0MDc2YTU2ZWM5NzRmOWJiODczNDJiZmM3NDgzMGM4
NTljNzcyZjYuLjFiMjIzN2Y4ZDM4ZGFlYjFiOTdkYTllZjNlNjQxMzM2Y2Y5ZmM2ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTUx
LDYgKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsK
IAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKTsKKwogICAg
IHZvaWQgYWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYpOwogICAgIHZvaWQg
cmVtb3ZlU291cmNlKEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYpOwogCkBAIC02OCw2ICs3MCw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9
OwogICAgIExvY2sgbV9zb3VyY2VzTG9jazsKICAgICBib29sIG1faXNTdGFydGVkIHsgZmFsc2Ug
fTsKKyAgICB1aW50MzJfdCBtX2RldmljZUlEIHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggYzAyNTgxY2E5NjMzOTlkM2Uy
MWFjMzY5ZTAxM2RlZDRmYzI1NjhiZi4uMzg2MDZhYmVmZWM3OTVlNWQwODZmYWZhOWMyYTQ4OTNj
NzE3ZjY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
CkBAIC0zODYsNiArMzg2LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6dmFsdWVDaGFuZ2VkKHVu
c2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlT25DaGFuZ2UpCiAgICAgaWYgKCZkb2N1bWVudCgp
ICE9IGRvY3VtZW50KCkuZnJhbWUoKS0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdl
c3R1cmUsICZkb2N1bWVudCgpKTsKKwogICAgIHNlbGVjdEVsZW1lbnQoKS5vcHRpb25TZWxlY3Rl
ZEJ5VXNlcihzZWxlY3RFbGVtZW50KCkubGlzdFRvT3B0aW9uSW5kZXgobGlzdEluZGV4KSwgZmly
ZU9uQ2hhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmNwcAppbmRleCAxZmM1NmQ4MjFiYmQ5M2ZjODk5ZjI4NTNhMTE1OTFhNTIwZWM5OGE3Li5kZTg1
MjRkNGFiYjQxYTMxMmQyMmRlOTlmMjg4ZmI4NDhkNDg1ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApAQCAtMTM2LDQgKzEzNiw2IEBAIHZvaWQgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShN
ZWRpYVRpbWUgdGltZSwKIAogfQogCisjdW5kZWYgTUVTU0FHRV9DSEVDSworCiAjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDYwMzRjMmQ1ZjhkMjU4YmFlNDVlYTUzNWE5NTYwNDFh
NzY1NzQ2MWYuLjBhYjc4NDczMDk1YzcxMmIwNDFlZTVmMjQ5ZDI4ODg0OWE1ODk5YTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmNwcApAQCAtMTM3LDQgKzEzNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6
c3RvcFJlY29yZGluZygpCiAKIH0KIAorI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKwogI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZjM1NmFl
MjcwYTE5MjNiYzczMjQ1OGM2YTFlZTU1OTFlZjk5YzQ3Yy4uZDFjYTRiNTZhZmNiYjU1YTBiYTc3
NmIzYTFjYzIwMjUxNWNhNTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xNTQsNiArMTU0LDE0IEBAIEV4cG9z
ZVNwZWFrZXJzRW5hYmxlZDoKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICBjb25kaXRpb246
IEVOQUJMRShXRUJfUlRDKQogCitQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6Cisg
IHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTog
IkFsbG93IHBlciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVt
YW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBk
ZXZpY2Ugc2VsZWN0aW9uIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIGNvbmRpdGlvbjog
RU5BQkxFKFdFQl9SVEMpCisKIFZQOURlY29kZXJFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZTogZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM4
ODRmMGVkZThiOWRmYWIzMzJjODQzZGU0Yjg1YjExNjEyMGIwYjkuLmYzMzFjZjBlODBhMTIyNmIz
ZmIwNGZjNGQ0MjVhMjg1NWMyMGEyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTU1LDYgKzU1NSw3IEBA
IFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCitXZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggYzI2NmMzYmJlMGQ2MTc5YzM5YWVhNmRhMzVjMzdmN2E2NDJjOGM5NC4uY2Y0NWFkYTY0NTNl
NmIxOWE1MzIxMDRkMDgwZWE0YzFlMjQ0MzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZlTWlj
cm9waG9uZURldmljZShjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGRlCiAg
ICAgfSk7CiB9CiAKLVZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElk
c0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KQorVmVjdG9yPENhcHR1
cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRl
RmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzKQogewogICAgIHN0YXRp
YyBjb25zdCBpbnQgZGVmYXVsdE1heGltdW1DYW1lcmFDb3VudCA9IDE7CiAgICAgc3RhdGljIGNv
bnN0IGludCBkZWZhdWx0TWF4aW11bU1pY3JvcGhvbmVDb3VudCA9IDE7CkBAIC02MzIsMTYgKzYz
Miw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGxhYmVsID0gZW1wdHlTdHJpbmcoKTsKLSAgICAg
ICAgYXV0byBpZCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGF1dG8gZ3JvdXBJZCA9IGVtcHR5
U3RyaW5nKCk7Ci0gICAgICAgIGlmIChyZXZlYWxJZHNBbmRMYWJlbHMpIHsKLSAgICAgICAgICAg
IGxhYmVsID0gZGV2aWNlLmxhYmVsKCk7Ci0gICAgICAgICAgICBpZCA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UucGVyc2lz
dGVudElkKCksIGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICAgICAgZ3JvdXBJZCA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZp
Y2UuZ3JvdXBJZCgpLCBkZXZpY2VJREhhc2hTYWx0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZp
bHRlcmVkRGV2aWNlcy5hcHBlbmQoQ2FwdHVyZURldmljZShpZCwgZGV2aWNlLnR5cGUoKSwgbGFi
ZWwsIGdyb3VwSWQpKTsKKyAgICAgICAgZmlsdGVyZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNB
bmRMYWJlbHMgPyBkZXZpY2UgOiBDYXB0dXJlRGV2aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9
LCB7IH0pKTsKICAgICB9CiAKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9ICFyZXZlYWxJ
ZHNBbmRMYWJlbHM7CkBAIC02OTksNyArNjkwLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoRnJhbWUK
ICAgICAgICAgICAgIGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzID0gb3JpZ2luSGFzUGVyc2lzdGVu
dEFjY2VzcyB8fCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKGZyYW1lSUQsIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKTsKIAog
ICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5kbGVyLnJlbGVhc2UoKTsKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5k
TGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0Fu
ZExhYmVscyksIGRldmljZUlESGFzaFNhbHQpOwogICAgICAgICB9KTsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCBkZjlmZGQ1YzE1M2RjY2Y3Zjc2OWIxYTQ4
YjdiMWM2YTZmMWRjMTM3Li45NThhMTZkMDVlYzI0MTA3MGM2NzdjNDFiMTFiMjQ5OTEzZGU3YTVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbik7CiAKLSAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29t
cHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3Ry
aW5nJiBkZXZpY2VJREhhc2hTYWx0KTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscyk7CiAK
ICAgICB2b2lkIHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpOwogICAgIHZvaWQg
cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25JbnZhbGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGlu
dmFsaWRDb25zdHJhaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDNmMmVjZWNlOWNiOGNkNGQ5NzhmOWYwNjBkNzgwNjNjODliZGJl
YjkuLjE4NWUxMjlmYWQ5ZTlhMmRkN2ZhZjQ2ZjIxMmMxZTRlNThjMDFkYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM3Myw2ICsz
MzczLDggQEAKIAkJM0Y5MTVDMEUxRjU2NERFRDAwMTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHBhdGggPSBpb3MvZnVsbHNjcmVl
bi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzRjkxNUMwRjFGNTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVySU9TLmg7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQjA4RTQyMUY2MEIyNDAw
MDVFNTMxMiAvKiBpT1MueGNhc3NldHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBmb2xkZXIuYXNzZXRjYXRhbG9nOyBwYXRoID0gaU9TLnhjYXNzZXRz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwRUM0MzI1MTM1NzlGMDA3Qjg1RDkg
LyogQXVkaW9PdXRwdXRQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEwMEVDNDQyNTEzNTc5RjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9PdXRwdXRQcm92aWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAyNEZDMDIzQ0YxMDQ1MDBGREY5OEUgLyog
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMDI0RkMxMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTAzRkJBMTIwNjFCREI3MDBDMkVBRjggLyogTmV0d29ya0xvYWRD
aGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTUyMSw2ICs1NTIzLDggQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAq
LywKIAkJCQlDREE5NTkzOTI0MTJCMTc1MDA5MTBFRUYgLyogaW9zICovLAorCQkJCTQxMDBFQzQz
MjUxMzU3OUYwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTAw
RUM0NDI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5oICovLAogCQkJCTA3
MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8s
CiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAgKi8sCkBAIC02MTYzLDEwICs2MTY3LDEwIEBACiAJCQkJQkM1NzQ0RUUxMjYz
OEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5oICovLAogCQkJCTdDREU3MzlGMUY5REEzN0Ew
MDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlcy55YW1sICovLAogCQkJCTdDMkUwQkU1MjUxMkNBRkUw
MDVGM0M4NyAvKiBXZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgKi8sCi0JCQkJN0MyRTBCRTMyNTEy
Qzg0NjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgKi8sCi0JCQkJ
N0MyRTBCRTEyNTEyQzVDQjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCAq
LywKIAkJCQkzMTEwRUQ2MjIwMTI3Q0IzMDAzNTBCMjAgLyogV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmNwcCAqLywKIAkJCQk3Q0RFNzNBMDFGOURBMzdCMDAzOTAzMTIgLyogV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmggKi8sCisJCQkJN0MyRTBCRTMyNTEyQzg0NjAwNUYzQzg3IC8q
IFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgKi8sCisJCQkJN0MyRTBCRTEyNTEyQzVD
QjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCAqLywKIAkJCQlCQ0Q1OThB
QjExMkI3RkRGMDBFQzhDMjMgLyogV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgKi8sCiAJCQkJQkNE
NTk4QUExMTJCN0ZERjAwRUM4QzIzIC8qIFdlYlByZWZlcmVuY2VzU3RvcmUuaCAqLywKIAkJCQlC
QzMwNjgyMzEyNUE2Qjk0MDBFNzEyNzggLyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1
ZGlvT3V0cHV0UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjFmNDI5ZTA2YzgwMDhhMTY0
ZDVjYTZjYjQzOGE1OTM4YWY0NmFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0
cHV0UHJvdmlkZXIuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIEF1ZGlvT3V0cHV0UHJv
dmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYgcGFnZSkKK3sKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgcGFnZS5mb3JFYWNoQXVkaW9Qcm9kdWNlcihbXShhdXRvJiBh
dWRpb1Byb2R1Y2VyKSB7CisgICAgICAgIGF1ZGlvUHJvZHVjZXIuZGVmYXVsdEF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpOworICAgIH0pOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2IzYzk5MWI1MWNmOWIxNzRhYzY4YThjMzdkMDgwZGJlMjQ5N2RjOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9P
dXRwdXRQcm92aWRlci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9PdXRwdXRQcm92aWRlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgQXVkaW9PdXRwdXRQcm92aWRlciA6IHB1YmxpYyBXZWJDb3Jl
OjpBdWRpb091dHB1dFByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBBdWRpb091dHB1dFByb3ZpZGVy
KCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorICAgIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZChXZWJDb3JlOjpQYWdlJikgZmluYWw7Cit9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZmMGRiNGVkMTQ4YzBmNTIx
YzY3YTdjNDlhMWU4MzM2NzRlOTBiNDQuLjhkODg0MjRiMzFlMjcyZWFmZDBkYTE0MTIyOTY2MTMx
OTRhODcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUg
IkFQSUdlb21ldHJ5LmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgog
I2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCkBAIC00OTksNyArNTAwLDggQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUu
Y29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAg
ICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaAppbmRleCAxZTk5MzcxNDlhZmYyYjFiMDRkN2M1
ZWNjYjJjNmQ5OGJkNzNjZGIxLi5hM2U2ODYyNmJiOWI3NjlmODYwOTY5NWIwOTdiZTA3NTdjMmEz
YjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
T3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VP
dmVybGF5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIAogT0JKQ19DTEFTUyBEREFjdGlvbkNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKaW5kZXggOTg0ZmJiZjRjNzgzNDRkNWY4MzdiOWFhNWM5YWU3OGEzNWZkMWRiZi4uNWY5
YzJhYWQwOTE5NjJlMzU5NmVmODkzYjM1OWMxZDFkNjg0YWUzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcApAQCAtMzMsOSArMzMsMTEgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYUNvbnN0cmFpbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9CdWZmZXJMaXN0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAzNzU0MDhjMzkw
MjQ1MTFkMmZiYTUzNjdlZDU4ZDE3NTdkYWExNTg2Li4xYzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5
ZjUxZDExMTcwZTliNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMwLDYgKzMwLDExIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBhNDI1Y2NmMWM1YzllNzc5OTc0NGM1YmU1MzkzNzRkZmY4MjdiNjll
Li41NmMxYTIxM2Q4NjQ0ZTQwOGMxZjE4ZGVhYTI3NGZmOTYwOTViOTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNp
bXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KICNpbXBvcnQgPFdlYkNvcmUvQWx0
ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9C
YWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oPgpAQCAtMTYwMyw3ICsxNjA0LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlh
bGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2ll
SmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6QXVkaW9PdXRwdXRQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9t
ZUNsaWVudChzZWxmKTsKQEAgLTE4ODMsNyArMTg4NSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdElu
aXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNv
b2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAorICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6OkF1ZGlvT3V0cHV0UHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkK
</data>
<flag name="commit-queue"
          id="424610"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409030</attachid>
            <date>2020-09-17 06:47:42 -0700</date>
            <delta_ts>2020-09-17 07:16:10 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-216641-20200917154733.patch</filename>
            <type>text/plain</type>
            <size>77739</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3Njg5ZDA2MTdlOTI4
N2Q4ZjEzYzg1Yjg5N2ExMGU2MDMwNDRiMC4uMjZkNWQ1NTk3MTgyYmFmMmEwNGVkNWJmNTIwMjRm
YzE1M2ZiZTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIwLTA5LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c3BlYWtlciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhRGV2aWNlcyBub3cgcmVjZWl2ZSBub24gaGFzaGVkIGRldmljZSBJRHMu
CisgICAgICAgIFdlIGhhc2ggdGhlbSBiZWZvcmUgZXhwb3NpbmcgdGhlbSBhbmQga2VlcCBhIG1h
cHBpbmcgaW4gV2ViUHJvY2VzcyBiZXR3ZWVuIGhhc2hlZCBhdWRvaSBvdXRwdXQgZGV2aWNlIElk
cyBhbmQgdGhlIHBlcnNpc3RlbnQgSWRzLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YURldmljZXMuc2V0QXVkaW9PdXRwdXREZXZpY2Ugd2hpY2ggYWxsb3dzIHNldHRpbmcgdGhlIGRl
ZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBmb3IgdGhlIHdob2xlIHBhZ2UuCisgICAgICAgIFRo
aXMgaXMgc3RvcmVkIGluIHRoZSBtYWluIGRvY3VtZW50IGFuZCBhbGxvd3Mgc2V0dGluZyB0aGUg
YXVkaW8gb3V0cHV0IGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIG5vdCBvdmVycmlkZW4gdGhl
IHNldHRpbmcuCisgICAgICAgIFdoZW4gdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmljZSBp
cyBjaGFuZ2VkLCB0aGUgcGFnZSBpcyBub3RpZmllZCBhbmQgZGVsZWdhdGVzIHRvIGl0cyBBdWRp
b091dHB1dFByb3ZpZGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldEF1ZGlvT3V0cHV0RGV2aWNlIGFuZCBzZXRTaW5rSWQgd2hpY2ggYWxsb3dzIHNldHRp
bmcgdGhlIGF1ZGlvIG91dHB1dCBkZXZpY2UgZm9yIHRoZSBnaXZlbiBlbGVtZW50LgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgTWFjT1Mgb24gYWxsIHRocmVlIHBsYXllcnMgKEFWLCBNU0UgYW5k
IE1lZGlhU3RyZWFtVHJhY2spLgorCisgICAgICAgIEZvciBNZWRpYVN0cmVhbVRyYWNrLCB3ZSBy
ZXNldCB0aGUgQXVkaW9TYW1wbGVEYXRhU291cmNlIHdoZW4gc3dpdGNoaW5nIG9mIGF1ZGlvIGRl
dmljZSBvdXRwdXQuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB3ZSBkbyBub3QgZW5kIHVwIHJl
bmRlcmluZyBhdWRpbyB3aXRoIHNvbWUgZGVsYXkgb24gdGhlIG5ldyBkZXZpY2UuCisKKyAgICAg
ICAgQWxsIHRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgYmFzZWQgb24gdXNlciBnZXN0dXJlLgor
ICAgICAgICBVcGRhdGUgUmVuZGVyTWVudUxpc3QgdG8gYWN0aXZhdGUgdXNlciBnZXN0dXJlIHdo
ZW4gdXNlciBzZWxlY3RzIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCisKKyAgICAgICAgVGVzdHMgdG8g
YmUgYWRkZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2
aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6cmVm
cmVzaERldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjplbnVtZXJhdGVE
ZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6c2V0QXVkaW9PdXRwdXRE
ZXZpY2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6Zm9yRWFjaEF1ZGlvUHJvZHVjZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFz
SGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRp
b091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5pZGw6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2Uv
TWVkaWFQcm9kdWNlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6ZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGVm
YXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpm
b3JFYWNoQXVkaW9Qcm9kdWNlcik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojph
dWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3Jl
YXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2
aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAg
ICAgKFJlbmRlck1lbnVMaXN0Ojp2YWx1ZUNoYW5nZWQpOgorCiAyMDIwLTA5LTE3ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVuaWZpZWQgYnVpbGQgZml4IGZv
ciAicmVkZWZpbml0aW9uIG9mICdrQ01WaWRlb0NvZGVjVHlwZV9WUDkiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4
ZTRiZjRlMjJhNmE5YTdhZDY0N2E5ZTdjNTE4NTZmY2EyMWRhZWEuLmY1Nzc4NmIxNDE4ZDljOGM2
ZmIzYTFmY2Y4NDg4ZTI0ODk2ZTZmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAt
MDktMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzcGVha2VyIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGFuIGV4cGVyaW1lbnRhbCBmbGFnIGZvciBw
ZXIgZWxlbWVudCBzcGVha2VyIHNlbGVjdGlvbi4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3
ZXJlIG5vdCBleHBvc2luZyByZWFsIGRldmljZSBJRHMgdG8gV2ViUHJvY2VzcywgYnV0IGluc3Rl
YWQgd2VyZSBoYXNoaW5nIHRoZW0gYmVmb3JlIHNlbmRpbmcgdGhlbSB0byBXZWJQcm9jZXNzLgor
ICAgICAgICBXZSBub3cgc2VuZCB0aGUgcmVhbCBkZXZpY2UgSWRzIGFuZCBsZXQgV2ViUHJvY2Vz
cyBkbyB0aGUgaGFzaGluZyBwZXIgb3JpZ2luLgorCisgICAgICAgIEltcGxlbWVudCBBdWRpb091
dHB1dFByb3ZpZGVyIGZvciBNYWMgYnkgbG9vcGluZyB0aHJvdWdoIGFsbCBhdWRpbyBwcm9kdWNl
cnMgYW5kIG5vdGlmeWluZyB0aGVtIHRoYXQgdGhlIGRlZmF1bHQgYXVkaW8gb3V0cHV0IGRldmlj
ZSBjaGFuZ2VkLgorCisgICAgICAgIEZpeGVzIHVuaWZpZWQgYnVpbGQgaXNzdWVzIGluIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCwgUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAsIFdlYlBhZ2VPdmVybGF5LmggYW5kIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisKIDIwMjAtMDktMTcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZmllZCBidWlsZCBmaXggZm9yICJyZWRl
ZmluaXRpb24gb2YgJ2tDTVZpZGVvQ29kZWNUeXBlX1ZQOSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBmNGRiMGMxMWM5NmMxYThlOGE1Y2IyYmIxNDk3MWFmMDkyYzk4MjIzLi5iODgx
Y2NmZjI0YzBhZWFlZjc0NzVkM2FhYmM4OTJhMWExNzExMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzcGVha2VyIHNlbGVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMjAtMDktMTYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBydW50aW1lIHNldHRpbmcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBDU1Mgc2hhZG93
IHBhcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjYzhlN2FjZjNiOTA4NDc5NmQ1YjZkMzc1YTA4
ODU2MjM4YjdhYmJlLi4zY2I1OGY1NDRhMjhiM2RjMzBiOTNiMGY1ODZlZTIwNmFhOWVjOGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTc4Nyw2ICs3ODcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9BY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIu
aAogICAgIHBhZ2UvQWRqdXN0Vmlld1NpemVPck5vdC5oCiAgICAgcGFnZS9BbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaAorICAgIHBhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oCiAgICAgcGFnZS9BdXRv
cGxheUV2ZW50LmgKICAgICBwYWdlL0Jhc2U2NFV0aWxpdGllcy5oCiAgICAgcGFnZS9DYWNoZVN0
b3JhZ2VQcm92aWRlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggMjdiYzNlMTBhYWY2MGEzNzg5ZjE5MWIwYTY1MTI3
NzE4MTUzZmRlYi4uZWQ4NGVlMTkxYzBlNjAzMDlkMDYzMGE1ODNiMDI0YzI2NWM3MTJhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcApAQCAtNTcsNyArNTcsNyBAQCBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAg
ICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRF
dmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX2V2ZW50TmFtZXMoZXZlbnROYW1lcygpKQotICAgICwg
bV9pZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKKyAgICAsIG1fZ3JvdXBJ
ZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKIHsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbmxpbmUgTWVkaWFEZXZpY2VJ
bmZvOjpLaW5kIHRvTWVkaWFEZXZpY2VJbmZvS2luZChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUCiAg
ICAgcmV0dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dDsKIH0KIAotdm9pZCBN
ZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
bmV3RGV2aWNlcykKK3ZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0
b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNo
U2FsdCkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYg
KCFkb2N1bWVudCkKQEAgLTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVz
aERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogICAgIGJv
b2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IGNoZWNrTWljcm9waG9uZUFjY2VzcygqZG9jdW1lbnQp
OwogICAgIGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2VzcygqZG9jdW1l
bnQpOwogCisgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsK
KwogICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1
dG8mIG5ld0RldmljZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNy
b3Bob25lICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKQEAgLTIxNywxMSArMjE5LDE3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpyZWZy
ZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCiAgICAg
ICAgIH0pOwogICAgICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgIGRl
dmljZXMuYXBwZW5kKG1fZGV2aWNlc1tpbmRleF0uY29weVJlZigpKTsKKyAgICAgICAgICAgIGlm
IChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIp
CisgICAgICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuYWRk
KG1fZGV2aWNlc1tpbmRleF0tPmRldmljZUlkKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBhdXRvIGRldmljZUlk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlSURIYXNoU2FsdCk7CisgICAgICAg
IGF1dG8gZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UuZ3JvdXBJZCgpLCBtX2dyb3VwSWRIYXNoU2FsdCk7
CisKKyAgICAgICAgaWYgKG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U3BlYWtlcikKKyAgICAgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZFRvUGVyc2lz
dGVudElkLmFkZChkZXZpY2VJZCwgbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpKTsKIAotICAgICAg
ICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5o
YXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9pZEhhc2hTYWx0KTsKLSAg
ICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxh
YmVsKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgV1RGTW92ZShncm91cElkKSwgZGV2aWNl
S2luZCkpOworICAgICAgICBkZXZpY2VzLmFwcGVuZChNZWRpYURldmljZUluZm86OmNyZWF0ZShu
ZXdEZXZpY2UubGFiZWwoKSwgV1RGTW92ZShkZXZpY2VJZCksIFdURk1vdmUoZ3JvdXBJZCksIGRl
dmljZUtpbmQpKTsKICAgICB9CiAgICAgbV9kZXZpY2VzID0gV1RGTW92ZShkZXZpY2VzKTsKIH0K
QEAgLTI0NCwxMiArMjUyLDExIEBAIHZvaWQgTWVkaWFEZXZpY2VzOjplbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygqZG9jdW1lbnQsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0byYgZGV2aWNlSURIYXNoU2Fs
dCkgbXV0YWJsZSB7CisgICAgY29udHJvbGxlci0+ZW51bWVyYXRlTWVkaWFEZXZpY2VzKCpkb2N1
bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvJiYgbmV3RGV2aWNlcywgYXV0byYmIGRldmljZUlESGFzaFNhbHQp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGlzQ29udGV4dFN0b3BwZWQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5zZXREZXZp
Y2VJREhhc2hTYWx0KGRldmljZUlESGFzaFNhbHQpOwotICAgICAgICByZWZyZXNoRGV2aWNlcyhu
ZXdEZXZpY2VzKTsKKyAgICAgICAgcmVmcmVzaERldmljZXMobmV3RGV2aWNlcywgZGV2aWNlSURI
YXNoU2FsdCk7CiAgICAgICAgIHByb21pc2UucmVzb2x2ZShtX2RldmljZXMpOwogICAgIH0pOwog
fQpAQCAtMzIwLDYgKzMyNywzNiBAQCBib29sIE1lZGlhRGV2aWNlczo6YWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbgogICAgIHJldHVy
biBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwg
V1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOwogfQogCit2b2lkIE1lZGlhRGV2aWNlczo6c2V0
QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVu
dFVzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCAiQSB1c2VyIGdlc3R1cmUgaXMgcmVxdWlyZWQiX3MgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZXZpY2VJZC5pc0VtcHR5KCkpIHsKKyAgICAgICAgZG9jdW1lbnQtPnRvcERvY3VtZW50KCku
c2V0RGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQoeyB9KTsKKyAgICAgICAgbV9hdWRpb091dHB1
dERldmljZUlkID0geyB9OworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcGVyc2lzdGVudElkID0gbV9hdWRpb091dHB1dERldmlj
ZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsKKyAgICBpZiAocGVyc2lzdGVudElkLmlz
TnVsbCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKS5zZXREZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZChXVEZNb3ZlKHBlcnNpc3RlbnRJZCkp
OworICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUoZGV2aWNlSWQpOworICAgIHBy
b21pc2UucmVzb2x2ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggYmU1ZDZiOGZiNWQxZTQzZTU4MzkxNDk2ZGQ0
MWRhNzA3YjliODg4ZC4uNDdkYzgyMzIxNGI5OGY5ZWVhOTYxOTE2ZGYzYzQ4ZmRhZWUyMDhmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCkBAIC04OSw2ICs4OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25z
dHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZShTdHJpbmcmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIFN0
cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZp
Y2VJZDsgfQorCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRGcm9tRGV2aWNlSWQoY29u
c3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcgUmVmQ291bnRlZDxN
ZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURldmljZXM+Ojpk
ZXJlZjsKIApAQCAtOTgsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2
ZW50VGltZXJGaXJlZCgpOwogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3Rl
bmVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZWZyZXNoRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKKyAgICB2b2lkIHJlZnJlc2hEZXZpY2VzKGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbGlzdGVuRm9y
RGV2aWNlQ2hhbmdlcygpOwogCiAgICAgZnJpZW5kIGNsYXNzIEpTTWVkaWFEZXZpY2VzT3duZXI7
CkBAIC0xMjYsOCArMTMxLDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgRXZlbnROYW1lcyYgbV9l
dmVudE5hbWVzOyAvLyBOZWVkIHRvIGNhY2hlIHRoaXMgc28gd2UgY2FuIHVzZSBpdCBmcm9tIEdD
IHRocmVhZHMuCiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRldmljZUNoYW5nZXMgeyBmYWxzZSB9
OwogCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlkVG9Q
ZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKKwogICAgIFZl
Y3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gbV9kZXZpY2VzOwotICAgIFN0cmluZyBtX2lkSGFz
aFNhbHQ7CisgICAgU3RyaW5nIG1fZ3JvdXBJZEhhc2hTYWx0OwogCiAgICAgT3B0aW9uU2V0PEdl
c3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAg
ICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApp
bmRleCA5MmE5ZGQ3YzU0MmEyNzgyN2ZiNDA4NzAyNjIzNzIyMTIyYThiZjM5Li5lZTg1Y2VkMDg3
YWNjMzZmYmFiNjZkYWFiNGVhYjYwYzVlNzg0NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCkBAIC0zOSw2ICszOSw5IEBA
CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFp
bnRzKCk7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNl
PE1lZGlhU3RyZWFtPiBnZXRVc2VyTWVkaWEob3B0aW9uYWwgTWVkaWFTdHJlYW1Db25zdHJhaW50
cyBjb25zdHJhaW50cyk7CiAgICAgW0VuYWJsZWRCeVNldHRpbmc9U2NyZWVuQ2FwdHVyZV0gUHJv
bWlzZTxNZWRpYVN0cmVhbT4gZ2V0RGlzcGxheU1lZGlhKG9wdGlvbmFsIERpc3BsYXlNZWRpYVN0
cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKworICAgIFtFbmFibGVkQnlTZXR0aW5nPUV4
cG9zZVNwZWFrZXJzXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0QXVkaW9PdXRwdXREZXZpY2UoRE9N
U3RyaW5nIGRldmljZUlkKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vyc10g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdWRpb091dHB1dERldmljZTsKIH07CiAKIFsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCmluZGV4IGRmMmE1ZTQ0ZWMxMjc5YzBhMjMzYmMxZGFjNDczNTlkNTM1ZTE4
MzYuLjlhMDAwZDRmZDhlYjQwOWM0NTE4ZDM1ZmY3M2RkZGU4MWJmOWVkZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcApAQCAtMjcxLDggKzI3MSw2IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coQ2Fw
dHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9ECiAgICAgICAg
IH07CiAKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGRvY3VtZW50LnNldERldmljZUlESGFzaFNh
bHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLQogICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShkb2N1bWVudC5sb2dnZXIo
KSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwg
V1RGTW92ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOwog
CiAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRmYmEyMDI3MDMz
YzhlNmYyMjU3Y2Q1YWI1YzE5MTk4NjFkY2M4YzYuLjQ2MTVmNDY0NzFlM2U2YmM4YjUwNTU1ZDM2
OTY1MjE3MzJlZmYwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMTgsNiArMTAxOCw3IEBACiAJCTNGQkM0QUYzMTg5ODgx
NTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkM0QUYxMTg5ODgxNTYwMDQ2
RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLzsgfTsKIAkJM0ZCQzRB
RjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzRkY4MTNBNzFEQkE4NjQw
MDA5QkYwMDEgLyogUG9pbnRlckxvY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0ZDNDM0RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9p
bnRlckxvY2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDBFQzQxMjUxMzUzNDIwMDdCODVEOSAvKiBBdWRpb091dHB1dFByb3ZpZGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAwQzgwMjNGNzQ1ODMwMDFC
QzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwMEM3RTIzRjczOTgyMDAxQkMzM0IgLyogV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC03NDE5LDYgKzc0MjAsNyBAQAogCQkzRjgwMjAzNDFFOUUzODFE
MDBERUM2MUQgLyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4IC8qIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwRUM0MTI1MTM1MzQyMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQx
QjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxNDQ4LDYgKzIxNDUwLDcgQEAKIAkJCQk3MjRFRTU0RjFEQzdGMjVC
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJQkNGNDhD
RTYxMzcwRDExNDAwNEU4N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLywKIAkJCQlDRURB
MTJENjE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCisJCQkJ
NDEwMEVDNDEyNTEzNTM0MjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLywKIAkJ
CQlDOUQ0NjcwNDFFNjBDM0VCMDA4MTk1RkIgLyogQXV0b3BsYXlFdmVudC5oICovLAogCQkJCTQ1
ODMwRDRCMTY3OUI0RjgwMEFDRjhDMyAvKiBBdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJNDU4MzBENEMxNjc5QjRGODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVyLmggKi8s
CkBAIC0zMDQyNSw2ICszMDQyOCw3IEBACiAJCQkJRkQzMTYwMTYxMkIwMjY3NjAwQzFBMzU5IC8q
IEF1ZGlvTm9kZUlucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNzE0NjdCMzI0QUJBRUYyMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMTgx
MkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvTm9kZU91dHB1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEwMEVDNDYyNTEzNThFQjAwN0I4NUQ5IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDFEMTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb1BhcmFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDM1OTE5MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRp
bWVsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyMDEyQjAyNjc2MDBDMUEzNTkgLyog
QXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggOTA5NmYyNjQ2NzkxMzBhNzg0YTUxYTlhZGM4YmFkZWJlYzdjN2FjNC4uZmNiMmJj
NzhhM2QzYjUzOGQ0MmNiNGExZjhhN2M2MDZiYjBkZjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0xODAzLDYgKzE4MDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6Zm9yRWFjaE1lZGlhRWxl
bWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmMKICAgICAg
ICAgZnVuY3Rpb24oZWxlbWVudCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmZvckVhY2hBdWRpb1By
b2R1Y2VyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYgZnVuY3Rpb24pCit7
CisgICAgbV9hdWRpb1Byb2R1Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBEb2N1
bWVudDo6c3RvcEFsbE1lZGlhUGxheWJhY2soKQogewogICAgIGlmIChhdXRvKiBwbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXJJZkV4aXN0cygpKQpAQCAtNzk1NSwxMyArNzk2MCwyMyBAQCB2b2lkIERvY3VtZW50Ojpt
ZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKQogICAgIH0pOwogfQogCi12b2lkIERvY3Vt
ZW50OjpzZXREZXZpY2VJREhhc2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKKyNlbmRpZgorCitT
dHJpbmcgRG9jdW1lbnQ6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKIHsKLSAg
ICBBU1NFUlQobV9pZEhhc2hTYWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7
Ci0gICAgbV9pZEhhc2hTYWx0ID0gc2FsdDsKKyAgICByZXR1cm4gaXNUb3BEb2N1bWVudCgpID8g
bV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA6IHRvcERvY3VtZW50KCkuZGVmYXVsdEF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKIH0KIAotI2VuZGlmCit2b2lkIERvY3VtZW50OjpzZXREZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZChTdHJpbmcmJiBkZXZpY2VJZCkKK3sKKyAgICBBU1NFUlQoaXNU
b3BEb2N1bWVudCgpKTsKKyAgICBpZiAobV9kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VJZCA9PSBk
ZXZpY2VJZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
SWQgPSBXVEZNb3ZlKGRldmljZUlkKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpKQorICAgICAgICBwYWdlLT5kZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggNWFiYzI0ZWJiOTgxZTU2NGYwN2FkZWI4ZTVmYzExNTgxMzFjNTM1
NS4uMmQwZTZlYTdlZDE0YjFjOWM4NWE0NzYwZjdiZjk5ZWI2NDVlODA2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTE0MjUsMTIgKzE0MjUsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIHsgbV9o
YXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhhc0hhZENh
cHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJp
bmcmKTsKLSAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1faWRI
YXNoU2FsdDsgfQogICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZSgpOwogICAgIHZvaWQgbWVkaWFT
dHJlYW1DYXB0dXJlU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEF1ZGlvT3V0
cHV0RGV2aWNlSWQoU3RyaW5nJiYpOworCiAvLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBm
b3IgdGhpcyBmdW5jdGlvbmFsaXR5LgogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgcHJvdmlkZSBhIHR3by1sZXZlbCBzZXR0aW5n
OgpAQCAtMTUxMCw2ICsxNTExLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2
b2lkIGZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+Jik7CiAjZW5kaWYKKyAgICB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiAgICAgYm9vbCBoYW5kbGluZ1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hh
bmRsaW5nVG91Y2hFdmVudDsgfQpAQCAtMjA3Niw3ICsyMDc4LDYgQEAgcHJpdmF0ZToKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9t
ZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHM7Ci0gICAgU3RyaW5nIG1faWRIYXNoU2FsdDsK
ICAgICBib29sIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAKQEAgLTIxNDEsNiArMjE0Miw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRp
dG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9u
OworCisgICAgU3RyaW5nIG1fZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlSWQ7CiB9OwogCiBFbGVt
ZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0
MjNjNmZiMGE2ZmEwODY5NmIyMS4uNzQ5ZTMxMGMxYjRjYzEwNjU0NTRmM2E5Y2M0M2YyN2M5OTNl
ZjNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2
ICs3MSw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlh
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAi
TWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1l
ZGlhRXJyb3IuaCIKICNpbmNsdWRlICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2
ICs3OSw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0
Myw2ICsyODQ1LDU1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVk
aWFUaW1lJiB0aW1lKQogICAgIHNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJh
bmNlLCBNZWRpYVRpbWU6Onplcm9UaW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK1N0cmluZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKK30KKwordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlk
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmICghVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBnZXN0dXJlIGlzIHJl
cXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5k
b3cgPyBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRv
cigpKSA6IG51bGxwdHI7CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIW1f
YXVkaW9PdXRwdXREZXZpY2VJZC5pc0VtcHR5KCkgJiYgbV9wbGF5ZXIpIHsKKyAgICAgICAgICAg
IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IHsgfTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5hdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYXVkaW9PdXRwdXREZXZp
Y2VJZCA9IG1lZGlhRGV2aWNlcy0+YXVkaW9PdXRwdXREZXZpY2VJZEZyb21EZXZpY2VJZChkZXZp
Y2VJZCk7CisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQgIT0gbV9hdWRpb091
dHB1dERldmljZUlkKSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXREZXZpY2VJZCA9IFdURk1vdmUo
YXVkaW9PdXRwdXREZXZpY2VJZCk7CisgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgICAg
IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsKKyAgICB9CisgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7Cit9CisjZW5kaWYKKworU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9hdWRpb091dHB1dERldmlj
ZUlkLmlzRW1wdHkoKSA/IG1fYXVkaW9PdXRwdXREZXZpY2VJZCA6IGRvY3VtZW50KCkuZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
KGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IHRpbWUpOwpAQCAtNzY5OCw2ICs3NzQ5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFn
ZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVy
IHx8ICFtX2F1ZGlvT3V0cHV0RGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiBkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlVm9sdW1lKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQoKS5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IGFiMmIwMDExYjU5NDM5ZWE1MWU4YWEzZTIwOGZlMDEyYzYzZDEyZWQuLjdkODMyNjcw
ZjZlNGQ0MDRkZmY3ZGIwNTJmYWQxMTJlYThjZGEzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC0yNjgsNiArMjY4LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
bWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0
ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyNlbmRpZgor
CiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJpbmdQb2xpY3k7CiAgICAg
dm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsKICAgICBXRUJDT1JFX0VY
UE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29uc3Q7CkBAIC02MDQsNiAr
NjA5LDggQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3Qg
ZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsgfQogCiAgICAgYm9vbCBtZWRpYUNv
bnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29u
dHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0TWVkaWFDb250cm9s
c0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtODgyLDYgKzg4OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2
b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaGFyZHdhcmVNdXRlZFN0YXRlRGlkQ2hhbmdl
KEF1ZGlvU2Vzc2lvbiopIGZpbmFsOwpAQCAtMTE5Nyw2ICsxMjA1LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhh
dmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisKKyAgICBT
dHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCmluZGV4IGI0MmQwZWEz
NzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLjUxNDMwYWExNTU0MWY2MjA2YTU4Mjk1
NzNhZTk4MTQ3NjQ4MmE1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAgdW5kZWZpbmVkIHBhdXNlKCk7
CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPUV4cG9zZVNwZWFr
ZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVu
YWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24s
IEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXREZXZpY2VdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgc2lua0lkOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNl
dHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25dIFByb21pc2U8
dW5kZWZpbmVkPiBzZXRBdWRpb091dHB1dERldmljZShET01TdHJpbmcgZGV2aWNlSWQpOworICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtl
cnMmUGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9c2V0QXVkaW9PdXRw
dXREZXZpY2VdIFByb21pc2U8dW5kZWZpbmVkPiBzZXRTaW5rSWQoRE9NU3RyaW5nIGRldmljZUlk
KTsKKwogICAgIC8vIGNvbnRyb2xzCiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmli
dXRlIGJvb2xlYW4gY29udHJvbHM7CiAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJl
ZDUzZWE2OWY3MjJjZDQ1YjdhZDguLmVjYmEyZjUyMDliY2E0YmM3OTZhZmNkNmNhZTc4ZTBkZDE4
YTcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCiAKICNpbmNsdWRlICJBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNs
dWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCkBAIC02MTMsNyArNjE0LDggQEAgUGFnZUNv
bmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBF
bXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0
eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50PigpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQcm92aWRlcj4o
KQogICAgIH07CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+
IGR1bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRp
b091dHB1dFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1ZGlvT3V0cHV0UHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGVhMTBjYzg5OGU0MTNiNzM0NzNkNzBmYmI2NmEwYzQ5MWIwMDJl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3Zp
ZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1
ZGlvT3V0cHV0UHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIEF1ZGlvT3V0cHV0UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+QXVk
aW9PdXRwdXRQcm92aWRlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKFBhZ2UmKTsKK307CisKK2lubGluZSB2b2lkIEF1ZGlv
T3V0cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoUGFnZSYpCit7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAxYzUxZWU3
NjhlZmQ2MmE2N2QwODY2N2VhZTgwMWQ2Njg5My4uZDFkMjFlZmRjN2NjZDQ1ZTAxNDMyOTIwZjhj
ODczZjJkNTcwNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1
Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTc5LDYg
Kzc5LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdW5zaWduZWQgTXV0ZWRTdGF0ZUZsYWdzOwog
CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9OwogCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFQcm9kdWNlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IGEwYTc3ZDI4ODM2NDgyMWM1MTBiMmQ1MTJiYTcwZTcyOWMyMWI2ZDUuLjA3
YmE5OGE4NTQzMmM0ZDE3NzI5NWNiMzk3MmQ0MzdhOWZhZTI4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgog
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgiCisjaW5jbHVkZSAiQXVkaW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUu
aCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgpAQCAtMjU1LDYgKzI1Niw3IEBAIFBh
Z2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1f
c3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3lu
dGhlc2lzQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCisgICAgLCBt
X2F1ZGlvT3V0cHV0UHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYXVkaW9PdXRw
dXRQcm92aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFz
dGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xs
RWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKQEAgLTIwNjYsNiArMjA2OCwxMSBA
QCB2b2lkIFBhZ2U6OnJlc3VtZUFsbE1lZGlhQnVmZmVyaW5nKCkKICNlbmRpZgogfQogCit2b2lk
IFBhZ2U6OmRlZmF1bHRBdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fYXVkaW9P
dXRwdXRQcm92aWRlci0+ZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgqdGhpcyk7Cit9
CisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAogdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2
ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKQEAgLTMxMjYsNiArMzEzMywxMyBAQCB2b2lk
IFBhZ2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFF
bGVtZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEF1ZGlv
UHJvZHVjZXIoY29uc3QgRnVuY3Rpb248dm9pZChNZWRpYVByb2R1Y2VyJik+JiBmdW5jdG9yKQor
eworICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAg
ICBkb2N1bWVudC5mb3JFYWNoQXVkaW9Qcm9kdWNlcihmdW5jdG9yKTsKKyAgICB9KTsKK30KKwog
dm9pZCBQYWdlOjphcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogewogI2lmIEVOQUJMRShW
SURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMGExZGQ2YjRiM2Y1NTVkMDk1YTBkY2VlMzNhYTE1ZTAw
ODNhYzcxZS4uOTgzYjY1ZTNiODY2ZjliNTE3ZWY1NDIxZjQzMzVkY2IzNGRkOTA3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwog
Y2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0
Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CitjbGFzcyBBdWRpb091dHB1
dFByb3ZpZGVyOwogY2xhc3MgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOwogY2xhc3MgQmFja0Zv
cndhcmRDb250cm9sbGVyOwogY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC02NTAsNiAr
NjUxLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQWxsTWVkaWFC
dWZmZXJpbmcoKTsKICAgICBib29sIG1lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQoKSBjb25zdCB7
IHJldHVybiBtX21lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQ7IH0KIAorICAgIHZvaWQgZGVmYXVs
dEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxv
YWRDbGllbnQoYm9vbCBoYXMpIHsgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAg
ICBib29sIGhhc1Jlc291cmNlTG9hZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50OyB9CiAKQEAgLTc2Miw3ICs3NjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yRWFjaERvY3VtZW50KGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVu
dChjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoSFRNTE1lZGlhRWxlbWVudCYpPiYpOworICAgIHZv
aWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1l
bnQmKT4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvckVhY2hBdWRpb1Byb2R1Y2VyKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFQcm9kdWNlciYpPiYpOwogCiAgICAgYm9vbCBzaG91bGRE
aXNhYmxlQ29yc0ZvclJlcXVlc3RUbyhjb25zdCBVUkwmKSBjb25zdDsKIApAQCAtODU3LDYgKzg2
MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJv
dmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOworICAgIFVuaXF1ZVJlZjxBdWRpb091dHB1
dFByb3ZpZGVyPiBtX2F1ZGlvT3V0cHV0UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGND
b250cm9sbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmlu
ZGV4IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjI5NjRjMWY5Njlk
ZmUyOWY4ZGY0ZThjYmI5ZjMwNDJlYzAyOTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgor
I2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENs
aWVudC5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCkBAIC01OCw3ICs1OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFn
ZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92
aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxp
YldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdl
UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVm
PENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYg
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+
JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hl
U3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRD
bGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBV
bmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIs
IFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmIGF1ZGlvT3V0cHV0UHJvdmlkZXIpCiAg
ICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRp
dG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIp
KQpAQCAtNjksNiArNzAsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgbG9hZGVy
Q2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAg
ICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQog
ICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVy
KSkKKyAgICAsIGF1ZGlvT3V0cHV0UHJvdmlkZXIoV1RGTW92ZShhdWRpb091dHB1dFByb3ZpZGVy
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYy
ODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmE0MmRlNmM0MGQ1NmZiOWI4
NWY3Y2M4ZjZjMzJkMjhiNDdiNWQ1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFz
cyBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQ7CitjbGFzcyBBdWRpb091dHB1dFByb3Zp
ZGVyOwogY2xhc3MgQmFja0ZvcndhcmRDbGllbnQ7CiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRl
cjsKIGNsYXNzIENvb2tpZUphcjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhl
c2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlx
dWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwg
UmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJl
ZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8
Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVS
ZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFVuaXF1ZVJlZjxBdWRpb091dHB1dFByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmln
dXJhdGlvbiYmKTsKIApAQCAtMTI5LDYgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZl
Y3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBV
bmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7Cisg
ICAgVW5pcXVlUmVmPEF1ZGlvT3V0cHV0UHJvdmlkZXI+IGF1ZGlvT3V0cHV0UHJvdmlkZXI7CiAg
ICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5l
dHdvcmsgeyB0cnVlIH07CiAgICAgYm9vbCB1c2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlm
aWNhdGlvbiB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBmYmYwOGM0
ZjkzMjgzMGY0MTg3NjRjZDI4MjJjMDQzZWU1ZGNkYTc3Li5mMzEyY2Q4MjNmMDZlMDdlMjU4N2I0
YTIwN2NiMDBhZTViMzllZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjYs
NiArODI2LDkgQEAgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5h
YmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFi
bGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGly
ZWN0b3J5OgogICB0eXBlOiBTdHJpbmcKICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKaW5kZXggNjNjZjNjY2VlODExMmUxNTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4
OTk3ZjcyNmNmYjE3YTYyNmJkOWU5NDY1ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDEx
IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1p
Y1JhbmdlTW9kZSBtb2RlKQogICAgIG1fcHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZShtb2RlKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKCkKK3sKKyAgICBtX3ByaXZhdGUtPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQor
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjpt
ZWRpYVBsYXllckxvZ2dlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlYTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFh
Y2FmNGYzLi5kNDY3MzFhMmJhZGY4ODU3MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2
ICsyNzMsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1
bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFs
IFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAg
dmlydHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1
cm4geyB9OyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0
IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEs
NiArNjM0LDEwIEBAIHB1YmxpYzoKICAgICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFt
aWNSYW5nZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7
IH0KICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9k
ZSk7CiAKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmlu
ZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBw
dWJsaWM6CiB9OwogCiAKK2lubGluZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2
aWNlSWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091
dHB1dERldmljZUlkKCkgOiBTdHJpbmcgeyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBt
X2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmlu
ZyB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShW
SURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKaW5kZXggNjcwYzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1
OTc4ZC4uODEyNTMzMDI3NmRkNTQ0ZTFmY2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKQEAgLTI4OSw2ICsyODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEln
bm9yZUludHJpbnNpY1NpemUoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3
OGJiZDNlMy4uODVjZTgxZDEwM2I4NWQxZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRTaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFBy
ZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVS
TEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4
MjMwMDJiNTYxNS4uOGY0ZTQwM2NmYjExZWRkYTk2MDE2NWJhZjliZTY1NWZmODhlOTYzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC05NTMsNiArOTUzLDEyIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2
UGxheWVySXRlbSkKICAgICAgICAgc2V0QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgp
KTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBw
bGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFhdWRpb091
dHB1dERldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0
cHV0RGV2aWNlVW5pcXVlSUQgPSBhdWRpb091dHB1dERldmljZUlkOworI2VuZGlmCisKICAgICBz
ZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMsNiArMzI5OSwxNSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgaWYgKCFtX2F2UGxheWVyIHx8ICFwbGF5ZXIoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IHBs
YXllcigpLT5hdWRpb091dHB1dERldmljZUlkKCk7CisjZW5kaWYKK30KKwogTlNBcnJheSogYXNz
ZXRNZXRhZGF0YUtleU5hbWVzKCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNB
cnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRl
eCAwOWJmNTU3NDg0MzMxZDU4MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZk
Zjk3MDJmMmY5NTE4YWQ2OWRkODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApA
QCAtMjU0LDYgKzI1NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRh
c2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFs
OworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lk
IGVuc3VyZUxheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCA4Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5
Li43YjEwZGI0YzlmN2IzM2JjYTUyNDkxYjk2NDllNmYyZGUwZGFmMmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0xMTY2LDYgKzExNjYsMTIgQEAgQUxMT1dfTkVXX0FQSV9XSVRI
T1VUX0dVQVJEU19FTkQKICAgICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZv
bHVtZSgpXTsKICAgICBbYXVkaW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToo
bV9wbGF5ZXItPnByZXNlcnZlc1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3Bl
Y3RyYWwgOiBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUoKTsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAgICBhdWRp
b1JlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyNlbmRpZgor
CiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXplciBhZGRSZW5kZXJlcjphdWRpb1Jl
bmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CkBAIC0xMjc2
LDYgKzEyODIsMTcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghbV9wbGF5
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGtleSA6IG1fc2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlck1hcC5rZXlzKCkpCisgICAgICAgICgoX19icmlkZ2UgQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyICopa2V5LmdldCgpKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2
aWNlSWQ7CisjZW5kaWYKK30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVk
aWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRi
MjhmYWMzOWNiMWJmYmU5OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0Mjkw
MDAyNTBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRl
ZDsgfQogCiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmlu
Z1BvbGljeSkgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBm
aW5hbDsKIAogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7
CiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
aW5kZXggMmRiNTBiYjg5NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAzNi4uMGZhYjhiMWRl
NDBiNjMzY2JiNzYwMWZkZjY4NzQ2OTgyNjQzZTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQpAQCAtODY3LDcgKzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
VmVjdG9yIGN1cnJlbnRUcmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAK
LSAgICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8g
ZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAg
YXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJl
bW92ZToKQEAgLTg4NCw2ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZSht
X3ZvbHVtZSk7CiAgICAgICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAg
ICAgIHRyYWNrLnNldEVuYWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRy
YWNrLnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlz
TnVsbCgpKQorICAgICAgICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2
aWNlSWQpOworCiAgICAgICAgICAgICBpZiAocGxheWluZygpKQogICAgICAgICAgICAgICAgIHRy
YWNrLnBsYXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAxNyw2ICsxMDIxLDE1IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xp
Y3koTWVkaWFQbGF5ZXI6OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LT5mbHVzaEFuZFJlbW92ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIGlmICgh
bV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXIt
PmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX2F1
ZGlvVHJhY2tNYXAudmFsdWVzKCkpCisgICAgICAgIGF1ZGlvVHJhY2stPnNldEF1ZGlvT3V0cHV0
RGV2aWNlSWQoZGV2aWNlSWQpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5j
dGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmgKaW5kZXggNjQ4OWY5ZGE3YzU2MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAw
Yi4uNDhlNWYzMjcxYWI0OGM3YTI3OTYwNWEzNTE0YWI2OWQyYThkYTVjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25z
dDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmlu
ZyYpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29u
c3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEwIEBAIGlu
bGluZSBjb25zdCBjaGFyKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NO
YW1lKCkgY29uc3QKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKQoreworfQor
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1ZjkwZDQ5OWRlMDM4MDk3
OTZhYzljNWFjLi42YmUwYTE4ZjMwNTg2M2NhZWZiZTg5ZWIxNmU2OGI4ZGU3MjQ3NGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcsNiArOTcsMTEgQEAg
dm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1l
KQogICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKQor
eworICAgIG1fcmVuZGVyZXItPnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworfQor
CiBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3JlbmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaAppbmRleCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUz
Li45M2E0MDY1M2MxN2RjNTdmOGQ4Y2QyODAyOTc2OTk5ZTk0OGNiMmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4
KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0
RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
c3RyZWFtVHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCA3
NjIzMmI3OWQ5ZDA3ZWIxYjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li4zZDM5NDAxNmYxYjAyNTc5
YmI0ZDJjZWQ0N2JiNTIxMTQ0NjY4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC02NywxMSArNjcsMTggQEAgdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1l
KQogICAgICAgICBtX2RhdGFTb3VyY2UtPnNldFZvbHVtZSh2b2x1bWUpOwogfQogCit2b2lkIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNyZWF0
ZSBhIHVuaXQgZm9yIG91cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVmYXVsdCB1bml0IGlmIGRl
dmljZUlkIGlzIG1hdGNoaW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2luZ2xldG9uKCkuc2V0QXVkaW9PdXRwdXREZXZpY2VJZChkZXZpY2VJZCk7CisgICAgbV9z
aG91bGRSZXNldCA9IHRydWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
dHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKLSAg
ICBpZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkg
fHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7Cisg
ICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9kYXRhU291cmNlLT5p
bnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9
IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIsICp0aGlzKTsKIAog
ICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAgdm9pZCBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUm
IHNhbXBsZVRpbWUKICAgICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2luZ2xldG9uKCkuYWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7CiAgICAgICAgIH0p
OwogICAgICAgICBtX2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBt
X3Nob3VsZFJlc2V0ID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291cmNlLT5wdXNoU2Ft
cGxlcyhzYW1wbGVUaW1lLCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4IDUxYWM0MzM3YzRl
MDM1OGZkZGNiNGVhODU0N2YyYWJiMGJjMGZhODcuLjUwMjU1NjE2NzRkMDVlYTBlOGRlMGRlODVl
NDJiNWVjNDQ1NjE3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuaApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpIGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJp
bmcmKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24+IG1fb3V0cHV0RGVzY3JpcHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4gbV9kYXRhU291cmNlOworICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
Y3BwCmluZGV4IGRhYzc0YTEyNTVjNWU1NGE1MjM0MzZmZTY5YThlNDQ0YzJlNzBiMTUuLjExNGEz
NDBiZmJlNDc3ZDM3MzY4Mzg0YjEzYmMyZTg1ZDYwOTFkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0zNiw2ICszNiwxMSBA
QAogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQXVkaW9Ub29sYm94U1BJLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaCIKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgorI2VuZGlmCisKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsNiArNTYsMjYgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0Ojp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkKICAgICBz
dG9wKCk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRB
dWRpb091dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7CisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6
OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOworICAgIGlmICgh
ZGV2aWNlIHx8IG1fZGV2aWNlSUQgPT0gZGV2aWNlLT5kZXZpY2VJRCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBib29sIHNob3VsZFJlc3RhcnQgPSBtX2lzU3RhcnRlZDsKKyAgICBpZiAobV9p
c1N0YXJ0ZWQpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fZGV2aWNlSUQgPSBkZXZpY2UtPmRl
dmljZUlEKCk7CisKKyAgICBpZiAoc2hvdWxkUmVzdGFydCkKKyAgICAgICAgc3RhcnQoKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGRldmljZUlEKTsKKyNlbmRpZgorfQorCiB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURh
dGFTb3VyY2U+JiYgc291cmNlKQogewogICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlIik7CkBAIC0xNjEsNiArMTg2LDE2
IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1Vu
aXRJZk5lZWRlZCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYg
KG1fZGV2aWNlSUQpIHsKKyAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1v
dGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAg
ICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFi
bGUgdG8gc2V0IHVuaXQgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2
aWNlSUQsIChpbnQpZXJyb3IsIChjaGFyKikmZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNh
bGxiYWNrID0geyBpbnB1dFByb2MsIG51bGxwdHIgfTsKICAgICBlcnJvciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxi
YWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFj
aykpOwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdC5oCmluZGV4IDQ0MDc2YTU2ZWM5NzRmOWJiODczNDJiZmM3NDgzMGM4
NTljNzcyZjYuLjQ1MzFlZjNkMzM5ZGM4YTUzMzg5MTI0YjdlY2RkZTIwNmY1MjdjMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTUx
LDYgKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsK
IAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmKTsKKwogICAg
IHZvaWQgYWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYpOwogICAgIHZvaWQg
cmVtb3ZlU291cmNlKEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYpOwogCkBAIC02OCw2ICs3MCw5IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9
OwogICAgIExvY2sgbV9zb3VyY2VzTG9jazsKICAgICBib29sIG1faXNTdGFydGVkIHsgZmFsc2Ug
fTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdWludDMyX3QgbV9kZXZpY2VJRCB7IDAgfTsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAKaW5kZXggYzAyNTgxY2E5NjMzOTlkM2UyMWFjMzY5ZTAxM2RlZDRmYzI1NjhiZi4uMzg2MDZh
YmVmZWM3OTVlNWQwODZmYWZhOWMyYTQ4OTNjNzE3ZjY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zODYsNiArMzg2LDggQEAgdm9pZCBSZW5k
ZXJNZW51TGlzdDo6dmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlT25D
aGFuZ2UpCiAgICAgaWYgKCZkb2N1bWVudCgpICE9IGRvY3VtZW50KCkuZnJhbWUoKS0+ZG9jdW1l
bnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVy
ZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUsICZkb2N1bWVudCgpKTsKKwogICAgIHNl
bGVjdEVsZW1lbnQoKS5vcHRpb25TZWxlY3RlZEJ5VXNlcihzZWxlY3RFbGVtZW50KCkubGlzdFRv
T3B0aW9uSW5kZXgobGlzdEluZGV4KSwgZmlyZU9uQ2hhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRleCAxZmM1NmQ4MjFiYmQ5M2ZjODk5
ZjI4NTNhMTE1OTFhNTIwZWM5OGE3Li5kZTg1MjRkNGFiYjQxYTMxMmQyMmRlOTlmMjg4ZmI4NDhk
NDg1ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApA
QCAtMTM2LDQgKzEzNiw2IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwKIAogfQogCisjdW5kZWYg
TUVTU0FHRV9DSEVDSworCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDYwMzRj
MmQ1ZjhkMjU4YmFlNDVlYTUzNWE5NTYwNDFhNzY1NzQ2MWYuLjBhYjc4NDczMDk1YzcxMmIwNDFl
ZTVmMjQ5ZDI4ODg0OWE1ODk5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMTM3LDQgKzEzNyw2IEBA
IHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCiAKIH0KIAorI3VuZGVm
IE1FU1NBR0VfQ0hFQ0sKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRF
TEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwKaW5kZXggZjM1NmFlMjcwYTE5MjNiYzczMjQ1OGM2YTFlZTU1OTFlZjk5
YzQ3Yy4uZDFjYTRiNTZhZmNiYjU1YTBiYTc3NmIzYTFjYzIwMjUxNWNhNTdlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1s
CkBAIC0xNTQsNiArMTU0LDE0IEBAIEV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgY2F0ZWdvcnk6
IGV4cGVyaW1lbnRhbAogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQogCitQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBm
YWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHBlciBtZWRpYSBlbGVtZW50IHNwZWFr
ZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWxsb3cg
cGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBjYXRlZ29yeTog
ZXhwZXJpbWVudGFsCisgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCisKIFZQOURlY29kZXJF
bmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFZQOURlY29kZXJF
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM4ODRmMGVkZThiOWRmYWIzMzJjODQzZGU0Yjg1YjEx
NjEyMGIwYjkuLmYzMzFjZjBlODBhMTIyNmIzZmIwNGZjNGQ0MjVhMjg1NWMyMGEyZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtNTU1LDYgKzU1NSw3IEBAIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVy
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYzI2NmMzYmJlMGQ2MTc5YzM5YWVhNmRhMzVj
MzdmN2E2NDJjOGM5NC4uY2Y0NWFkYTY0NTNlNmIxOWE1MzIxMDRkMDgwZWE0YzFlMjQ0MzdmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNjA1LDcgKzYwNSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZlTWljcm9waG9uZURldmljZShjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mIGRlCiAgICAgfSk7CiB9CiAKLVZlY3RvcjxDYXB0dXJlRGV2
aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRl
cmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0KQorVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFs
SWRzQW5kTGFiZWxzKQogewogICAgIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdE1heGltdW1DYW1l
cmFDb3VudCA9IDE7CiAgICAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0TWF4aW11bU1pY3JvcGhv
bmVDb3VudCA9IDE7CkBAIC02MzIsMTYgKzYzMiw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGxh
YmVsID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgYXV0byBpZCA9IGVtcHR5U3RyaW5nKCk7Ci0g
ICAgICAgIGF1dG8gZ3JvdXBJZCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGlmIChyZXZlYWxJ
ZHNBbmRMYWJlbHMpIHsKLSAgICAgICAgICAgIGxhYmVsID0gZGV2aWNlLmxhYmVsKCk7Ci0gICAg
ICAgICAgICBpZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hT
dHJpbmdXaXRoU2FsdChkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNhbHQpOwot
ICAgICAgICAgICAgZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UuZ3JvdXBJZCgpLCBkZXZpY2VJREhhc2hTYWx0
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZpbHRlcmVkRGV2aWNlcy5hcHBlbmQoQ2FwdHVyZURl
dmljZShpZCwgZGV2aWNlLnR5cGUoKSwgbGFiZWwsIGdyb3VwSWQpKTsKKyAgICAgICAgZmlsdGVy
ZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNBbmRMYWJlbHMgPyBkZXZpY2UgOiBDYXB0dXJlRGV2
aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9LCB7IH0pKTsKICAgICB9CiAKICAgICBtX2hhc0Zp
bHRlcmVkRGV2aWNlTGlzdCA9ICFyZXZlYWxJZHNBbmRMYWJlbHM7CkBAIC02OTksNyArNjkwLDcg
QEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRl
TWVkaWFEZXZpY2VzRm9yRnJhbWUoRnJhbWUKICAgICAgICAgICAgIGJvb2wgcmV2ZWFsSWRzQW5k
TGFiZWxzID0gb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB8fCB3YXNHcmFudGVkVmlkZW9PckF1
ZGlvQWNjZXNzKGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLmdldCgpKTsKIAogICAgICAgICAgICAgY2FsbENvbXBsZXRpb25IYW5k
bGVyLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbXB1dGVGaWx0
ZXJlZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2
aWNlSURIYXNoU2FsdCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb21wdXRlRmls
dGVyZWREZXZpY2VMaXN0KHJldmVhbElkc0FuZExhYmVscyksIGRldmljZUlESGFzaFNhbHQpOwog
ICAgICAgICB9KTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRl
eCBkZjlmZGQ1YzE1M2RjY2Y3Zjc2OWIxYTQ4YjdiMWM2YTZmMWRjMTM3Li45NThhMTZkMDVlYzI0
MTA3MGM2NzdjNDFiMTFiMjQ5OTEzZGU3YTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB3YXNHcmFudGVk
VmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKLSAgICBWZWN0b3I8
V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJl
dmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KTsKKyAgICBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChi
b29sIHJldmVhbElkc0FuZExhYmVscyk7CiAKICAgICB2b2lkIHByb2Nlc3NVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCgpOwogICAgIHZvaWQgcHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25JbnZh
bGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNmMmVjZWNlOWNi
OGNkNGQ5NzhmOWYwNjBkNzgwNjNjODliZGJlYjkuLjE4NWUxMjlmYWQ5ZTlhMmRkN2ZhZjQ2ZjIx
MmMxZTRlNThjMDFkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzM3Myw2ICszMzczLDggQEAKIAkJM0Y5MTVDMEUxRjU2NERFRDAw
MTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJ
T1MubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjkxNUMwRjFGNTY0REVEMDAx
ODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHBhdGggPSBpb3MvZnVsbHNjcmVl
bi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTNGQjA4RTQyMUY2MEIyNDAwMDVFNTMxMiAvKiBpT1MueGNhc3NldHMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXIuYXNzZXRj
YXRhbG9nOyBwYXRoID0gaU9TLnhjYXNzZXRzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTAwRUM0MzI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9PdXRwdXRQcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb091dHB1dFByb3ZpZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMEVDNDQyNTEzNTc5RjAwN0I4NUQ5
IC8qIEF1ZGlvT3V0cHV0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9PdXRwdXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTAyNEZDMDIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDI0RkMxMjND
RjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAzRkJBMTIwNjFC
REI3MDBDMkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTUyMSw2ICs1NTIzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEQUY1QTRE
MjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQlDREE5NTkzOTI0MTJCMTc1MDA5MTBF
RUYgLyogaW9zICovLAorCQkJCTQxMDBFQzQzMjUxMzU3OUYwMDdCODVEOSAvKiBBdWRpb091dHB1
dFByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTAwRUM0NDI1MTM1NzlGMDA3Qjg1RDkgLyogQXVkaW9P
dXRwdXRQcm92aWRlci5oICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdD
IC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC02MTYzLDEwICs2
MTY3LDEwIEBACiAJCQkJQkM1NzQ0RUUxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5o
ICovLAogCQkJCTdDREU3MzlGMUY5REEzN0EwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlcy55YW1s
ICovLAogCQkJCTdDMkUwQkU1MjUxMkNBRkUwMDVGM0M4NyAvKiBXZWJQcmVmZXJlbmNlc0RlYnVn
LnlhbWwgKi8sCi0JCQkJN0MyRTBCRTMyNTEyQzg0NjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgKi8sCi0JCQkJN0MyRTBCRTEyNTEyQzVDQjAwNUYzQzg3IC8qIFdl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCAqLywKIAkJCQkzMTEwRUQ2MjIwMTI3Q0IzMDAzNTBC
MjAgLyogV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcCAqLywKIAkJCQk3Q0RFNzNBMDFG
OURBMzdCMDAzOTAzMTIgLyogV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggKi8sCisJCQkJ
N0MyRTBCRTMyNTEyQzg0NjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlh
bWwgKi8sCisJCQkJN0MyRTBCRTEyNTEyQzVDQjAwNUYzQzg3IC8qIFdlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbCAqLywKIAkJCQlCQ0Q1OThBQjExMkI3RkRGMDBFQzhDMjMgLyogV2ViUHJlZmVy
ZW5jZXNTdG9yZS5jcHAgKi8sCiAJCQkJQkNENTk4QUExMTJCN0ZERjAwRUM4QzIzIC8qIFdlYlBy
ZWZlcmVuY2VzU3RvcmUuaCAqLywKIAkJCQlCQzMwNjgyMzEyNUE2Qjk0MDBFNzEyNzggLyogV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvT3V0cHV0UHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jYjFmNDI5ZTA2YzgwMDhhMTY0ZDVjYTZjYjQzOGE1OTM4YWY0NmFjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb091dHB1
dFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvT3V0cHV0UHJvdmlkZXIuaCIKKworI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCit2b2lkIEF1ZGlvT3V0cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRpb091dHB1dERldmlj
ZUNoYW5nZWQoUGFnZSYgcGFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgcGFnZS5mb3JF
YWNoQXVkaW9Qcm9kdWNlcihbXShhdXRvJiBhdWRpb1Byb2R1Y2VyKSB7CisgICAgICAgIGF1ZGlv
UHJvZHVjZXIuZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworICAgIH0pOworI2Vu
ZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvQXVkaW9PdXRwdXRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9BdWRpb091dHB1dFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IzYzk5MWI1MWNmOWIxNzRh
YzY4YThjMzdkMDgwZGJlMjQ5N2RjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9PdXRwdXRQcm92aWRlci5oCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9P
dXRwdXRQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQXVkaW9PdXRw
dXRQcm92aWRlciA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb091dHB1dFByb3ZpZGVyIHsKK3B1Ymxp
YzoKKyAgICBBdWRpb091dHB1dFByb3ZpZGVyKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorICAg
IHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZChXZWJDb3JlOjpQYWdlJikgZmlu
YWw7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGZmMGRiNGVkMTQ4YzBmNTIxYzY3YTdjNDlhMWU4MzM2NzRlOTBiNDQuLjhkODg0
MjRiMzFlMjcyZWFmZDBkYTE0MTIyOTY2MTMxOTRhODcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUdlb21ldHJ5LmgiCisjaW5jbHVkZSAiQXVk
aW9PdXRwdXRQcm92aWRlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCkBAIC00
OTksNyArNTAwLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8QXVkaW9PdXRwdXRQ
cm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3Zlcmxh
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaApp
bmRleCAxZTk5MzcxNDlhZmYyYjFiMDRkN2M1ZWNjYjJjNmQ5OGJkNzNjZGIxLi5hM2U2ODYyNmJi
OWI3NjlmODYwOTY5NWIwOTdiZTA3NTdjMmEzYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVS
YW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBEREFjdGlv
bkNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggOTg0ZmJiZjRjNzgzNDRkNWY4
MzdiOWFhNWM5YWU3OGEzNWZkMWRiZi4uNWY5YzJhYWQwOTE5NjJlMzU5NmVmODkzYjM1OWMxZDFk
Njg0YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMzMsOSArMzMsMTEgQEAKICNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1Nh
bXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaAppbmRleCAzNzU0MDhjMzkwMjQ1MTFkMmZiYTUzNjdlZDU4ZDE3NTdkYWExNTg2
Li4xYzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcwZTliNWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmgKQEAgLTMwLDYgKzMwLDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2
aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhNDI1Y2NmMWM1Yzll
Nzc5OTc0NGM1YmU1MzkzNzRkZmY4MjdiNjllLi41NmMxYTIxM2Q4NjQ0ZTQwOGMxZjE4ZGVhYTI3
NGZmOTYwOTViOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVS
ZWYuaD4KICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRD
YWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oPgpAQCAtMTYwMyw3ICsxNjA0LDgg
QEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5
KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNv
cHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwK
LSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkK
KyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCks
CisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9PdXRwdXRQcm92aWRlcj4oKQog
ICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
Y2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKQEAgLTE4ODMsNyArMTg4
NSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vz
c2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRl
ci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+
KCksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvT3V0cHV0UHJvdmlkZXI+
KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJD
aHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
</data>
<flag name="commit-queue"
          id="424611"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>