<?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>215806</bug_id>
          
          <creation_ts>2020-08-25 06:45:50 -0700</creation_ts>
          <short_desc>enumerateDevices should expose audiooutput devices that are tied to an audio input device</short_desc>
          <delta_ts>2020-08-26 04:17:14 -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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1682629</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-08-25 06:45:50 -0700</bug_when>
    <thetext>enumerateDevices should expose audiooutput devices that are tied to an audio input device</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682631</commentid>
    <comment_count>1</comment_count>
      <attachid>407187</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-08-25 07:10:26 -0700</bug_when>
    <thetext>Created attachment 407187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682632</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-08-25 07:11:08 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682658</commentid>
    <comment_count>3</comment_count>
      <attachid>407195</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-08-25 08:56:07 -0700</bug_when>
    <thetext>Created attachment 407195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682682</commentid>
    <comment_count>4</comment_count>
      <attachid>407195</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-08-25 09:53:29 -0700</bug_when>
    <thetext>Comment on attachment 407195
Patch

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

r=me once the bots are happy

&gt; Source/WebCore/html/FeaturePolicy.cpp:181
&gt; +            updateList(document, policy.m_speakerSelectionRule, item.substring(18));

`sizeof(&quot;speaker-selection&quot;)` would be safer.

&gt; Source/WebCore/html/FeaturePolicy.cpp:191
&gt; +            updateList(document, policy.m_syncXHRRule, item.substring(9));

`sizeof(&quot;sync-xhr&quot;)` would have avoided this problem.

&gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:234
&gt; +        auto relatedDeviceIDs = CoreAudioCaptureDevice::relatedAudioDeviceIDs(deviceID);

This isn&apos;t may not be used, so you could initialize it just before the loop below.

&gt; Source/WebCore/platform/mock/MockMediaDevice.h:81
&gt; +    String microphoneId;

s/microphone/speaker/

&gt; Source/WebCore/platform/mock/MockMediaDevice.h:82
&gt; +    int defaultSampleRate { 44100 };

Does a speaker have a sample rate?

&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:601
&gt; +static inline bool isMicrophoneDevice(const Vector&lt;WebCore::CaptureDevice&gt;&amp; devices, const String&amp; deviceID)

Nit: `haveMicrophoneDevice` might be a better name.

&gt; LayoutTests/fast/mediastream/enumerate-speaker.html:21
&gt; +        await navigator.mediaDevices.getUserMedia({ audio:true, video:true })
&gt; +        const devices = await navigator.mediaDevices.enumerateDevices();
&gt; +        assert_true(devices.length &gt; 2, &quot;before getting permission, at most 1 camera and 1 microphone are exposed&quot;);

&quot;before getting permission...&quot; is the wrong comment for this test.

Shouldn&apos;t there also be a test to ensure that speakers aren&apos;t exposed before a gUM call?

&gt; LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-iframe.html:26
&gt; +        // Speakers are currently only exposed after getUserMedia.
&gt; +        try {
&gt; +            await navigator.mediaDevices.getUserMedia({ audio : true });
&gt; +        } catch (e) {
&gt; +        }
&gt; +        try {
&gt; +            await navigator.mediaDevices.getUserMedia({ video : true });
&gt; +        } catch (e) {
&gt; +        }
&gt; +        return checkDeviceKind(&apos;audiooutput&apos;);

Why two separate gUM calls?

&gt; LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-iframe.html:41
&gt; +        result.innerHTML = &apos;result: &quot;&apos; + visible + &apos;&quot;&apos;;

Does this test need new results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682942</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-08-26 01:57:02 -0700</bug_when>
    <thetext>Thanks for the review.
&gt; `sizeof(&quot;speaker-selection&quot;)` would be safer.

Will change it here and below.

&gt; &gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:234
&gt; &gt; +        auto relatedDeviceIDs = CoreAudioCaptureDevice::relatedAudioDeviceIDs(deviceID);
&gt; 
&gt; This isn&apos;t may not be used, so you could initialize it just before the loop
&gt; below.

OK

&gt; &gt; Source/WebCore/platform/mock/MockMediaDevice.h:81
&gt; &gt; +    String microphoneId;
&gt; 
&gt; s/microphone/speaker/

Changed to relatedMicrophoneId.

&gt; &gt; Source/WebCore/platform/mock/MockMediaDevice.h:82
&gt; &gt; +    int defaultSampleRate { 44100 };
&gt; 
&gt; Does a speaker have a sample rate?

Will remove it for now since it is not used.

&gt; &gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:601
&gt; &gt; +static inline bool isMicrophoneDevice(const Vector&lt;WebCore::CaptureDevice&gt;&amp; devices, const String&amp; deviceID)
&gt; 
&gt; Nit: `haveMicrophoneDevice` might be a better name.

OK

&gt; &gt; LayoutTests/fast/mediastream/enumerate-speaker.html:21
&gt; &gt; +        await navigator.mediaDevices.getUserMedia({ audio:true, video:true })
&gt; &gt; +        const devices = await navigator.mediaDevices.enumerateDevices();
&gt; &gt; +        assert_true(devices.length &gt; 2, &quot;before getting permission, at most 1 camera and 1 microphone are exposed&quot;);
&gt; 
&gt; &quot;before getting permission...&quot; is the wrong comment for this test.

OK

&gt; Shouldn&apos;t there also be a test to ensure that speakers aren&apos;t exposed before
&gt; a gUM call?

There is already one that checks that there are two devices, one camera and one microphone. But I will add one to check that there is no audiooutput.

&gt; &gt; LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-iframe.html:26
&gt; &gt; +        // Speakers are currently only exposed after getUserMedia.
&gt; &gt; +        try {
&gt; &gt; +            await navigator.mediaDevices.getUserMedia({ audio : true });
&gt; &gt; +        } catch (e) {
&gt; &gt; +        }
&gt; &gt; +        try {
&gt; &gt; +            await navigator.mediaDevices.getUserMedia({ video : true });
&gt; &gt; +        } catch (e) {
&gt; &gt; +        }
&gt; &gt; +        return checkDeviceKind(&apos;audiooutput&apos;);
&gt; 
&gt; Why two separate gUM calls?

Depending on the policy, either one of them may fail/succeed.

&gt; &gt; LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-iframe.html:41
&gt; &gt; +        result.innerHTML = &apos;result: &quot;&apos; + visible + &apos;&quot;&apos;;
&gt; 
&gt; Does this test need new results?

This is to debug in the browser, where you can see the iframe body and seeing result means the iframe sent the results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682950</commentid>
    <comment_count>6</comment_count>
      <attachid>407285</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-08-26 02:35:14 -0700</bug_when>
    <thetext>Created attachment 407285
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682952</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-08-26 02:59:14 -0700</bug_when>
    <thetext>WPT PR: https://github.com/web-platform-tests/wpt/pull/25231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682961</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-26 04:16:08 -0700</bug_when>
    <thetext>Committed r266166: &lt;https://trac.webkit.org/changeset/266166&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407285.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682962</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-26 04:17:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/67795667&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407187</attachid>
            <date>2020-08-25 07:10:26 -0700</date>
            <delta_ts>2020-08-25 08:56:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215806-20200825161024.patch</filename>
            <type>text/plain</type>
            <size>77296</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU0ZDgxNDhmYzRkN2Fl
ODkzNzc0ZGMwODEyZjA2ZDQxZTNhMDQ0Mi4uNzcxNjM1M2Q1Y2U0YjY0MzY2MTU3MTcyOGRhNDYy
NTk2NmI2MGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTA4LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCBleHBvc2UgYXVkaW9vdXRwdXQgZGV2aWNlcyB0aGF0IGFyZSB0aWVkIHRvIGFuIGF1
ZGlvIGlucHV0IGRldmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE1ODA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgc3BlYWtlciBzZWxlY3Rpb24gZmVhdHVyZSBwb2xp
Y3ksIGFzIHBlciBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8jcGVy
bWlzc2lvbnMtcG9saWN5LWludGVncmF0aW9uLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3Bl
YWtlciBtb2NrIGRldmljZXMgYW5kIGZvciBsaXN0aW5nIHNwZWFrZXJzIG9uIE1hY09TIGluIENv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZ3Jv
dXBJZCB0byBncm91cCBtaWNyb3Bob25lcyBhbmQgc3BlYWtlcnMgZm9yIGJvdGggbW9jayBhdWRp
byBtYW5hZ2VyIGFuZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci4KKyAgICAgICAgRm9y
IG1vY2sgc3BlYWtlcnMsIHdlIGFkZCB0d28gYXVkaW9vdXRwdXQgZGV2aWNlcyB0aGF0IGFyZSBy
ZWxhdGVkIHRvIGEgbWljcm9waG9uZSBhbmQgb25lIGF1ZGlvb3V0cHV0IHRoYXQgaXMgbm90IHJl
bGF0ZWQgdG8gYW55IG1pY3JvcGhvbmUuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVh
bS9lbnVtZXJhdGUtc3BlYWtlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlh
RGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpjaGVja1NwZWFrZXJBY2Nlc3MpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9NZWRpYURldmljZUluZm9LaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRl
KToKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cG9saWN5VHlwZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6c2V0R3JvdXBJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5OjpzcGVha2VyRGV2aWNlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vaW9zL0FWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVy
ZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpyZWxh
dGVkQXVkaW9EZXZpY2VJRHMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcyk6CisgICAgICAg
IChXZWJDb3JlOjpkZXZpY2VIYXNPdXRwdXRTdHJlYW1zKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dERlZmF1bHRDYXB0dXJlSW5wdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6aGFzRGV2aWNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZy
ZXNoQXVkaW9DYXB0dXJlRGV2aWNlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNwZWFrZXJEZXZpY2VzIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFn
ZXJDb2NvYTo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tTcGVha2VyUHJvcGVydGllczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tTcGVha2VyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRp
YURldmljZTo6aXNTcGVha2VyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYURl
dmljZTo6Y2FwdHVyZURldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFE
ZXZpY2U6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRGV2aWNlOjpz
cGVha2VyUHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFEZXZp
Y2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFEZXZpY2U6OmRl
Y29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0RGV2aWNlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpkZXZpY2VMaXN0Rm9yRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2FwdHVy
ZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNb2NrRGV2aWNlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphZGREZXZpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1
cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjptaWNyb3Bob25lRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtlckRldmljZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZpZGVvRGV2aWNlcyk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
OgorCiAyMDIwLTA4LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgTWVkaWFSZWNvcmRlciBiaXRyYXRlIG9wdGlvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNmQ3NDk4M2YzODRkMjQ0MTFkY2ZjYTM4ZGIzZmIwMTk0Njk5ZTgwMi4uNTliZGZiZmZl
ZTk1MGE3N2JmZTI5ZjdkN2QyODYxMzEyYTBkMTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBA
QAorMjAyMC0wOC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgZXhwb3NlIGF1ZGlvb3V0cHV0IGRldmljZXMgdGhh
dCBhcmUgdGllZCB0byBhbiBhdWRpbyBpbnB1dCBkZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhbiBleHBlcmltZW50YWwgZmxh
ZyAob2ZmIGJ5IGRlZmF1bHQpIHRvIGNvdmVyIHNwZWFrZXIgc2VsZWN0aW9uLCBpbmNsdWRpbmcg
ZXhwb3Npbmcgc3BlYWtlciBkZXZpY2VzIHRvIHdlYiBwYWdlcy4KKyAgICAgICAgVXBkYXRlIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZp
Y2VMaXN0IHRvIG9ubHkgZXhwb3NlIHNwZWFrZXJzIHRoYXQgYXJlIHRpZWQgdG8gYSBtaWNyb3Bo
b25lIHRoYXQgaXMgZXhwb3NlZC4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRwczovL3cz
Yy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8jcHJpdmFjeS1vYnRhaW5pbmctY29uc2Vu
dC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNwcDoKKyAgICAgICAgKFdLQWRkTW9ja01lZGlh
RGV2aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKToKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNHZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc01p
Y3JvcGhvbmVEZXZpY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6c291cmNlVHlwZUZyb21EZXZpY2VUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmg6CisKIDIwMjAtMDgtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRpYVJlY29yZGVyIGJpdHJhdGUgb3B0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwCmluZGV4IGJiZmVhYmZjYzljNTRmOGFlZGEyZTAwMjNiODFmMTI4MTcyZTE3OWQuLjI3
YmMzZTEwYWFmNjBhMzc4OWYxOTFiMGE2NTEyNzcxODE1M2ZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTM3LDEw
ICszNywxMiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU0RP
TVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTTWVkaWFEZXZpY2VJbmZvLmgiCiAjaW5j
bHVkZSAiTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCkBAIC01NSw2ICs1Nyw3IEBAIGlubGlu
ZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBB
Y3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIoKnRo
aXMsICZNZWRpYURldmljZXM6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fZXZl
bnROYW1lcyhldmVudE5hbWVzKCkpCisgICAgLCBtX2lkSGFzaFNhbHQoY3JlYXRlQ2Fub25pY2Fs
VVVJRFN0cmluZygpKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogCkBAIC0xNjUsNiArMTY4
LDMwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja01pY3JvcGhvbmVBY2Nlc3MoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1
bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpNaWNyb3Bob25lLCBkb2N1bWVu
dCwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKTsKIH0KIAorc3RhdGljIGlubGluZSBib29s
IGNoZWNrU3BlYWtlckFjY2Vzcyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIGRvY3VtZW50LmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQuZnJhbWUoKS0+c2V0dGlu
Z3MoKS5leHBvc2VTcGVha2Vyc0VuYWJsZWQoKQorICAgICAgICAmJiBpc0ZlYXR1cmVQb2xpY3lB
bGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpTcGVha2Vy
U2VsZWN0aW9uLCBkb2N1bWVudCwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKTsKK30KKwor
c3RhdGljIGlubGluZSBNZWRpYURldmljZUluZm86OktpbmQgdG9NZWRpYURldmljZUluZm9LaW5k
KENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAg
IHJldHVybiBNZWRpYURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQ7CisgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgICAgICByZXR1cm4gTWVkaWFEZXZp
Y2VJbmZvOjpLaW5kOjpBdWRpb291dHB1dDsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVl
bjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAg
cmV0dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6VmlkZW9pbnB1dDsKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKyAgICByZXR1cm4gTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpBdWRpb2lucHV0
OworfQorCiB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENh
cHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKQEAgLTE3Myw2ICsyMDAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVz
aERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogCiAgICAg
Ym9vbCBjYW5BY2Nlc3NDYW1lcmEgPSBjaGVja0NhbWVyYUFjY2VzcygqZG9jdW1lbnQpOwogICAg
IGJvb2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IGNoZWNrTWljcm9waG9uZUFjY2VzcygqZG9jdW1l
bnQpOworICAgIGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2VzcygqZG9j
dW1lbnQpOwogCiAgICAgVmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAg
IGZvciAoYXV0byYgbmV3RGV2aWNlIDogbmV3RGV2aWNlcykgewpAQCAtMTgwLDggKzIwOCwxMCBA
QCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVE
ZXZpY2U+JiBuZXdEZXZpY2VzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICgh
Y2FuQWNjZXNzQ2FtZXJhICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhKQogICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghY2Fu
QWNjZXNzU3BlYWtlciAmJiBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBhdXRvIGRl
dmljZUtpbmQgPSBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
Ok1pY3JvcGhvbmUgPyBNZWRpYURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQgOiBNZWRpYURl
dmljZUluZm86OktpbmQ6OlZpZGVvaW5wdXQ7CisgICAgICAgIGF1dG8gZGV2aWNlS2luZCA9IHRv
TWVkaWFEZXZpY2VJbmZvS2luZChuZXdEZXZpY2UudHlwZSgpKTsKICAgICAgICAgYXV0byBpbmRl
eCA9IG1fZGV2aWNlcy5maW5kTWF0Y2hpbmcoW2RldmljZUtpbmQsICZuZXdEZXZpY2VdKGF1dG8m
IG9sZERldmljZSkgewogICAgICAgICAgICAgcmV0dXJuIG9sZERldmljZS0+ZGV2aWNlSWQoKSA9
PSBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgJiYgb2xkRGV2aWNlLT5raW5kKCkgPT0gZGV2aWNl
S2luZDsKICAgICAgICAgfSk7CkBAIC0xOTAsNyArMjIwLDggQEAgdm9pZCBNZWRpYURldmljZXM6
OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcykK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgZGV2aWNlcy5hcHBl
bmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxhYmVsKCksIG5ld0RldmljZS5w
ZXJzaXN0ZW50SWQoKSwgbmV3RGV2aWNlLmdyb3VwSWQoKSwgZGV2aWNlS2luZCkpOworICAgICAg
ICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5o
YXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9pZEhhc2hTYWx0KTsKKyAg
ICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxh
YmVsKCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgV1RGTW92ZShncm91cElkKSwgZGV2aWNl
S2luZCkpOwogICAgIH0KICAgICBtX2RldmljZXMgPSBXVEZNb3ZlKGRldmljZXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5k
ZXggODIwN2ZjOTllODdjZDA1Y2I0ZDA3Y2U4NDc5ZTdhM2M2ZDc2MTA1Ni4uYmU1ZDZiOGZiNWQx
ZTQzZTU4MzkxNDk2ZGQ0MWRhNzA3YjliODg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC0xMjcsNiArMTI3LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fbGlzdGVuaW5nRm9yRGV2aWNlQ2hhbmdlcyB7IGZhbHNlIH07CiAK
ICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IG1fZGV2aWNlczsKKyAgICBTdHJpbmcg
bV9pZEhhc2hTYWx0OwogCiAgICAgT3B0aW9uU2V0PEdlc3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9y
ZXF1ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAgICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9r
ZW4+IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDJiOWJkMzYyNzJh
ZTg5MmIxZDNiNzc4MmU4OTcyM2FmM2QxOWE2OTYuLmEyNTE4MWU2MzA2NjZmZjYwMTYxNDQwNTlm
ZmJiMTYzOWU4YmYxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDI5LDYgKzQyOSw3IEBAIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRp
YVNvdXJjZSYgc291cmNlKQogICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQog
ICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJl
RGV2aWNlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3du
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC01MDMsNiArNTA0LDcg
QEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgbV9wcml2YXRl
LT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCmluZGV4IGI4NGVmZjg0MTczMWNmMjNhM2Q3
MDE3MzVkNDg1NDAzOGJiZjJjZDQuLjAyM2ZiYzQ5MmU0MTAzMTY2MjZjN2Y3YmU0MjU1OGIwMjQz
NzdlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcApAQCAtNDQsNiArNDQs
OCBAQCBzdGF0aWMgY29uc3QgY2hhciogcG9saWN5VHlwZU5hbWUoRmVhdHVyZVBvbGljeTo6VHlw
ZSB0eXBlKQogICAgICAgICByZXR1cm4gIkNhbWVyYSI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5
OjpUeXBlOjpNaWNyb3Bob25lOgogICAgICAgICByZXR1cm4gIk1pY3JvcGhvbmUiOworICAgIGNh
c2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6U3BlYWtlclNlbGVjdGlvbjoKKyAgICAgICAgcmV0dXJu
ICJTcGVha2VyU2VsZWN0aW9uIjsKICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkRpc3Bs
YXlDYXB0dXJlOgogICAgICAgICByZXR1cm4gIkRpc3BsYXlDYXB0dXJlIjsKICAgICBjYXNlIEZl
YXR1cmVQb2xpY3k6OlR5cGU6OlN5bmNYSFI6CkBAIC0xNTUsNiArMTU3LDcgQEAgRmVhdHVyZVBv
bGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJ
RnJhbWVFbGVtZW50JgogICAgIEZlYXR1cmVQb2xpY3kgcG9saWN5OwogICAgIGJvb2wgaXNDYW1l
cmFJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKyAgICBib29sIGlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkID0gZmFsc2U7
CiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29s
IGlzU3luY1hIUkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0
aWFsaXplZCA9IGZhbHNlOwpAQCAtMTczLDYgKzE3NiwxMSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1
cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1l
bnQmCiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9taWNyb3Bob25l
UnVsZSwgaXRlbS5zdWJzdHJpbmcoMTEpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInNwZWFrZXItc2VsZWN0aW9uIikpIHsK
KyAgICAgICAgICAgIGlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX3NwZWFrZXJTZWxlY3Rpb25SdWxl
LCBpdGVtLnN1YnN0cmluZygxOCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
ICAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZGlzcGxheS1jYXB0dXJlIikpIHsKICAgICAg
ICAgICAgIGlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgICAgICB1
cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUsIGl0ZW0uc3Vi
c3RyaW5nKDE2KSk7CkBAIC0xODAsNyArMTg4LDcgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9s
aWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50Jgog
ICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInN5bmMteGhyIikpIHsKICAg
ICAgICAgICAgIGlzU3luY1hIUkluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHVwZGF0
ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX3N5bmNYSFJSdWxlLCBpdGVtLnN1YnN0cmluZyg4KSk7
CisgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9zeW5jWEhSUnVsZSwg
aXRlbS5zdWJzdHJpbmcoOSkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZnVsbHNjcmVlbiIpKSB7CkBAIC0xOTcsMTIgKzIw
NSwxMyBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAjZW5kaWYKICAgICB9CiAKLSAgICAvLyBC
eSBkZWZhdWx0LCBjYW1lcmEsIG1pY3JvcGhvbmUsIGRpc3BsYXktY2FwdHVyZSwgZnVsbHNjcmVl
biBhbmQKLSAgICAvLyB4ci1zcGF0aWFsLXRyYWNraW5nIHBvbGljeSBpcyAnc2VsZicuCisgICAg
Ly8gQnkgZGVmYXVsdCwgY2FtZXJhLCBtaWNyb3Bob25lLCBzcGVha2VyLXNlbGVjdGlvbiwgZGlz
cGxheS1jYXB0dXJlLCBmdWxsc2NyZWVuIGFuZCB4ci1zcGF0aWFsLXRyYWNraW5nIHBvbGljeSBp
cyAnc2VsZicuCiAgICAgaWYgKCFpc0NhbWVyYUluaXRpYWxpemVkKQogICAgICAgICBwb2xpY3ku
bV9jYW1lcmFSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRh
dGEoKSk7CiAgICAgaWYgKCFpc01pY3JvcGhvbmVJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5
Lm1fbWljcm9waG9uZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2lu
KCkuZGF0YSgpKTsKKyAgICBpZiAoIWlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkKQorICAg
ICAgICBwb2xpY3kubV9zcGVha2VyU2VsZWN0aW9uUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogICAgIGlmICghaXNEaXNwbGF5Q2FwdHVyZUlu
aXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExp
c3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICNpZiBFTkFCTEUoV0VC
WFIpCkBAIC0yMzgsNiArMjQ3LDggQEAgYm9vbCBGZWF0dXJlUG9saWN5OjphbGxvd3MoVHlwZSB0
eXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKICAgICAgICAgcmV0
dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2NhbWVyYVJ1bGUsIG9yaWdpbik7CiAgICAg
Y2FzZSBUeXBlOjpNaWNyb3Bob25lOgogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJl
UG9saWN5KG1fbWljcm9waG9uZVJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBlOjpTcGVha2Vy
U2VsZWN0aW9uOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fc3Bl
YWtlclNlbGVjdGlvblJ1bGUsIG9yaWdpbik7CiAgICAgY2FzZSBUeXBlOjpEaXNwbGF5Q2FwdHVy
ZToKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2Rpc3BsYXlDYXB0
dXJlUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6OlN5bmNYSFI6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmVhdHVyZVBvbGljeS5oCmluZGV4IDI5ZTU3MTFhNmIxYjI1YTM1NzRlMDZmOTU5YWNmMjFjZWU0
MjM0ZTEuLmIyNGJlODJhZmFkM2M4ZmUyMDc0MzQ3NDYxMjdjYmFkYzBkOTExZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICBl
bnVtIGNsYXNzIFR5cGUgewogICAgICAgICBDYW1lcmEsCiAgICAgICAgIE1pY3JvcGhvbmUsCisg
ICAgICAgIFNwZWFrZXJTZWxlY3Rpb24sCiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAogICAgICAg
ICBTeW5jWEhSLAogICAgICAgICBGdWxsc2NyZWVuLApAQCAtNTksNiArNjAsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEFsbG93UnVsZSBtX2NhbWVyYVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1f
bWljcm9waG9uZVJ1bGU7CisgICAgQWxsb3dSdWxlIG1fc3BlYWtlclNlbGVjdGlvblJ1bGU7CiAg
ICAgQWxsb3dSdWxlIG1fZGlzcGxheUNhcHR1cmVSdWxlOwogICAgIEFsbG93UnVsZSBtX3N5bmNY
SFJSdWxlOwogICAgIEFsbG93UnVsZSBtX2Z1bGxzY3JlZW5SdWxlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCmluZGV4IDdjMDdhZmMxYjNmYThiNTg0M2RiYmNlMjNmNmM1MWRlOTZkYmIyMDMu
LmU5ZDIwM2E4NTFiMmIyMmE3NjY4NTUzMjIxNjE1Y2JhNjJjYmY3OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLnlhbWwKQEAgLTgyMiw2ICs4MjIsOSBAQCBmb3JjZVBlbmRpbmdXZWJHTFBvbGlj
eToKIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CiAgIHR5cGU6IFN0cmluZwogCitleHBvc2VT
cGVha2Vyc0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIG1lZGlhRGV2aWNlSWRlbnRpZmll
clN0b3JhZ2VEaXJlY3Rvcnk6CiAgIHR5cGU6IFN0cmluZwogICBjb25kaXRpb25hbDogTUVESUFf
U1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9D
YXB0dXJlRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0
dXJlRGV2aWNlLmgKaW5kZXggN2ExN2NiYzVjMDJiNGYzZjQ1MDY4MWVlOTdhZTk2ZGI1YzE2OWFl
Mi4uOTlmNzBlZWUwY2Y2ZjJiMjhiMGI5NDE5OWM2NDQzYzZhZThhM2UxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaApAQCAt
MzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhcHR1cmVEZXZpY2Ug
ewogcHVibGljOgotICAgIGVudW0gY2xhc3MgRGV2aWNlVHlwZSB7IFVua25vd24sIE1pY3JvcGhv
bmUsIENhbWVyYSwgU2NyZWVuLCBXaW5kb3cgfTsKKyAgICBlbnVtIGNsYXNzIERldmljZVR5cGUg
eyBVbmtub3duLCBNaWNyb3Bob25lLCBTcGVha2VyLCBDYW1lcmEsIFNjcmVlbiwgV2luZG93IH07
CiAKICAgICBDYXB0dXJlRGV2aWNlKGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElkLCBEZXZpY2VU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgZ3JvdXBJZCA9IGVt
cHR5U3RyaW5nKCkpCiAgICAgICAgIDogbV9wZXJzaXN0ZW50SWQocGVyc2lzdGVudElkKQpAQCAt
NDksMTIgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGFpclBvZHMoTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkFpclBvZHMiKSk7
CiAKLSAgICAgICAgaWYgKG1fdHlwZSA9PSBEZXZpY2VUeXBlOjpNaWNyb3Bob25lICYmIG1fbGFi
ZWwuY29udGFpbnMoYWlyUG9kcykpCisgICAgICAgIGlmICgobV90eXBlID09IERldmljZVR5cGU6
Ok1pY3JvcGhvbmUgfHwgbV90eXBlID09IERldmljZVR5cGU6OlNwZWFrZXIpICYmIG1fbGFiZWwu
Y29udGFpbnMoYWlyUG9kcykpCiAgICAgICAgICAgICByZXR1cm4gYWlyUG9kczsKIAogICAgICAg
ICByZXR1cm4gbV9sYWJlbDsKICAgICB9CiAKKyAgICB2b2lkIHNldEdyb3VwSWQoY29uc3QgU3Ry
aW5nJiBncm91cElkKSB7IG1fZ3JvdXBJZCA9IGdyb3VwSWQ7IH0KICAgICBjb25zdCBTdHJpbmcm
IGdyb3VwSWQoKSBjb25zdCB7IHJldHVybiBtX2dyb3VwSWQ7IH0KIAogICAgIERldmljZVR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcAppbmRleCAwZGJmMWRjNDcwNTY4ODY2MzYxOTIzNTg3M2UzZmU2NjcyNzQ4M2U4Li5j
MWQ5NmFiMWFjYTllZTYzZGNmYjRmZmViMmIyNmE4NTUwMmM1Mjc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTE5LDYgKzExOSwxMCBAQCBWZWN0b3I8Q2FwdHVyZURl
dmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkK
ICAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KGRldmljZSk7CiAgICAgfQorICAgIGZvciAoYXV0byYgZGV2aWNlIDogYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLnNwZWFrZXJEZXZpY2VzKCkpIHsKKyAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkp
CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRldmljZSk7CisgICAgfQogICAgIGZvciAoYXV0
byYgZGV2aWNlIDogdmlkZW9DYXB0dXJlRmFjdG9yeSgpLnZpZGVvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKS5jYXB0dXJlRGV2aWNlcygpKSB7CiAgICAgICAgIGlmIChkZXZpY2UuZW5hYmxlZCgpKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXZpY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VG
YWN0b3J5LmgKaW5kZXggYTMyNjI4YjdhMTYwOTM1YWNiOGI3NTMxMTNmODM4NTUzYTZlYjhhOC4u
NDQzMDU5ZjcyY2VjZTg2NGE5YmFmNDcxNDVlYzg1ZTNhYzEyNGRkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIENh
cHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOworICAg
IHZpcnR1YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNv
bnN0ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1
bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCmluZGV4IDU5YWIzODQwZmQ3MzZjYTE0NTAxNmM3ZjY2MGVjYTNiMDkwMzI0ODAuLmE3OWMw
OWNkOTk0YWUwZTE5ZjJlY2VjM2EwZWUzNTQ3YzE0NjgwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01OSw2ICs1OSw5IEBA
IHB1YmxpYzoKICAgICB9CiBwcml2YXRlOgogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRp
b0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7IH0KKyAgICBjb25zdCBWZWN0b3I8Q2FwdHVy
ZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNl
czsgfQorCisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IG1fc3BlYWtlckRldmljZXM7CiB9Owog
CiBzdGF0aWMgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgbGliV2ViUlRDQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0FWQXVkaW9TZXNzaW9u
Q2FwdHVyZURldmljZU1hbmFnZXIuaAppbmRleCBhYTVhY2UzMGM4MDhiMjFkODY5NDU1NjM0MTk2
ZTQwYWM1MmZmN2M4Li4zOTk2MTY4NzljNTFmYTg4NGNhNzhiMzA4ZWFkM2Y3ZjM3NDM0ZjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRp
b1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgK
QEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2VNYW5hZ2VyJiBzaW5nbGV0b24oKTsKIAogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiYgY2FwdHVyZURldmljZXMoKSBmaW5hbDsKKyAgICBjb25zdCBWZWN0b3I8Q2FwdHVy
ZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNl
czsgfQogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lz
dGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0cmluZyYpOwogCiAgICAg
VmVjdG9yPEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZT4mIGF1ZGlvU2Vzc2lvbkNhcHR1cmVE
ZXZpY2VzKCk7CkBAIC01Nyw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZyZXNoQXVk
aW9DYXB0dXJlRGV2aWNlcygpOwogCiAgICAgT3B0aW9uYWw8VmVjdG9yPENhcHR1cmVEZXZpY2U+
PiBtX2RldmljZXM7CisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IG1fc3BlYWtlckRldmljZXM7
CiAgICAgT3B0aW9uYWw8VmVjdG9yPEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZT4+IG1fYXVk
aW9TZXNzaW9uQ2FwdHVyZURldmljZXM7CiAgICAgUmV0YWluUHRyPFdlYkFWQXVkaW9TZXNzaW9u
QXZhaWxhYmxlSW5wdXRzTGlzdGVuZXI+IG1fbGlzdGVuZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVEZXZpY2UuY3BwCmluZGV4IDA2ODQ2ODNhNTA4ZDg3OGRlNDNlOThjMzdmOTJmYzM5
MDkyYTc1Y2UuLmZlNjE3YjJiZjE4OTA0YzUzMDIyMjg5OTBkYjk0M2JiNjAzYTZhNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKQEAgLTY1LDIyICs2NSwzOCBAQCBzdGF0
aWMgYm9vbCBnZXREZXZpY2VJbmZvKHVpbnQzMl90IGRldmljZUlELCBTdHJpbmcmIHBlcnNpc3Rl
bnRJRCwgU3RyaW5nJiBsYWJlbAogICAgIHJldHVybiB0cnVlOwogfQogCi1PcHRpb25hbDxDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUodWludDMy
X3QgZGV2aWNlSUQpCitPcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlOjpjcmVhdGUodWludDMyX3QgZGV2aWNlSUQsIERldmljZVR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBncm91cElEKQogeworICAgIEFTU0VSVCh0eXBlID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgfHwgdHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyKTsKICAgICBTdHJpbmcgcGVyc2lzdGVudElEOwogICAgIFN0cmluZyBs
YWJlbDsKICAgICBpZiAoIWdldERldmljZUluZm8oZGV2aWNlSUQsIHBlcnNpc3RlbnRJRCwgbGFi
ZWwpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIENvcmVBdWRp
b0NhcHR1cmVEZXZpY2UoZGV2aWNlSUQsIHBlcnNpc3RlbnRJRCwgbGFiZWwpOworICAgIHJldHVy
biBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlKGRldmljZUlELCBwZXJzaXN0ZW50SUQsIHR5cGUsIGxh
YmVsLCBncm91cElELmlzTnVsbCgpID8gcGVyc2lzdGVudElEIDogZ3JvdXBJRCk7CiB9CiAKLUNv
cmVBdWRpb0NhcHR1cmVEZXZpY2U6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UodWludDMyX3QgZGV2
aWNlSUQsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElELCBjb25zdCBTdHJpbmcmIGxhYmVsKQot
ICAgIDogQ2FwdHVyZURldmljZShwZXJzaXN0ZW50SUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6Ok1pY3JvcGhvbmUsIGxhYmVsKQorQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlv
Q2FwdHVyZURldmljZSh1aW50MzJfdCBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50
SUQsIERldmljZVR5cGUgZGV2aWNlVHlwZSwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBncm91cElEKQorICAgIDogQ2FwdHVyZURldmljZShwZXJzaXN0ZW50SUQsIGRldmljZVR5
cGUsIGxhYmVsLCBncm91cElEKQogICAgICwgbV9kZXZpY2VJRChkZXZpY2VJRCkKIHsKIH0KIAor
VmVjdG9yPEF1ZGlvRGV2aWNlSUQ+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OnJlbGF0ZWRBdWRp
b0RldmljZUlEcyhBdWRpb0RldmljZUlEIGRldmljZUlEKQoreworICAgIFVJbnQzMiBzaXplID0g
MDsKKyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcm9wZXJ0eSA9IHsga0F1ZGlvRGV2
aWNlUHJvcGVydHlSZWxhdGVkRGV2aWNlcywga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZU91dHB1
dCwga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07CisgICAgT1NTdGF0dXMgZXJy
b3IgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YVNpemUoZGV2aWNlSUQsICZwcm9wZXJ0eSwg
MCwgMCwgJnNpemUpOworICAgIGlmIChlcnJvciB8fCAhc2l6ZSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIFZlY3RvcjxBdWRpb0RldmljZUlEPiBkZXZpY2VzKHNpemUgLyBzaXplb2YoQXVk
aW9EZXZpY2VJRCkpOworICAgIGVycm9yID0gQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEoZGV2
aWNlSUQsICZwcm9wZXJ0eSwgMCwgbnVsbHB0ciwgJnNpemUsIGRldmljZXMuZGF0YSgpKTsKKyAg
ICBpZiAoZXJyb3IpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGRldmljZXM7Cit9
CisKIFJldGFpblB0cjxDTUNsb2NrUmVmPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VD
bG9jaygpCiB7CiAgICAgaWYgKG1fZGV2aWNlQ2xvY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2UuaAppbmRleCA5NGM5NDk0OTUyNGU1Mjk0NzE0ZDgwMjFkNmE5ZmE1NzY5MTJhMWNkLi41
Mjg4N2VjMjIzZTczMWIwOTdlYTA0NjI4YTYxYmM0NzVjOGNjMTZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlRGV2aWNlLmgKQEAgLTM3LDE2ICszNywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UgOiBwdWJsaWMgQ2FwdHVyZURldmljZSB7
CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgT3B0aW9uYWw8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4g
Y3JlYXRlKHVpbnQzMl90KTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8Q29yZUF1ZGlvQ2FwdHVyZURl
dmljZT4gY3JlYXRlKHVpbnQzMl90LCBEZXZpY2VUeXBlLCBjb25zdCBTdHJpbmcmIGdyb3VwSUQp
OwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UoKSA9IGRlZmF1bHQ7CiAKICAg
ICB1aW50MzJfdCBkZXZpY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSUQ7IH0KICAgICBS
ZXRhaW5QdHI8Q01DbG9ja1JlZj4gZGV2aWNlQ2xvY2soKTsKICAgICBib29sIGlzQWxpdmUoKTsK
IAorICAgIHN0YXRpYyBWZWN0b3I8QXVkaW9EZXZpY2VJRD4gcmVsYXRlZEF1ZGlvRGV2aWNlSURz
KEF1ZGlvRGV2aWNlSUQpOworCiBwcml2YXRlOgotICAgIENvcmVBdWRpb0NhcHR1cmVEZXZpY2Uo
dWludDMyX3QsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElELCBjb25zdCBTdHJpbmcmIGxhYmVs
KTsKKyAgICBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlKHVpbnQzMl90LCBjb25zdCBTdHJpbmcmIHBl
cnNpc3RlbnRJRCwgRGV2aWNlVHlwZSwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5n
JiBncm91cElEKTsKIAogICAgIHVpbnQzMl90IG1fZGV2aWNlSUQgeyAwIH07CiAgICAgUmV0YWlu
UHRyPENNQ2xvY2tSZWY+IG1fZGV2aWNlQ2xvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCBmN2U2NGYxMGJjY2Y5ZGIzOTk4ZmQ3MDAxMzY3
ZTczYTc2NTg0MDYwLi5mOWEzOGExNzFhOGZmMDY4YjIzMGJhYjM0MWU4ZDk2NTZkMTc5MTEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTUy
LDcgKzUyLDcgQEAgQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXImIENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKQogY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+
JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y2FwdHVyZURldmljZXMoKQogewogICAg
IGNvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKCk7Ci0gICAgcmV0dXJuIG1fZGV2aWNlczsKKyAgICBy
ZXR1cm4gbV9jYXB0dXJlRGV2aWNlczsKIH0KIAogT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElE
KENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkK
QEAgLTY1LDEwICs2NSw5IEBAIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlCiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIH0KIAotc3RhdGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlv
T2JqZWN0SUQgZGV2aWNlSUQpCitzdGF0aWMgYm9vbCBkZXZpY2VIYXNTdHJlYW1zKEF1ZGlvT2Jq
ZWN0SUQgZGV2aWNlSUQsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzJiBhZGRyZXNz
KQogewogICAgIFVJbnQzMiBkYXRhU2l6ZSA9IDA7Ci0gICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFk
ZHJlc3MgYWRkcmVzcyA9IHsga0F1ZGlvRGV2aWNlUHJvcGVydHlTdHJlYW1Db25maWd1cmF0aW9u
LCBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlSW5wdXQsIGtBdWRpb09iamVjdFByb3BlcnR5RWxl
bWVudE1hc3RlciB9OwogICAgIGF1dG8gZXJyID0gQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGFT
aXplKGRldmljZUlELCAmYWRkcmVzcywgMCwgbnVsbHB0ciwgJmRhdGFTaXplKTsKICAgICBpZiAo
ZXJyIHx8ICFkYXRhU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODAsNiArNzksMTgg
QEAgc3RhdGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlvT2JqZWN0SUQgZGV2aWNl
SUQpCiAgICAgcmV0dXJuICFlcnIgJiYgYnVmZmVyTGlzdC0+bU51bWJlckJ1ZmZlcnM7CiB9CiAK
K3N0YXRpYyBib29sIGRldmljZUhhc0lucHV0U3RyZWFtcyhBdWRpb09iamVjdElEIGRldmljZUlE
KQoreworICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGFkZHJlc3MgPSB7IGtBdWRpb0Rl
dmljZVByb3BlcnR5U3RyZWFtQ29uZmlndXJhdGlvbiwga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29w
ZUlucHV0LCBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKKyAgICByZXR1cm4g
ZGV2aWNlSGFzU3RyZWFtcyhkZXZpY2VJRCwgYWRkcmVzcyk7Cit9CisKK3N0YXRpYyBib29sIGRl
dmljZUhhc091dHB1dFN0cmVhbXMoQXVkaW9PYmplY3RJRCBkZXZpY2VJRCkKK3sKKyAgICBBdWRp
b09iamVjdFByb3BlcnR5QWRkcmVzcyBhZGRyZXNzID0geyBrQXVkaW9EZXZpY2VQcm9wZXJ0eVN0
cmVhbUNvbmZpZ3VyYXRpb24sIGtBdWRpb0RldmljZVByb3BlcnR5U2NvcGVPdXRwdXQsIGtBdWRp
b09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OworICAgIHJldHVybiBkZXZpY2VIYXNTdHJl
YW1zKGRldmljZUlELCBhZGRyZXNzKTsKK30KKwogc3RhdGljIGJvb2wgaXNWYWxpZENhcHR1cmVE
ZXZpY2UoY29uc3QgQ29yZUF1ZGlvQ2FwdHVyZURldmljZSYgZGV2aWNlKQogewogICAgIC8vIEln
bm9yZSBvdXRwdXQgZGV2aWNlcyB0aGF0IGhhdmUgaW5wdXQgb25seSBmb3IgZWNobyBjYW5jZWxs
YXRpb24uCkBAIC0xMjYsNyArMTM3LDcgQEAgc3RhdGljIGlubGluZSBPcHRpb25hbDxDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlPiBnZXREZWZhdWx0Q2FwdHVyZUlucHV0RGV2aWNlKCkKIAogICAgIGlm
IChlcnIgIT0gbm9FcnIgfHwgZGV2aWNlSUQgPT0ga0F1ZGlvRGV2aWNlVW5rbm93bikKICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRl
KGRldmljZUlEKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKGRl
dmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCB7IH0pOwogfQog
CiBWZWN0b3I8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4mIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpjb3JlQXVkaW9DYXB0dXJlRGV2aWNlcygpCkBAIC0xNjgsNiArMTc5LDEzIEBAIE9w
dGlvbmFsPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpjb3JlQXVkaW9EZXZpY2VXCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorc3Rh
dGljIGlubGluZSBib29sIGhhc0RldmljZShjb25zdCBWZWN0b3I8Q29yZUF1ZGlvQ2FwdHVyZURl
dmljZT4mIGRldmljZXMsIHVpbnQzMl90IGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlIGRldmljZVR5cGUpCit7CisgICAgcmV0dXJuIHN0ZDo6YW55X29mKGRldmljZXMuYmVnaW4o
KSwgZGV2aWNlcy5lbmQoKSwgWyZkZXZpY2VJRCwgZGV2aWNlVHlwZV0oYXV0byYgZGV2aWNlKSB7
CisgICAgICAgIHJldHVybiBkZXZpY2UuZGV2aWNlSUQoKSA9PSBkZXZpY2VJRCAmJiBkZXZpY2Uu
dHlwZSgpID09IGRldmljZVR5cGU7CisgICAgfSk7Cit9CisKIHZvaWQgQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnJlZnJlc2hBdWRpb0NhcHR1cmVEZXZpY2VzKE5vdGlmeUlmRGV2aWNl
c0hhdmVDaGFuZ2VkIG5vdGlmeSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAt
MTk1LDIwICsyMTMsNTIgQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVm
cmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoTm90aWZ5SWZEZXZpY2VzSGEKICAgICAgICAgaGF2ZURl
dmljZUNoYW5nZXMgPSB0cnVlOwogICAgIH0KIAorICAgIC8vIE1pY3JvcGhvbmVzCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBkZXZpY2VDb3VudDsgaSsrKSB7CiAgICAgICAgIEF1ZGlvT2Jq
ZWN0SUQgZGV2aWNlSUQgPSBkZXZpY2VJRHNbaV07Ci0gICAgICAgIGlmICghZGV2aWNlSGFzSW5w
dXRTdHJlYW1zKGRldmljZUlEKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChzdGQ6OmFueV9vZihtX2NvcmVBdWRpb0NhcHR1cmVEZXZpY2VzLmJlZ2luKCksIG1fY29yZUF1
ZGlvQ2FwdHVyZURldmljZXMuZW5kKCksIFtkZXZpY2VJRF0oYXV0byYgZGV2aWNlKSB7IHJldHVy
biBkZXZpY2UuZGV2aWNlSUQoKSA9PSBkZXZpY2VJRDsgfSkpCisgICAgICAgIGlmICghZGV2aWNl
SGFzSW5wdXRTdHJlYW1zKGRldmljZUlEKSB8fCBoYXNEZXZpY2UobV9jb3JlQXVkaW9DYXB0dXJl
RGV2aWNlcywgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUp
KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYXV0byBkZXZpY2UgPSBDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUoZGV2aWNlSUQpOwotICAgICAgICBpZiAoIWRldmljZSB8
fCAhaXNWYWxpZENhcHR1cmVEZXZpY2UoZGV2aWNlLnZhbHVlKCkpKQorICAgICAgICBhdXRvIG1p
Y3JvcGhvbmVEZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUoZGV2aWNlSUQs
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIHsgfSk7CisgICAgICAgIGlm
IChtaWNyb3Bob25lRGV2aWNlICYmIGlzVmFsaWRDYXB0dXJlRGV2aWNlKG1pY3JvcGhvbmVEZXZp
Y2UudmFsdWUoKSkpIHsKKyAgICAgICAgICAgIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMuYXBw
ZW5kKFdURk1vdmUobWljcm9waG9uZURldmljZS52YWx1ZSgpKSk7CisgICAgICAgICAgICBoYXZl
RGV2aWNlQ2hhbmdlcyA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBTcGVha2Vy
cworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2aWNlQ291bnQ7IGkrKykgeworICAgICAg
ICBBdWRpb09iamVjdElEIGRldmljZUlEID0gZGV2aWNlSURzW2ldOworCisgICAgICAgIGF1dG8g
cmVsYXRlZERldmljZUlEcyA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OnJlbGF0ZWRBdWRpb0Rl
dmljZUlEcyhkZXZpY2VJRCk7CisgICAgICAgIGlmICghZGV2aWNlSGFzT3V0cHV0U3RyZWFtcyhk
ZXZpY2VJRCkgfHwgaGFzRGV2aWNlKG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMsIGRldmljZUlE
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMuYXBwZW5kKFdURk1vdmUo
ZGV2aWNlLnZhbHVlKCkpKTsKLSAgICAgICAgaGF2ZURldmljZUNoYW5nZXMgPSB0cnVlOworICAg
ICAgICBTdHJpbmcgZ3JvdXBJRDsKKyAgICAgICAgZm9yIChhdXRvIHJlbGF0ZWREZXZpY2VJRCA6
IHJlbGF0ZWREZXZpY2VJRHMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9j
b3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgeworICAgICAgICAgICAgICAgIGlmIChkZXZpY2UuZGV2
aWNlSUQoKSA9PSByZWxhdGVkRGV2aWNlSUQgJiYgZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3Vw
SUQgPSBkZXZpY2UucGVyc2lzdGVudElkKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGF1
dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKGRldmljZUlELCBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyLCBncm91cElEKTsKKyAgICAgICAgaWYgKGRl
dmljZSkgeworICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZ3JvdXBJRCwgcmVsYXRlIGRl
dmljZXMgaWYgdGhlIGxhYmVsIGlzIG1hdGNoaW5nLgorICAgICAgICAgICAgaWYgKGdyb3VwSUQu
aXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGV4aXN0aW5nRGV2aWNlIDog
bV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhp
c3RpbmdEZXZpY2UubGFiZWwoKSA9PSBkZXZpY2UtPmxhYmVsKCkgJiYgZXhpc3RpbmdEZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGRldmljZS0+c2V0R3JvdXBJZChleGlzdGluZ0RldmljZS5wZXJz
aXN0ZW50SWQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMuYXBwZW5kKFdURk1vdmUoZGV2aWNlLnZhbHVlKCkp
KTsKKyAgICAgICAgICAgIGhhdmVEZXZpY2VDaGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgfQogICAg
IH0KIAogICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcykg
ewpAQCAtMjIyLDE3ICsyNzIsMjAgQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoTm90aWZ5SWZEZXZpY2VzSGEKICAgICBpZiAo
IWhhdmVEZXZpY2VDaGFuZ2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2RldmljZXMgPSBW
ZWN0b3I8Q2FwdHVyZURldmljZT4oKTsKLQotICAgIGZvciAoYXV0byAmZGV2aWNlIDogbV9jb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlcykgewotICAgICAgICBDYXB0dXJlRGV2aWNlIGNhcHR1cmVEZXZp
Y2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNy
b3Bob25lLCBkZXZpY2UubGFiZWwoKSk7CisgICAgbV9jYXB0dXJlRGV2aWNlcy5jbGVhcigpOwor
ICAgIG1fc3BlYWtlckRldmljZXMuY2xlYXIoKTsKKyAgICBmb3IgKGF1dG8mIGRldmljZSA6IG1f
Y29yZUF1ZGlvQ2FwdHVyZURldmljZXMpIHsKKyAgICAgICAgQ2FwdHVyZURldmljZSBjYXB0dXJl
RGV2aWNlIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2UudHlwZSgpLCBkZXZpY2UubGFi
ZWwoKSwgZGV2aWNlLmdyb3VwSWQoKSB9OwogICAgICAgICBjYXB0dXJlRGV2aWNlLnNldEVuYWJs
ZWQoZGV2aWNlLmVuYWJsZWQoKSk7Ci0gICAgICAgIG1fZGV2aWNlcy5hcHBlbmQoY2FwdHVyZURl
dmljZSk7CisgICAgICAgIGlmIChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6Ok1pY3JvcGhvbmUpCisgICAgICAgICAgICBtX2NhcHR1cmVEZXZpY2VzLmFwcGVuZChX
VEZNb3ZlKGNhcHR1cmVEZXZpY2UpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9zcGVh
a2VyRGV2aWNlcy5hcHBlbmQoV1RGTW92ZShjYXB0dXJlRGV2aWNlKSk7CiAgICAgfQogCiAgICAg
aWYgKG5vdGlmeSA9PSBOb3RpZnlJZkRldmljZXNIYXZlQ2hhbmdlZDo6Tm90aWZ5KSB7CiAgICAg
ICAgIGRldmljZUNoYW5nZWQoKTsKLSAgICAgICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OnNpbmdsZXRvbigpLmRldmljZXNDaGFuZ2VkKG1fZGV2aWNlcyk7CisgICAgICAgIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5kZXZpY2VzQ2hhbmdlZChtX2Nh
cHR1cmVEZXZpY2VzKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmgKaW5kZXggZjQ5MWFhYWRhMjlmMWNjYzk1NzM4ZjIyMzFiMTFhNGYzYzdk
M2NhNS4uNWU5NjYyYmY0Mjc1OWI2ZTVjZTI5OWQ1MzQ1ZGNmYjM1NWFhYjM0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAg
cHVibGljOgogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VXaXRoUGVy
c2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0cmluZyYpOwogCiAg
ICAgT3B0aW9uYWw8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gY29yZUF1ZGlvRGV2aWNlV2l0aFVJ
RChjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFr
ZXJEZXZpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQogCiBwcml2YXRl
OgogICAgIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSBkZWZhdWx0OwpAQCAtNTcs
NyArNTgsOCBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgTm90aWZ5SWZEZXZpY2VzSGF2ZUNo
YW5nZWQgeyBOb3RpZnksIERvTm90Tm90aWZ5IH07CiAgICAgdm9pZCByZWZyZXNoQXVkaW9DYXB0
dXJlRGV2aWNlcyhOb3RpZnlJZkRldmljZXNIYXZlQ2hhbmdlZCk7CiAKLSAgICBWZWN0b3I8Q2Fw
dHVyZURldmljZT4gbV9kZXZpY2VzOworICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBtX2NhcHR1
cmVEZXZpY2VzOworICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBtX3NwZWFrZXJEZXZpY2VzOwog
ICAgIFZlY3RvcjxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBtX2NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDVjNTEy
OGVhMzBkNzgxYzkxMTlmNDUxMGNjMDQzOWNmNmM0ZDRkYzguLjIyMGNjMGQ4ZjZhZTk0OTJhYjE4
NTg5ZmE5NTI5MGNlOTVkNDY3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKQEAgLTY5MSw2ICs2OTEsMTUgQEAgQ2FwdHVyZURldmljZU1hbmFnZXImIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5OjphdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkKICNlbmRpZgog
fQogCitjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VG
YWN0b3J5OjpzcGVha2VyRGV2aWNlcygpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc3BlYWtl
ckRldmljZXMoKTsKKyNlbHNlCisgICAgcmV0dXJuIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNpbmdsZXRvbigpLnNwZWFrZXJEZXZpY2VzKCk7CisjZW5kaWYKK30KKwogdm9p
ZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6ZGV2aWNlc0NoYW5nZWQoY29uc3QgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzKQogewogICAgIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OnVuaXQoKS5kZXZpY2VzQ2hhbmdlZChkZXZpY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCmluZGV4IGFlMDc2NzBkMDM1M2EyZTljODJlMGIzMjhlMmY2Y2M5NWVhYWJmMWMuLjky
YWY1NWMyNzI5ZGMwNDkyMGUzOTMxOGNiNDM4ZmZlNTZjNGY2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaApAQCAtMTIzLDYgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAg
ICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5h
bDsKKyAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29u
c3QgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2Vy
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcAppbmRleCA4ZWUzNjQ0MDJlYzFlZThiNmIyMzhmNWM1
MDNkNDIwMzg5YTI2OTI3Li5mN2VjZGM4YWUwMGFjMDk2NmUxN2E3MmQ5MWMxMjcyZDE2NGViNGY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5jcHAKQEAgLTEwNSw2
ICsxMDUsNyBAQCBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJD
b2NvYTo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SQogCiAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3Bl
YWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCBjMTQ4Yzg1YjkzOTUzMDU2YmM1MjMyY2Ix
NzEwNjViZDUyMmFlNjI4Li45ODE5NGQxNDNlMGQyY2ZkMGI5NjE0MGViZTc2YWYwMzFmYTE4MWMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC02Nyw2ICs2
Nyw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNy
ZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpXaW5kb3c6CiAgICAgICAgIHJldHVybiBjcmVhdGUoV2luZG93RGlzcGxheUNh
cHR1cmVyTWFjOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBjb25zdHJh
aW50cyk7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgor
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2aWNlLmgKaW5kZXggNTBl
NmY0MGE0MzY3MjhiYzQ2YmRlYWQwOGQ4ZTE3MGM5NjNlMWNhMS4uZGJkYWFlMWQ4ZWVlNzNhOWM3
Nzc5MjRlYzUwZWJjYjM0NmYxMmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tNZWRpYURldmljZS5oCkBAIC01NSw2ICs1NSwzMyBAQCBzdHJ1Y3QgTW9ja01pY3Jv
cGhvbmVQcm9wZXJ0aWVzIHsKICAgICBpbnQgZGVmYXVsdFNhbXBsZVJhdGUgeyA0NDEwMCB9Owog
fTsKIAorc3RydWN0IE1vY2tTcGVha2VyUHJvcGVydGllcyB7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgZW5jb2RlciA8PCBtaWNyb3Bob25lSWQgPDwgc3RhdGljX2Nhc3Q8aW50MzJfdD4o
ZGVmYXVsdFNhbXBsZVJhdGUpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVy
PgorICAgIHN0YXRpYyBPcHRpb25hbDxNb2NrU3BlYWtlclByb3BlcnRpZXM+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgT3B0aW9uYWw8aW50MzJfdD4gZGVmYXVsdFNh
bXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gZGVmYXVsdFNhbXBsZVJhdGU7CisgICAgICAg
IGlmICghZGVmYXVsdFNhbXBsZVJhdGUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gbWljcm9waG9uZUlkOworICAgICAgICBkZWNv
ZGVyID4+IG1pY3JvcGhvbmVJZDsKKyAgICAgICAgaWYgKCFtaWNyb3Bob25lSWQpCisgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiBNb2NrU3BlYWtlclBy
b3BlcnRpZXMgeyBXVEZNb3ZlKCptaWNyb3Bob25lSWQpLCAqZGVmYXVsdFNhbXBsZVJhdGUgfTsK
KyAgICB9CisKKyAgICBTdHJpbmcgbWljcm9waG9uZUlkOworICAgIGludCBkZWZhdWx0U2FtcGxl
UmF0ZSB7IDQ0MTAwIH07Cit9OworCiAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIG90aGVyIHBy
b3BlcnRpZXMuCiBzdHJ1Y3QgTW9ja0NhbWVyYVByb3BlcnRpZXMgewogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+CkBAIC0xMzQsMTMgKzE2MSwyOSBAQCBzdHJ1Y3QgTW9ja0Rpc3BsYXlQcm9w
ZXJ0aWVzIHsKIAogc3RydWN0IE1vY2tNZWRpYURldmljZSB7CiAgICAgYm9vbCBpc01pY3JvcGhv
bmUoKSBjb25zdCB7IHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE1vY2tNaWNyb3Bob25l
UHJvcGVydGllcz4ocHJvcGVydGllcyk7IH0KKyAgICBib29sIGlzU3BlYWtlcigpIGNvbnN0IHsg
cmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8TW9ja1NwZWFrZXJQcm9wZXJ0aWVzPihwcm9w
ZXJ0aWVzKTsgfQogICAgIGJvb2wgaXNDYW1lcmEoKSBjb25zdCB7IHJldHVybiBXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPE1vY2tDYW1lcmFQcm9wZXJ0aWVzPihwcm9wZXJ0aWVzKTsgfQogICAgIGJv
b2wgaXNEaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxNb2Nr
RGlzcGxheVByb3BlcnRpZXM+KHByb3BlcnRpZXMpOyB9CiAKKyAgICBDYXB0dXJlRGV2aWNlIGNh
cHR1cmVEZXZpY2UoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGlzTWljcm9waG9uZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2UgeyBwZXJzaXN0ZW50SWQsIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGxhYmVsLCBwZXJzaXN0ZW50SWQgfTsKKyAg
ICAgICAgaWYgKGlzU3BlYWtlcigpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2Ug
eyBwZXJzaXN0ZW50SWQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIsIGxhYmVs
LCBzcGVha2VyUHJvcGVydGllcygpLT5taWNyb3Bob25lSWQgfTsKKyAgICAgICAgaWYgKGlzQ2Ft
ZXJhKCkpCisgICAgICAgICAgICByZXR1cm4gQ2FwdHVyZURldmljZSB7IHBlcnNpc3RlbnRJZCwg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhLCBsYWJlbCwgcGVyc2lzdGVudElkIH07
CisKKyAgICAgICAgQVNTRVJUKGlzRGlzcGxheSgpKTsKKyAgICAgICAgcmV0dXJuIENhcHR1cmVE
ZXZpY2UgeyBwZXJzaXN0ZW50SWQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbiwg
bGFiZWwsIHBlcnNpc3RlbnRJZCB9OworICAgIH0KKwogICAgIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoaXNNaWNyb3Bob25lKCkpCiAg
ICAgICAgICAgICByZXR1cm4gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZTsK
KyAgICAgICAgaWYgKGlzU3BlYWtlcigpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNwZWFrZXI7CiAgICAgICAgIGlmIChpc0NhbWVyYSgpKQogICAgICAg
ICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYTsKIApAQCAtMTQ4
LDYgKzE5MSwxMSBAQCBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlIHsKICAgICAgICAgcmV0dXJuIFdU
Rjo6Z2V0PE1vY2tEaXNwbGF5UHJvcGVydGllcz4ocHJvcGVydGllcykudHlwZTsKICAgICB9CiAK
KyAgICBjb25zdCBNb2NrU3BlYWtlclByb3BlcnRpZXMqIHNwZWFrZXJQcm9wZXJ0aWVzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc1NwZWFrZXIoKSA/ICZXVEY6OmdldDxNb2NrU3Bl
YWtlclByb3BlcnRpZXM+KHByb3BlcnRpZXMpIDogbnVsbHB0cjsKKyAgICB9CisKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgewpAQCAtMTU2LDEyICsyMDQsMTUgQEAgc3RydWN0IE1vY2tNZWRpYURldmljZSB7
CiAgICAgICAgIHN3aXRjaE9uKHByb3BlcnRpZXMsIFsmXShjb25zdCBNb2NrTWljcm9waG9uZVBy
b3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKICAgICAgICAgICAgIGVuY29kZXIgPDwgKHVpbnQ4X3Qp
MTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgcHJvcGVydGllczsKLSAgICAgICAgfSwgWyZdKGNv
bnN0IE1vY2tDYW1lcmFQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSB7CisgICAgICAgIH0sIFsmXShj
b25zdCBNb2NrU3BlYWtlclByb3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKICAgICAgICAgICAgIGVu
Y29kZXIgPDwgKHVpbnQ4X3QpMjsKICAgICAgICAgICAgIGVuY29kZXIgPDwgcHJvcGVydGllczsK
LSAgICAgICAgfSwgWyZdKGNvbnN0IE1vY2tEaXNwbGF5UHJvcGVydGllcyYgcHJvcGVydGllcykg
eworICAgICAgICB9LCBbJl0oY29uc3QgTW9ja0NhbWVyYVByb3BlcnRpZXMmIHByb3BlcnRpZXMp
IHsKICAgICAgICAgICAgIGVuY29kZXIgPDwgKHVpbnQ4X3QpMzsKICAgICAgICAgICAgIGVuY29k
ZXIgPDwgcHJvcGVydGllczsKKyAgICAgICAgfSwgWyZdKGNvbnN0IE1vY2tEaXNwbGF5UHJvcGVy
dGllcyYgcHJvcGVydGllcykgeworICAgICAgICAgICAgZW5jb2RlciA8PCAodWludDhfdCk0Owor
ICAgICAgICAgICAgZW5jb2RlciA8PCBwcm9wZXJ0aWVzOwogICAgICAgICB9KTsKICAgICB9CiAK
QEAgLTE5Nyw4ICsyNDgsMTAgQEAgc3RydWN0IE1vY2tNZWRpYURldmljZSB7CiAgICAgICAgIGNh
c2UgMToKICAgICAgICAgICAgIHJldHVybiBkZWNvZGVNb2NrTWVkaWFEZXZpY2U8TW9ja01pY3Jv
cGhvbmVQcm9wZXJ0aWVzPihkZWNvZGVyLCBXVEZNb3ZlKCpwZXJzaXN0ZW50SWQpLCBXVEZNb3Zl
KCpsYWJlbCkpOwogICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2RlTW9j
a01lZGlhRGV2aWNlPE1vY2tDYW1lcmFQcm9wZXJ0aWVzPihkZWNvZGVyLCBXVEZNb3ZlKCpwZXJz
aXN0ZW50SWQpLCBXVEZNb3ZlKCpsYWJlbCkpOworICAgICAgICAgICAgcmV0dXJuIGRlY29kZU1v
Y2tNZWRpYURldmljZTxNb2NrU3BlYWtlclByb3BlcnRpZXM+KGRlY29kZXIsIFdURk1vdmUoKnBl
cnNpc3RlbnRJZCksIFdURk1vdmUoKmxhYmVsKSk7CiAgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIHJldHVybiBkZWNvZGVNb2NrTWVkaWFEZXZpY2U8TW9ja0NhbWVyYVByb3BlcnRpZXM+KGRl
Y29kZXIsIFdURk1vdmUoKnBlcnNpc3RlbnRJZCksIFdURk1vdmUoKmxhYmVsKSk7CisgICAgICAg
IGNhc2UgNDoKICAgICAgICAgICAgIHJldHVybiBkZWNvZGVNb2NrTWVkaWFEZXZpY2U8TW9ja0Rp
c3BsYXlQcm9wZXJ0aWVzPihkZWNvZGVyLCBXVEZNb3ZlKCpwZXJzaXN0ZW50SWQpLCBXVEZNb3Zl
KCpsYWJlbCkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0y
MDYsNyArMjU5LDcgQEAgc3RydWN0IE1vY2tNZWRpYURldmljZSB7CiAKICAgICBTdHJpbmcgcGVy
c2lzdGVudElkOwogICAgIFN0cmluZyBsYWJlbDsKLSAgICBWYXJpYW50PE1vY2tNaWNyb3Bob25l
UHJvcGVydGllcywgTW9ja0NhbWVyYVByb3BlcnRpZXMsIE1vY2tEaXNwbGF5UHJvcGVydGllcz4g
cHJvcGVydGllczsKKyAgICBWYXJpYW50PE1vY2tNaWNyb3Bob25lUHJvcGVydGllcywgTW9ja1Nw
ZWFrZXJQcm9wZXJ0aWVzLCBNb2NrQ2FtZXJhUHJvcGVydGllcywgTW9ja0Rpc3BsYXlQcm9wZXJ0
aWVzPiBwcm9wZXJ0aWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAppbmRleCAwNTJkYjhkYTBmYjdlNTk0MjczOTYwZTZjNTgxZDk2NDBh
NTMxNTE4Li4yNWY1MjAzZDRhMmE4ODBlODRiYjJjOWVmMmQ4NTE1NDA5MDk1ZGQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNTUsNiArNTUsMTAgQEAgc3RhdGljIGlubGluZSBW
ZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAgICAgICAgIE1vY2tNZWRp
YURldmljZSB7ICIyMzljMjRiMC0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjYiX3MsICJNb2Nr
IGF1ZGlvIGRldmljZSAxIl9zLCBNb2NrTWljcm9waG9uZVByb3BlcnRpZXMgeyA0NDEwMCB9IH0s
CiAgICAgICAgIE1vY2tNZWRpYURldmljZSB7ICIyMzljMjRiMS0yYjE1LTExZTMtODIyNC0wODAw
MjAwYzlhNjYiX3MsICJNb2NrIGF1ZGlvIGRldmljZSAyIl9zLCBNb2NrTWljcm9waG9uZVByb3Bl
cnRpZXMgeyA0ODAwMCB9IH0sCiAKKyAgICAgICAgTW9ja01lZGlhRGV2aWNlIHsgIjIzOWMyNGIw
LTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NyJfcywgIk1vY2sgc3BlYWtlciBkZXZpY2UgMSJf
cywgTW9ja1NwZWFrZXJQcm9wZXJ0aWVzIHsgIjIzOWMyNGIwLTJiMTUtMTFlMy04MjI0LTA4MDAy
MDBjOWE2NiJfcywgNDQxMDAgfSB9LAorICAgICAgICBNb2NrTWVkaWFEZXZpY2UgeyAiMjM5YzI0
YjEtMmIxNS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY3Il9zLCAiTW9jayBzcGVha2VyIGRldmljZSAy
Il9zLCBNb2NrU3BlYWtlclByb3BlcnRpZXMgeyAiMjM5YzI0YjEtMmIxNS0xMWUzLTgyMjQtMDgw
MDIwMGM5YTY2Il9zLCA0ODAwMCB9IH0sCisgICAgICAgIE1vY2tNZWRpYURldmljZSB7ICIyMzlj
MjRiMi0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjciX3MsICJNb2NrIHNwZWFrZXIgZGV2aWNl
IDMiX3MsIE1vY2tTcGVha2VyUHJvcGVydGllcyB7IFN0cmluZyB7IH0sIDQ4MDAwIH0gfSwKKwog
ICAgICAgICBNb2NrTWVkaWFEZXZpY2UgeyAiMjM5YzI0YjItMmIxNS0xMWUzLTgyMjQtMDgwMDIw
MGM5YTY2Il9zLCAiTW9jayB2aWRlbyBkZXZpY2UgMSJfcywKICAgICAgICAgICAgIE1vY2tDYW1l
cmFQcm9wZXJ0aWVzIHsKICAgICAgICAgICAgICAgICAzMCwKQEAgLTE2MSw2ICsxNjUsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpDYW1lcmE6CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
VW5rbm93bjoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTkwLDYgKzE5
NSw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkg
ZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigp
LmFjdGl2ZVNvdXJjZSgpOyB9CiAjZW5kaWYKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0K
KyAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNwZWFrZXJEZXZp
Y2VzKCk7IH0KIH07CiAKIHN0YXRpYyBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiYgZGV2aWNlcygp
CkBAIC0yMTUsNyArMjIxLDkgQEAgc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBNb2NrTWVkaWFEZXZp
Y2U+JiBkZXZpY2VNYXAoKQogc3RhdGljIGlubGluZSBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRl
dmljZUxpc3RGb3JEZXZpY2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJiBkZXZpY2UpCiB7CiAgICAg
aWYgKGRldmljZS5pc01pY3JvcGhvbmUoKSkKLSAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjphdWRpb0RldmljZXMoKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjptaWNyb3Bob25lRGV2aWNlcygpOworICAgIGlmIChkZXZp
Y2UuaXNTcGVha2VyKCkpCisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c3BlYWtlckRldmljZXMoKTsKICAgICBpZiAoZGV2aWNlLmlzQ2FtZXJhKCkpCiAgICAg
ICAgIHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9EZXZpY2VzKCk7
CiAKQEAgLTI2Miw5ICsyNzAsMTYgQEAgYm9vbCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6bW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkKICAgICByZXR1cm4gc2lu
Z2xldG9uKCkubV9pc0VuYWJsZWQ7CiB9CiAKLXN0YXRpYyB2b2lkIGNyZWF0ZUNhcHR1cmVEZXZp
Y2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJiBkZXZpY2UpCitzdGF0aWMgQ2FwdHVyZURldmljZSB0
b0NhcHR1cmVEZXZpY2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJiBkZXZpY2UpCit7CisgICAgYXV0
byBjYXB0dXJlRGV2aWNlID0gZGV2aWNlLmNhcHR1cmVEZXZpY2UoKTsKKyAgICBjYXB0dXJlRGV2
aWNlLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CisKK3N0
YXRpYyB2b2lkIGNyZWF0ZU1vY2tEZXZpY2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJiBkZXZpY2Up
CiB7Ci0gICAgZGV2aWNlTGlzdEZvckRldmljZShkZXZpY2UpLmFwcGVuZChNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlLnR5
cGUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCkudmFsdWUoKSk7CisgICAgZGV2aWNlTGlzdEZvckRl
dmljZShkZXZpY2UpLmFwcGVuZCh0b0NhcHR1cmVEZXZpY2UoZGV2aWNlKSk7CiB9CiAKIHZvaWQg
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnJlc2V0RGV2aWNlcygpCkBAIC0yNzUsNyAr
MjkwLDggQEAgdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6cmVzZXREZXZpY2Vz
KCkKIAogdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0RGV2aWNlcyhWZWN0
b3I8TW9ja01lZGlhRGV2aWNlPiYmIG5ld01vY2tEZXZpY2VzKQogewotICAgIGF1ZGlvRGV2aWNl
cygpLmNsZWFyKCk7CisgICAgbWljcm9waG9uZURldmljZXMoKS5jbGVhcigpOworICAgIHNwZWFr
ZXJEZXZpY2VzKCkuY2xlYXIoKTsKICAgICB2aWRlb0RldmljZXMoKS5jbGVhcigpOwogICAgIGRp
c3BsYXlEZXZpY2VzKCkuY2xlYXIoKTsKIApAQCAtMjg3LDcgKzMwMyw3IEBAIHZvaWQgTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldERldmljZXMoVmVjdG9yPE1vY2tNZWRpYURldmlj
ZT4mJiBuZXdNb2NrCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IG1vY2tEZXZpY2Vz
KSB7CiAgICAgICAgIG1hcC5hZGQoZGV2aWNlLnBlcnNpc3RlbnRJZCwgZGV2aWNlKTsKLSAgICAg
ICAgY3JlYXRlQ2FwdHVyZURldmljZShkZXZpY2UpOworICAgICAgICBjcmVhdGVNb2NrRGV2aWNl
KGRldmljZSk7CiAgICAgfQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogfQpAQCAtMjk2LDcgKzMxMiw3IEBAIHZvaWQg
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmFkZERldmljZShjb25zdCBNb2NrTWVkaWFE
ZXZpY2UmIGRldmljZSkKIHsKICAgICBkZXZpY2VzKCkuYXBwZW5kKGRldmljZSk7CiAgICAgZGV2
aWNlTWFwKCkuc2V0KGRldmljZS5wZXJzaXN0ZW50SWQsIGRldmljZSk7Ci0gICAgY3JlYXRlQ2Fw
dHVyZURldmljZShkZXZpY2UpOworICAgIGNyZWF0ZU1vY2tEZXZpY2UoZGV2aWNlKTsKICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jYXB0dXJlRGV2aWNlc0NoYW5n
ZWQoKTsKIH0KIApAQCAtMzQwLDIzICszNTYsMzUgQEAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGUK
ICAgICBpZiAoaXRlcmF0b3IgPT0gbWFwLmVuZCgpIHx8IGl0ZXJhdG9yLT52YWx1ZS50eXBlKCkg
IT0gdHlwZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIENhcHR1cmVEZXZp
Y2UgZGV2aWNlIHsgaXRlcmF0b3ItPnZhbHVlLnBlcnNpc3RlbnRJZCwgdHlwZSwgaXRlcmF0b3It
PnZhbHVlLmxhYmVsIH07Ci0gICAgZGV2aWNlLnNldEVuYWJsZWQodHJ1ZSk7Ci0gICAgcmV0dXJu
IGRldmljZTsKKyAgICByZXR1cm4gdG9DYXB0dXJlRGV2aWNlKGl0ZXJhdG9yLT52YWx1ZSk7CiB9
CiAKLVZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmF1ZGlvRGV2aWNlcygpCitWZWN0b3I8Q2FwdHVyZURldmljZT4mIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjptaWNyb3Bob25lRGV2aWNlcygpCiB7Ci0gICAgc3RhdGljIGF1dG8gYXVk
aW9EZXZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKLSAgICAgICAgVmVjdG9yPENhcHR1
cmVEZXZpY2U+IGF1ZGlvRGV2aWNlczsKKyAgICBzdGF0aWMgYXV0byBtaWNyb3Bob25lRGV2aWNl
cyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiBtaWNyb3Bob25lRGV2aWNlczsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBk
ZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2UuaXNNaWNyb3Bob25lKCkpCi0gICAg
ICAgICAgICAgICAgYXVkaW9EZXZpY2VzLmFwcGVuZChjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UucGVyc2lz
dGVudElkKS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtaWNyb3Bob25lRGV2aWNlcy5hcHBl
bmQodG9DYXB0dXJlRGV2aWNlKGRldmljZSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBt
aWNyb3Bob25lRGV2aWNlczsKKyAgICB9KCkpOworCisgICAgcmV0dXJuIG1pY3JvcGhvbmVEZXZp
Y2VzOworfQorCitWZWN0b3I8Q2FwdHVyZURldmljZT4mIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzcGVha2VyRGV2aWNlcygpCit7CisgICAgc3RhdGljIGF1dG8gc3BlYWtlckRldmlj
ZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10geworICAgICAgICBWZWN0b3I8Q2FwdHVyZURldmlj
ZT4gc3BlYWtlckRldmljZXM7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNlIDogZGV2
aWNlcygpKSB7CisgICAgICAgICAgICBpZiAoZGV2aWNlLmlzU3BlYWtlcigpKQorICAgICAgICAg
ICAgICAgIHNwZWFrZXJEZXZpY2VzLmFwcGVuZCh0b0NhcHR1cmVEZXZpY2UoZGV2aWNlKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGF1ZGlvRGV2aWNlczsKKyAgICAgICAgcmV0dXJuIHNw
ZWFrZXJEZXZpY2VzOwogICAgIH0oKSk7CiAKLSAgICByZXR1cm4gYXVkaW9EZXZpY2VzOworICAg
IHJldHVybiBzcGVha2VyRGV2aWNlczsKIH0KIAogVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9EZXZpY2VzKCkKQEAgLTM2NSw3ICszOTMs
NyBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Ojp2aWRlb0RldmljZXMoKQogICAgICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gdmlkZW9EZXZp
Y2VzOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IGRldmljZXMoKSkgewogICAg
ICAgICAgICAgaWYgKGRldmljZS5pc0NhbWVyYSgpKQotICAgICAgICAgICAgICAgIHZpZGVvRGV2
aWNlcy5hcHBlbmQoY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhLCBkZXZpY2UucGVyc2lzdGVudElkKS52YWx1ZSgpKTsKKyAgICAg
ICAgICAgICAgICB2aWRlb0RldmljZXMuYXBwZW5kKHRvQ2FwdHVyZURldmljZShkZXZpY2UpKTsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gdmlkZW9EZXZpY2VzOwogICAgIH0oKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKaW5kZXggMWM1YWE2NjlkNWVkZDdhMzg1NmM2MWVhMjVjOThhYjEy
ZjViYTZlOS4uYzM3YzJhYzY3MDAzYzBmNGY5OGMyMGY1OWIxMjgyODlmMDg1NWJkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNTIsNyArNTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRNb2NrVmlkZW9DYXB0dXJlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzTW9ja1ZpZGVv
Q2FwdHVyZUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldE1vY2tEaXNwbGF5Q2Fw
dHVyZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc01vY2tEaXNwbGF5Q2FwdHVyZUVuYWJs
ZWQgPSBpc0VuYWJsZWQ7IH0KIAotICAgIHN0YXRpYyBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGF1
ZGlvRGV2aWNlcygpOworICAgIHN0YXRpYyBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG1pY3JvcGhv
bmVEZXZpY2VzKCk7CisgICAgc3RhdGljIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRl
dmljZXMoKTsKICAgICBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiB2aWRlb0RldmljZXMo
KTsKICAgICBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkaXNwbGF5RGV2aWNlcygpOwog
CkBAIC03Myw3ICs3NCw3IEBAIHByaXZhdGU6CiAKICAgICBjbGFzcyBNb2NrQXVkaW9DYXB0dXJl
RGV2aWNlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYXB0dXJlRGV2aWNlTWFuYWdlciB7CiAgICAg
cHJpdmF0ZToKLSAgICAgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2
aWNlcygpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRp
b0RldmljZXMoKTsgfQorICAgICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1
cmVEZXZpY2VzKCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
Om1pY3JvcGhvbmVEZXZpY2VzKCk7IH0KICAgICAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4g
Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIGlkKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQpOyB9CiAg
ICAgfTsKICAgICBjbGFzcyBNb2NrVmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlciBmaW5hbCA6IHB1
YmxpYyBDYXB0dXJlRGV2aWNlTWFuYWdlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZWQyZWE4MjVhMGI3
ZTZkOTQ5NWRmYTg0YjlkYWViYzdkNzc3Zjg2OS4uMGRhZWE2MDUxZTc1NTYzZjE5MzAwODNmMzI0
ZjAzYjlhMjE1MTlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIHByaXZhdGU6
CiAgICAgewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlNwZWFrZXI6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKICAgICAgICAgICAgIHJl
dHVybiBtX3Byb2Nlc3MuYWxsb3dzQXVkaW9DYXB0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA2ZGFmM2Q1OTNhMjU2ODI4ZmVmZjdjZTU3NTFjYmZm
NzYyYjU0MGI3Li5kYTM5ODQyYzJkMGRlNzMzYjk4ZTQ0NmFhMjhiOTAxNGFlNzM4YTc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTY2OCw2ICs2NjgsMTQg
QEAgV2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkOgogICBjYXRlZ29yeTogaW50ZXJuYWwK
ICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JUQykKIAorRXhwb3NlU3BlYWtlcnNFbmFibGVkOgor
ICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJBbGxvdyBzcGVha2VyIGRldmljZSBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlw
dGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgY2F0ZWdvcnk6IGV4cGVy
aW1lbnRhbAorICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQorCiBWUDlEZWNvZGVyRW5hYmxl
ZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRp
YURldmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURl
dmljZS5jcHAKaW5kZXggZjI3NjM2NTEzM2NhYTQyOTQ4Nzk2NWE5YzM4ZTMxNTAyOGZiZjg0NS4u
NTJhZTM5NjgwYTQ0Nzk4MjJjYWE3MTI2M2VkNWMzMGM2MmQ2OTg1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNwcApAQCAtMzgs
MTEgKzM4LDEzIEBAIHZvaWQgV0tBZGRNb2NrTWVkaWFEZXZpY2UoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIFdLU3RyaW5nUmVmIHBlcnNpc3RlbnRJZCwgV0tTdHJpCiB7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBTdHJpbmcgdHlwZVN0cmluZyA9IFdlYktpdDo6dG9JbXBsKHR5cGUpLT5z
dHJpbmcoKTsKLSAgICBWYXJpYW50PFdlYkNvcmU6Ok1vY2tNaWNyb3Bob25lUHJvcGVydGllcywg
V2ViQ29yZTo6TW9ja0NhbWVyYVByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tEaXNwbGF5UHJvcGVy
dGllcz4gcHJvcGVydGllczsKKyAgICBWYXJpYW50PFdlYkNvcmU6Ok1vY2tNaWNyb3Bob25lUHJv
cGVydGllcywgV2ViQ29yZTo6TW9ja1NwZWFrZXJQcm9wZXJ0aWVzLCBXZWJDb3JlOjpNb2NrQ2Ft
ZXJhUHJvcGVydGllcywgV2ViQ29yZTo6TW9ja0Rpc3BsYXlQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVz
OwogICAgIGlmICh0eXBlU3RyaW5nID09ICJjYW1lcmEiKQogICAgICAgICBwcm9wZXJ0aWVzID0g
V2ViQ29yZTo6TW9ja0NhbWVyYVByb3BlcnRpZXMgeyB9OwogICAgIGVsc2UgaWYgKHR5cGVTdHJp
bmcgPT0gInNjcmVlbiIpCiAgICAgICAgIHByb3BlcnRpZXMgPSBXZWJDb3JlOjpNb2NrRGlzcGxh
eVByb3BlcnRpZXMgeyB9OworICAgIGVsc2UgaWYgKHR5cGVTdHJpbmcgPT0gInNwZWFrZXIiKQor
ICAgICAgICBwcm9wZXJ0aWVzID0gV2ViQ29yZTo6TW9ja1NwZWFrZXJQcm9wZXJ0aWVzIHsgfTsK
ICAgICBlbHNlIGlmICh0eXBlU3RyaW5nICE9ICJtaWNyb3Bob25lIikKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
CmluZGV4IDg1MWZkNzk4Y2UyODc1NTY5YWQ5NTE5NTZmMTY1ZjRjNDljOTNhN2EuLmUwZjliNjhj
MDQ0YmY4YTc1MmVmMDQxMmUwZWRlMGVjMTViODU2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xOTMwLDYgKzE5MzAsMTYgQEAg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5t
ZWRpYVByZWxvYWRpbmdFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEV4cG9z
ZVNwZWFrZXJzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZs
YWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RXhwb3NlU3BlYWtlcnNFbmFi
bGVkKGZsYWcpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRFeHBvc2VTcGVha2Vyc0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+ZXhwb3NlU3BlYWtlcnNFbmFibGVkKCk7Cit9CisKIHZvaWQgV0tQ
cmVmZXJlbmNlc1NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCiB7CiAgICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkKGZsYWcpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRl
LmgKaW5kZXggYWZkOTkwZTZiMGQ0ZjRjNWU5ZDgzOTFmMjgzMDQ1YzUyNGRmZjg1Zi4uYmI1OTA2
NzFmZjI3NTlmOTEwZjQ5ODUzODgzOTk1Nzg1NGNkNzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC01
MzksNiArNTM5LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMaW5rUHJlbG9h
ZEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwog
V0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhUHJlbG9hZGluZ0VuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRzIHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBX
S1ByZWZlcmVuY2VzU2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJv
b2wgZmxhZyk7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RXhwb3NlU3BlYWtlcnNF
bmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZQogV0tfRVhQ
T1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdl
YkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAKaW5kZXggZGFhZDJjZmNjNjAwNTEwNWQzMTQ0MTVlMmQwMGJjZmQzNzQ1YzYw
YS4uODY3OTJhYTU1YzFlN2NiMTI3OGJhYzM5M2Q4NzA0OTlhYmE2MDYyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTI2MCw2ICsyNjAsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaQogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93
OgogICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCAmY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKaW5kZXggN2UwNzBkYmQ2MTNlZTNiMWM3MzRmMmU1ZWMwOWJjN2JmYmY3ODQ5OS4uZTQw
ZjA4NmVmZjFkMTk5NzlkZDc4YmUwODg2MDRhYzJiYzQ4NTkyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNTk4LDYgKzU5OCwxMyBAQCBib29sIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNz
KEZyYW1lSQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlzTWlj
cm9waG9uZURldmljZShjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGRldmlj
ZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7CisgICAgcmV0dXJuIHN0ZDo6YW55X29mKGRl
dmljZXMuYmVnaW4oKSwgZGV2aWNlcy5lbmQoKSwgWyZkZXZpY2VJRF0oYXV0byYgZGV2aWNlKSB7
CisgICAgICAgIHJldHVybiBkZXZpY2UucGVyc2lzdGVudElkKCkgPT0gZGV2aWNlSUQgJiYgZGV2
aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOworICAg
IH0pOworfQorCiBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNB
bmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCkKIHsKICAgICBzdGF0aWMg
Y29uc3QgaW50IGRlZmF1bHRNYXhpbXVtQ2FtZXJhQ291bnQgPSAxOwpAQCAtNjA5LDcgKzYxNiw3
IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiAKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4g
ZmlsdGVyZWREZXZpY2VzOwogICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNlIDogZGV2aWNlcykg
ewotICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkgfHwgKGRldmljZS50eXBlKCkgIT0gV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmIGRldmljZS50eXBlKCkg
IT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkpCisgICAg
ICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSB8fCAoZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgZGV2aWNlLnR5cGUoKSAhPSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lICYmIGRldmljZS50eXBl
KCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcikpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoIXJldmVhbElkc0FuZExhYmVscykgewpA
QCAtNjE3LDYgKzYyNCwxMiBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSAmJiArK21pY3JvcGhvbmVDb3Vu
dCA+IGRlZmF1bHRNYXhpbXVtTWljcm9waG9uZUNvdW50KQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgaWYgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmIGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIG9ubHkgZXhwb3NlIHNw
ZWFrZXJzIHRpZWQgdG8gYSBtaWNyb3Bob25lIGZvciB0aGUgbW9tZW50LgorICAgICAgICAgICAg
aWYgKGRldmljZS50eXBlKCkgPT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U3BlYWtlciAmJiAhaXNNaWNyb3Bob25lRGV2aWNlKGRldmljZXMsIGRldmljZS5ncm91cElkKCkp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBs
YWJlbCA9IGVtcHR5U3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggYTdmMDQw
MGU1MmIxYzY1MjIwYTE2N2VlYWRhNTBlZWVmZjI2OTU3Mi4uOTg0ZmJiZjRjNzgzNDRkNWY4Mzdi
OWFhNWM5YWU3OGEzNWZkMWRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtNzAsNiAr
NzAsNyBAQCBzdGF0aWMgaW5saW5lIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlw
ZUZyb21EZXZpY2VUeXBlKENhcHR1cmVEZXZpY2U6OgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
V2luZG93OgogICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87
CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQpAQCAtOTcsNiArOTgsNyBAQCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aQogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogICAgICAgICBicmVhazsKKyAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CkBAIC0xMTgsNiArMTIwLDcgQEAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2lu
ZG93OgogICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4
IDZlZDBhMGY5ODJhNTczZDk1Y2ZmYzQxNzQ2NDBkMTU2MjU4MTExZjQuLmIwYjE5ODI5MDU0MjJk
ZTcyOTU0MmFiYjNlZTA5YmM3ZTMzMGQwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03MCw5ICs3
MCwxMSBAQCBwcml2YXRlOgogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09w
Q2FwdHVyZURldmljZU1hbmFnZXI7IH0KKyAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3Bl
YWtlckRldmljZXM7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5h
Z2VyOwogICAgICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07
CisgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBtX3NwZWFrZXJEZXZpY2Vz
OwogICAgIH07CiAgICAgY2xhc3MgVmlkZW9GYWN0b3J5IDogcHVibGljIFdlYkNvcmU6OlZpZGVv
Q2FwdHVyZUZhY3RvcnkgewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkOGQyN2JjYjk3YTk2ODVkODkzNDM2NzhjMjUxMDI4
ZGJmNTc4MzgwLi5jODdmZmYwNjMzZDM5NzQwNzhhOWZlMmQ0YzdmM2IwZjZlZmM4YzVmIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjAtMDgtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIGVudW1lcmF0ZURldmljZXMgc2hvdWxkIGV4cG9zZSBhdWRpb291dHB1dCBkZXZpY2Vz
IHRoYXQgYXJlIHRpZWQgdG8gYW4gYXVkaW8gaW5wdXQgZGV2aWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU4MDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgZXhwZXJpbWVudGFsIGZsYWcu
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorCiAyMDIwLTA4LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBHZW5lcmF0ZWQgYmluZGluZ3MgZm9yIGRlcml2ZWQgZGljdGlvbmFyaWVzIGFyZSBu
b3QgcmVnZW5lcmF0ZWQgd2hlbiB0aGUgYmFzZSBkaWN0aW9uYXJ5IGNoYW5nZXMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNGMyNjA4ZjliMWVjZjZjMjU2
YzJkMGFiM2Y5NjdjYWFlOTAzMjRhMi4uMWFjNzFmNzEyMjkzNWZkYTU3MWU1NDg1MTViMzRjYTM3
ZTlkZDg0NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTk2Miw2ICs5NjIsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9D
b25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRVc2VyVGltaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhUHJlbG9hZGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lKHByZWZl
cmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SW5saW5lTWVkaWFQbGF5YmFja1Jl
cXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0UmVtb3RlUGxheWJhY2tFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA0NWIyYmRkNmYxZjk1NmQ1MGQyMDQ1NmFkMTEzNmU0N2E4MDVmZTc5Li41ZDU2N2I1ZjVh
ZmVhZWE0MzM2YjE1ZGEzOTY2NDE5MTRhZWNlYTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MjAtMDgtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIGVu
dW1lcmF0ZURldmljZXMgc2hvdWxkIGV4cG9zZSBhdWRpb291dHB1dCBkZXZpY2VzIHRoYXQgYXJl
IHRpZWQgdG8gYW4gYXVkaW8gaW5wdXQgZGV2aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBzcGVha2VyIGRldmljZXMKKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2VudW1lcmF0ZS1zcGVha2VyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNl
LWlkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVy
YXRlLWRldmljZXMtc291cmNlLWlkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJh
bWUuaHRtbDoKKwogMjAyMC0wOC0yNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhUmVjb3JkZXIgYml0cmF0ZSBvcHRpb25z
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBhNDI4YzVjNzI5NTUyMjYzYjk3M2Jh
ODQ4MWRkMjY4MzkzM2IwZGM1Li44ZjZiNTVmNmY2MDQ2YmUyMTVjZWVkMzk0YWNkODg1YTMzYzE2
MDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0wOC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZW51
bWVyYXRlRGV2aWNlcyBzaG91bGQgZXhwb3NlIGF1ZGlvb3V0cHV0IGRldmljZXMgdGhhdCBhcmUg
dGllZCB0byBhbiBhdWRpbyBpbnB1dCBkZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1z
dHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0
cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLmh0bWw6CisKIDIwMjAtMDgtMjQgIEp1c3RpbiBV
YmVydGkgIDxqdXN0aW5AdWJlcnRpLm5hbWU+CiAKICAgICAgICAgUlRDUnRwU3luY2hyb25pemF0
aW9uU291cmNlLnJ0cFRpbWVzdGFtcCBpcyBub3QgcHJlc2VudApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJhdGUtc3BlYWtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2VudW1lcmF0ZS1zcGVha2VyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZGY4ZWM0YzhiMTU1ZDRlNTg3OWMyMjA1NjdlNWVjOWIxMTgwZDI0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJhdGUt
c3BlYWtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgYXVkaW9vdXRwdXQg
ZGV2aWNlcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVt
ZXJhdGUtc3BlYWtlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJh
dGUtc3BlYWtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZmIxNDA2MTgxMDgxN2FjMDBmYTJhOGMxNDY4
MWYyNjVlMjRlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2VudW1lcmF0ZS1zcGVha2VyLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0
bGU+VGVzdCBwYXNzaW5nIGNhcHR1cmUgZGV2aWNlIElEcyB0byBnZXRVc2VyTWVkaWE8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisKKyAgICBmdW5jdGlvbiBkZXZpY2VGcm9tTGFi
ZWwoZGV2aWNlcywgbGFiZWwpCisgICAgeworICAgICAgICBmb3IgKGxldCBkZXZpY2Ugb2YgZGV2
aWNlcykgeworICAgICAgICAgICAgaWYgKGRldmljZS5sYWJlbCA9PT0gbGFiZWwpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGRldmljZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4geworICAgICAgICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOnRydWUsIHZpZGVvOnRydWUgfSkKKyAgICAgICAgY29u
c3QgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNl
cygpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXZpY2VzLmxlbmd0aCA+IDIsICJiZWZvcmUgZ2V0
dGluZyBwZXJtaXNzaW9uLCBhdCBtb3N0IDEgY2FtZXJhIGFuZCAxIG1pY3JvcGhvbmUgYXJlIGV4
cG9zZWQiKTsKKyAgICAgICAgZGV2aWNlcy5mb3JFYWNoKChkZXZpY2UpID0+IHsKKyAgICAgICAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGRldmljZS5kZXZpY2VJZC5sZW5ndGggPT0gMCAsICJkZXZp
Y2UuZGV2aWNlSWQgaXMgZW1wdHkgYmVmb3JlIHBlcm1pc3Npb24gdG8gY2FwdHVyZSIpOworICAg
ICAgICB9KTsKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgY29uc3QgbWljMSA9IGRldmljZUZyb21MYWJlbChkZXZpY2VzLCAi
TW9jayBhdWRpbyBkZXZpY2UgMSIpOworICAgICAgICBjb25zdCBtaWMyID0gZGV2aWNlRnJvbUxh
YmVsKGRldmljZXMsICJNb2NrIGF1ZGlvIGRldmljZSAyIik7CisgICAgICAgIGNvbnN0IHNwZWFr
ZXIxID0gZGV2aWNlRnJvbUxhYmVsKGRldmljZXMsICJNb2NrIHNwZWFrZXIgZGV2aWNlIDEiKTsK
KyAgICAgICAgY29uc3Qgc3BlYWtlcjIgPSBkZXZpY2VGcm9tTGFiZWwoZGV2aWNlcywgIk1vY2sg
c3BlYWtlciBkZXZpY2UgMiIpOworICAgICAgICBjb25zdCBzcGVha2VyMyA9IGRldmljZUZyb21M
YWJlbChkZXZpY2VzLCAiTW9jayBzcGVha2VyIGRldmljZSAzIik7CisKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzcGVha2VyMS5raW5kLCAiYXVkaW9vdXRwdXQiLCAic3BlYWtlcjEiKTsKKyAgICAg
ICAgYXNzZXJ0X25vdF9lcXVhbHMoc3BlYWtlcjEuZ3JvdXBJZCwgIiIsICJzcGVha2VyMSBncm91
cElkIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzcGVha2VyMi5raW5kLCAiYXVkaW9vdXRw
dXQiLCAic3BlYWtlcjIiKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc3BlYWtlcjIuZ3Jv
dXBJZCwgIiIsICJzcGVha2VyMiBncm91cElkIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
cGVha2VyMywgdW5kZWZpbmVkLCAic3BlYWtlcjMiKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNwZWFrZXIxLmdyb3VwSWQsIG1pYzEuZ3JvdXBJZCwgImRldmljZSAxIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc3BlYWtlcjIuZ3JvdXBJZCwgbWljMi5ncm91cElkLCAiZGV2aWNlIDIiKTsK
KyAgICB9LCAiYXVkaW9vdXRwdXQgZGV2aWNlcyIpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQuaHRtbAppbmRleCA5ZjRkMzc5
M2VlMDhmNThmZjA4N2I3NWM3MWVjNzQ3MTc5YzIxYmM5Li5iNDg3YWQ1ZGJkZjkwM2YyZTE5NmUw
YWM4NTVjOTZkZTMzYTk4Njg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLmh0bWwKQEAgLTg1LDcgKzg1LDcg
QEAKICAgICAgICAgICAgIGlmIChkZXZpY2Uua2luZCA9PT0gImF1ZGlvaW5wdXQiKSB7CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoe2F1ZGlvOiB7ZGV2aWNlSWQ6IGRldmljZS5kZXZpY2VJZH19KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLmdldFNl
dHRpbmdzKCkuZGV2aWNlSWQsIGRldmljZS5kZXZpY2VJZCwgIk1hdGNoaW5nIGF1ZGlvIGRldmlj
ZSBpZCIpOwotICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV2
aWNlLmtpbmQgPT09ICJ2aWRlb2lucHV0IikgewogICAgICAgICAgICAgICAgIGNvbnN0IHN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge2Rl
dmljZUlkOiBkZXZpY2UuZGV2aWNlSWR9fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLmRldmljZUlkLCBkZXZp
Y2UuZGV2aWNlSWQsICJNYXRjaGluZyB2aWRlbyBkZXZpY2UgaWQiKTsKICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Vu
dW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMt
aWZyYW1lLWFsbG93LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKaW5kZXggNjNlOWJkZDgwYTFmMWY5
MzcyMDIwOTY3YWQxMTFhNjE1NjRhOGIxMy4uMjVjNjNhN2M0YWExMTk3OTJhYzE2NDYxMDY3NDY3
OWU2ZDA4YmZjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51
bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTEs
NSArMSwyMSBAQAogQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnQ2FtZXJhJyBjaGVj
ayBmYWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBh
bmQgYWxsb3cgYXR0cmlidXRlICcnLgogQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAn
TWljcm9waG9uZScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KIENPTlNPTEUgTUVTU0FHRTog
Tm90IGFsbG93ZWQgdG8gY2FsbCBlbnVtZXJhdGVEZXZpY2VzLgotICAgICAgCitDT05TT0xFIE1F
U1NBR0U6IEZlYXR1cmUgcG9saWN5ICdDYW1lcmEnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdp
dGggb3JpZ2luICdodHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJycu
CitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdNaWNyb3Bob25lJyBjaGVjayBmYWls
ZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxs
b3cgYXR0cmlidXRlICcnLgorQ09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0byBjYWxsIGVu
dW1lcmF0ZURldmljZXMuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdNaWNyb3Bo
b25lJyBjaGVjayBmYWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9z
dDo4MDAwJyBhbmQgYWxsb3cgYXR0cmlidXRlICcnLgorQ09OU09MRSBNRVNTQUdFOiBOb3QgYWxs
b3dlZCB0byBjYWxsIGdldFVzZXJNZWRpYS4KK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xp
Y3kgJ0NhbWVyYScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KK0NPTlNPTEUgTUVTU0FHRTog
Tm90IGFsbG93ZWQgdG8gY2FsbCBnZXRVc2VyTWVkaWEuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1
cmUgcG9saWN5ICdDYW1lcmEnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdo
dHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJycuCitDT05TT0xFIE1F
U1NBR0U6IEZlYXR1cmUgcG9saWN5ICdNaWNyb3Bob25lJyBjaGVjayBmYWlsZWQgZm9yIGlmcmFt
ZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxsb3cgYXR0cmlidXRl
ICcnLgorQ09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0byBjYWxsIGVudW1lcmF0ZURldmlj
ZXMuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdNaWNyb3Bob25lJyBjaGVjayBm
YWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQg
YWxsb3cgYXR0cmlidXRlICdjYW1lcmEnLgorQ09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0
byBjYWxsIGdldFVzZXJNZWRpYS4KK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kgJ0Nh
bWVyYScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnbWljcm9waG9uZScuCitDT05TT0xFIE1FU1NB
R0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgorQ09OU09MRSBNRVNTQUdFOiBG
ZWF0dXJlIHBvbGljeSAnQ2FtZXJhJyBjaGVjayBmYWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdp
biAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxsb3cgYXR0cmlidXRlICdtaWNyb3Bob25l
O3NwZWFrZXItc2VsZWN0aW9uJy4KK0NPTlNPTEUgTUVTU0FHRTogTm90IGFsbG93ZWQgdG8gY2Fs
bCBnZXRVc2VyTWVkaWEuCisgICAgICAgICAKIFBBU1M6ICJhbGxvdyIgYXR0cmlidXRlIHJlc3Bl
Y3RlZCBpbiBhbGwgaWZyYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1sCmluZGV4IDYzZmQwMzU4YTRh
MGNkZDFkYjQ2ODZkZmU2ZDkyZTU5NDhkYzRlZDEuLjlkMTUzMDFkYjYyYzAyZTk3YTc4ZjM5MGIz
YzRhNTY0NDc5OTVmOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJh
dGUtZGV2aWNlcy1pZnJhbWUtYWxsb3ctYXR0cmlidXRlLmh0bWwKQEAgLTYsNiArNiw4IEBACiAg
ICAgPGlmcmFtZSBpZD0ibWljcm9waG9uZSIgYWxsb3c9Im1pY3JvcGhvbmUiIHNyYz0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVyYXRlLWRl
dmljZXMtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgogICAgIDxpZnJhbWUgaWQ9ImNhbWVyYSIgYWxs
b3c9ImNhbWVyYSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFt
L3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CiAgICAg
PGlmcmFtZSBpZD0iY2FtZXJhK21pY3JvcGhvbmUiIGFsbG93PSJjYW1lcmE7bWljcm9waG9uZSIg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9l
bnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBpZD0i
bWljcm9waG9uZStzcGVha2Vyc2VsZWN0aW9uIiBhbGxvdz0ibWljcm9waG9uZTtzcGVha2VyLXNl
bGVjdGlvbiIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFtL3Jl
c291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlm
cmFtZSBpZD0iY2FtZXJhK21pY3JvcGhvbmUrc3BlYWtlcnNlbGVjdGlvbiIgYWxsb3c9ImNhbWVy
YTttaWNyb3Bob25lO3NwZWFrZXItc2VsZWN0aW9uIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS5o
dG1sIj48L2lmcmFtZT4KICAgICA8aWZyYW1lIGlkPSJzYW1lLW9yaWdpbiIgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2
aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CiAKICAgICA8c2NyaXB0PgpAQCAtMjAsOCArMjIs
MTAgQEAKICAgICAgICAgICAgICdtaWNyb3Bob25lJyA6ICdtaWNyb3Bob25lJywKICAgICAgICAg
ICAgICdub25lJyA6ICcnLAogICAgICAgICAgICAgJ2NhbWVyYSttaWNyb3Bob25lJyA6ICdjYW1l
cmErbWljcm9waG9uZScsCisgICAgICAgICAgICAnbWljcm9waG9uZStzcGVha2Vyc2VsZWN0aW9u
JyA6ICdtaWNyb3Bob25lK3NwZWFrZXJzZWxlY3Rpb24nLAorICAgICAgICAgICAgJ2NhbWVyYStt
aWNyb3Bob25lK3NwZWFrZXJzZWxlY3Rpb24nIDogJ2NhbWVyYSttaWNyb3Bob25lK3NwZWFrZXJz
ZWxlY3Rpb24nLAogICAgICAgICAgICAgJ2NhbWVyYScgOiAnY2FtZXJhJywKLSAgICAgICAgICAg
ICdzYW1lLW9yaWdpbicgOiAnY2FtZXJhK21pY3JvcGhvbmUnCisgICAgICAgICAgICAnc2FtZS1v
cmlnaW4nIDogJ2NhbWVyYSttaWNyb3Bob25lK3NwZWFrZXJzZWxlY3Rpb24nCiAgICAgICAgIH07
CiAgICAgICAgIGxldCBjb3VudCA9IDA7CiAgICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTsKQEAg
LTMxLDcgKzM1LDcgQEAKICAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJIVE1MICs9IGBGQUlM
OiAmTFQ7aWZyYW1lIGlkPSR7dmlzaWJsZVswXX0+IHNhdyAiJHt2aXNpYmxlWzFdfSIsIHNob3Vs
ZCBoYXZlIHNlZW4gIiR7ZXhwZWN0ZWRbdmlzaWJsZVswXV19Ijxicj5gOwogICAgICAgICAgICAg
ICAgIHN1Y2Nlc3MgPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgrK2Nv
dW50ID09IDUpIHsKKyAgICAgICAgICAgIGlmICgrK2NvdW50ID09IDcpIHsKICAgICAgICAgICAg
ICAgICBpZiAoc3VjY2VzcykKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9
ICdQQVNTOiAiYWxsb3ciIGF0dHJpYnV0ZSByZXNwZWN0ZWQgaW4gYWxsIGlmcmFtZXMnOwogICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJj
ZS1pZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51
bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWwKaW5kZXggNzAyY2Q5YTQ0MDA1ZjFhZmZhYWNk
MmNiYWI0OGIxMDFlM2I2MzJmOS4uYWI4NGE5YTM2NjdkYWYyZWY2MGQ3NWYzYTcxZDI1ODRlYTE1
YmJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0
bWwKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgICAgICAgICBpZiAob3JpZ2luSW5mb1tkZXZp
Y2UuZGV2aWNlSWRdICE9IGRldmljZS5raW5kKQogICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKGA6IGR1cGxpY2F0ZSBkZXZpY2UgSURzIGZvciAke2RldmljZS5raW5kfSBhbmQgJHtvcmln
aW5JbmZvW2RldmljZS5kZXZpY2VJZF19IGluICR7b3JpZ2lufS8ke3NlbGYub3JpZ2lufWApOwog
Ci0gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG9yaWdpbkluZm8pLmxlbmd0aCA+IDQp
CisgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG9yaWdpbkluZm8pLmxlbmd0aCA+IDYp
CiAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYDogbW9yZSB0aGVuIGZvdXIgdW5pcXVl
IGRldmljZSBJRHMgaW4gJHtvcmlnaW59LyR7c2VsZi5vcmlnaW59YCk7CiAgICAgICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1p
ZnJhbWUuaHRtbAppbmRleCA1ODBjODZmNDcyZTIzMzEwNWJkYWRmNDY4NGMyNTU4YzU4YWQ4Njgx
Li45ODY3ZDVkY2U0MDFhMjc4OGNhMGM2NzA2YmQ0ZTg3ZDlmMGE5NGI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS5odG1sCkBA
IC0xLDExICsxLDQ0IEBACiA8c2NyaXB0PgorICAgIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRGV2aWNl
S2luZChraW5kKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxldCBkZXZpY2Vz
ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgICAg
ICAgICAgICBmb3IgKGxldCBkZXZpY2Ugb2YgZGV2aWNlcykgeworICAgICAgICAgICAgICAgIGlm
IChkZXZpY2Uua2luZCA9PT0ga2luZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tTcGVha2Vy
U2VsZWN0aW9uKCkKKyAgICB7CisgICAgICAgIC8vIFNwZWFrZXJzIGFyZSBjdXJyZW50bHkgb25s
eSBleHBvc2VkIGFmdGVyIGdldFVzZXJNZWRpYS4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8gOiB0cnVl
IH0pOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlk
ZW8gOiB0cnVlIH0pOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGNoZWNrRGV2aWNlS2luZCgnYXVkaW9vdXRwdXQnKTsKKyAgICB9CisKICAgICBhc3lu
YyBmdW5jdGlvbiBlbnVtZXJhdGUoZXZlbnQpCiAgICAgewotICAgICAgICBsZXQgZGV2aWNlcyA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOwotICAgICAg
ICBsZXQgdmlzaWJsZSA9IGRldmljZXMubWFwKGRldmljZSA9PiBkZXZpY2Uua2luZC5pbmRleE9m
KCd2aWRlbycpID09IDAgPyAnY2FtZXJhJyA6ICdtaWNyb3Bob25lJykuc29ydCgpOworICAgICAg
ICBsZXQgdmlzaWJsZSA9IFtdOworICAgICAgICBpZiAoYXdhaXQgY2hlY2tEZXZpY2VLaW5kKCd2
aWRlb2lucHV0JykpCisgICAgICAgICAgICB2aXNpYmxlLnB1c2goJ2NhbWVyYScpOworICAgICAg
ICBpZiAoYXdhaXQgY2hlY2tEZXZpY2VLaW5kKCdhdWRpb2lucHV0JykpCisgICAgICAgICAgICB2
aXNpYmxlLnB1c2goJ21pY3JvcGhvbmUnKTsKKyAgICAgICAgaWYgKGF3YWl0IGNoZWNrU3BlYWtl
clNlbGVjdGlvbigpKQorICAgICAgICAgICAgdmlzaWJsZS5wdXNoKCdzcGVha2Vyc2VsZWN0aW9u
Jyk7CisgCiAgICAgICAgIHZpc2libGUgPSB2aXNpYmxlLmpvaW4oJysnKTsKICAgICAgICAgcGFy
ZW50LnBvc3RNZXNzYWdlKGAke2V2ZW50LmRhdGF9OiR7dmlzaWJsZX1gLCAnKicpOwotICAgICAg
ICByZXN1bHQuaW5uZXJIVE1MID0gdmlzaWJsZTsKKyAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9
ICdyZXN1bHQ6ICInICsgdmlzaWJsZSArICciJzsKICAgICB9CiAKICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIChpZCkgPT4gZW51bWVyYXRlKGlkKSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCA4MDlmY2UyZDlkNDc4YzMxODFhODY0MmU4ZmZkMjMxNjc1YmE4Njg0Li5lNTI0ODEz
YzhmZWFkNTJhMDNlMTMwY2YzZjFhZTM1NWVmMTY0ZWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01l
ZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMvTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMs
NyArMyw3IEBAIFdoZW4gcHJvbXB0ZWQsIGFjY2VwdCB0byBzaGFyZSB5b3VyIHZpZGVvIHN0cmVh
bS4KIAogUEFTUyBBIGRldmljZSBjYW4gYmUgb3BlbmVkIHR3aWNlIGFuZCBoYXZlIHRoZSBzYW1l
IGRldmljZSBJRCAKIFBBU1MgQSBkZXZpY2UgY2FuIGJlIG9wZW5lZCB0d2ljZSB3aXRoIGRpZmZl
cmVudCByZXNvbHV0aW9ucyByZXF1ZXN0ZWQgCi1GQUlMIGdyb3VwSWQgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGJ5IGdldFNldHRpbmdzKCkgZm9yIGFsbCBpbnB1dCBkZXZpY2VzIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIChzdHJpbmcpICIiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitG
QUlMIGdyb3VwSWQgaXMgY29ycmVjdGx5IHJlcG9ydGVkIGJ5IGdldFNldHRpbmdzKCkgZm9yIGFs
bCBpbnB1dCBkZXZpY2VzIGFzc2VydF90cnVlOiBkZXZpY2UgZ3JvdXBJZCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQogUEFTUyBkZXZpY2VJZCBpcyByZXBvcnRlZCBieSBnZXRTZXR0aW5ncygpIGZv
ciBnZXRVc2VyTWVkaWEoKSBhdWRpbyB0cmFja3MgCiBGQUlMIGdyb3VwSWQgaXMgcmVwb3J0ZWQg
YnkgZ2V0U2V0dGluZ3MoKSBmb3IgZ2V0VXNlck1lZGlhKCkgYXVkaW8gdHJhY2tzIGFzc2VydF9l
cXVhbHM6IGdyb3VwSWQgc2hvdWxkIGV4aXN0IGFuZCBpdCBzaG91bGQgYmUgYSBzdHJpbmcuIGV4
cGVjdGVkICJzdHJpbmciIGJ1dCBnb3QgInVuZGVmaW5lZCIKIFBBU1Mgc2FtcGxlUmF0ZSBpcyBy
ZXBvcnRlZCBieSBnZXRTZXR0aW5ncygpIGZvciBnZXRVc2VyTWVkaWEoKSBhdWRpbyB0cmFja3Mg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy5odG1sCmlu
ZGV4IGQ5NGI0M2M5Y2Y5YTEzN2QyNTIwZmJmNjk2MjJhNjIwMTEyMjBhNDYuLjhkOGRkN2I3MWJk
Y2U4ZDBiNDUxNDVhMWRlMzI3MWNlMDAwNjkzODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFT
dHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy5odG1sCkBAIC03Myw4ICs3Myw3IEBACiAgICAgICAg
IDoge3ZpZGVvOiBkZXZpY2VfaWRfY29uc3RyYWludH07CiAKICAgICAgIGNvbnN0IHN0cmVhbSA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKTsK
LSAgICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtLmdldFRyYWNrcygpWzBdLmdldFNldHRpbmdzKCku
Z3JvdXBJZCwKLSAgICAgICAgICAgICAgICAgICAgZGV2aWNlLmdyb3VwSWQpOworICAgICAgYXNz
ZXJ0X3RydWUoc3RyZWFtLmdldFRyYWNrcygpWzBdLmdldFNldHRpbmdzKCkuZ3JvdXBJZCA9PT0g
ZGV2aWNlLmdyb3VwSWQsICJkZXZpY2UgZ3JvdXBJZCIpOwogICAgICAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbihkZXZpY2UuZ3JvdXBJZC5sZW5ndGgsIDApOwogICAgIH0KICAgfSwgJ2dyb3VwSWQgaXMg
Y29ycmVjdGx5IHJlcG9ydGVkIGJ5IGdldFNldHRpbmdzKCkgZm9yIGFsbCBpbnB1dCBkZXZpY2Vz
Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407195</attachid>
            <date>2020-08-25 08:56:07 -0700</date>
            <delta_ts>2020-08-26 02:32:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215806-20200825175605.patch</filename>
            <type>text/plain</type>
            <size>77765</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkYzBkMDYwMTZkMmE5
YTg1YjU5YzhjYzFiMGRkODM3NzJhMjA1Zi4uMDdmYzk5NmUwZDE4OGUzY2I0OWUxYWVlMzBmOTk5
ZDZiM2FjNWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTA4LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCBleHBvc2UgYXVkaW9vdXRwdXQgZGV2aWNlcyB0aGF0IGFyZSB0aWVkIHRvIGFuIGF1
ZGlvIGlucHV0IGRldmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE1ODA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgc3BlYWtlciBzZWxlY3Rpb24gZmVhdHVyZSBwb2xp
Y3ksIGFzIHBlciBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8jcGVy
bWlzc2lvbnMtcG9saWN5LWludGVncmF0aW9uLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3Bl
YWtlciBtb2NrIGRldmljZXMgYW5kIGZvciBsaXN0aW5nIHNwZWFrZXJzIG9uIE1hY09TIGluIENv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZ3Jv
dXBJZCB0byBncm91cCBtaWNyb3Bob25lcyBhbmQgc3BlYWtlcnMgZm9yIGJvdGggbW9jayBhdWRp
byBtYW5hZ2VyIGFuZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci4KKyAgICAgICAgRm9y
IG1vY2sgc3BlYWtlcnMsIHdlIGFkZCB0d28gYXVkaW9vdXRwdXQgZGV2aWNlcyB0aGF0IGFyZSBy
ZWxhdGVkIHRvIGEgbWljcm9waG9uZSBhbmQgb25lIGF1ZGlvb3V0cHV0IHRoYXQgaXMgbm90IHJl
bGF0ZWQgdG8gYW55IG1pY3JvcGhvbmUuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVh
bS9lbnVtZXJhdGUtc3BlYWtlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlh
RGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpjaGVja1NwZWFrZXJBY2Nlc3MpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9NZWRpYURldmljZUluZm9LaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRl
KToKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cG9saWN5VHlwZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6bGFiZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6c2V0R3JvdXBJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5OjpzcGVha2VyRGV2aWNlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vaW9zL0FWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVy
ZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpyZWxh
dGVkQXVkaW9EZXZpY2VJRHMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcyk6CisgICAgICAg
IChXZWJDb3JlOjpkZXZpY2VIYXNPdXRwdXRTdHJlYW1zKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dERlZmF1bHRDYXB0dXJlSW5wdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6aGFzRGV2aWNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZy
ZXNoQXVkaW9DYXB0dXJlRGV2aWNlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNwZWFrZXJEZXZpY2VzIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFn
ZXJDb2NvYTo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tTcGVha2VyUHJvcGVydGllczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tTcGVha2VyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRp
YURldmljZTo6aXNTcGVha2VyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYURl
dmljZTo6Y2FwdHVyZURldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFE
ZXZpY2U6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRGV2aWNlOjpz
cGVha2VyUHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFEZXZp
Y2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFEZXZpY2U6OmRl
Y29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0RGV2aWNlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpkZXZpY2VMaXN0Rm9yRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2FwdHVy
ZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNb2NrRGV2aWNlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphZGREZXZpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1
cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjptaWNyb3Bob25lRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtlckRldmljZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZpZGVvRGV2aWNlcyk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
OgorCiAyMDIwLTA4LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBwaXBlVGhyb3VnaCBzaG91bGQgY2hlY2sgZm9yIHJlYWRhYmxlU3RyZWFtIHR5cGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNTIyYzcyZGVhYzhiMjQyZDZhYmNmNmMzN2NmOWI3ODU5MDEwMDYyMC4uMmE4MDY5
MDZkZDg4MGIwYzhiMGJlNWJlNGY0NmQ5YzE1ZTBjNDQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAyMC0wOC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgZXhwb3NlIGF1ZGlvb3V0cHV0IGRldmljZXMg
dGhhdCBhcmUgdGllZCB0byBhbiBhdWRpbyBpbnB1dCBkZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhbiBleHBlcmltZW50YWwg
ZmxhZyAob2ZmIGJ5IGRlZmF1bHQpIHRvIGNvdmVyIHNwZWFrZXIgc2VsZWN0aW9uLCBpbmNsdWRp
bmcgZXhwb3Npbmcgc3BlYWtlciBkZXZpY2VzIHRvIHdlYiBwYWdlcy4KKyAgICAgICAgVXBkYXRl
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWRE
ZXZpY2VMaXN0IHRvIG9ubHkgZXhwb3NlIHNwZWFrZXJzIHRoYXQgYXJlIHRpZWQgdG8gYSBtaWNy
b3Bob25lIHRoYXQgaXMgZXhwb3NlZC4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRwczov
L3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8jcHJpdmFjeS1vYnRhaW5pbmctY29u
c2VudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNwcDoKKyAgICAgICAgKFdLQWRkTW9ja01l
ZGlhRGV2aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6
CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKToKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNHZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojpp
c01pY3JvcGhvbmVEZXZpY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c291cmNlVHlwZUZyb21EZXZpY2VUeXBlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmg6CisKIDIwMjAtMDgtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIENyYXNoVHJhY2VyOiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQg
YXQgY29tLmFwcGxlLldlYktpdDogV2ViS2l0OjpQREZQbHVnaW46OmNyZWF0ZVNjcm9sbGJhcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwCmluZGV4IGJiZmVhYmZjYzljNTRmOGFlZGEyZTAwMjNiODFmMTI4MTcyZTE3OWQuLjI3YmMz
ZTEwYWFmNjBhMzc4OWYxOTFiMGE2NTEyNzcxODE1M2ZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTM3LDEwICsz
NywxMiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTTWVkaWFEZXZpY2VJbmZvLmgiCiAjaW5jbHVk
ZSAiTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJV
c2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCkBAIC01NSw2ICs1Nyw3IEBAIGlubGluZSBN
ZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3Rp
dmVET01PYmplY3QoZG9jdW1lbnQpCiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMs
ICZNZWRpYURldmljZXM6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fZXZlbnRO
YW1lcyhldmVudE5hbWVzKCkpCisgICAgLCBtX2lkSGFzaFNhbHQoY3JlYXRlQ2Fub25pY2FsVVVJ
RFN0cmluZygpKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogCkBAIC0xNjUsNiArMTY4LDMw
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja01pY3JvcGhvbmVBY2Nlc3MoY29uc3QgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIHJldHVybiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVu
dEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpNaWNyb3Bob25lLCBkb2N1bWVudCwg
TG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGNo
ZWNrU3BlYWtlckFjY2Vzcyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJu
IGRvY3VtZW50LmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQuZnJhbWUoKS0+c2V0dGluZ3Mo
KS5leHBvc2VTcGVha2Vyc0VuYWJsZWQoKQorICAgICAgICAmJiBpc0ZlYXR1cmVQb2xpY3lBbGxv
d2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpTcGVha2VyU2Vs
ZWN0aW9uLCBkb2N1bWVudCwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKTsKK30KKworc3Rh
dGljIGlubGluZSBNZWRpYURldmljZUluZm86OktpbmQgdG9NZWRpYURldmljZUluZm9LaW5kKENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHJl
dHVybiBNZWRpYURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQ7CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgICAgICByZXR1cm4gTWVkaWFEZXZpY2VJ
bmZvOjpLaW5kOjpBdWRpb291dHB1dDsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYToKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoK
KyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgcmV0
dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6VmlkZW9pbnB1dDsKKyAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKyAgICByZXR1cm4gTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpBdWRpb2lucHV0Owor
fQorCiB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKTsKQEAgLTE3Myw2ICsyMDAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERl
dmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQogCiAgICAgYm9v
bCBjYW5BY2Nlc3NDYW1lcmEgPSBjaGVja0NhbWVyYUFjY2VzcygqZG9jdW1lbnQpOwogICAgIGJv
b2wgY2FuQWNjZXNzTWljcm9waG9uZSA9IGNoZWNrTWljcm9waG9uZUFjY2VzcygqZG9jdW1lbnQp
OworICAgIGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2VzcygqZG9jdW1l
bnQpOwogCiAgICAgVmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZv
ciAoYXV0byYgbmV3RGV2aWNlIDogbmV3RGV2aWNlcykgewpAQCAtMTgwLDggKzIwOCwxMCBAQCB2
b2lkIE1lZGlhRGV2aWNlczo6cmVmcmVzaERldmljZXMoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBuZXdEZXZpY2VzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghY2Fu
QWNjZXNzQ2FtZXJhICYmIG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6Q2FtZXJhKQogICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghY2FuQWNj
ZXNzU3BlYWtlciAmJiBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBhdXRvIGRldmlj
ZUtpbmQgPSBuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgPyBNZWRpYURldmljZUluZm86OktpbmQ6OkF1ZGlvaW5wdXQgOiBNZWRpYURldmlj
ZUluZm86OktpbmQ6OlZpZGVvaW5wdXQ7CisgICAgICAgIGF1dG8gZGV2aWNlS2luZCA9IHRvTWVk
aWFEZXZpY2VJbmZvS2luZChuZXdEZXZpY2UudHlwZSgpKTsKICAgICAgICAgYXV0byBpbmRleCA9
IG1fZGV2aWNlcy5maW5kTWF0Y2hpbmcoW2RldmljZUtpbmQsICZuZXdEZXZpY2VdKGF1dG8mIG9s
ZERldmljZSkgewogICAgICAgICAgICAgcmV0dXJuIG9sZERldmljZS0+ZGV2aWNlSWQoKSA9PSBu
ZXdEZXZpY2UucGVyc2lzdGVudElkKCkgJiYgb2xkRGV2aWNlLT5raW5kKCkgPT0gZGV2aWNlS2lu
ZDsKICAgICAgICAgfSk7CkBAIC0xOTAsNyArMjIwLDggQEAgdm9pZCBNZWRpYURldmljZXM6OnJl
ZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcykKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgZGV2aWNlcy5hcHBlbmQo
TWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxhYmVsKCksIG5ld0RldmljZS5wZXJz
aXN0ZW50SWQoKSwgbmV3RGV2aWNlLmdyb3VwSWQoKSwgZGV2aWNlS2luZCkpOworICAgICAgICBh
dXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNo
U3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9pZEhhc2hTYWx0KTsKKyAgICAg
ICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2aWNlLmxhYmVs
KCksIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSwgV1RGTW92ZShncm91cElkKSwgZGV2aWNlS2lu
ZCkpOwogICAgIH0KICAgICBtX2RldmljZXMgPSBXVEZNb3ZlKGRldmljZXMpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXgg
ODIwN2ZjOTllODdjZDA1Y2I0ZDA3Y2U4NDc5ZTdhM2M2ZDc2MTA1Ni4uYmU1ZDZiOGZiNWQxZTQz
ZTU4MzkxNDk2ZGQ0MWRhNzA3YjliODg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC0xMjcsNiArMTI3LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fbGlzdGVuaW5nRm9yRGV2aWNlQ2hhbmdlcyB7IGZhbHNlIH07CiAKICAg
ICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IG1fZGV2aWNlczsKKyAgICBTdHJpbmcgbV9p
ZEhhc2hTYWx0OwogCiAgICAgT3B0aW9uU2V0PEdlc3R1cmVBbGxvd2VkUmVxdWVzdD4gbV9yZXF1
ZXN0VHlwZXNGb3JDdXJyZW50R2VzdHVyZTsKICAgICBXZWFrUHRyPFVzZXJHZXN0dXJlVG9rZW4+
IG1fY3VycmVudEdlc3R1cmVUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDJiOWJkMzYyNzJhZTg5
MmIxZDNiNzc4MmU4OTcyM2FmM2QxOWE2OTYuLmEyNTE4MWU2MzA2NjZmZjYwMTYxNDQwNTlmZmJi
MTYzOWU4YmYxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDI5LDYgKzQyOSw3IEBAIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlKQogICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQogICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2
aWNlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC01MDMsNiArNTA0LDcgQEAg
dm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpTY3JlZW5DYXB0dXJl
SXNNdXRlZCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25v
d246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCmluZGV4IGI4NGVmZjg0MTczMWNmMjNhM2Q3MDE3
MzVkNDg1NDAzOGJiZjJjZDQuLjAyM2ZiYzQ5MmU0MTAzMTY2MjZjN2Y3YmU0MjU1OGIwMjQzNzdl
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcApAQCAtNDQsNiArNDQsOCBA
QCBzdGF0aWMgY29uc3QgY2hhciogcG9saWN5VHlwZU5hbWUoRmVhdHVyZVBvbGljeTo6VHlwZSB0
eXBlKQogICAgICAgICByZXR1cm4gIkNhbWVyYSI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpU
eXBlOjpNaWNyb3Bob25lOgogICAgICAgICByZXR1cm4gIk1pY3JvcGhvbmUiOworICAgIGNhc2Ug
RmVhdHVyZVBvbGljeTo6VHlwZTo6U3BlYWtlclNlbGVjdGlvbjoKKyAgICAgICAgcmV0dXJuICJT
cGVha2VyU2VsZWN0aW9uIjsKICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkRpc3BsYXlD
YXB0dXJlOgogICAgICAgICByZXR1cm4gIkRpc3BsYXlDYXB0dXJlIjsKICAgICBjYXNlIEZlYXR1
cmVQb2xpY3k6OlR5cGU6OlN5bmNYSFI6CkBAIC0xNTUsNiArMTU3LDcgQEAgRmVhdHVyZVBvbGlj
eSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJh
bWVFbGVtZW50JgogICAgIEZlYXR1cmVQb2xpY3kgcG9saWN5OwogICAgIGJvb2wgaXNDYW1lcmFJ
bml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKKyAgICBib29sIGlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkID0gZmFsc2U7CiAg
ICAgYm9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlz
U3luY1hIUkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFs
aXplZCA9IGZhbHNlOwpAQCAtMTczLDYgKzE3NiwxMSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQ
b2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQm
CiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9taWNyb3Bob25lUnVs
ZSwgaXRlbS5zdWJzdHJpbmcoMTEpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInNwZWFrZXItc2VsZWN0aW9uIikpIHsKKyAg
ICAgICAgICAgIGlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX3NwZWFrZXJTZWxlY3Rpb25SdWxlLCBp
dGVtLnN1YnN0cmluZygxOCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAg
ICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZGlzcGxheS1jYXB0dXJlIikpIHsKICAgICAgICAg
ICAgIGlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgICAgICB1cGRh
dGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUsIGl0ZW0uc3Vic3Ry
aW5nKDE2KSk7CkBAIC0xODAsNyArMTg4LDcgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5
OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAg
ICAgICB9CiAgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInN5bmMteGhyIikpIHsKICAgICAg
ICAgICAgIGlzU3luY1hIUkluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHVwZGF0ZUxp
c3QoZG9jdW1lbnQsIHBvbGljeS5tX3N5bmNYSFJSdWxlLCBpdGVtLnN1YnN0cmluZyg4KSk7Cisg
ICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9zeW5jWEhSUnVsZSwgaXRl
bS5zdWJzdHJpbmcoOSkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZnVsbHNjcmVlbiIpKSB7CkBAIC0xOTcsMTIgKzIwNSwx
MyBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAjZW5kaWYKICAgICB9CiAKLSAgICAvLyBCeSBk
ZWZhdWx0LCBjYW1lcmEsIG1pY3JvcGhvbmUsIGRpc3BsYXktY2FwdHVyZSwgZnVsbHNjcmVlbiBh
bmQKLSAgICAvLyB4ci1zcGF0aWFsLXRyYWNraW5nIHBvbGljeSBpcyAnc2VsZicuCisgICAgLy8g
QnkgZGVmYXVsdCwgY2FtZXJhLCBtaWNyb3Bob25lLCBzcGVha2VyLXNlbGVjdGlvbiwgZGlzcGxh
eS1jYXB0dXJlLCBmdWxsc2NyZWVuIGFuZCB4ci1zcGF0aWFsLXRyYWNraW5nIHBvbGljeSBpcyAn
c2VsZicuCiAgICAgaWYgKCFpc0NhbWVyYUluaXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV9j
YW1lcmFSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEo
KSk7CiAgICAgaWYgKCFpc01pY3JvcGhvbmVJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1f
bWljcm9waG9uZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKKyAgICBpZiAoIWlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkKQorICAgICAg
ICBwb2xpY3kubV9zcGVha2VyU2VsZWN0aW9uUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQu
c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogICAgIGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRp
YWxpemVkKQogICAgICAgICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3Qu
YWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICNpZiBFTkFCTEUoV0VCWFIp
CkBAIC0yMzgsNiArMjQ3LDggQEAgYm9vbCBGZWF0dXJlUG9saWN5OjphbGxvd3MoVHlwZSB0eXBl
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKICAgICAgICAgcmV0dXJu
IGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2NhbWVyYVJ1bGUsIG9yaWdpbik7CiAgICAgY2Fz
ZSBUeXBlOjpNaWNyb3Bob25lOgogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9s
aWN5KG1fbWljcm9waG9uZVJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBlOjpTcGVha2VyU2Vs
ZWN0aW9uOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fc3BlYWtl
clNlbGVjdGlvblJ1bGUsIG9yaWdpbik7CiAgICAgY2FzZSBUeXBlOjpEaXNwbGF5Q2FwdHVyZToK
ICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2Rpc3BsYXlDYXB0dXJl
UnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6OlN5bmNYSFI6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVh
dHVyZVBvbGljeS5oCmluZGV4IDI5ZTU3MTFhNmIxYjI1YTM1NzRlMDZmOTU5YWNmMjFjZWU0MjM0
ZTEuLmIyNGJlODJhZmFkM2M4ZmUyMDc0MzQ3NDYxMjdjYmFkYzBkOTExZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICBlbnVt
IGNsYXNzIFR5cGUgewogICAgICAgICBDYW1lcmEsCiAgICAgICAgIE1pY3JvcGhvbmUsCisgICAg
ICAgIFNwZWFrZXJTZWxlY3Rpb24sCiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAogICAgICAgICBT
eW5jWEhSLAogICAgICAgICBGdWxsc2NyZWVuLApAQCAtNTksNiArNjAsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEFsbG93UnVsZSBtX2NhbWVyYVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fbWlj
cm9waG9uZVJ1bGU7CisgICAgQWxsb3dSdWxlIG1fc3BlYWtlclNlbGVjdGlvblJ1bGU7CiAgICAg
QWxsb3dSdWxlIG1fZGlzcGxheUNhcHR1cmVSdWxlOwogICAgIEFsbG93UnVsZSBtX3N5bmNYSFJS
dWxlOwogICAgIEFsbG93UnVsZSBtX2Z1bGxzY3JlZW5SdWxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCmluZGV4IDdjMDdhZmMxYjNmYThiNTg0M2RiYmNlMjNmNmM1MWRlOTZkYmIyMDMuLmU5
ZDIwM2E4NTFiMmIyMmE3NjY4NTUzMjIxNjE1Y2JhNjJjYmY3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKQEAgLTgyMiw2ICs4MjIsOSBAQCBmb3JjZVBlbmRpbmdXZWJHTFBvbGljeToK
IG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CiAgIHR5cGU6IFN0cmluZwogCitleHBvc2VTcGVh
a2Vyc0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIG1lZGlhRGV2aWNlSWRlbnRpZmllclN0
b3JhZ2VEaXJlY3Rvcnk6CiAgIHR5cGU6IFN0cmluZwogICBjb25kaXRpb25hbDogTUVESUFfU1RS
RUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0
dXJlRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJl
RGV2aWNlLmgKaW5kZXggN2ExN2NiYzVjMDJiNGYzZjQ1MDY4MWVlOTdhZTk2ZGI1YzE2OWFlMi4u
NGE0OGE5NDNhNmUzNTZiYmE0ODc1YzI0YzU1OTNmZTk2YzQzOWI3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaApAQCAtMzEs
NyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhcHR1cmVEZXZpY2Ugewog
cHVibGljOgotICAgIGVudW0gY2xhc3MgRGV2aWNlVHlwZSB7IFVua25vd24sIE1pY3JvcGhvbmUs
IENhbWVyYSwgU2NyZWVuLCBXaW5kb3cgfTsKKyAgICBlbnVtIGNsYXNzIERldmljZVR5cGUgeyBV
bmtub3duLCBNaWNyb3Bob25lLCBTcGVha2VyLCBDYW1lcmEsIFNjcmVlbiwgV2luZG93IH07CiAK
ICAgICBDYXB0dXJlRGV2aWNlKGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElkLCBEZXZpY2VUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgZ3JvdXBJZCA9IGVtcHR5
U3RyaW5nKCkpCiAgICAgICAgIDogbV9wZXJzaXN0ZW50SWQocGVyc2lzdGVudElkKQpAQCAtNDks
MTIgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IGFpclBvZHMoTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkFpclBvZHMiKSk7CiAK
LSAgICAgICAgaWYgKG1fdHlwZSA9PSBEZXZpY2VUeXBlOjpNaWNyb3Bob25lICYmIG1fbGFiZWwu
Y29udGFpbnMoYWlyUG9kcykpCisgICAgICAgIGlmICgobV90eXBlID09IERldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgfHwgbV90eXBlID09IERldmljZVR5cGU6OlNwZWFrZXIpICYmIG1fbGFiZWwuY29u
dGFpbnMoYWlyUG9kcykpCiAgICAgICAgICAgICByZXR1cm4gYWlyUG9kczsKIAogICAgICAgICBy
ZXR1cm4gbV9sYWJlbDsKICAgICB9CiAKKyAgICB2b2lkIHNldEdyb3VwSWQoY29uc3QgU3RyaW5n
JiBncm91cElkKSB7IG1fZ3JvdXBJZCA9IGdyb3VwSWQ7IH0KICAgICBjb25zdCBTdHJpbmcmIGdy
b3VwSWQoKSBjb25zdCB7IHJldHVybiBtX2dyb3VwSWQ7IH0KIAogICAgIERldmljZVR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtMTI3LDYgKzEyOCw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZT4g
ewogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLAogICAgICAgICBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duLAogICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLAorICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyLAogICAgICAgICBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEsCiAgICAgICAgIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbiwKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwCmluZGV4IDBkYmYxZGM0NzA1Njg4NjYzNjE5MjM1ODczZTNmZTY2NzI3NDgzZTguLmMxZDk2
YWIxYWNhOWVlNjNkY2ZiNGZmZWIyYjI2YTg1NTAyYzUyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCkBAIC0xMTksNiArMTE5LDEwIEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMoKQogICAg
ICAgICBpZiAoZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGV2
aWNlKTsKICAgICB9CisgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBhdWRpb0NhcHR1cmVGYWN0b3J5
KCkuc3BlYWtlckRldmljZXMoKSkgeworICAgICAgICBpZiAoZGV2aWNlLmVuYWJsZWQoKSkKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGV2aWNlKTsKKyAgICB9CiAgICAgZm9yIChhdXRvJiBk
ZXZpY2UgOiB2aWRlb0NhcHR1cmVGYWN0b3J5KCkudmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
LmNhcHR1cmVEZXZpY2VzKCkpIHsKICAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKGRldmljZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaAppbmRleCBhMzI2MjhiN2ExNjA5MzVhY2I4Yjc1MzExM2Y4Mzg1NTNhNmViOGE4Li40NDMw
NTlmNzJjZWNlODY0YTliYWY0NzE0NWVjODVlM2FjMTI0ZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VGYWN0b3J5LmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVy
ZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7CisgICAgdmly
dHVhbCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3Qg
PSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAK
aW5kZXggNTlhYjM4NDBmZDczNmNhMTQ1MDE2YzdmNjYwZWNhM2IwOTAzMjQ4MC4uYTc5YzA5Y2Q5
OTRhZTBlMTlmMmVjZWMzYTBlZTM1NDdjMTQ2ODA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTU5LDYgKzU5LDkgQEAgcHVi
bGljOgogICAgIH0KIHByaXZhdGU6CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2Fw
dHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsgfQorICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCB7IHJldHVybiBtX3NwZWFrZXJEZXZpY2VzOyB9
CisKKyAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9zcGVha2VyRGV2aWNlczsKIH07CiAKIHN0
YXRpYyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5JiBsaWJXZWJSVENBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0
dXJlRGV2aWNlTWFuYWdlci5oCmluZGV4IGFhNWFjZTMwYzgwOGIyMWQ4Njk0NTU2MzQxOTZlNDBh
YzUyZmY3YzguLjM5OTYxNjg3OWM1MWZhODg0Y2E3OGIzMDhlYWQzZjdmMzc0MzRmNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vz
c2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vaW9zL0FWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaApAQCAt
NDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURl
dmljZU1hbmFnZXImIHNpbmdsZXRvbigpOwogCiAgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBjYXB0dXJlRGV2aWNlcygpIGZpbmFsOworICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCB7IHJldHVybiBtX3NwZWFrZXJEZXZpY2VzOyB9
CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50
SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgU3RyaW5nJik7CiAKICAgICBWZWN0
b3I8QVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlPiYgYXVkaW9TZXNzaW9uQ2FwdHVyZURldmlj
ZXMoKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZnJlc2hBdWRpb0Nh
cHR1cmVEZXZpY2VzKCk7CiAKICAgICBPcHRpb25hbDxWZWN0b3I8Q2FwdHVyZURldmljZT4+IG1f
ZGV2aWNlczsKKyAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9zcGVha2VyRGV2aWNlczsKICAg
ICBPcHRpb25hbDxWZWN0b3I8QVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlPj4gbV9hdWRpb1Nl
c3Npb25DYXB0dXJlRGV2aWNlczsKICAgICBSZXRhaW5QdHI8V2ViQVZBdWRpb1Nlc3Npb25BdmFp
bGFibGVJbnB1dHNMaXN0ZW5lcj4gbV9saXN0ZW5lcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZS5jcHAKaW5kZXggMDY4NDY4M2E1MDhkODc4ZGU0M2U5OGMzN2Y5MmZjMzkwOTJh
NzVjZS4uZmU2MTdiMmJmMTg5MDRjNTMwMjIyODk5MGRiOTQzYmI2MDNhNmE0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApAQCAtNjUsMjIgKzY1LDM4IEBAIHN0YXRpYyBi
b29sIGdldERldmljZUluZm8odWludDMyX3QgZGV2aWNlSUQsIFN0cmluZyYgcGVyc2lzdGVudElE
LCBTdHJpbmcmIGxhYmVsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLU9wdGlvbmFsPENvcmVBdWRp
b0NhcHR1cmVEZXZpY2U+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmNyZWF0ZSh1aW50MzJfdCBk
ZXZpY2VJRCkKK09wdGlvbmFsPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2U6OmNyZWF0ZSh1aW50MzJfdCBkZXZpY2VJRCwgRGV2aWNlVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIGdyb3VwSUQpCiB7CisgICAgQVNTRVJUKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6TWljcm9waG9uZSB8fCB0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNwZWFrZXIpOwogICAgIFN0cmluZyBwZXJzaXN0ZW50SUQ7CiAgICAgU3RyaW5nIGxhYmVs
OwogICAgIGlmICghZ2V0RGV2aWNlSW5mbyhkZXZpY2VJRCwgcGVyc2lzdGVudElELCBsYWJlbCkp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZShkZXZpY2VJRCwgcGVyc2lzdGVudElELCBsYWJlbCk7CisgICAgcmV0dXJuIENv
cmVBdWRpb0NhcHR1cmVEZXZpY2UoZGV2aWNlSUQsIHBlcnNpc3RlbnRJRCwgdHlwZSwgbGFiZWws
IGdyb3VwSUQuaXNOdWxsKCkgPyBwZXJzaXN0ZW50SUQgOiBncm91cElEKTsKIH0KIAotQ29yZUF1
ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZSh1aW50MzJfdCBkZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIGNvbnN0IFN0cmluZyYgbGFiZWwpCi0gICAg
OiBDYXB0dXJlRGV2aWNlKHBlcnNpc3RlbnRJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSwgbGFiZWwpCitDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpDb3JlQXVkaW9DYXB0
dXJlRGV2aWNlKHVpbnQzMl90IGRldmljZUlELCBjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwg
RGV2aWNlVHlwZSBkZXZpY2VUeXBlLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcm
IGdyb3VwSUQpCisgICAgOiBDYXB0dXJlRGV2aWNlKHBlcnNpc3RlbnRJRCwgZGV2aWNlVHlwZSwg
bGFiZWwsIGdyb3VwSUQpCiAgICAgLCBtX2RldmljZUlEKGRldmljZUlEKQogewogfQogCitWZWN0
b3I8QXVkaW9EZXZpY2VJRD4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6cmVsYXRlZEF1ZGlvRGV2
aWNlSURzKEF1ZGlvRGV2aWNlSUQgZGV2aWNlSUQpCit7CisgICAgVUludDMyIHNpemUgPSAwOwor
ICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIHByb3BlcnR5ID0geyBrQXVkaW9EZXZpY2VQ
cm9wZXJ0eVJlbGF0ZWREZXZpY2VzLCBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlT3V0cHV0LCBr
QXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKKyAgICBPU1N0YXR1cyBlcnJvciA9
IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhU2l6ZShkZXZpY2VJRCwgJnByb3BlcnR5LCAwLCAw
LCAmc2l6ZSk7CisgICAgaWYgKGVycm9yIHx8ICFzaXplKQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgVmVjdG9yPEF1ZGlvRGV2aWNlSUQ+IGRldmljZXMoc2l6ZSAvIHNpemVvZihBdWRpb0Rl
dmljZUlEKSk7CisgICAgZXJyb3IgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShkZXZpY2VJ
RCwgJnByb3BlcnR5LCAwLCBudWxscHRyLCAmc2l6ZSwgZGV2aWNlcy5kYXRhKCkpOworICAgIGlm
IChlcnJvcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZGV2aWNlczsKK30KKwog
UmV0YWluUHRyPENNQ2xvY2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmljZUNsb2Nr
KCkKIHsKICAgICBpZiAobV9kZXZpY2VDbG9jaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZS5oCmluZGV4IDk0Yzk0OTQ5NTI0ZTUyOTQ3MTRkODAyMWQ2YTlmYTU3NjkxMmExY2QuLjUyODg3
ZWMyMjNlNzMxYjA5N2VhMDQ2MjhhNjFiYzQ3NWM4Y2MxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaApAQCAtMzcsMTYgKzM3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ29yZUF1ZGlvQ2FwdHVyZURldmljZSA6IHB1YmxpYyBDYXB0dXJlRGV2aWNlIHsKIHB1
YmxpYzoKLQotICAgIHN0YXRpYyBPcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBjcmVh
dGUodWludDMyX3QpOworICAgIHN0YXRpYyBPcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNl
PiBjcmVhdGUodWludDMyX3QsIERldmljZVR5cGUsIGNvbnN0IFN0cmluZyYgZ3JvdXBJRCk7CiAg
ICAgdmlydHVhbCB+Q29yZUF1ZGlvQ2FwdHVyZURldmljZSgpID0gZGVmYXVsdDsKIAogICAgIHVp
bnQzMl90IGRldmljZUlEKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VJRDsgfQogICAgIFJldGFp
blB0cjxDTUNsb2NrUmVmPiBkZXZpY2VDbG9jaygpOwogICAgIGJvb2wgaXNBbGl2ZSgpOwogCisg
ICAgc3RhdGljIFZlY3RvcjxBdWRpb0RldmljZUlEPiByZWxhdGVkQXVkaW9EZXZpY2VJRHMoQXVk
aW9EZXZpY2VJRCk7CisKIHByaXZhdGU6Ci0gICAgQ29yZUF1ZGlvQ2FwdHVyZURldmljZSh1aW50
MzJfdCwgY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIGNvbnN0IFN0cmluZyYgbGFiZWwpOwor
ICAgIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UodWludDMyX3QsIGNvbnN0IFN0cmluZyYgcGVyc2lz
dGVudElELCBEZXZpY2VUeXBlLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGdy
b3VwSUQpOwogCiAgICAgdWludDMyX3QgbV9kZXZpY2VJRCB7IDAgfTsKICAgICBSZXRhaW5QdHI8
Q01DbG9ja1JlZj4gbV9kZXZpY2VDbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCmluZGV4IGY3ZTY0ZjEwYmNjZjlkYjM5OThmZDcwMDEzNjdlNzNh
NzY1ODQwNjAuLmY5YTM4YTE3MWE4ZmYwNjhiMjMwYmFiMzQxZThkOTY1NmQxNzkxMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtNTIsNyAr
NTIsNyBAQCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciYgQ29yZUF1ZGlvQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnNpbmdsZXRvbigpCiBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIENv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcygpCiB7CiAgICAgY29y
ZUF1ZGlvQ2FwdHVyZURldmljZXMoKTsKLSAgICByZXR1cm4gbV9kZXZpY2VzOworICAgIHJldHVy
biBtX2NhcHR1cmVEZXZpY2VzOwogfQogCiBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGRldmljZUlEKQpAQCAt
NjUsMTAgKzY1LDkgQEAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gQ29yZUF1ZGlvQ2FwdHVyZURl
dmljZU1hbmFnZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGUKICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogfQogCi1zdGF0aWMgYm9vbCBkZXZpY2VIYXNJbnB1dFN0cmVhbXMoQXVkaW9PYmpl
Y3RJRCBkZXZpY2VJRCkKK3N0YXRpYyBib29sIGRldmljZUhhc1N0cmVhbXMoQXVkaW9PYmplY3RJ
RCBkZXZpY2VJRCwgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MmIGFkZHJlc3MpCiB7
CiAgICAgVUludDMyIGRhdGFTaXplID0gMDsKLSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVz
cyBhZGRyZXNzID0geyBrQXVkaW9EZXZpY2VQcm9wZXJ0eVN0cmVhbUNvbmZpZ3VyYXRpb24sIGtB
dWRpb0RldmljZVByb3BlcnR5U2NvcGVJbnB1dCwga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50
TWFzdGVyIH07CiAgICAgYXV0byBlcnIgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YVNpemUo
ZGV2aWNlSUQsICZhZGRyZXNzLCAwLCBudWxscHRyLCAmZGF0YVNpemUpOwogICAgIGlmIChlcnIg
fHwgIWRhdGFTaXplKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04MCw2ICs3OSwxOCBAQCBz
dGF0aWMgYm9vbCBkZXZpY2VIYXNJbnB1dFN0cmVhbXMoQXVkaW9PYmplY3RJRCBkZXZpY2VJRCkK
ICAgICByZXR1cm4gIWVyciAmJiBidWZmZXJMaXN0LT5tTnVtYmVyQnVmZmVyczsKIH0KIAorc3Rh
dGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlvT2JqZWN0SUQgZGV2aWNlSUQpCit7
CisgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgYWRkcmVzcyA9IHsga0F1ZGlvRGV2aWNl
UHJvcGVydHlTdHJlYW1Db25maWd1cmF0aW9uLCBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlSW5w
dXQsIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OworICAgIHJldHVybiBkZXZp
Y2VIYXNTdHJlYW1zKGRldmljZUlELCBhZGRyZXNzKTsKK30KKworc3RhdGljIGJvb2wgZGV2aWNl
SGFzT3V0cHV0U3RyZWFtcyhBdWRpb09iamVjdElEIGRldmljZUlEKQoreworICAgIEF1ZGlvT2Jq
ZWN0UHJvcGVydHlBZGRyZXNzIGFkZHJlc3MgPSB7IGtBdWRpb0RldmljZVByb3BlcnR5U3RyZWFt
Q29uZmlndXJhdGlvbiwga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZU91dHB1dCwga0F1ZGlvT2Jq
ZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07CisgICAgcmV0dXJuIGRldmljZUhhc1N0cmVhbXMo
ZGV2aWNlSUQsIGFkZHJlc3MpOworfQorCiBzdGF0aWMgYm9vbCBpc1ZhbGlkQ2FwdHVyZURldmlj
ZShjb25zdCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlJiBkZXZpY2UpCiB7CiAgICAgLy8gSWdub3Jl
IG91dHB1dCBkZXZpY2VzIHRoYXQgaGF2ZSBpbnB1dCBvbmx5IGZvciBlY2hvIGNhbmNlbGxhdGlv
bi4KQEAgLTEyNiw3ICsxMzcsNyBAQCBzdGF0aWMgaW5saW5lIE9wdGlvbmFsPENvcmVBdWRpb0Nh
cHR1cmVEZXZpY2U+IGdldERlZmF1bHRDYXB0dXJlSW5wdXREZXZpY2UoKQogCiAgICAgaWYgKGVy
ciAhPSBub0VyciB8fCBkZXZpY2VJRCA9PSBrQXVkaW9EZXZpY2VVbmtub3duKQogICAgICAgICBy
ZXR1cm4geyB9OwotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUoZGV2
aWNlSUQpOworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUoZGV2aWNl
SUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIHsgfSk7CiB9CiAKIFZl
Y3RvcjxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiYgQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXI6OmNvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKCkKQEAgLTE2OCw2ICsxNzksMTMgQEAgT3B0aW9u
YWw8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6
OmNvcmVBdWRpb0RldmljZVcKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCitzdGF0aWMg
aW5saW5lIGJvb2wgaGFzRGV2aWNlKGNvbnN0IFZlY3RvcjxDb3JlQXVkaW9DYXB0dXJlRGV2aWNl
PiYgZGV2aWNlcywgdWludDMyX3QgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
ZGV2aWNlVHlwZSkKK3sKKyAgICByZXR1cm4gc3RkOjphbnlfb2YoZGV2aWNlcy5iZWdpbigpLCBk
ZXZpY2VzLmVuZCgpLCBbJmRldmljZUlELCBkZXZpY2VUeXBlXShhdXRvJiBkZXZpY2UpIHsKKyAg
ICAgICAgcmV0dXJuIGRldmljZS5kZXZpY2VJRCgpID09IGRldmljZUlEICYmIGRldmljZS50eXBl
KCkgPT0gZGV2aWNlVHlwZTsKKyAgICB9KTsKK30KKwogdm9pZCBDb3JlQXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoTm90aWZ5SWZEZXZpY2VzSGF2
ZUNoYW5nZWQgbm90aWZ5KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xOTUs
MjAgKzIxMyw1MiBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpyZWZyZXNo
QXVkaW9DYXB0dXJlRGV2aWNlcyhOb3RpZnlJZkRldmljZXNIYQogICAgICAgICBoYXZlRGV2aWNl
Q2hhbmdlcyA9IHRydWU7CiAgICAgfQogCisgICAgLy8gTWljcm9waG9uZXMKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGRldmljZUNvdW50OyBpKyspIHsKICAgICAgICAgQXVkaW9PYmplY3RJ
RCBkZXZpY2VJRCA9IGRldmljZUlEc1tpXTsKLSAgICAgICAgaWYgKCFkZXZpY2VIYXNJbnB1dFN0
cmVhbXMoZGV2aWNlSUQpKQotICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKHN0
ZDo6YW55X29mKG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMuYmVnaW4oKSwgbV9jb3JlQXVkaW9D
YXB0dXJlRGV2aWNlcy5lbmQoKSwgW2RldmljZUlEXShhdXRvJiBkZXZpY2UpIHsgcmV0dXJuIGRl
dmljZS5kZXZpY2VJRCgpID09IGRldmljZUlEOyB9KSkKKyAgICAgICAgaWYgKCFkZXZpY2VIYXNJ
bnB1dFN0cmVhbXMoZGV2aWNlSUQpIHx8IGhhc0RldmljZShtX2NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VzLCBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0Nh
cHR1cmVEZXZpY2U6OmNyZWF0ZShkZXZpY2VJRCk7Ci0gICAgICAgIGlmICghZGV2aWNlIHx8ICFp
c1ZhbGlkQ2FwdHVyZURldmljZShkZXZpY2UudmFsdWUoKSkpCisgICAgICAgIGF1dG8gbWljcm9w
aG9uZURldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmNyZWF0ZShkZXZpY2VJRCwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgeyB9KTsKKyAgICAgICAgaWYgKG1p
Y3JvcGhvbmVEZXZpY2UgJiYgaXNWYWxpZENhcHR1cmVEZXZpY2UobWljcm9waG9uZURldmljZS52
YWx1ZSgpKSkgeworICAgICAgICAgICAgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5hcHBlbmQo
V1RGTW92ZShtaWNyb3Bob25lRGV2aWNlLnZhbHVlKCkpKTsKKyAgICAgICAgICAgIGhhdmVEZXZp
Y2VDaGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFNwZWFrZXJzCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZXZpY2VDb3VudDsgaSsrKSB7CisgICAgICAgIEF1
ZGlvT2JqZWN0SUQgZGV2aWNlSUQgPSBkZXZpY2VJRHNbaV07CisKKyAgICAgICAgYXV0byByZWxh
dGVkRGV2aWNlSURzID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6cmVsYXRlZEF1ZGlvRGV2aWNl
SURzKGRldmljZUlEKTsKKyAgICAgICAgaWYgKCFkZXZpY2VIYXNPdXRwdXRTdHJlYW1zKGRldmlj
ZUlEKSB8fCBoYXNEZXZpY2UobV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcywgZGV2aWNlSUQsIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5hcHBlbmQoV1RGTW92ZShkZXZp
Y2UudmFsdWUoKSkpOwotICAgICAgICBoYXZlRGV2aWNlQ2hhbmdlcyA9IHRydWU7CisgICAgICAg
IFN0cmluZyBncm91cElEOworICAgICAgICBmb3IgKGF1dG8gcmVsYXRlZERldmljZUlEIDogcmVs
YXRlZERldmljZUlEcykgeworICAgICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBtX2NvcmVB
dWRpb0NhcHR1cmVEZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKGRldmljZS5kZXZpY2VJ
RCgpID09IHJlbGF0ZWREZXZpY2VJRCAmJiBkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXBJRCA9
IGRldmljZS5wZXJzaXN0ZW50SWQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXV0byBk
ZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUoZGV2aWNlSUQsIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIsIGdyb3VwSUQpOworICAgICAgICBpZiAoZGV2aWNl
KSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBncm91cElELCByZWxhdGUgZGV2aWNl
cyBpZiB0aGUgbGFiZWwgaXMgbWF0Y2hpbmcuCisgICAgICAgICAgICBpZiAoZ3JvdXBJRC5pc051
bGwoKSkgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgZXhpc3RpbmdEZXZpY2UgOiBtX2Nv
cmVBdWRpb0NhcHR1cmVEZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleGlzdGlu
Z0RldmljZS5sYWJlbCgpID09IGRldmljZS0+bGFiZWwoKSAmJiBleGlzdGluZ0RldmljZS50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgZGV2aWNlLT5zZXRHcm91cElkKGV4aXN0aW5nRGV2aWNlLnBlcnNpc3Rl
bnRJZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9j
b3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5hcHBlbmQoV1RGTW92ZShkZXZpY2UudmFsdWUoKSkpOwor
ICAgICAgICAgICAgaGF2ZURldmljZUNoYW5nZXMgPSB0cnVlOworICAgICAgICB9CiAgICAgfQog
CiAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBtX2NvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKSB7CkBA
IC0yMjIsMTcgKzI3MiwyMCBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpy
ZWZyZXNoQXVkaW9DYXB0dXJlRGV2aWNlcyhOb3RpZnlJZkRldmljZXNIYQogICAgIGlmICghaGF2
ZURldmljZUNoYW5nZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGV2aWNlcyA9IFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPigpOwotCi0gICAgZm9yIChhdXRvICZkZXZpY2UgOiBtX2NvcmVBdWRp
b0NhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgIENhcHR1cmVEZXZpY2UgY2FwdHVyZURldmljZShk
ZXZpY2UucGVyc2lzdGVudElkKCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhv
bmUsIGRldmljZS5sYWJlbCgpKTsKKyAgICBtX2NhcHR1cmVEZXZpY2VzLmNsZWFyKCk7CisgICAg
bV9zcGVha2VyRGV2aWNlcy5jbGVhcigpOworICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9jb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlcykgeworICAgICAgICBDYXB0dXJlRGV2aWNlIGNhcHR1cmVEZXZp
Y2UgeyBkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS50eXBlKCksIGRldmljZS5sYWJlbCgp
LCBkZXZpY2UuZ3JvdXBJZCgpIH07CiAgICAgICAgIGNhcHR1cmVEZXZpY2Uuc2V0RW5hYmxlZChk
ZXZpY2UuZW5hYmxlZCgpKTsKLSAgICAgICAgbV9kZXZpY2VzLmFwcGVuZChjYXB0dXJlRGV2aWNl
KTsKKyAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZSkKKyAgICAgICAgICAgIG1fY2FwdHVyZURldmljZXMuYXBwZW5kKFdURk1v
dmUoY2FwdHVyZURldmljZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3NwZWFrZXJE
ZXZpY2VzLmFwcGVuZChXVEZNb3ZlKGNhcHR1cmVEZXZpY2UpKTsKICAgICB9CiAKICAgICBpZiAo
bm90aWZ5ID09IE5vdGlmeUlmRGV2aWNlc0hhdmVDaGFuZ2VkOjpOb3RpZnkpIHsKICAgICAgICAg
ZGV2aWNlQ2hhbmdlZCgpOwotICAgICAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6
c2luZ2xldG9uKCkuZGV2aWNlc0NoYW5nZWQobV9kZXZpY2VzKTsKKyAgICAgICAgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmRldmljZXNDaGFuZ2VkKG1fY2FwdHVy
ZURldmljZXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuaAppbmRleCBmNDkxYWFhZGEyOWYxY2NjOTU3MzhmMjIzMWIxMWE0ZjNjN2QzY2E1
Li41ZTk2NjJiZjQyNzU5YjZlNWNlMjk5ZDUzNDVkY2ZiMzU1YWFiMzQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURl
dmljZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJs
aWM6CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0
ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgU3RyaW5nJik7CiAKICAgICBP
cHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBjb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGNv
bnN0IFN0cmluZyYpOworICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRl
dmljZXMoKSBjb25zdCB7IHJldHVybiBtX3NwZWFrZXJEZXZpY2VzOyB9CiAKIHByaXZhdGU6CiAg
ICAgQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IGRlZmF1bHQ7CkBAIC01Nyw3ICs1
OCw4IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBOb3RpZnlJZkRldmljZXNIYXZlQ2hhbmdl
ZCB7IE5vdGlmeSwgRG9Ob3ROb3RpZnkgfTsKICAgICB2b2lkIHJlZnJlc2hBdWRpb0NhcHR1cmVE
ZXZpY2VzKE5vdGlmeUlmRGV2aWNlc0hhdmVDaGFuZ2VkKTsKIAotICAgIFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiBtX2RldmljZXM7CisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IG1fY2FwdHVyZURl
dmljZXM7CisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IG1fc3BlYWtlckRldmljZXM7CiAgICAg
VmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXM7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggNWM1MTI4ZWEz
MGQ3ODFjOTExOWY0NTEwY2MwNDM5Y2Y2YzRkNGRjOC4uMjIwY2MwZDhmNmFlOTQ5MmFiMTg1ODlm
YTk1MjkwY2U5NWQ0NjczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApA
QCAtNjkxLDYgKzY5MSwxNSBAQCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk6OmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKQogI2VuZGlmCiB9CiAK
K2NvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OnNwZWFrZXJEZXZpY2VzKCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgcmV0
dXJuIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zcGVha2VyRGV2
aWNlcygpOworI2Vsc2UKKyAgICByZXR1cm4gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFu
YWdlcjo6c2luZ2xldG9uKCkuc3BlYWtlckRldmljZXMoKTsKKyNlbmRpZgorfQorCiB2b2lkIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpkZXZpY2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8
Q2FwdHVyZURldmljZT4mIGRldmljZXMpCiB7CiAgICAgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5p
dCgpLmRldmljZXNDaGFuZ2VkKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKaW5kZXggYWUwNzY3MGQwMzUzYTJlOWM4MmUwYjMyOGUyZjZjYzk1ZWFhYmYxYy4uOTJhZjU1
YzI3MjlkYzA0OTIwZTM5MzE4Y2I0MzhmZmU1NmM0ZjY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBD
YXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwor
ICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNh
cHR1cmVNYW5hZ2VyQ29jb2EuY3BwCmluZGV4IDhlZTM2NDQwMmVjMWVlOGI2YjIzOGY1YzUwM2Q0
MjAzODlhMjY5MjcuLmY3ZWNkYzhhZTAwYWMwOTY2ZTE3YTcyZDkxYzEyNzJkMTY0ZWI0ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5
Q2FwdHVyZU1hbmFnZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcApAQCAtMTA1LDYgKzEw
NSw3IEBAIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29h
OjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJCiAKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkNhbWVyYToKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
Ok1pY3JvcGhvbmU6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2Vy
OgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IGMxNDhjODViOTM5NTMwNTZiYzUyMzJjYjE3MTA2
NWJkNTIyYWU2MjguLjk4MTk0ZDE0M2UwZDJjZmQwYjk2MTQwZWJlNzZhZjAzMWZhMTgxYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTY3LDYgKzY3LDcg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OldpbmRvdzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShXaW5kb3dEaXNwbGF5Q2FwdHVy
ZXJNYWM6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCkpLCBkZXZpY2UsIGNvbnN0cmFpbnRz
KTsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYURldmljZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaAppbmRleCA1MGU2ZjQw
YTQzNjcyOGJjNDZiZGVhZDA4ZDhlMTcwYzk2M2UxY2ExLi5kYmRhYWUxZDhlZWU3M2E5Yzc3Nzky
NGVjNTBlYmNiMzQ2ZjEyZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tNZWRpYURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja01lZGlhRGV2aWNlLmgKQEAgLTU1LDYgKzU1LDMzIEBAIHN0cnVjdCBNb2NrTWljcm9waG9u
ZVByb3BlcnRpZXMgewogICAgIGludCBkZWZhdWx0U2FtcGxlUmF0ZSB7IDQ0MTAwIH07CiB9Owog
CitzdHJ1Y3QgTW9ja1NwZWFrZXJQcm9wZXJ0aWVzIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBlbmNvZGVyIDw8IG1pY3JvcGhvbmVJZCA8PCBzdGF0aWNfY2FzdDxpbnQzMl90PihkZWZh
dWx0U2FtcGxlUmF0ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Cisg
ICAgc3RhdGljIE9wdGlvbmFsPE1vY2tTcGVha2VyUHJvcGVydGllcz4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBPcHRpb25hbDxpbnQzMl90PiBkZWZhdWx0U2FtcGxl
UmF0ZTsKKyAgICAgICAgZGVjb2RlciA+PiBkZWZhdWx0U2FtcGxlUmF0ZTsKKyAgICAgICAgaWYg
KCFkZWZhdWx0U2FtcGxlUmF0ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBtaWNyb3Bob25lSWQ7CisgICAgICAgIGRlY29kZXIg
Pj4gbWljcm9waG9uZUlkOworICAgICAgICBpZiAoIW1pY3JvcGhvbmVJZCkKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIE1vY2tTcGVha2VyUHJvcGVy
dGllcyB7IFdURk1vdmUoKm1pY3JvcGhvbmVJZCksICpkZWZhdWx0U2FtcGxlUmF0ZSB9OworICAg
IH0KKworICAgIFN0cmluZyBtaWNyb3Bob25lSWQ7CisgICAgaW50IGRlZmF1bHRTYW1wbGVSYXRl
IHsgNDQxMDAgfTsKK307CisKIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igb3RoZXIgcHJvcGVy
dGllcy4KIHN0cnVjdCBNb2NrQ2FtZXJhUHJvcGVydGllcyB7CiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KQEAgLTEzNCwxMyArMTYxLDI5IEBAIHN0cnVjdCBNb2NrRGlzcGxheVByb3BlcnRp
ZXMgewogCiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlIHsKICAgICBib29sIGlzTWljcm9waG9uZSgp
IGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8TW9ja01pY3JvcGhvbmVQcm9w
ZXJ0aWVzPihwcm9wZXJ0aWVzKTsgfQorICAgIGJvb2wgaXNTcGVha2VyKCkgY29uc3QgeyByZXR1
cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxNb2NrU3BlYWtlclByb3BlcnRpZXM+KHByb3BlcnRp
ZXMpOyB9CiAgICAgYm9vbCBpc0NhbWVyYSgpIGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8TW9ja0NhbWVyYVByb3BlcnRpZXM+KHByb3BlcnRpZXMpOyB9CiAgICAgYm9vbCBp
c0Rpc3BsYXkoKSBjb25zdCB7IHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE1vY2tEaXNw
bGF5UHJvcGVydGllcz4ocHJvcGVydGllcyk7IH0KIAorICAgIENhcHR1cmVEZXZpY2UgY2FwdHVy
ZURldmljZSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoaXNNaWNyb3Bob25lKCkpCisgICAg
ICAgICAgICByZXR1cm4gQ2FwdHVyZURldmljZSB7IHBlcnNpc3RlbnRJZCwgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgbGFiZWwsIHBlcnNpc3RlbnRJZCB9OworICAgICAg
ICBpZiAoaXNTcGVha2VyKCkpCisgICAgICAgICAgICByZXR1cm4gQ2FwdHVyZURldmljZSB7IHBl
cnNpc3RlbnRJZCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlciwgbGFiZWwsIHNw
ZWFrZXJQcm9wZXJ0aWVzKCktPm1pY3JvcGhvbmVJZCB9OworICAgICAgICBpZiAoaXNDYW1lcmEo
KSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJlRGV2aWNlIHsgcGVyc2lzdGVudElkLCBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEsIGxhYmVsLCBwZXJzaXN0ZW50SWQgfTsKKwor
ICAgICAgICBBU1NFUlQoaXNEaXNwbGF5KCkpOworICAgICAgICByZXR1cm4gQ2FwdHVyZURldmlj
ZSB7IHBlcnNpc3RlbnRJZCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCBsYWJl
bCwgcGVyc2lzdGVudElkIH07CisgICAgfQorCiAgICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSB0eXBlKCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChpc01pY3JvcGhvbmUoKSkKICAgICAg
ICAgICAgIHJldHVybiBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOworICAg
ICAgICBpZiAoaXNTcGVha2VyKCkpCisgICAgICAgICAgICByZXR1cm4gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6U3BlYWtlcjsKICAgICAgICAgaWYgKGlzQ2FtZXJhKCkpCiAgICAgICAgICAg
ICByZXR1cm4gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOwogCkBAIC0xNDgsNiAr
MTkxLDExIEBAIHN0cnVjdCBNb2NrTWVkaWFEZXZpY2UgewogICAgICAgICByZXR1cm4gV1RGOjpn
ZXQ8TW9ja0Rpc3BsYXlQcm9wZXJ0aWVzPihwcm9wZXJ0aWVzKS50eXBlOwogICAgIH0KIAorICAg
IGNvbnN0IE1vY2tTcGVha2VyUHJvcGVydGllcyogc3BlYWtlclByb3BlcnRpZXMoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGlzU3BlYWtlcigpID8gJldURjo6Z2V0PE1vY2tTcGVha2Vy
UHJvcGVydGllcz4ocHJvcGVydGllcykgOiBudWxscHRyOworICAgIH0KKwogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7CkBAIC0xNTYsMTIgKzIwNCwxNSBAQCBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlIHsKICAg
ICAgICAgc3dpdGNoT24ocHJvcGVydGllcywgWyZdKGNvbnN0IE1vY2tNaWNyb3Bob25lUHJvcGVy
dGllcyYgcHJvcGVydGllcykgewogICAgICAgICAgICAgZW5jb2RlciA8PCAodWludDhfdCkxOwog
ICAgICAgICAgICAgZW5jb2RlciA8PCBwcm9wZXJ0aWVzOwotICAgICAgICB9LCBbJl0oY29uc3Qg
TW9ja0NhbWVyYVByb3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKKyAgICAgICAgfSwgWyZdKGNvbnN0
IE1vY2tTcGVha2VyUHJvcGVydGllcyYgcHJvcGVydGllcykgewogICAgICAgICAgICAgZW5jb2Rl
ciA8PCAodWludDhfdCkyOwogICAgICAgICAgICAgZW5jb2RlciA8PCBwcm9wZXJ0aWVzOwotICAg
ICAgICB9LCBbJl0oY29uc3QgTW9ja0Rpc3BsYXlQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSB7Cisg
ICAgICAgIH0sIFsmXShjb25zdCBNb2NrQ2FtZXJhUHJvcGVydGllcyYgcHJvcGVydGllcykgewog
ICAgICAgICAgICAgZW5jb2RlciA8PCAodWludDhfdCkzOwogICAgICAgICAgICAgZW5jb2RlciA8
PCBwcm9wZXJ0aWVzOworICAgICAgICB9LCBbJl0oY29uc3QgTW9ja0Rpc3BsYXlQcm9wZXJ0aWVz
JiBwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBlbmNvZGVyIDw8ICh1aW50OF90KTQ7CisgICAg
ICAgICAgICBlbmNvZGVyIDw8IHByb3BlcnRpZXM7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAt
MTk3LDggKzI0OCwxMCBAQCBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlIHsKICAgICAgICAgY2FzZSAx
OgogICAgICAgICAgICAgcmV0dXJuIGRlY29kZU1vY2tNZWRpYURldmljZTxNb2NrTWljcm9waG9u
ZVByb3BlcnRpZXM+KGRlY29kZXIsIFdURk1vdmUoKnBlcnNpc3RlbnRJZCksIFdURk1vdmUoKmxh
YmVsKSk7CiAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVNb2NrTWVk
aWFEZXZpY2U8TW9ja0NhbWVyYVByb3BlcnRpZXM+KGRlY29kZXIsIFdURk1vdmUoKnBlcnNpc3Rl
bnRJZCksIFdURk1vdmUoKmxhYmVsKSk7CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlTW9ja01l
ZGlhRGV2aWNlPE1vY2tTcGVha2VyUHJvcGVydGllcz4oZGVjb2RlciwgV1RGTW92ZSgqcGVyc2lz
dGVudElkKSwgV1RGTW92ZSgqbGFiZWwpKTsKICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
cmV0dXJuIGRlY29kZU1vY2tNZWRpYURldmljZTxNb2NrQ2FtZXJhUHJvcGVydGllcz4oZGVjb2Rl
ciwgV1RGTW92ZSgqcGVyc2lzdGVudElkKSwgV1RGTW92ZSgqbGFiZWwpKTsKKyAgICAgICAgY2Fz
ZSA0OgogICAgICAgICAgICAgcmV0dXJuIGRlY29kZU1vY2tNZWRpYURldmljZTxNb2NrRGlzcGxh
eVByb3BlcnRpZXM+KGRlY29kZXIsIFdURk1vdmUoKnBlcnNpc3RlbnRJZCksIFdURk1vdmUoKmxh
YmVsKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTIwNiw3
ICsyNTksNyBAQCBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlIHsKIAogICAgIFN0cmluZyBwZXJzaXN0
ZW50SWQ7CiAgICAgU3RyaW5nIGxhYmVsOwotICAgIFZhcmlhbnQ8TW9ja01pY3JvcGhvbmVQcm9w
ZXJ0aWVzLCBNb2NrQ2FtZXJhUHJvcGVydGllcywgTW9ja0Rpc3BsYXlQcm9wZXJ0aWVzPiBwcm9w
ZXJ0aWVzOworICAgIFZhcmlhbnQ8TW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzLCBNb2NrU3BlYWtl
clByb3BlcnRpZXMsIE1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBNb2NrRGlzcGxheVByb3BlcnRpZXM+
IHByb3BlcnRpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCmluZGV4IDA1MmRiOGRhMGZiN2U1OTQyNzM5NjBlNmM1ODFkOTY0MGE1MzE1
MTguLjI1ZjUyMDNkNGEyYTg4MGU4NGJiMmM5ZWYyZDg1MTU0MDkwOTVkZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCkBAIC01NSw2ICs1NSwxMCBAQCBzdGF0aWMgaW5saW5lIFZlY3Rv
cjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKICAgICAgICAgTW9ja01lZGlhRGV2
aWNlIHsgIjIzOWMyNGIwLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NiJfcywgIk1vY2sgYXVk
aW8gZGV2aWNlIDEiX3MsIE1vY2tNaWNyb3Bob25lUHJvcGVydGllcyB7IDQ0MTAwIH0gfSwKICAg
ICAgICAgTW9ja01lZGlhRGV2aWNlIHsgIjIzOWMyNGIxLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBj
OWE2NiJfcywgIk1vY2sgYXVkaW8gZGV2aWNlIDIiX3MsIE1vY2tNaWNyb3Bob25lUHJvcGVydGll
cyB7IDQ4MDAwIH0gfSwKIAorICAgICAgICBNb2NrTWVkaWFEZXZpY2UgeyAiMjM5YzI0YjAtMmIx
NS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY3Il9zLCAiTW9jayBzcGVha2VyIGRldmljZSAxIl9zLCBN
b2NrU3BlYWtlclByb3BlcnRpZXMgeyAiMjM5YzI0YjAtMmIxNS0xMWUzLTgyMjQtMDgwMDIwMGM5
YTY2Il9zLCA0NDEwMCB9IH0sCisgICAgICAgIE1vY2tNZWRpYURldmljZSB7ICIyMzljMjRiMS0y
YjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjciX3MsICJNb2NrIHNwZWFrZXIgZGV2aWNlIDIiX3Ms
IE1vY2tTcGVha2VyUHJvcGVydGllcyB7ICIyMzljMjRiMS0yYjE1LTExZTMtODIyNC0wODAwMjAw
YzlhNjYiX3MsIDQ4MDAwIH0gfSwKKyAgICAgICAgTW9ja01lZGlhRGV2aWNlIHsgIjIzOWMyNGIy
LTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NyJfcywgIk1vY2sgc3BlYWtlciBkZXZpY2UgMyJf
cywgTW9ja1NwZWFrZXJQcm9wZXJ0aWVzIHsgU3RyaW5nIHsgfSwgNDgwMDAgfSB9LAorCiAgICAg
ICAgIE1vY2tNZWRpYURldmljZSB7ICIyMzljMjRiMi0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlh
NjYiX3MsICJNb2NrIHZpZGVvIGRldmljZSAxIl9zLAogICAgICAgICAgICAgTW9ja0NhbWVyYVBy
b3BlcnRpZXMgewogICAgICAgICAgICAgICAgIDMwLApAQCAtMTYxLDYgKzE2NSw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpTcGVha2VyOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYToKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtu
b3duOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTAsNiArMTk1LDcg
QEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlKiBhY3RpdmVTb3VyY2UoKSBmaW5h
bCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuYWN0
aXZlU291cmNlKCk7IH0KICNlbmRpZgogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQorICAg
IGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtlckRldmljZXMo
KTsgfQogfTsKIAogc3RhdGljIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+JiBkZXZpY2VzKCkKQEAg
LTIxNSw3ICsyMjEsOSBAQCBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIE1vY2tNZWRpYURldmljZT4m
IGRldmljZU1hcCgpCiBzdGF0aWMgaW5saW5lIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgZGV2aWNl
TGlzdEZvckRldmljZShjb25zdCBNb2NrTWVkaWFEZXZpY2UmIGRldmljZSkKIHsKICAgICBpZiAo
ZGV2aWNlLmlzTWljcm9waG9uZSgpKQotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmF1ZGlvRGV2aWNlcygpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6Om1pY3JvcGhvbmVEZXZpY2VzKCk7CisgICAgaWYgKGRldmljZS5p
c1NwZWFrZXIoKSkKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzcGVha2VyRGV2aWNlcygpOwogICAgIGlmIChkZXZpY2UuaXNDYW1lcmEoKSkKICAgICAgICAg
cmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2aWRlb0RldmljZXMoKTsKIApA
QCAtMjYyLDkgKzI3MCwxNiBAQCBib29sIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpt
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKQogICAgIHJldHVybiBzaW5nbGV0
b24oKS5tX2lzRW5hYmxlZDsKIH0KIAotc3RhdGljIHZvaWQgY3JlYXRlQ2FwdHVyZURldmljZShj
b25zdCBNb2NrTWVkaWFEZXZpY2UmIGRldmljZSkKK3N0YXRpYyBDYXB0dXJlRGV2aWNlIHRvQ2Fw
dHVyZURldmljZShjb25zdCBNb2NrTWVkaWFEZXZpY2UmIGRldmljZSkKK3sKKyAgICBhdXRvIGNh
cHR1cmVEZXZpY2UgPSBkZXZpY2UuY2FwdHVyZURldmljZSgpOworICAgIGNhcHR1cmVEZXZpY2Uu
c2V0RW5hYmxlZCh0cnVlKTsKKyAgICByZXR1cm4gY2FwdHVyZURldmljZTsKK30KKworc3RhdGlj
IHZvaWQgY3JlYXRlTW9ja0RldmljZShjb25zdCBNb2NrTWVkaWFEZXZpY2UmIGRldmljZSkKIHsK
LSAgICBkZXZpY2VMaXN0Rm9yRGV2aWNlKGRldmljZSkuYXBwZW5kKE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2UudHlwZSgp
LCBkZXZpY2UucGVyc2lzdGVudElkKS52YWx1ZSgpKTsKKyAgICBkZXZpY2VMaXN0Rm9yRGV2aWNl
KGRldmljZSkuYXBwZW5kKHRvQ2FwdHVyZURldmljZShkZXZpY2UpKTsKIH0KIAogdm9pZCBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6cmVzZXREZXZpY2VzKCkKQEAgLTI3NSw3ICsyOTAs
OCBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpyZXNldERldmljZXMoKQog
CiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2VzKFZlY3RvcjxN
b2NrTWVkaWFEZXZpY2U+JiYgbmV3TW9ja0RldmljZXMpCiB7Ci0gICAgYXVkaW9EZXZpY2VzKCku
Y2xlYXIoKTsKKyAgICBtaWNyb3Bob25lRGV2aWNlcygpLmNsZWFyKCk7CisgICAgc3BlYWtlckRl
dmljZXMoKS5jbGVhcigpOwogICAgIHZpZGVvRGV2aWNlcygpLmNsZWFyKCk7CiAgICAgZGlzcGxh
eURldmljZXMoKS5jbGVhcigpOwogCkBAIC0yODcsNyArMzAzLDcgQEAgdm9pZCBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0RGV2aWNlcyhWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiYm
IG5ld01vY2sKIAogICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNlIDogbW9ja0RldmljZXMpIHsK
ICAgICAgICAgbWFwLmFkZChkZXZpY2UucGVyc2lzdGVudElkLCBkZXZpY2UpOwotICAgICAgICBj
cmVhdGVDYXB0dXJlRGV2aWNlKGRldmljZSk7CisgICAgICAgIGNyZWF0ZU1vY2tEZXZpY2UoZGV2
aWNlKTsKICAgICB9CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiB9CkBAIC0yOTYsNyArMzEyLDcgQEAgdm9pZCBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlKGNvbnN0IE1vY2tNZWRpYURldmlj
ZSYgZGV2aWNlKQogewogICAgIGRldmljZXMoKS5hcHBlbmQoZGV2aWNlKTsKICAgICBkZXZpY2VN
YXAoKS5zZXQoZGV2aWNlLnBlcnNpc3RlbnRJZCwgZGV2aWNlKTsKLSAgICBjcmVhdGVDYXB0dXJl
RGV2aWNlKGRldmljZSk7CisgICAgY3JlYXRlTW9ja0RldmljZShkZXZpY2UpOwogICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgp
OwogfQogCkBAIC0zNDAsMjMgKzM1NiwzNSBAQCBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZQogICAg
IGlmIChpdGVyYXRvciA9PSBtYXAuZW5kKCkgfHwgaXRlcmF0b3ItPnZhbHVlLnR5cGUoKSAhPSB0
eXBlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgQ2FwdHVyZURldmljZSBk
ZXZpY2UgeyBpdGVyYXRvci0+dmFsdWUucGVyc2lzdGVudElkLCB0eXBlLCBpdGVyYXRvci0+dmFs
dWUubGFiZWwgfTsKLSAgICBkZXZpY2Uuc2V0RW5hYmxlZCh0cnVlKTsKLSAgICByZXR1cm4gZGV2
aWNlOworICAgIHJldHVybiB0b0NhcHR1cmVEZXZpY2UoaXRlcmF0b3ItPnZhbHVlKTsKIH0KIAot
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVk
aW9EZXZpY2VzKCkKK1ZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6Om1pY3JvcGhvbmVEZXZpY2VzKCkKIHsKLSAgICBzdGF0aWMgYXV0byBhdWRpb0Rl
dmljZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBWZWN0b3I8Q2FwdHVyZURl
dmljZT4gYXVkaW9EZXZpY2VzOworICAgIHN0YXRpYyBhdXRvIG1pY3JvcGhvbmVEZXZpY2VzID0g
bWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKKyAgICAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IG1p
Y3JvcGhvbmVEZXZpY2VzOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IGRldmlj
ZXMoKSkgewogICAgICAgICAgICAgaWYgKGRldmljZS5pc01pY3JvcGhvbmUoKSkKLSAgICAgICAg
ICAgICAgICBhdWRpb0RldmljZXMuYXBwZW5kKGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElE
KENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGRldmljZS5wZXJzaXN0ZW50
SWQpLnZhbHVlKCkpOworICAgICAgICAgICAgICAgIG1pY3JvcGhvbmVEZXZpY2VzLmFwcGVuZCh0
b0NhcHR1cmVEZXZpY2UoZGV2aWNlKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1pY3Jv
cGhvbmVEZXZpY2VzOworICAgIH0oKSk7CisKKyAgICByZXR1cm4gbWljcm9waG9uZURldmljZXM7
Cit9CisKK1ZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNwZWFrZXJEZXZpY2VzKCkKK3sKKyAgICBzdGF0aWMgYXV0byBzcGVha2VyRGV2aWNlcyA9
IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBz
cGVha2VyRGV2aWNlczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBkZXZpY2Vz
KCkpIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UuaXNTcGVha2VyKCkpCisgICAgICAgICAgICAg
ICAgc3BlYWtlckRldmljZXMuYXBwZW5kKHRvQ2FwdHVyZURldmljZShkZXZpY2UpKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gYXVkaW9EZXZpY2VzOworICAgICAgICByZXR1cm4gc3BlYWtl
ckRldmljZXM7CiAgICAgfSgpKTsKIAotICAgIHJldHVybiBhdWRpb0RldmljZXM7CisgICAgcmV0
dXJuIHNwZWFrZXJEZXZpY2VzOwogfQogCiBWZWN0b3I8Q2FwdHVyZURldmljZT4mIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2aWRlb0RldmljZXMoKQpAQCAtMzY1LDcgKzM5Myw3IEBA
IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZp
ZGVvRGV2aWNlcygpCiAgICAgICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiB2aWRlb0RldmljZXM7
CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNlIDogZGV2aWNlcygpKSB7CiAgICAgICAg
ICAgICBpZiAoZGV2aWNlLmlzQ2FtZXJhKCkpCi0gICAgICAgICAgICAgICAgdmlkZW9EZXZpY2Vz
LmFwcGVuZChjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpDYW1lcmEsIGRldmljZS5wZXJzaXN0ZW50SWQpLnZhbHVlKCkpOworICAgICAgICAg
ICAgICAgIHZpZGVvRGV2aWNlcy5hcHBlbmQodG9DYXB0dXJlRGV2aWNlKGRldmljZSkpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiB2aWRlb0RldmljZXM7CiAgICAgfSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaAppbmRleCAxYzVhYTY2OWQ1ZWRkN2EzODU2YzYxZWEyNWM5OGFiMTJmNWJh
NmU5Li5jMzdjMmFjNjcwMDNjMGY0Zjk4YzIwZjU5YjEyODI4OWYwODU1YmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oCkBAIC01Miw3ICs1Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1v
Y2tWaWRlb0NhcHR1cmVFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNNb2NrVmlkZW9DYXB0
dXJlRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0TW9ja0Rpc3BsYXlDYXB0dXJl
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzTW9ja0Rpc3BsYXlDYXB0dXJlRW5hYmxlZCA9
IGlzRW5hYmxlZDsgfQogCi0gICAgc3RhdGljIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgYXVkaW9E
ZXZpY2VzKCk7CisgICAgc3RhdGljIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbWljcm9waG9uZURl
dmljZXMoKTsKKyAgICBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNl
cygpOwogICAgIHN0YXRpYyBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHZpZGVvRGV2aWNlcygpOwog
ICAgIHN0YXRpYyBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRpc3BsYXlEZXZpY2VzKCk7CiAKQEAg
LTczLDcgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIE1vY2tBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyIGZpbmFsIDogcHVibGljIENhcHR1cmVEZXZpY2VNYW5hZ2VyIHsKICAgICBwcml2
YXRlOgotICAgICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2Vz
KCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmF1ZGlvRGV2
aWNlcygpOyB9CisgICAgICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgY2FwdHVyZURl
dmljZXMoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bWlj
cm9waG9uZURldmljZXMoKTsgfQogICAgICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0
dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgaWQpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCh0eXBlLCBpZCk7IH0KICAgICB9
OwogICAgIGNsYXNzIE1vY2tWaWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyIGZpbmFsIDogcHVibGlj
IENhcHR1cmVEZXZpY2VNYW5hZ2VyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBlZDJlYTgyNWEwYjdlNmQ5
NDk1ZGZhODRiOWRhZWJjN2Q3NzdmODY5Li4wZGFlYTYwNTFlNzU1NjNmMTkzMDA4M2YzMjRmMDNi
OWEyMTUxOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U3BlYWtlcjoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgogICAgICAgICAgICAgcmV0dXJu
IG1fcHJvY2Vzcy5hbGxvd3NBdWRpb0NhcHR1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCmluZGV4IDZkYWYzZDU5M2EyNTY4MjhmZWZmN2NlNTc1MWNiZmY3NjJi
NTQwYjcuLmRhMzk4NDJjMmQwZGU3MzNiOThlNDQ2YWEyOGI5MDE0YWU3MzhhNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNjY4LDYgKzY2OCwxNCBAQCBX
ZWJSVENNRE5TSUNFQ2FuZGlkYXRlc0VuYWJsZWQ6CiAgIGNhdGVnb3J5OiBpbnRlcm5hbAogICBj
b25kaXRpb246IEVOQUJMRShXRUJfUlRDKQogCitFeHBvc2VTcGVha2Vyc0VuYWJsZWQ6CisgIHR5
cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFs
bG93IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9u
OiAiQWxsb3cgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBjYXRlZ29yeTogZXhwZXJpbWVu
dGFsCisgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCisKIFZQOURlY29kZXJFbmFibGVkOgog
ICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2
aWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNl
LmNwcAppbmRleCBmMjc2MzY1MTMzY2FhNDI5NDg3OTY1YTljMzhlMzE1MDI4ZmJmODQ1Li41MmFl
Mzk2ODBhNDQ3OTgyMmNhYTcxMjYzZWQ1YzMwYzYyZDY5ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCkBAIC0zOCwxMSAr
MzgsMTMgQEAgdm9pZCBXS0FkZE1vY2tNZWRpYURldmljZShXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tTdHJpbmdSZWYgcGVyc2lzdGVudElkLCBXS1N0cmkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIFN0cmluZyB0eXBlU3RyaW5nID0gV2ViS2l0Ojp0b0ltcGwodHlwZSktPnN0cmlu
ZygpOwotICAgIFZhcmlhbnQ8V2ViQ29yZTo6TW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzLCBXZWJD
b3JlOjpNb2NrQ2FtZXJhUHJvcGVydGllcywgV2ViQ29yZTo6TW9ja0Rpc3BsYXlQcm9wZXJ0aWVz
PiBwcm9wZXJ0aWVzOworICAgIFZhcmlhbnQ8V2ViQ29yZTo6TW9ja01pY3JvcGhvbmVQcm9wZXJ0
aWVzLCBXZWJDb3JlOjpNb2NrU3BlYWtlclByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tDYW1lcmFQ
cm9wZXJ0aWVzLCBXZWJDb3JlOjpNb2NrRGlzcGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiAg
ICAgaWYgKHR5cGVTdHJpbmcgPT0gImNhbWVyYSIpCiAgICAgICAgIHByb3BlcnRpZXMgPSBXZWJD
b3JlOjpNb2NrQ2FtZXJhUHJvcGVydGllcyB7IH07CiAgICAgZWxzZSBpZiAodHlwZVN0cmluZyA9
PSAic2NyZWVuIikKICAgICAgICAgcHJvcGVydGllcyA9IFdlYkNvcmU6Ok1vY2tEaXNwbGF5UHJv
cGVydGllcyB7IH07CisgICAgZWxzZSBpZiAodHlwZVN0cmluZyA9PSAic3BlYWtlciIpCisgICAg
ICAgIHByb3BlcnRpZXMgPSBXZWJDb3JlOjpNb2NrU3BlYWtlclByb3BlcnRpZXMgeyB9OwogICAg
IGVsc2UgaWYgKHR5cGVTdHJpbmcgIT0gIm1pY3JvcGhvbmUiKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5k
ZXggODUxZmQ3OThjZTI4NzU1NjlhZDk1MTk1NmYxNjVmNGM0OWM5M2E3YS4uZTBmOWI2OGMwNDRi
ZjhhNzUyZWYwNDEyZTBlZGUwZWMxNWI4NTZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTE5MzAsNiArMTkzMCwxNiBAQCBib29s
IFdLUHJlZmVyZW5jZXNHZXRNZWRpYVByZWxvYWRpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPm1lZGlh
UHJlbG9hZGluZ0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0RXhwb3NlU3Bl
YWtlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZykK
K3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQo
ZmxhZyk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT5leHBvc2VTcGVha2Vyc0VuYWJsZWQoKTsKK30KKwogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZykKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApp
bmRleCBhZmQ5OTBlNmIwZDRmNGM1ZTlkODM5MWYyODMwNDVjNTI0ZGZmODVmLi5iYjU5MDY3MWZm
Mjc1OWY5MTBmNDk4NTM4ODM5OTU3ODU0Y2Q3MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTUzOSw2
ICs1MzksMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldExpbmtQcmVsb2FkRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYVByZWxvYWRpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19F
WFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmKTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UKK1dLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBm
bGFnKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRFeHBvc2VTcGVha2Vyc0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZik7CisKIC8vIERlZmF1bHRzIHRvIGZhbHNlCiBXS19FWFBPUlQg
dm9pZCBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2ViQXV0
aGVudGljYXRpb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAppbmRleCBkYWFkMmNmY2M2MDA1MTA1ZDMxNDQxNWUyZDAwYmNmZDM3NDVjNjBhLi44
Njc5MmFhNTVjMWU3Y2IxMjc4YmFjMzkzZDg3MDQ5OWFiYTYwNjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcApAQCAtMjYwLDYgKzI2MCw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAg
ICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShk
ZXZpY2UsICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAppbmRleCA3ZTA3MGRiZDYxM2VlM2IxYzczNGYyZTVlYzA5YmM3YmZiZjc4NDk5Li5lNDBmMDg2
ZWZmMWQxOTk3OWRkNzhiZTA4ODYwNGFjMmJjNDg1OTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC01OTgsNiArNTk4LDEzIEBAIGJvb2wgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoRnJh
bWVJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNNaWNyb3Bo
b25lRGV2aWNlKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgZGV2aWNlcywg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyAgICByZXR1cm4gc3RkOjphbnlfb2YoZGV2aWNl
cy5iZWdpbigpLCBkZXZpY2VzLmVuZCgpLCBbJmRldmljZUlEXShhdXRvJiBkZXZpY2UpIHsKKyAg
ICAgICAgcmV0dXJuIGRldmljZS5wZXJzaXN0ZW50SWQoKSA9PSBkZXZpY2VJRCAmJiBkZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU7CisgICAgfSk7
Cit9CisKIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExh
YmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0KQogewogICAgIHN0YXRpYyBjb25z
dCBpbnQgZGVmYXVsdE1heGltdW1DYW1lcmFDb3VudCA9IDE7CkBAIC02MDksNyArNjE2LDcgQEAg
VmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojpjb21wdXRlRmlsdGVyZWREZXYKIAogICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBmaWx0
ZXJlZERldmljZXM7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBkZXZpY2VzKSB7Ci0g
ICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSB8fCAoZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgZGV2aWNlLnR5cGUoKSAhPSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKSkKKyAgICAgICAg
aWYgKCFkZXZpY2UuZW5hYmxlZCgpIHx8IChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiBkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgZGV2aWNlLnR5cGUoKSAh
PSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmICghcmV2ZWFsSWRzQW5kTGFiZWxzKSB7CkBAIC02
MTcsNiArNjI0LDEyIEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICBpZiAoZGV2aWNlLnR5cGUoKSA9PSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lICYmICsrbWljcm9waG9uZUNvdW50ID4g
ZGVmYXVsdE1heGltdW1NaWNyb3Bob25lQ291bnQpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICBpZiAoZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gV2Ugb25seSBleHBvc2Ugc3BlYWtl
cnMgdGllZCB0byBhIG1pY3JvcGhvbmUgZm9yIHRoZSBtb21lbnQuCisgICAgICAgICAgICBpZiAo
ZGV2aWNlLnR5cGUoKSA9PSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVh
a2VyICYmICFpc01pY3JvcGhvbmVEZXZpY2UoZGV2aWNlcywgZGV2aWNlLmdyb3VwSWQoKSkpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGxhYmVs
ID0gZW1wdHlTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBhN2YwNDAwZTUy
YjFjNjUyMjBhMTY3ZWVhZGE1MGVlZWZmMjY5NTcyLi45ODRmYmJmNGM3ODM0NGQ1ZjgzN2I5YWE1
YzlhZTc4YTM1ZmQxZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC03MCw2ICs3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRnJv
bURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5k
b3c6CiAgICAgICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICB9CkBAIC05Nyw2ICs5OCw3IEBAIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KQEAgLTExOCw2ICsxMjAsNyBAQCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3Bl
YWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggNmVk
MGEwZjk4MmE1NzNkOTVjZmZjNDE3NDY0MGQxNTYyNTgxMTFmNC4uYjBiMTk4MjkwNTQyMmRlNzI5
NTQyYWJiM2VlMDliYzdlMzMwZDAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTcwLDkgKzcwLDEx
IEBAIHByaXZhdGU6CiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyopIGZpbmFsOwogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0
dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zcGVha2Vy
RGV2aWNlczsgfQogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7
CiAgICAgICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAg
ICAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fc3BlYWtlckRldmljZXM7CiAg
ICAgfTsKICAgICBjbGFzcyBWaWRlb0ZhY3RvcnkgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9DYXB0
dXJlRmFjdG9yeSB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEyODgzNTljMWU2M2U4MTQyNTdjYTg2NzdiMzZmMjZjNzdh
YWViMGUuLjkwYmUwMzVhYWYwNDZlNzA3ODkwNWJhMzRkZTAxZjRmMDlhYWVmOWYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMC0wOC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgZXhwb3NlIGF1ZGlvb3V0cHV0IGRldmljZXMgdGhh
dCBhcmUgdGllZCB0byBhbiBhdWRpbyBpbnB1dCBkZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBleHBlcmltZW50YWwgZmxhZy4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6
CisKIDIwMjAtMDgtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlZnJlc2ggUmVhZGFibGVTdHJlYW0ucGlwZVRvIGltcGxlbWVudGF0aW9uIHVwIHRvIHNw
ZWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNGMyNjA4
ZjliMWVjZjZjMjU2YzJkMGFiM2Y5NjdjYWFlOTAzMjRhMi4uMWFjNzFmNzEyMjkzNWZkYTU3MWU1
NDg1MTViMzRjYTM3ZTlkZDg0NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKQEAgLTk2Miw2ICs5NjIsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAg
IFdLUHJlZmVyZW5jZXNTZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogICAgIFdLUHJlZmVyZW5jZXNTZXRVc2VyVGltaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhUHJlbG9hZGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVBsYXliYWNrQWxsb3dz
SW5saW5lKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SW5saW5lTWVk
aWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUocHJlZmVyZW5jZXMsIGZhbHNl
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0UmVtb3RlUGxheWJhY2tFbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4MjY0OWQyOTc4OTYwNDU3Zjk5NWMwYTZlNTliMzQ1ZWU3NGY3Mzg5
Li44NmI1ODY1YTM5OTk0NzNhM2IxZGI2OGNiZWY5MTUyNmYwYzk3NDE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjAtMDgtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIGVudW1lcmF0ZURldmljZXMgc2hvdWxkIGV4cG9zZSBhdWRpb291dHB1dCBkZXZp
Y2VzIHRoYXQgYXJlIHRpZWQgdG8gYW4gYXVkaW8gaW5wdXQgZGV2aWNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU4MDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBzcGVha2VyIGRl
dmljZXMKKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2VudW1lcmF0ZS1z
cGVha2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXIt
bWVkaWEtZGV2aWNlLWlkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUt
ZGV2aWNlcy1pZnJhbWUuaHRtbDoKKwogMjAyMC0wOC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmcmVzaCBSZWFkYWJsZVN0cmVhbS5waXBlVG8gaW1w
bGVtZW50YXRpb24gdXAgdG8gc3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
ODQ5NTJiMzliZWIzNjc2Y2VjZjdhZmJhMWFiZDFhNDQ4YjQ1MmZjZC4uMmVlNTM3OTlkZWE1N2Iz
YzBjMjY5YWRkYzIxYmU4YTJkOTEzMWFhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDgtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIGVudW1lcmF0ZURldmljZXMgc2hvdWxkIGV4cG9zZSBhdWRpb291
dHB1dCBkZXZpY2VzIHRoYXQgYXJlIHRpZWQgdG8gYW4gYXVkaW8gaW5wdXQgZGV2aWNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU4MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdz
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy5odG1sOgor
CiAyMDIwLTA4LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBwaXBlVGhyb3VnaCBzaG91bGQgY2hlY2sgZm9yIHJlYWRhYmxlU3RyZWFtIHR5cGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJhdGUtc3BlYWtl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRmOGVjNGM4YjE1NWQ0ZTU4NzljMjIwNTY3ZTVl
YzliMTE4MGQyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZW51bWVyYXRlLXNwZWFrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IGF1ZGlvb3V0cHV0IGRldmljZXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZW51bWVyYXRlLXNwZWFrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmZiMTQwNjE4MTA4MTdh
YzAwZmEyYThjMTQ2ODFmMjY1ZTI0ZTAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJhdGUtc3BlYWtlci5odG1sCkBAIC0wLDAgKzEsNTAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgPHRpdGxlPlRlc3QgcGFzc2luZyBjYXB0dXJlIGRldmljZSBJRHMgdG8gZ2V0VXNl
ck1lZGlhPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgZnVuY3Rpb24g
ZGV2aWNlRnJvbUxhYmVsKGRldmljZXMsIGxhYmVsKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQg
ZGV2aWNlIG9mIGRldmljZXMpIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UubGFiZWwgPT09IGxh
YmVsKQorICAgICAgICAgICAgICAgIHJldHVybiBkZXZpY2U7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzp0cnVlLCB2aWRlbzp0cnVlIH0p
CisgICAgICAgIGNvbnN0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVu
dW1lcmF0ZURldmljZXMoKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGV2aWNlcy5sZW5ndGggPiAy
LCAiYmVmb3JlIGdldHRpbmcgcGVybWlzc2lvbiwgYXQgbW9zdCAxIGNhbWVyYSBhbmQgMSBtaWNy
b3Bob25lIGFyZSBleHBvc2VkIik7CisgICAgICAgIGRldmljZXMuZm9yRWFjaCgoZGV2aWNlKSA9
PiB7CisgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhkZXZpY2UuZGV2aWNlSWQubGVuZ3Ro
ID09IDAgLCAiZGV2aWNlLmRldmljZUlkIGlzIGVtcHR5IGJlZm9yZSBwZXJtaXNzaW9uIHRvIGNh
cHR1cmUiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnN0IG1pYzEgPSBkZXZpY2VGcm9tTGFi
ZWwoZGV2aWNlcywgIk1vY2sgYXVkaW8gZGV2aWNlIDEiKTsKKyAgICAgICAgY29uc3QgbWljMiA9
IGRldmljZUZyb21MYWJlbChkZXZpY2VzLCAiTW9jayBhdWRpbyBkZXZpY2UgMiIpOworICAgICAg
ICBjb25zdCBzcGVha2VyMSA9IGRldmljZUZyb21MYWJlbChkZXZpY2VzLCAiTW9jayBzcGVha2Vy
IGRldmljZSAxIik7CisgICAgICAgIGNvbnN0IHNwZWFrZXIyID0gZGV2aWNlRnJvbUxhYmVsKGRl
dmljZXMsICJNb2NrIHNwZWFrZXIgZGV2aWNlIDIiKTsKKyAgICAgICAgY29uc3Qgc3BlYWtlcjMg
PSBkZXZpY2VGcm9tTGFiZWwoZGV2aWNlcywgIk1vY2sgc3BlYWtlciBkZXZpY2UgMyIpOworCisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc3BlYWtlcjEua2luZCwgImF1ZGlvb3V0cHV0IiwgInNwZWFr
ZXIxIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHNwZWFrZXIxLmdyb3VwSWQsICIiLCAi
c3BlYWtlcjEgZ3JvdXBJZCIpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3BlYWtlcjIua2lu
ZCwgImF1ZGlvb3V0cHV0IiwgInNwZWFrZXIyIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KHNwZWFrZXIyLmdyb3VwSWQsICIiLCAic3BlYWtlcjIgZ3JvdXBJZCIpOworCisgICAgICAgIGFz
c2VydF9lcXVhbHMoc3BlYWtlcjMsIHVuZGVmaW5lZCwgInNwZWFrZXIzIik7CisKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzcGVha2VyMS5ncm91cElkLCBtaWMxLmdyb3VwSWQsICJkZXZpY2UgMSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNwZWFrZXIyLmdyb3VwSWQsIG1pYzIuZ3JvdXBJZCwg
ImRldmljZSAyIik7CisgICAgfSwgImF1ZGlvb3V0cHV0IGRldmljZXMiKTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLmh0bWwK
aW5kZXggOWY0ZDM3OTNlZTA4ZjU4ZmYwODdiNzVjNzFlYzc0NzE3OWMyMWJjOS4uYjQ4N2FkNWRi
ZGY5MDNmMmUxOTZlMGFjODU1Yzk2ZGUzM2E5ODY4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC5odG1sCkBA
IC04NSw3ICs4NSw3IEBACiAgICAgICAgICAgICBpZiAoZGV2aWNlLmtpbmQgPT09ICJhdWRpb2lu
cHV0IikgewogICAgICAgICAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzoge2RldmljZUlkOiBkZXZpY2UuZGV2aWNl
SWR9fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0QXVkaW9UcmFj
a3MoKVswXS5nZXRTZXR0aW5ncygpLmRldmljZUlkLCBkZXZpY2UuZGV2aWNlSWQsICJNYXRjaGlu
ZyBhdWRpbyBkZXZpY2UgaWQiKTsKLSAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKGRldmljZS5raW5kID09PSAidmlkZW9pbnB1dCIpIHsKICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7dmlkZW86IHtkZXZpY2VJZDogZGV2aWNlLmRldmljZUlkfX0pOwogICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS5k
ZXZpY2VJZCwgZGV2aWNlLmRldmljZUlkLCAiTWF0Y2hpbmcgdmlkZW8gZGV2aWNlIGlkIik7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUtYWxsb3ctYXR0cmlidXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1l
cmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CmluZGV4IDYz
ZTliZGQ4MGExZjFmOTM3MjAyMDk2N2FkMTExYTYxNTY0YThiMTMuLjI1YzYzYTdjNGFhMTE5Nzky
YWMxNjQ2MTA2NzQ2NzllNmQwOGJmYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0CkBAIC0xLDUgKzEsMjEgQEAKIENPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kg
J0NhbWVyYScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KIENPTlNPTEUgTUVTU0FHRTogRmVh
dHVyZSBwb2xpY3kgJ01pY3JvcGhvbmUnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3Jp
Z2luICdodHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJycuCiBDT05T
T0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZW51bWVyYXRlRGV2aWNlcy4KLSAgICAg
IAorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnQ2FtZXJhJyBjaGVjayBmYWlsZWQg
Zm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxsb3cg
YXR0cmlidXRlICcnLgorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnTWljcm9waG9u
ZScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KK0NPTlNPTEUgTUVTU0FHRTogTm90IGFsbG93
ZWQgdG8gY2FsbCBlbnVtZXJhdGVEZXZpY2VzLgorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBv
bGljeSAnTWljcm9waG9uZScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KK0NPTlNPTEUgTUVT
U0FHRTogTm90IGFsbG93ZWQgdG8gY2FsbCBnZXRVc2VyTWVkaWEuCitDT05TT0xFIE1FU1NBR0U6
IEZlYXR1cmUgcG9saWN5ICdDYW1lcmEnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3Jp
Z2luICdodHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJycuCitDT05T
T0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgorQ09OU09MRSBN
RVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnQ2FtZXJhJyBjaGVjayBmYWlsZWQgZm9yIGlmcmFtZSB3
aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxsb3cgYXR0cmlidXRlICcn
LgorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnTWljcm9waG9uZScgY2hlY2sgZmFp
bGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcgYW5kIGFs
bG93IGF0dHJpYnV0ZSAnJy4KK0NPTlNPTEUgTUVTU0FHRTogTm90IGFsbG93ZWQgdG8gY2FsbCBl
bnVtZXJhdGVEZXZpY2VzLgorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnTWljcm9w
aG9uZScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnY2FtZXJhJy4KK0NPTlNPTEUgTUVTU0FHRTog
Tm90IGFsbG93ZWQgdG8gY2FsbCBnZXRVc2VyTWVkaWEuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1
cmUgcG9saWN5ICdDYW1lcmEnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdo
dHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJ21pY3JvcGhvbmUnLgor
Q09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0byBjYWxsIGdldFVzZXJNZWRpYS4KK0NPTlNP
TEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kgJ0NhbWVyYScgY2hlY2sgZmFpbGVkIGZvciBpZnJh
bWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0
ZSAnbWljcm9waG9uZTtzcGVha2VyLXNlbGVjdGlvbicuCitDT05TT0xFIE1FU1NBR0U6IE5vdCBh
bGxvd2VkIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgorICAgICAgICAgCiBQQVNTOiAiYWxsb3ciIGF0
dHJpYnV0ZSByZXNwZWN0ZWQgaW4gYWxsIGlmcmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1h
bGxvdy1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUuaHRtbAppbmRl
eCA2M2ZkMDM1OGE0YTBjZGQxZGI0Njg2ZGZlNmQ5MmU1OTQ4ZGM0ZWQxLi45ZDE1MzAxZGI2MmMw
MmU5N2E3OGYzOTBiM2M0YTU2NDQ3OTk1ZjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUtYWxsb3ct
YXR0cmlidXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1sCkBAIC02
LDYgKzYsOCBAQAogICAgIDxpZnJhbWUgaWQ9Im1pY3JvcGhvbmUiIGFsbG93PSJtaWNyb3Bob25l
IiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2Vz
L2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KICAgICA8aWZyYW1lIGlk
PSJjYW1lcmEiIGFsbG93PSJjYW1lcmEiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lZGlh
L21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgogICAgIDxpZnJhbWUgaWQ9ImNhbWVyYSttaWNyb3Bob25lIiBhbGxvdz0iY2FtZXJh
O21pY3JvcGhvbmUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lZGlhL21lZGlhLXN0cmVh
bS9yZXNvdXJjZXMvZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAg
IDxpZnJhbWUgaWQ9Im1pY3JvcGhvbmUrc3BlYWtlcnNlbGVjdGlvbiIgYWxsb3c9Im1pY3JvcGhv
bmU7c3BlYWtlci1zZWxlY3Rpb24iIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lZGlhL21l
ZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWwiPjwvaWZy
YW1lPgorICAgIDxpZnJhbWUgaWQ9ImNhbWVyYSttaWNyb3Bob25lK3NwZWFrZXJzZWxlY3Rpb24i
IGFsbG93PSJjYW1lcmE7bWljcm9waG9uZTtzcGVha2VyLXNlbGVjdGlvbiIgc3JjPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2
aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CiAgICAgPGlmcmFtZSBpZD0ic2FtZS1vcmlnaW4i
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMv
ZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgogCiAgICAgPHNjcmlwdD4K
QEAgLTIwLDggKzIyLDEwIEBACiAgICAgICAgICAgICAnbWljcm9waG9uZScgOiAnbWljcm9waG9u
ZScsCiAgICAgICAgICAgICAnbm9uZScgOiAnJywKICAgICAgICAgICAgICdjYW1lcmErbWljcm9w
aG9uZScgOiAnY2FtZXJhK21pY3JvcGhvbmUnLAorICAgICAgICAgICAgJ21pY3JvcGhvbmUrc3Bl
YWtlcnNlbGVjdGlvbicgOiAnbWljcm9waG9uZStzcGVha2Vyc2VsZWN0aW9uJywKKyAgICAgICAg
ICAgICdjYW1lcmErbWljcm9waG9uZStzcGVha2Vyc2VsZWN0aW9uJyA6ICdjYW1lcmErbWljcm9w
aG9uZStzcGVha2Vyc2VsZWN0aW9uJywKICAgICAgICAgICAgICdjYW1lcmEnIDogJ2NhbWVyYScs
Ci0gICAgICAgICAgICAnc2FtZS1vcmlnaW4nIDogJ2NhbWVyYSttaWNyb3Bob25lJworICAgICAg
ICAgICAgJ3NhbWUtb3JpZ2luJyA6ICdjYW1lcmErbWljcm9waG9uZStzcGVha2Vyc2VsZWN0aW9u
JwogICAgICAgICB9OwogICAgICAgICBsZXQgY291bnQgPSAwOwogICAgICAgICBsZXQgc3VjY2Vz
cyA9IHRydWU7CkBAIC0zMSw3ICszNSw3IEBACiAgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVy
SFRNTCArPSBgRkFJTDogJkxUO2lmcmFtZSBpZD0ke3Zpc2libGVbMF19PiBzYXcgIiR7dmlzaWJs
ZVsxXX0iLCBzaG91bGQgaGF2ZSBzZWVuICIke2V4cGVjdGVkW3Zpc2libGVbMF1dfSI8YnI+YDsK
ICAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoKytjb3VudCA9PSA1KSB7CisgICAgICAgICAgICBpZiAoKytjb3VudCA9PSA3KSB7
CiAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpCiAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5pbm5lckhUTUwgPSAnUEFTUzogImFsbG93IiBhdHRyaWJ1dGUgcmVzcGVjdGVkIGluIGFsbCBp
ZnJhbWVzJzsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUt
ZGV2aWNlcy1zb3VyY2UtaWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJjZS1pZC5odG1sCmluZGV4IDcwMmNkOWE0
NDAwNWYxYWZmYWFjZDJjYmFiNDhiMTAxZTNiNjMyZjkuLmFiODRhOWEzNjY3ZGFmMmVmNjBkNzVm
M2E3MWQyNTg0ZWExNWJiZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJjZS1pZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2Vz
LXNvdXJjZS1pZC5odG1sCkBAIC0zNCw3ICszNCw3IEBACiAgICAgICAgICAgICAgICAgaWYgKG9y
aWdpbkluZm9bZGV2aWNlLmRldmljZUlkXSAhPSBkZXZpY2Uua2luZCkKICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZChgOiBkdXBsaWNhdGUgZGV2aWNlIElEcyBmb3IgJHtkZXZpY2Uua2lu
ZH0gYW5kICR7b3JpZ2luSW5mb1tkZXZpY2UuZGV2aWNlSWRdfSBpbiAke29yaWdpbn0vJHtzZWxm
Lm9yaWdpbn1gKTsKIAotICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvcmlnaW5JbmZv
KS5sZW5ndGggPiA0KQorICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvcmlnaW5JbmZv
KS5sZW5ndGggPiA2KQogICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGA6IG1vcmUgdGhl
biBmb3VyIHVuaXF1ZSBkZXZpY2UgSURzIGluICR7b3JpZ2lufS8ke3NlbGYub3JpZ2lufWApOwog
ICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLmh0bWwKaW5kZXggNTgwYzg2ZjQ3MmUyMzMxMDViZGFkZjQ2ODRj
MjU1OGM1OGFkODY4MS4uOTg2N2Q1ZGNlNDAxYTI3ODhjYTBjNjcwNmJkNGU4N2Q5ZjBhOTRiOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVz
b3VyY2VzL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1p
ZnJhbWUuaHRtbApAQCAtMSwxMSArMSw0NCBAQAogPHNjcmlwdD4KKyAgICBhc3luYyBmdW5jdGlv
biBjaGVja0RldmljZUtpbmQoa2luZCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICBsZXQgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2
aWNlcygpOworICAgICAgICAgICAgZm9yIChsZXQgZGV2aWNlIG9mIGRldmljZXMpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoZGV2aWNlLmtpbmQgPT09IGtpbmQpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9u
IGNoZWNrU3BlYWtlclNlbGVjdGlvbigpCisgICAgeworICAgICAgICAvLyBTcGVha2VycyBhcmUg
Y3VycmVudGx5IG9ubHkgZXhwb3NlZCBhZnRlciBnZXRVc2VyTWVkaWEuCisgICAgICAgIHRyeSB7
CisgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
IGF1ZGlvIDogdHJ1ZSB9KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB9CisgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7IHZpZGVvIDogdHJ1ZSB9KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBjaGVja0RldmljZUtpbmQoJ2F1ZGlvb3V0cHV0Jyk7CisgICAg
fQorCiAgICAgYXN5bmMgZnVuY3Rpb24gZW51bWVyYXRlKGV2ZW50KQogICAgIHsKLSAgICAgICAg
bGV0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmlj
ZXMoKTsKLSAgICAgICAgbGV0IHZpc2libGUgPSBkZXZpY2VzLm1hcChkZXZpY2UgPT4gZGV2aWNl
LmtpbmQuaW5kZXhPZigndmlkZW8nKSA9PSAwID8gJ2NhbWVyYScgOiAnbWljcm9waG9uZScpLnNv
cnQoKTsKKyAgICAgICAgbGV0IHZpc2libGUgPSBbXTsKKyAgICAgICAgaWYgKGF3YWl0IGNoZWNr
RGV2aWNlS2luZCgndmlkZW9pbnB1dCcpKQorICAgICAgICAgICAgdmlzaWJsZS5wdXNoKCdjYW1l
cmEnKTsKKyAgICAgICAgaWYgKGF3YWl0IGNoZWNrRGV2aWNlS2luZCgnYXVkaW9pbnB1dCcpKQor
ICAgICAgICAgICAgdmlzaWJsZS5wdXNoKCdtaWNyb3Bob25lJyk7CisgICAgICAgIGlmIChhd2Fp
dCBjaGVja1NwZWFrZXJTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgIHZpc2libGUucHVzaCgnc3Bl
YWtlcnNlbGVjdGlvbicpOworIAogICAgICAgICB2aXNpYmxlID0gdmlzaWJsZS5qb2luKCcrJyk7
CiAgICAgICAgIHBhcmVudC5wb3N0TWVzc2FnZShgJHtldmVudC5kYXRhfToke3Zpc2libGV9YCwg
JyonKTsKLSAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9IHZpc2libGU7CisgICAgICAgIHJlc3Vs
dC5pbm5lckhUTUwgPSAncmVzdWx0OiAiJyArIHZpc2libGUgKyAnIic7CiAgICAgfQogCiAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoaWQpID0+IGVudW1lcmF0ZShpZCkp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggODA5ZmNlMmQ5ZDQ3OGMzMTgxYTg2NDJlOGZmZDIzMTY3NWJh
ODY4NC4uZTUyNDgxM2M4ZmVhZDUyYTAzZTEzMGNmM2YxYWUzNTVlZjE2NGVhZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBXaGVuIHByb21wdGVkLCBhY2NlcHQgdG8gc2hhcmUgeW91
ciB2aWRlbyBzdHJlYW0uCiAKIFBBU1MgQSBkZXZpY2UgY2FuIGJlIG9wZW5lZCB0d2ljZSBhbmQg
aGF2ZSB0aGUgc2FtZSBkZXZpY2UgSUQgCiBQQVNTIEEgZGV2aWNlIGNhbiBiZSBvcGVuZWQgdHdp
Y2Ugd2l0aCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgcmVxdWVzdGVkIAotRkFJTCBncm91cElkIGlz
IGNvcnJlY3RseSByZXBvcnRlZCBieSBnZXRTZXR0aW5ncygpIGZvciBhbGwgaW5wdXQgZGV2aWNl
cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiIiBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAorRkFJTCBncm91cElkIGlzIGNvcnJlY3RseSByZXBvcnRlZCBieSBnZXRTZXR0
aW5ncygpIGZvciBhbGwgaW5wdXQgZGV2aWNlcyBhc3NlcnRfdHJ1ZTogZGV2aWNlIGdyb3VwSWQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgZGV2aWNlSWQgaXMgcmVwb3J0ZWQgYnkgZ2V0
U2V0dGluZ3MoKSBmb3IgZ2V0VXNlck1lZGlhKCkgYXVkaW8gdHJhY2tzIAogRkFJTCBncm91cElk
IGlzIHJlcG9ydGVkIGJ5IGdldFNldHRpbmdzKCkgZm9yIGdldFVzZXJNZWRpYSgpIGF1ZGlvIHRy
YWNrcyBhc3NlcnRfZXF1YWxzOiBncm91cElkIHNob3VsZCBleGlzdCBhbmQgaXQgc2hvdWxkIGJl
IGEgc3RyaW5nLiBleHBlY3RlZCAic3RyaW5nIiBidXQgZ290ICJ1bmRlZmluZWQiCiBQQVNTIHNh
bXBsZVJhdGUgaXMgcmVwb3J0ZWQgYnkgZ2V0U2V0dGluZ3MoKSBmb3IgZ2V0VXNlck1lZGlhKCkg
YXVkaW8gdHJhY2tzIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNl
dHRpbmdzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3Mu
aHR0cHMuaHRtbAppbmRleCBkOTRiNDNjOWNmOWExMzdkMjUyMGZiZjY5NjIyYTYyMDExMjIwYTQ2
Li44ZDhkZDdiNzFiZGNlOGQwYjQ1MTQ1YTFkZTMyNzFjZTAwMDY5MzgwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1z
dHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMuaHRtbApAQCAtNzMsOCArNzMs
NyBAQAogICAgICAgICA6IHt2aWRlbzogZGV2aWNlX2lkX2NvbnN0cmFpbnR9OwogCiAgICAgICBj
b25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShj
b25zdHJhaW50cyk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRUcmFja3MoKVswXS5n
ZXRTZXR0aW5ncygpLmdyb3VwSWQsCi0gICAgICAgICAgICAgICAgICAgIGRldmljZS5ncm91cElk
KTsKKyAgICAgIGFzc2VydF90cnVlKHN0cmVhbS5nZXRUcmFja3MoKVswXS5nZXRTZXR0aW5ncygp
Lmdyb3VwSWQgPT09IGRldmljZS5ncm91cElkLCAiZGV2aWNlIGdyb3VwSWQiKTsKICAgICAgIGFz
c2VydF9ncmVhdGVyX3RoYW4oZGV2aWNlLmdyb3VwSWQubGVuZ3RoLCAwKTsKICAgICB9CiAgIH0s
ICdncm91cElkIGlzIGNvcnJlY3RseSByZXBvcnRlZCBieSBnZXRTZXR0aW5ncygpIGZvciBhbGwg
aW5wdXQgZGV2aWNlcycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407285</attachid>
            <date>2020-08-26 02:35:14 -0700</date>
            <delta_ts>2020-08-26 04:16:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215806-20200826113512.patch</filename>
            <type>text/plain</type>
            <size>80424</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZkYjI2OGNmYWM4Mzg5
NGVkNGJlYWMxMjcyOTBmNzI3ZGNlNTQzZi4uMmFjMmM0OTg2ODI1ZmQ2OTdjZTMwYjNhY2E3NTY5
ZmE4YzU5OGYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTA4LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2Vz
IHNob3VsZCBleHBvc2UgYXVkaW9vdXRwdXQgZGV2aWNlcyB0aGF0IGFyZSB0aWVkIHRvIGFuIGF1
ZGlvIGlucHV0IGRldmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE1ODA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIHNwZWFrZXIgc2VsZWN0aW9uIGZlYXR1cmUgcG9saWN5
LCBhcyBwZXIgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvI3Blcm1p
c3Npb25zLXBvbGljeS1pbnRlZ3JhdGlvbi4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNwZWFr
ZXIgbW9jayBkZXZpY2VzIGFuZCBmb3IgbGlzdGluZyBzcGVha2VycyBvbiBNYWNPUyBpbiBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGdyb3Vw
SWQgdG8gZ3JvdXAgbWljcm9waG9uZXMgYW5kIHNwZWFrZXJzIGZvciBib3RoIG1vY2sgYXVkaW8g
bWFuYWdlciBhbmQgQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuCisgICAgICAgIEZvciBt
b2NrIHNwZWFrZXJzLCB3ZSBhZGQgdHdvIGF1ZGlvb3V0cHV0IGRldmljZXMgdGhhdCBhcmUgcmVs
YXRlZCB0byBhIG1pY3JvcGhvbmUgYW5kIG9uZSBhdWRpb291dHB1dCB0aGF0IGlzIG5vdCByZWxh
dGVkIHRvIGFueSBtaWNyb3Bob25lLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0v
ZW51bWVyYXRlLXNwZWFrZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpNZWRpYURl
dmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tTcGVha2VyQWNjZXNzKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvTWVkaWFEZXZpY2VJbmZvS2luZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YURldmljZXM6OnJlZnJlc2hEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzb3VyY2VDYXB0dXJlU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSk6
CisgICAgICAgICogaHRtbC9GZWF0dXJlUG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBv
bGljeVR5cGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVQb2xpY3k6OnBhcnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVQb2xpY3k6OmFsbG93cyBjb25zdCk6CisgICAgICAg
ICogaHRtbC9GZWF0dXJlUG9saWN5Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OnNldEdyb3VwSWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeTo6c3BlYWtlckRldmljZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OkNvcmVBdWRpb0NhcHR1cmVE
ZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6cmVsYXRl
ZEF1ZGlvRGV2aWNlSURzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y2FwdHVyZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6ZGV2aWNlSGFzT3V0cHV0U3RyZWFtcyk6CisgICAgICAgIChXZWJDb3JlOjpnZXRE
ZWZhdWx0Q2FwdHVyZUlucHV0RGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0RldmljZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVz
aEF1ZGlvQ2FwdHVyZURldmljZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzcGVha2VyRGV2aWNlcyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVN
YW5hZ2VyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVNYW5hZ2Vy
Q29jb2E6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2aWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
U3BlYWtlclByb3BlcnRpZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
U3BlYWtlclByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFE
ZXZpY2U6OmlzU3BlYWtlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFEZXZp
Y2U6OmNhcHR1cmVEZXZpY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRGV2
aWNlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYURldmljZTo6c3Bl
YWtlclByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRGV2aWNl
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRGV2aWNlOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdERldmljZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6ZGV2aWNlTGlzdEZvckRldmljZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0NhcHR1cmVE
ZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTW9ja0RldmljZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0RGV2aWNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJl
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6bWljcm9waG9uZURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNwZWFrZXJEZXZpY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2aWRlb0RldmljZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoK
KwogMjAyMC0wOC0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIFRyYW5zZm9ybVN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMGRkMzRhN2U0
YjIwNzY3MzBlMTMxNWIzYTQ5ZDhmMDRlNGE5MTRhLi40MzdkMjk5MDEwMGJjYzM4MDMwYjFiN2Ix
MTYyYTQ3NzZkNzNiODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA4LTI2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZp
Y2VzIHNob3VsZCBleHBvc2UgYXVkaW9vdXRwdXQgZGV2aWNlcyB0aGF0IGFyZSB0aWVkIHRvIGFu
IGF1ZGlvIGlucHV0IGRldmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE1ODA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIEludHJvZHVjZSBhbiBleHBlcmltZW50YWwgZmxhZyAob2ZmIGJ5IGRlZmF1bHQp
IHRvIGNvdmVyIHNwZWFrZXIgc2VsZWN0aW9uLCBpbmNsdWRpbmcgZXhwb3Npbmcgc3BlYWtlciBk
ZXZpY2VzIHRvIHdlYiBwYWdlcy4KKyAgICAgICAgVXBkYXRlIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0IHRvIG9ubHkgZXhw
b3NlIHNwZWFrZXJzIHRoYXQgYXJlIHRpZWQgdG8gYSBtaWNyb3Bob25lIHRoYXQgaXMgZXhwb3Nl
ZC4KKyAgICAgICAgVGhpcyBhbGlnbnMgd2l0aCBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW91dHB1dC8jcHJpdmFjeS1vYnRhaW5pbmctY29uc2VudC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01l
ZGlhRGV2aWNlLmNwcDoKKyAgICAgICAgKFdLQWRkTW9ja01lZGlhRGV2aWNlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVu
Y2VzU2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRF
eHBvc2VTcGVha2Vyc0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc01pY3JvcGhvbmVEZXZpY2UpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c291cmNlVHlw
ZUZyb21EZXZpY2VUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjAt
MDgtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBUcmFuc2Zvcm1TdHJlYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCBiYmZlYWJmY2M5YzU0ZjhhZWRh
MmUwMDIzYjgxZjEyODE3MmUxNzlkLi4yN2JjM2UxMGFhZjYwYTM3ODlmMTkxYjBhNjUxMjc3MTgx
NTNmZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCkBAIC0zNywxMCArMzcsMTIgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJK
U01lZGlhRGV2aWNlSW5mby5oIgogI2luY2x1ZGUgIk1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJh
aW50cy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNs
dWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5o
IgpAQCAtNTUsNiArNTcsNyBAQCBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwg
bV9zY2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVu
dFRpbWVyRmlyZWQpCiAgICAgLCBtX2V2ZW50TmFtZXMoZXZlbnROYW1lcygpKQorICAgICwgbV9p
ZEhhc2hTYWx0KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKIHsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIApAQCAtMTY1LDYgKzE2OCwzMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tN
aWNyb3Bob25lQWNjZXNzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gaXNG
ZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6
VHlwZTo6TWljcm9waG9uZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObyk7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1NwZWFrZXJBY2Nlc3MoY29uc3QgRG9jdW1l
bnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBkb2N1bWVudC5mcmFtZSgpCisgICAgICAgICYm
IGRvY3VtZW50LmZyYW1lKCktPnNldHRpbmdzKCkuZXhwb3NlU3BlYWtlcnNFbmFibGVkKCkKKyAg
ICAgICAgJiYgaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVh
dHVyZVBvbGljeTo6VHlwZTo6U3BlYWtlclNlbGVjdGlvbiwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQ
b2xpY3lGYWlsdXJlOjpObyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgTWVkaWFEZXZpY2VJbmZvOjpL
aW5kIHRvTWVkaWFEZXZpY2VJbmZvS2luZChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lOgorICAgICAgICByZXR1cm4gTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpB
dWRpb2lucHV0OworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoK
KyAgICAgICAgcmV0dXJuIE1lZGlhRGV2aWNlSW5mbzo6S2luZDo6QXVkaW9vdXRwdXQ7CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJldHVybiBNZWRpYURldmljZUluZm86OktpbmQ6OlZp
ZGVvaW5wdXQ7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIE1lZGlhRGV2
aWNlSW5mbzo6S2luZDo6QXVkaW9pbnB1dDsKK30KKwogdm9pZCBNZWRpYURldmljZXM6OnJlZnJl
c2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcykKIHsKICAg
ICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CkBAIC0xNzMsNiArMjAwLDcgQEAg
dm9pZCBNZWRpYURldmljZXM6OnJlZnJlc2hEZXZpY2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYgbmV3RGV2aWNlcykKIAogICAgIGJvb2wgY2FuQWNjZXNzQ2FtZXJhID0gY2hlY2tDYW1l
cmFBY2Nlc3MoKmRvY3VtZW50KTsKICAgICBib29sIGNhbkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVj
a01pY3JvcGhvbmVBY2Nlc3MoKmRvY3VtZW50KTsKKyAgICBib29sIGNhbkFjY2Vzc1NwZWFrZXIg
PSBjaGVja1NwZWFrZXJBY2Nlc3MoKmRvY3VtZW50KTsKIAogICAgIFZlY3RvcjxSZWY8TWVkaWFE
ZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1dG8mIG5ld0RldmljZSA6IG5ld0Rldmlj
ZXMpIHsKQEAgLTE4MCw4ICsyMDgsMTAgQEAgdm9pZCBNZWRpYURldmljZXM6OnJlZnJlc2hEZXZp
Y2VzKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcykKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBpZiAoIWNhbkFjY2Vzc0NhbWVyYSAmJiBuZXdEZXZpY2UudHlw
ZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBpZiAoIWNhbkFjY2Vzc1NwZWFrZXIgJiYgbmV3RGV2aWNlLnR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgYXV0byBkZXZpY2VLaW5kID0gbmV3RGV2aWNlLnR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gTWVkaWFEZXZpY2VJbmZvOjpL
aW5kOjpBdWRpb2lucHV0IDogTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpWaWRlb2lucHV0OworICAg
ICAgICBhdXRvIGRldmljZUtpbmQgPSB0b01lZGlhRGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5
cGUoKSk7CiAgICAgICAgIGF1dG8gaW5kZXggPSBtX2RldmljZXMuZmluZE1hdGNoaW5nKFtkZXZp
Y2VLaW5kLCAmbmV3RGV2aWNlXShhdXRvJiBvbGREZXZpY2UpIHsKICAgICAgICAgICAgIHJldHVy
biBvbGREZXZpY2UtPmRldmljZUlkKCkgPT0gbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmIG9s
ZERldmljZS0+a2luZCgpID09IGRldmljZUtpbmQ7CiAgICAgICAgIH0pOwpAQCAtMTkwLDcgKzIy
MCw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpyZWZyZXNoRGV2aWNlcyhjb25zdCBWZWN0b3I8Q2Fw
dHVyZURldmljZT4mIG5ld0RldmljZXMpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKG5ld0Rl
dmljZS5sYWJlbCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIG5ld0RldmljZS5ncm91cElk
KCksIGRldmljZUtpbmQpKTsKKyAgICAgICAgYXV0byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91
cElkKCksIG1faWRIYXNoU2FsdCk7CisgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNl
SW5mbzo6Y3JlYXRlKG5ld0RldmljZS5sYWJlbCgpLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCks
IFdURk1vdmUoZ3JvdXBJZCksIGRldmljZUtpbmQpKTsKICAgICB9CiAgICAgbV9kZXZpY2VzID0g
V1RGTW92ZShkZXZpY2VzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IDgyMDdmYzk5ZTg3Y2QwNWNiNGQwN2NlODQ3OWU3
YTNjNmQ3NjEwNTYuLmJlNWQ2YjhmYjVkMWU0M2U1ODM5MTQ5NmRkNDFkYTcwN2I5Yjg4OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aApAQCAtMTI3LDYgKzEyNyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xpc3RlbmluZ0ZvckRl
dmljZUNoYW5nZXMgeyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+
PiBtX2RldmljZXM7CisgICAgU3RyaW5nIG1faWRIYXNoU2FsdDsKIAogICAgIE9wdGlvblNldDxH
ZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVudEdlc3R1cmU7CiAg
ICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJlVG9rZW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcAppbmRleCAyYjliZDM2MjcyYWU4OTJiMWQzYjc3ODJlODk3MjNhZjNkMTlhNjk2Li5h
MjUxODFlNjMwNjY2ZmY2MDE2MTQ0MDU5ZmZiYjE2MzllOGJmMWNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAK
QEAgLTQyOSw2ICs0MjksNyBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNl
Q2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICAgICAgaWYgKHNv
dXJjZS5pc1Byb2R1Y2luZ0RhdGEoKSkKICAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQpAQCAtNTAzLDYgKzUwNCw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRl
VG9QYWdlTXV0ZWRTdGF0ZSgpCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpX
aW5kb3c6CiAgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYg
TWVkaWFQcm9kdWNlcjo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zl
YXR1cmVQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcApp
bmRleCBiODRlZmY4NDE3MzFjZjIzYTNkNzAxNzM1ZDQ4NTQwMzhiYmYyY2Q0Li4wMjNmYmM0OTJl
NDEwMzE2NjI2YzdmN2JlNDI1NThiMDI0Mzc3ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVy
ZVBvbGljeS5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIHBvbGljeVR5
cGVOYW1lKEZlYXR1cmVQb2xpY3k6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuICJDYW1lcmEi
OwogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6TWljcm9waG9uZToKICAgICAgICAgcmV0
dXJuICJNaWNyb3Bob25lIjsKKyAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OlNwZWFrZXJT
ZWxlY3Rpb246CisgICAgICAgIHJldHVybiAiU3BlYWtlclNlbGVjdGlvbiI7CiAgICAgY2FzZSBG
ZWF0dXJlUG9saWN5OjpUeXBlOjpEaXNwbGF5Q2FwdHVyZToKICAgICAgICAgcmV0dXJuICJEaXNw
bGF5Q2FwdHVyZSI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpTeW5jWEhSOgpAQCAt
MTU1LDYgKzE1Nyw3IEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICBGZWF0dXJlUG9saWN5
IHBvbGljeTsKICAgICBib29sIGlzQ2FtZXJhSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29s
IGlzTWljcm9waG9uZUluaXRpYWxpemVkID0gZmFsc2U7CisgICAgYm9vbCBpc1NwZWFrZXJTZWxl
Y3Rpb25Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNEaXNwbGF5Q2FwdHVyZUluaXRp
YWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc1N5bmNYSFJJbml0aWFsaXplZCA9IGZhbHNlOwog
ICAgIGJvb2wgaXNGdWxsc2NyZWVuSW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTE3Myw2ICsxNzYs
MTEgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1
bWVudCwgcG9saWN5Lm1fbWljcm9waG9uZVJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDExKSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRo
KCJzcGVha2VyLXNlbGVjdGlvbiIpKSB7CisgICAgICAgICAgICBpc1NwZWFrZXJTZWxlY3Rpb25J
bml0aWFsaXplZCA9IHRydWU7CisgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xp
Y3kubV9zcGVha2VyU2VsZWN0aW9uUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTgpKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoImRp
c3BsYXktY2FwdHVyZSIpKSB7CiAgICAgICAgICAgICBpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6
ZWQgPSB0cnVlOwogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZGlz
cGxheUNhcHR1cmVSdWxlLCBpdGVtLnN1YnN0cmluZygxNikpOwpAQCAtMTgwLDcgKzE4OCw3IEBA
IEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS5zdGFy
dHNXaXRoKCJzeW5jLXhociIpKSB7CiAgICAgICAgICAgICBpc1N5bmNYSFJJbml0aWFsaXplZCA9
IHRydWU7Ci0gICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9zeW5jWEhS
UnVsZSwgaXRlbS5zdWJzdHJpbmcoOCkpOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVu
dCwgcG9saWN5Lm1fc3luY1hIUlJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDkpKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoImZ1bGxz
Y3JlZW4iKSkgewpAQCAtMTk3LDEyICsyMDUsMTMgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9s
aWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50Jgog
I2VuZGlmCiAgICAgfQogCi0gICAgLy8gQnkgZGVmYXVsdCwgY2FtZXJhLCBtaWNyb3Bob25lLCBk
aXNwbGF5LWNhcHR1cmUsIGZ1bGxzY3JlZW4gYW5kCi0gICAgLy8geHItc3BhdGlhbC10cmFja2lu
ZyBwb2xpY3kgaXMgJ3NlbGYnLgorICAgIC8vIEJ5IGRlZmF1bHQsIGNhbWVyYSwgbWljcm9waG9u
ZSwgc3BlYWtlci1zZWxlY3Rpb24sIGRpc3BsYXktY2FwdHVyZSwgZnVsbHNjcmVlbiBhbmQgeHIt
c3BhdGlhbC10cmFja2luZyBwb2xpY3kgaXMgJ3NlbGYnLgogICAgIGlmICghaXNDYW1lcmFJbml0
aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1fY2FtZXJhUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9j
dW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogICAgIGlmICghaXNNaWNyb3Bob25lSW5p
dGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX21pY3JvcGhvbmVSdWxlLmFsbG93ZWRMaXN0LmFk
ZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CisgICAgaWYgKCFpc1NwZWFrZXJT
ZWxlY3Rpb25Jbml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1fc3BlYWtlclNlbGVjdGlvblJ1
bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICAg
ICBpZiAoIWlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1fZGlz
cGxheUNhcHR1cmVSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LmRhdGEoKSk7CiAjaWYgRU5BQkxFKFdFQlhSKQpAQCAtMjM4LDYgKzI0Nyw4IEBAIGJvb2wgRmVh
dHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBv
cmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9j
YW1lcmFSdWxlLCBvcmlnaW4pOwogICAgIGNhc2UgVHlwZTo6TWljcm9waG9uZToKICAgICAgICAg
cmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX21pY3JvcGhvbmVSdWxlLCBvcmlnaW4p
OworICAgIGNhc2UgVHlwZTo6U3BlYWtlclNlbGVjdGlvbjoKKyAgICAgICAgcmV0dXJuIGlzQWxs
b3dlZEJ5RmVhdHVyZVBvbGljeShtX3NwZWFrZXJTZWxlY3Rpb25SdWxlLCBvcmlnaW4pOwogICAg
IGNhc2UgVHlwZTo6RGlzcGxheUNhcHR1cmU6CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZl
YXR1cmVQb2xpY3kobV9kaXNwbGF5Q2FwdHVyZVJ1bGUsIG9yaWdpbik7CiAgICAgY2FzZSBUeXBl
OjpTeW5jWEhSOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAppbmRleCAyOWU1NzExYTZi
MWIyNWEzNTc0ZTA2Zjk1OWFjZjIxY2VlNDIzNGUxLi5iMjRiZTgyYWZhZDNjOGZlMjA3NDM0NzQ2
MTI3Y2JhZGMwZDkxMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQ
b2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApAQCAtNDEs
NiArNDEsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAgICAgQ2FtZXJh
LAogICAgICAgICBNaWNyb3Bob25lLAorICAgICAgICBTcGVha2VyU2VsZWN0aW9uLAogICAgICAg
ICBEaXNwbGF5Q2FwdHVyZSwKICAgICAgICAgU3luY1hIUiwKICAgICAgICAgRnVsbHNjcmVlbiwK
QEAgLTU5LDYgKzYwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9jYW1l
cmFSdWxlOwogICAgIEFsbG93UnVsZSBtX21pY3JvcGhvbmVSdWxlOworICAgIEFsbG93UnVsZSBt
X3NwZWFrZXJTZWxlY3Rpb25SdWxlOwogICAgIEFsbG93UnVsZSBtX2Rpc3BsYXlDYXB0dXJlUnVs
ZTsKICAgICBBbGxvd1J1bGUgbV9zeW5jWEhSUnVsZTsKICAgICBBbGxvd1J1bGUgbV9mdWxsc2Ny
ZWVuUnVsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA3YzA3YWZjMWIzZmE4YjU4
NDNkYmJjZTIzZjZjNTFkZTk2ZGJiMjAzLi5lOWQyMDNhODUxYjJiMjJhNzY2ODU1MzIyMTYxNWNi
YTYyY2JmNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04MjIsNiArODIyLDkg
QEAgZm9yY2VQZW5kaW5nV2ViR0xQb2xpY3k6CiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5Ogog
ICB0eXBlOiBTdHJpbmcKIAorZXhwb3NlU3BlYWtlcnNFbmFibGVkOgorICBpbml0aWFsOiBmYWxz
ZQorCiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0b3J5OgogICB0eXBlOiBTdHJp
bmcKICAgY29uZGl0aW9uYWw6IE1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCmluZGV4IDdhMTdjYmM1YzAyYjRm
M2Y0NTA2ODFlZTk3YWU5NmRiNWMxNjlhZTIuLjRhNDhhOTQzYTZlMzU2YmJhNDg3NWMyNGM1NTkz
ZmU5NmM0MzliNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0NhcHR1cmVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9DYXB0dXJlRGV2aWNlLmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDYXB0dXJlRGV2aWNlIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIERldmlj
ZVR5cGUgeyBVbmtub3duLCBNaWNyb3Bob25lLCBDYW1lcmEsIFNjcmVlbiwgV2luZG93IH07Cisg
ICAgZW51bSBjbGFzcyBEZXZpY2VUeXBlIHsgVW5rbm93biwgTWljcm9waG9uZSwgU3BlYWtlciwg
Q2FtZXJhLCBTY3JlZW4sIFdpbmRvdyB9OwogCiAgICAgQ2FwdHVyZURldmljZShjb25zdCBTdHJp
bmcmIHBlcnNpc3RlbnRJZCwgRGV2aWNlVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCBTdHJpbmcmIGdyb3VwSWQgPSBlbXB0eVN0cmluZygpKQogICAgICAgICA6IG1fcGVyc2lz
dGVudElkKHBlcnNpc3RlbnRJZCkKQEAgLTQ5LDEyICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhaXJQb2RzKE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJBaXJQb2RzIikpOwogCi0gICAgICAgIGlmIChtX3R5cGUgPT0gRGV2aWNl
VHlwZTo6TWljcm9waG9uZSAmJiBtX2xhYmVsLmNvbnRhaW5zKGFpclBvZHMpKQorICAgICAgICBp
ZiAoKG1fdHlwZSA9PSBEZXZpY2VUeXBlOjpNaWNyb3Bob25lIHx8IG1fdHlwZSA9PSBEZXZpY2VU
eXBlOjpTcGVha2VyKSAmJiBtX2xhYmVsLmNvbnRhaW5zKGFpclBvZHMpKQogICAgICAgICAgICAg
cmV0dXJuIGFpclBvZHM7CiAKICAgICAgICAgcmV0dXJuIG1fbGFiZWw7CiAgICAgfQogCisgICAg
dm9pZCBzZXRHcm91cElkKGNvbnN0IFN0cmluZyYgZ3JvdXBJZCkgeyBtX2dyb3VwSWQgPSBncm91
cElkOyB9CiAgICAgY29uc3QgU3RyaW5nJiBncm91cElkKCkgY29uc3QgeyByZXR1cm4gbV9ncm91
cElkOyB9CiAKICAgICBEZXZpY2VUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
QEAgLTEyNyw2ICsxMjgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU+IHsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZSwKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6VW5rbm93biwKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZSwKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3BlYWtlciwKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
Q2FtZXJhLAogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3Jl
ZW4sCiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCAwZGJmMWRjNDcwNTY4ODY2MzYx
OTIzNTg3M2UzZmU2NjcyNzQ4M2U4Li5jMWQ5NmFiMWFjYTllZTYzZGNmYjRmZmViMmIyNmE4NTUw
MmM1Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTE5LDYgKzEx
OSwxMCBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKICAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRldmljZSk7CiAgICAgfQorICAgIGZvciAoYXV0byYg
ZGV2aWNlIDogYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNwZWFrZXJEZXZpY2VzKCkpIHsKKyAgICAg
ICAgaWYgKGRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRldmlj
ZSk7CisgICAgfQogICAgIGZvciAoYXV0byYgZGV2aWNlIDogdmlkZW9DYXB0dXJlRmFjdG9yeSgp
LnZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpKSB7CiAgICAgICAg
IGlmIChkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXZpY2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYTMyNjI4YjdhMTYwOTM1YWNi
OGI3NTMxMTNmODM4NTUzYTZlYjhhOC4uNDQzMDU5ZjcyY2VjZTg2NGE5YmFmNDcxNDVlYzg1ZTNh
YzEyNGRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC02MCw2ICs2MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0
OwogICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyopID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgPSAwOworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDU5YWIzODQwZmQ3MzZjYTE0NTAxNmM3
ZjY2MGVjYTNiMDkwMzI0ODAuLmE3OWMwOWNkOTk0YWUwZTE5ZjJlY2VjM2EwZWUzNTQ3YzE0Njgw
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwCkBAIC01OSw2ICs1OSw5IEBAIHB1YmxpYzoKICAgICB9CiBwcml2YXRlOgogICAgIENh
cHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyBy
ZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7IH0K
KyAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3Qg
eyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQorCisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+
IG1fc3BlYWtlckRldmljZXM7CiB9OwogCiBzdGF0aWMgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeSYgbGliV2ViUlRDQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Np
b25DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vaW9zL0FWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaAppbmRleCBhYTVh
Y2UzMGM4MDhiMjFkODY5NDU1NjM0MTk2ZTQwYWM1MmZmN2M4Li4zOTk2MTY4NzljNTFmYTg4NGNh
NzhiMzA4ZWFkM2Y3ZjM3NDM0ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lv
bkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyJiBzaW5nbGV0b24oKTsKIAog
ICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgY2FwdHVyZURldmljZXMoKSBmaW5hbDsK
KyAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3Qg
eyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+
IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUs
IGNvbnN0IFN0cmluZyYpOwogCiAgICAgVmVjdG9yPEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmlj
ZT4mIGF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VzKCk7CkBAIC01Nyw2ICs1OCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZWZyZXNoQXVkaW9DYXB0dXJlRGV2aWNlcygpOwogCiAgICAgT3B0aW9u
YWw8VmVjdG9yPENhcHR1cmVEZXZpY2U+PiBtX2RldmljZXM7CisgICAgVmVjdG9yPENhcHR1cmVE
ZXZpY2U+IG1fc3BlYWtlckRldmljZXM7CiAgICAgT3B0aW9uYWw8VmVjdG9yPEFWQXVkaW9TZXNz
aW9uQ2FwdHVyZURldmljZT4+IG1fYXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZXM7CiAgICAgUmV0
YWluUHRyPFdlYkFWQXVkaW9TZXNzaW9uQXZhaWxhYmxlSW5wdXRzTGlzdGVuZXI+IG1fbGlzdGVu
ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCmluZGV4IDA2ODQ2ODNh
NTA4ZDg3OGRlNDNlOThjMzdmOTJmYzM5MDkyYTc1Y2UuLmZlNjE3YjJiZjE4OTA0YzUzMDIyMjg5
OTBkYjk0M2JiNjAzYTZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAK
QEAgLTY1LDIyICs2NSwzOCBAQCBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZvKHVpbnQzMl90IGRl
dmljZUlELCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbAogICAgIHJldHVybiB0
cnVlOwogfQogCi1PcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9DYXB0
dXJlRGV2aWNlOjpjcmVhdGUodWludDMyX3QgZGV2aWNlSUQpCitPcHRpb25hbDxDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUodWludDMyX3QgZGV2
aWNlSUQsIERldmljZVR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBncm91cElEKQogeworICAgIEFT
U0VSVCh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgfHwgdHlw
ZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKTsKICAgICBTdHJpbmcgcGVy
c2lzdGVudElEOwogICAgIFN0cmluZyBsYWJlbDsKICAgICBpZiAoIWdldERldmljZUluZm8oZGV2
aWNlSUQsIHBlcnNpc3RlbnRJRCwgbGFiZWwpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogCi0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UoZGV2aWNlSUQsIHBlcnNpc3Rl
bnRJRCwgbGFiZWwpOworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlKGRldmljZUlE
LCBwZXJzaXN0ZW50SUQsIHR5cGUsIGxhYmVsLCBncm91cElELmlzTnVsbCgpID8gcGVyc2lzdGVu
dElEIDogZ3JvdXBJRCk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OkNvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UodWludDMyX3QgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElE
LCBjb25zdCBTdHJpbmcmIGxhYmVsKQotICAgIDogQ2FwdHVyZURldmljZShwZXJzaXN0ZW50SUQs
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGxhYmVsKQorQ29yZUF1ZGlv
Q2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZSh1aW50MzJfdCBkZXZpY2VJRCwg
Y29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIERldmljZVR5cGUgZGV2aWNlVHlwZSwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBncm91cElEKQorICAgIDogQ2FwdHVyZURldmlj
ZShwZXJzaXN0ZW50SUQsIGRldmljZVR5cGUsIGxhYmVsLCBncm91cElEKQogICAgICwgbV9kZXZp
Y2VJRChkZXZpY2VJRCkKIHsKIH0KIAorVmVjdG9yPEF1ZGlvRGV2aWNlSUQ+IENvcmVBdWRpb0Nh
cHR1cmVEZXZpY2U6OnJlbGF0ZWRBdWRpb0RldmljZUlEcyhBdWRpb0RldmljZUlEIGRldmljZUlE
KQoreworICAgIFVJbnQzMiBzaXplID0gMDsKKyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVz
cyBwcm9wZXJ0eSA9IHsga0F1ZGlvRGV2aWNlUHJvcGVydHlSZWxhdGVkRGV2aWNlcywga0F1ZGlv
RGV2aWNlUHJvcGVydHlTY29wZU91dHB1dCwga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFz
dGVyIH07CisgICAgT1NTdGF0dXMgZXJyb3IgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YVNp
emUoZGV2aWNlSUQsICZwcm9wZXJ0eSwgMCwgMCwgJnNpemUpOworICAgIGlmIChlcnJvciB8fCAh
c2l6ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3RvcjxBdWRpb0RldmljZUlEPiBk
ZXZpY2VzKHNpemUgLyBzaXplb2YoQXVkaW9EZXZpY2VJRCkpOworICAgIGVycm9yID0gQXVkaW9P
YmplY3RHZXRQcm9wZXJ0eURhdGEoZGV2aWNlSUQsICZwcm9wZXJ0eSwgMCwgbnVsbHB0ciwgJnNp
emUsIGRldmljZXMuZGF0YSgpKTsKKyAgICBpZiAoZXJyb3IpCisgICAgICAgIHJldHVybiB7IH07
CisgICAgcmV0dXJuIGRldmljZXM7Cit9CisKIFJldGFpblB0cjxDTUNsb2NrUmVmPiBDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VDbG9jaygpCiB7CiAgICAgaWYgKG1fZGV2aWNlQ2xvY2sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaAppbmRleCA5NGM5NDk0OTUyNGU1Mjk0NzE0
ZDgwMjFkNmE5ZmE1NzY5MTJhMWNkLi41Mjg4N2VjMjIzZTczMWIwOTdlYTA0NjI4YTYxYmM0NzVj
OGNjMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgKQEAgLTM3LDE2ICszNywx
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVEZXZpY2Ug
OiBwdWJsaWMgQ2FwdHVyZURldmljZSB7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgT3B0aW9uYWw8
Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gY3JlYXRlKHVpbnQzMl90KTsKKyAgICBzdGF0aWMgT3B0
aW9uYWw8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gY3JlYXRlKHVpbnQzMl90LCBEZXZpY2VUeXBl
LCBjb25zdCBTdHJpbmcmIGdyb3VwSUQpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVE
ZXZpY2UoKSA9IGRlZmF1bHQ7CiAKICAgICB1aW50MzJfdCBkZXZpY2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGV2aWNlSUQ7IH0KICAgICBSZXRhaW5QdHI8Q01DbG9ja1JlZj4gZGV2aWNlQ2xvY2so
KTsKICAgICBib29sIGlzQWxpdmUoKTsKIAorICAgIHN0YXRpYyBWZWN0b3I8QXVkaW9EZXZpY2VJ
RD4gcmVsYXRlZEF1ZGlvRGV2aWNlSURzKEF1ZGlvRGV2aWNlSUQpOworCiBwcml2YXRlOgotICAg
IENvcmVBdWRpb0NhcHR1cmVEZXZpY2UodWludDMyX3QsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVu
dElELCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlKHVp
bnQzMl90LCBjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgRGV2aWNlVHlwZSwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBncm91cElEKTsKIAogICAgIHVpbnQzMl90IG1fZGV2
aWNlSUQgeyAwIH07CiAgICAgUmV0YWluUHRyPENNQ2xvY2tSZWY+IG1fZGV2aWNlQ2xvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCBmN2U2
NGYxMGJjY2Y5ZGIzOTk4ZmQ3MDAxMzY3ZTczYTc2NTg0MDYwLi43YmU2MWJjYjY4Mzk3ODRkNmY5
MTI1NDE0ODUxNTFiMzU4OGQ0NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXImIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKQogY29u
c3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6
Y2FwdHVyZURldmljZXMoKQogewogICAgIGNvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKCk7Ci0gICAg
cmV0dXJuIG1fZGV2aWNlczsKKyAgICByZXR1cm4gbV9jYXB0dXJlRGV2aWNlczsKIH0KIAogT3B0
aW9uYWw8Q2FwdHVyZURldmljZT4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OmNhcHR1
cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKQEAgLTY1LDEwICs2NSw5IEBAIE9wdGlvbmFsPENhcHR1
cmVEZXZpY2U+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlV2l0
aFBlcnNpc3RlCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotc3RhdGljIGJvb2wgZGV2
aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlvT2JqZWN0SUQgZGV2aWNlSUQpCitzdGF0aWMgYm9vbCBk
ZXZpY2VIYXNTdHJlYW1zKEF1ZGlvT2JqZWN0SUQgZGV2aWNlSUQsIGNvbnN0IEF1ZGlvT2JqZWN0
UHJvcGVydHlBZGRyZXNzJiBhZGRyZXNzKQogewogICAgIFVJbnQzMiBkYXRhU2l6ZSA9IDA7Ci0g
ICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgYWRkcmVzcyA9IHsga0F1ZGlvRGV2aWNlUHJv
cGVydHlTdHJlYW1Db25maWd1cmF0aW9uLCBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlSW5wdXQs
IGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OwogICAgIGF1dG8gZXJyID0gQXVk
aW9PYmplY3RHZXRQcm9wZXJ0eURhdGFTaXplKGRldmljZUlELCAmYWRkcmVzcywgMCwgbnVsbHB0
ciwgJmRhdGFTaXplKTsKICAgICBpZiAoZXJyIHx8ICFkYXRhU2l6ZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtODAsNiArNzksMTggQEAgc3RhdGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJl
YW1zKEF1ZGlvT2JqZWN0SUQgZGV2aWNlSUQpCiAgICAgcmV0dXJuICFlcnIgJiYgYnVmZmVyTGlz
dC0+bU51bWJlckJ1ZmZlcnM7CiB9CiAKK3N0YXRpYyBib29sIGRldmljZUhhc0lucHV0U3RyZWFt
cyhBdWRpb09iamVjdElEIGRldmljZUlEKQoreworICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRy
ZXNzIGFkZHJlc3MgPSB7IGtBdWRpb0RldmljZVByb3BlcnR5U3RyZWFtQ29uZmlndXJhdGlvbiwg
a0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZUlucHV0LCBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1l
bnRNYXN0ZXIgfTsKKyAgICByZXR1cm4gZGV2aWNlSGFzU3RyZWFtcyhkZXZpY2VJRCwgYWRkcmVz
cyk7Cit9CisKK3N0YXRpYyBib29sIGRldmljZUhhc091dHB1dFN0cmVhbXMoQXVkaW9PYmplY3RJ
RCBkZXZpY2VJRCkKK3sKKyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBhZGRyZXNzID0g
eyBrQXVkaW9EZXZpY2VQcm9wZXJ0eVN0cmVhbUNvbmZpZ3VyYXRpb24sIGtBdWRpb0RldmljZVBy
b3BlcnR5U2NvcGVPdXRwdXQsIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9Owor
ICAgIHJldHVybiBkZXZpY2VIYXNTdHJlYW1zKGRldmljZUlELCBhZGRyZXNzKTsKK30KKwogc3Rh
dGljIGJvb2wgaXNWYWxpZENhcHR1cmVEZXZpY2UoY29uc3QgQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZSYgZGV2aWNlKQogewogICAgIC8vIElnbm9yZSBvdXRwdXQgZGV2aWNlcyB0aGF0IGhhdmUgaW5w
dXQgb25seSBmb3IgZWNobyBjYW5jZWxsYXRpb24uCkBAIC0xMjYsNyArMTM3LDcgQEAgc3RhdGlj
IGlubGluZSBPcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBnZXREZWZhdWx0Q2FwdHVy
ZUlucHV0RGV2aWNlKCkKIAogICAgIGlmIChlcnIgIT0gbm9FcnIgfHwgZGV2aWNlSUQgPT0ga0F1
ZGlvRGV2aWNlVW5rbm93bikKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gQ29yZUF1
ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKGRldmljZUlEKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlv
Q2FwdHVyZURldmljZTo6Y3JlYXRlKGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpNaWNyb3Bob25lLCB7IH0pOwogfQogCiBWZWN0b3I8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4m
IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjb3JlQXVkaW9DYXB0dXJlRGV2aWNlcygp
CkBAIC0xNjgsNiArMTc5LDEzIEBAIE9wdGlvbmFsPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IENv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjb3JlQXVkaW9EZXZpY2VXCiAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGhhc0RldmljZShjb25zdCBW
ZWN0b3I8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4mIGRldmljZXMsIHVpbnQzMl90IGRldmljZUlE
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUpCit7CisgICAgcmV0dXJuIHN0
ZDo6YW55X29mKGRldmljZXMuYmVnaW4oKSwgZGV2aWNlcy5lbmQoKSwgWyZkZXZpY2VJRCwgZGV2
aWNlVHlwZV0oYXV0byYgZGV2aWNlKSB7CisgICAgICAgIHJldHVybiBkZXZpY2UuZGV2aWNlSUQo
KSA9PSBkZXZpY2VJRCAmJiBkZXZpY2UudHlwZSgpID09IGRldmljZVR5cGU7CisgICAgfSk7Cit9
CisKIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnJlZnJlc2hBdWRpb0NhcHR1
cmVEZXZpY2VzKE5vdGlmeUlmRGV2aWNlc0hhdmVDaGFuZ2VkIG5vdGlmeSkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTk1LDIwICsyMTMsNTEgQEAgdm9pZCBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoTm90aWZ5SWZE
ZXZpY2VzSGEKICAgICAgICAgaGF2ZURldmljZUNoYW5nZXMgPSB0cnVlOwogICAgIH0KIAorICAg
IC8vIE1pY3JvcGhvbmVzCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZXZpY2VDb3VudDsg
aSsrKSB7CiAgICAgICAgIEF1ZGlvT2JqZWN0SUQgZGV2aWNlSUQgPSBkZXZpY2VJRHNbaV07Ci0g
ICAgICAgIGlmICghZGV2aWNlSGFzSW5wdXRTdHJlYW1zKGRldmljZUlEKSkKLSAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChzdGQ6OmFueV9vZihtX2NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2VzLmJlZ2luKCksIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMuZW5kKCksIFtkZXZpY2VJ
RF0oYXV0byYgZGV2aWNlKSB7IHJldHVybiBkZXZpY2UuZGV2aWNlSUQoKSA9PSBkZXZpY2VJRDsg
fSkpCisgICAgICAgIGlmICghZGV2aWNlSGFzSW5wdXRTdHJlYW1zKGRldmljZUlEKSB8fCBoYXNE
ZXZpY2UobV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcywgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgYXV0byBkZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVhdGUoZGV2aWNlSUQp
OwotICAgICAgICBpZiAoIWRldmljZSB8fCAhaXNWYWxpZENhcHR1cmVEZXZpY2UoZGV2aWNlLnZh
bHVlKCkpKQorICAgICAgICBhdXRvIG1pY3JvcGhvbmVEZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJl
RGV2aWNlOjpjcmVhdGUoZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUsIHsgfSk7CisgICAgICAgIGlmIChtaWNyb3Bob25lRGV2aWNlICYmIGlzVmFsaWRDYXB0
dXJlRGV2aWNlKG1pY3JvcGhvbmVEZXZpY2UudmFsdWUoKSkpIHsKKyAgICAgICAgICAgIG1fY29y
ZUF1ZGlvQ2FwdHVyZURldmljZXMuYXBwZW5kKFdURk1vdmUobWljcm9waG9uZURldmljZS52YWx1
ZSgpKSk7CisgICAgICAgICAgICBoYXZlRGV2aWNlQ2hhbmdlcyA9IHRydWU7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICAvLyBTcGVha2VycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2
aWNlQ291bnQ7IGkrKykgeworICAgICAgICBBdWRpb09iamVjdElEIGRldmljZUlEID0gZGV2aWNl
SURzW2ldOworCisgICAgICAgIGlmICghZGV2aWNlSGFzT3V0cHV0U3RyZWFtcyhkZXZpY2VJRCkg
fHwgaGFzRGV2aWNlKG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMsIGRldmljZUlELCBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMuYXBwZW5kKFdURk1vdmUoZGV2aWNlLnZh
bHVlKCkpKTsKLSAgICAgICAgaGF2ZURldmljZUNoYW5nZXMgPSB0cnVlOworICAgICAgICBTdHJp
bmcgZ3JvdXBJRDsKKyAgICAgICAgZm9yIChhdXRvIHJlbGF0ZWREZXZpY2VJRCA6IENvcmVBdWRp
b0NhcHR1cmVEZXZpY2U6OnJlbGF0ZWRBdWRpb0RldmljZUlEcyhkZXZpY2VJRCkpIHsKKyAgICAg
ICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgewor
ICAgICAgICAgICAgICAgIGlmIChkZXZpY2UuZGV2aWNlSUQoKSA9PSByZWxhdGVkRGV2aWNlSUQg
JiYgZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25l
KSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwSUQgPSBkZXZpY2UucGVyc2lzdGVudElkKCk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZTo6Y3JlYXRlKGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVh
a2VyLCBncm91cElEKTsKKyAgICAgICAgaWYgKGRldmljZSkgeworICAgICAgICAgICAgLy8gSWYg
dGhlcmUgaXMgbm8gZ3JvdXBJRCwgcmVsYXRlIGRldmljZXMgaWYgdGhlIGxhYmVsIGlzIG1hdGNo
aW5nLgorICAgICAgICAgICAgaWYgKGdyb3VwSUQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8mIGV4aXN0aW5nRGV2aWNlIDogbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcykg
eworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdEZXZpY2UubGFiZWwoKSA9PSBkZXZp
Y2UtPmxhYmVsKCkgJiYgZXhpc3RpbmdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6Ok1pY3JvcGhvbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZS0+
c2V0R3JvdXBJZChleGlzdGluZ0RldmljZS5wZXJzaXN0ZW50SWQoKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMu
YXBwZW5kKFdURk1vdmUoZGV2aWNlLnZhbHVlKCkpKTsKKyAgICAgICAgICAgIGhhdmVEZXZpY2VD
aGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGZvciAoYXV0byYgZGV2aWNl
IDogbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgewpAQCAtMjIyLDE3ICsyNzEsMjAgQEAgdm9p
ZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmlj
ZXMoTm90aWZ5SWZEZXZpY2VzSGEKICAgICBpZiAoIWhhdmVEZXZpY2VDaGFuZ2VzKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2RldmljZXMgPSBWZWN0b3I8Q2FwdHVyZURldmljZT4oKTsKLQot
ICAgIGZvciAoYXV0byAmZGV2aWNlIDogbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgewotICAg
ICAgICBDYXB0dXJlRGV2aWNlIGNhcHR1cmVEZXZpY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UubGFiZWwoKSk7Cisg
ICAgbV9jYXB0dXJlRGV2aWNlcy5jbGVhcigpOworICAgIG1fc3BlYWtlckRldmljZXMuY2xlYXIo
KTsKKyAgICBmb3IgKGF1dG8mIGRldmljZSA6IG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMpIHsK
KyAgICAgICAgQ2FwdHVyZURldmljZSBjYXB0dXJlRGV2aWNlIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpLCBkZXZpY2UudHlwZSgpLCBkZXZpY2UubGFiZWwoKSwgZGV2aWNlLmdyb3VwSWQoKSB9Owog
ICAgICAgICBjYXB0dXJlRGV2aWNlLnNldEVuYWJsZWQoZGV2aWNlLmVuYWJsZWQoKSk7Ci0gICAg
ICAgIG1fZGV2aWNlcy5hcHBlbmQoY2FwdHVyZURldmljZSk7CisgICAgICAgIGlmIChkZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCisgICAgICAg
ICAgICBtX2NhcHR1cmVEZXZpY2VzLmFwcGVuZChXVEZNb3ZlKGNhcHR1cmVEZXZpY2UpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbV9zcGVha2VyRGV2aWNlcy5hcHBlbmQoV1RGTW92ZShj
YXB0dXJlRGV2aWNlKSk7CiAgICAgfQogCiAgICAgaWYgKG5vdGlmeSA9PSBOb3RpZnlJZkRldmlj
ZXNIYXZlQ2hhbmdlZDo6Tm90aWZ5KSB7CiAgICAgICAgIGRldmljZUNoYW5nZWQoKTsKLSAgICAg
ICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmRldmljZXNDaGFu
Z2VkKG1fZGV2aWNlcyk7CisgICAgICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojpz
aW5nbGV0b24oKS5kZXZpY2VzQ2hhbmdlZChtX2NhcHR1cmVEZXZpY2VzKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggZjQ5MWFh
YWRhMjlmMWNjYzk1NzM4ZjIyMzFiMTFhNGYzYzdkM2NhNS4uNWU5NjYyYmY0Mjc1OWI2ZTVjZTI5
OWQ1MzQ1ZGNmYjM1NWFhYjM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPENhcHR1
cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgT3B0aW9uYWw8Q29yZUF1ZGlvQ2FwdHVy
ZURldmljZT4gY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChjb25zdCBTdHJpbmcmKTsKKyAgICBjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgeyByZXR1cm4g
bV9zcGVha2VyRGV2aWNlczsgfQogCiBwcml2YXRlOgogICAgIENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkgPSBkZWZhdWx0OwpAQCAtNTcsNyArNTgsOCBAQCBwcml2YXRlOgogICAgIGVu
dW0gY2xhc3MgTm90aWZ5SWZEZXZpY2VzSGF2ZUNoYW5nZWQgeyBOb3RpZnksIERvTm90Tm90aWZ5
IH07CiAgICAgdm9pZCByZWZyZXNoQXVkaW9DYXB0dXJlRGV2aWNlcyhOb3RpZnlJZkRldmljZXNI
YXZlQ2hhbmdlZCk7CiAKLSAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kZXZpY2VzOworICAg
IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBtX2NhcHR1cmVEZXZpY2VzOworICAgIFZlY3RvcjxDYXB0
dXJlRGV2aWNlPiBtX3NwZWFrZXJEZXZpY2VzOwogICAgIFZlY3RvcjxDb3JlQXVkaW9DYXB0dXJl
RGV2aWNlPiBtX2NvcmVBdWRpb0NhcHR1cmVEZXZpY2VzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDVjNTEyOGVhMzBkNzgxYzkxMTlmNDUxMGNjMDQzOWNm
NmM0ZDRkYzguLjIyMGNjMGQ4ZjZhZTk0OTJhYjE4NTg5ZmE5NTI5MGNlOTVkNDY3MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTY5MSw2ICs2OTEsMTUgQEAgQ2Fw
dHVyZURldmljZU1hbmFnZXImIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjphdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkKICNlbmRpZgogfQogCitjb25zdCBWZWN0b3I8Q2FwdHVyZURl
dmljZT4mIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzcGVha2VyRGV2aWNlcygpIGNv
bnN0Cit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc3BlYWtlckRldmljZXMoKTsKKyNlbHNlCisgICAgcmV0
dXJuIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnNwZWFr
ZXJEZXZpY2VzKCk7CisjZW5kaWYKK30KKwogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFj
dG9yeTo6ZGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2Vz
KQogewogICAgIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnVuaXQoKS5kZXZpY2VzQ2hhbmdlZChkZXZp
Y2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGFlMDc2NzBkMDM1M2Ey
ZTljODJlMGIzMjhlMmY2Y2M5NWVhYWJmMWMuLjkyYWY1NWMyNzI5ZGMwNDkyMGUzOTMxOGNiNDM4
ZmZlNTZjNGY2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtMTIzLDYg
KzEyMyw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbDsKKyAgICBjb25zdCBWZWN0b3I8Q2FwdHVy
ZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcApp
bmRleCA4ZWUzNjQ0MDJlYzFlZThiNmIyMzhmNWM1MDNkNDIwMzg5YTI2OTI3Li5mN2VjZGM4YWUw
MGFjMDk2NmUxN2E3MmQ5MWMxMjcyZDE2NGViNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2Fw
dHVyZU1hbmFnZXJDb2NvYS5jcHAKQEAgLTEwNSw2ICsxMDUsNyBAQCBPcHRpb25hbDxDYXB0dXJl
RGV2aWNlPiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6Y2FwdHVyZURldmljZVdpdGhQZXJz
aXN0ZW50SQogCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CiAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApp
bmRleCBjMTQ4Yzg1YjkzOTUzMDU2YmM1MjMyY2IxNzEwNjViZDUyMmFlNjI4Li45ODE5NGQxNDNl
MGQyY2ZkMGI5NjE0MGViZTc2YWYwMzFmYTE4MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EuY3BwCkBAIC02Nyw2ICs2Nyw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAgICAgICAg
IHJldHVybiBjcmVhdGUoV2luZG93RGlzcGxheUNhcHR1cmVyTWFjOjpjcmVhdGUoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBjb25zdHJhaW50cyk7CiAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYToKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja01lZGlhRGV2aWNlLmgKaW5kZXggNTBlNmY0MGE0MzY3MjhiYzQ2YmRlYWQwOGQ4ZTE3
MGM5NjNlMWNhMS4uZTlhNTg2YTI3Y2RiMWJmMWNkNjljNDEwZDQ3NjA2ZGRiYjlkYjNkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYURldmljZS5oCkBAIC01
NSw2ICs1NSwzMyBAQCBzdHJ1Y3QgTW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzIHsKICAgICBpbnQg
ZGVmYXVsdFNhbXBsZVJhdGUgeyA0NDEwMCB9OwogfTsKIAorc3RydWN0IE1vY2tTcGVha2VyUHJv
cGVydGllcyB7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCByZWxhdGVk
TWljcm9waG9uZUlkIDw8IHN0YXRpY19jYXN0PGludDMyX3Q+KGRlZmF1bHRTYW1wbGVSYXRlKTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9u
YWw8TW9ja1NwZWFrZXJQcm9wZXJ0aWVzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIE9wdGlvbmFsPGludDMyX3Q+IGRlZmF1bHRTYW1wbGVSYXRlOworICAgICAgICBk
ZWNvZGVyID4+IGRlZmF1bHRTYW1wbGVSYXRlOworICAgICAgICBpZiAoIWRlZmF1bHRTYW1wbGVS
YXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDxTdHJpbmc+IHJlbGF0ZWRNaWNyb3Bob25lSWQ7CisgICAgICAgIGRlY29kZXIgPj4gcmVsYXRl
ZE1pY3JvcGhvbmVJZDsKKyAgICAgICAgaWYgKCFyZWxhdGVkTWljcm9waG9uZUlkKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4gTW9ja1NwZWFrZXJQ
cm9wZXJ0aWVzIHsgV1RGTW92ZSgqcmVsYXRlZE1pY3JvcGhvbmVJZCksICpkZWZhdWx0U2FtcGxl
UmF0ZSB9OworICAgIH0KKworICAgIFN0cmluZyByZWxhdGVkTWljcm9waG9uZUlkOworICAgIGlu
dCBkZWZhdWx0U2FtcGxlUmF0ZSB7IDQ0MTAwIH07Cit9OworCiAvLyBGSVhNRTogQWRkIHN1cHBv
cnQgZm9yIG90aGVyIHByb3BlcnRpZXMuCiBzdHJ1Y3QgTW9ja0NhbWVyYVByb3BlcnRpZXMgewog
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CkBAIC0xMzQsMTMgKzE2MSwyOSBAQCBzdHJ1Y3Qg
TW9ja0Rpc3BsYXlQcm9wZXJ0aWVzIHsKIAogc3RydWN0IE1vY2tNZWRpYURldmljZSB7CiAgICAg
Ym9vbCBpc01pY3JvcGhvbmUoKSBjb25zdCB7IHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PE1vY2tNaWNyb3Bob25lUHJvcGVydGllcz4ocHJvcGVydGllcyk7IH0KKyAgICBib29sIGlzU3Bl
YWtlcigpIGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8TW9ja1NwZWFrZXJQ
cm9wZXJ0aWVzPihwcm9wZXJ0aWVzKTsgfQogICAgIGJvb2wgaXNDYW1lcmEoKSBjb25zdCB7IHJl
dHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE1vY2tDYW1lcmFQcm9wZXJ0aWVzPihwcm9wZXJ0
aWVzKTsgfQogICAgIGJvb2wgaXNEaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxNb2NrRGlzcGxheVByb3BlcnRpZXM+KHByb3BlcnRpZXMpOyB9CiAKKyAgICBD
YXB0dXJlRGV2aWNlIGNhcHR1cmVEZXZpY2UoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGlz
TWljcm9waG9uZSgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2UgeyBwZXJzaXN0
ZW50SWQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGxhYmVsLCBwZXJz
aXN0ZW50SWQgfTsKKyAgICAgICAgaWYgKGlzU3BlYWtlcigpKQorICAgICAgICAgICAgcmV0dXJu
IENhcHR1cmVEZXZpY2UgeyBwZXJzaXN0ZW50SWQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXIsIGxhYmVsLCBzcGVha2VyUHJvcGVydGllcygpLT5yZWxhdGVkTWljcm9waG9uZUlk
IH07CisgICAgICAgIGlmIChpc0NhbWVyYSgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVE
ZXZpY2UgeyBwZXJzaXN0ZW50SWQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSwg
bGFiZWwsIHBlcnNpc3RlbnRJZCB9OworCisgICAgICAgIEFTU0VSVChpc0Rpc3BsYXkoKSk7Cisg
ICAgICAgIHJldHVybiBDYXB0dXJlRGV2aWNlIHsgcGVyc2lzdGVudElkLCBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTY3JlZW4sIGxhYmVsLCBwZXJzaXN0ZW50SWQgfTsKKyAgICB9CisKICAg
ICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUoKSBjb25zdAogICAgIHsKICAgICAgICAg
aWYgKGlzTWljcm9waG9uZSgpKQogICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6Ok1pY3JvcGhvbmU7CisgICAgICAgIGlmIChpc1NwZWFrZXIoKSkKKyAgICAgICAg
ICAgIHJldHVybiBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOwogICAgICAgICBp
ZiAoaXNDYW1lcmEoKSkKICAgICAgICAgICAgIHJldHVybiBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmE7CiAKQEAgLTE0OCw2ICsxOTEsMTEgQEAgc3RydWN0IE1vY2tNZWRpYURldmlj
ZSB7CiAgICAgICAgIHJldHVybiBXVEY6OmdldDxNb2NrRGlzcGxheVByb3BlcnRpZXM+KHByb3Bl
cnRpZXMpLnR5cGU7CiAgICAgfQogCisgICAgY29uc3QgTW9ja1NwZWFrZXJQcm9wZXJ0aWVzKiBz
cGVha2VyUHJvcGVydGllcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gaXNTcGVha2Vy
KCkgPyAmV1RGOjpnZXQ8TW9ja1NwZWFrZXJQcm9wZXJ0aWVzPihwcm9wZXJ0aWVzKSA6IG51bGxw
dHI7CisgICAgfQorCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKQEAgLTE1NiwxMiArMjA0LDE1IEBAIHN0
cnVjdCBNb2NrTWVkaWFEZXZpY2UgewogICAgICAgICBzd2l0Y2hPbihwcm9wZXJ0aWVzLCBbJl0o
Y29uc3QgTW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgICAg
ICBlbmNvZGVyIDw8ICh1aW50OF90KTE7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHByb3BlcnRp
ZXM7Ci0gICAgICAgIH0sIFsmXShjb25zdCBNb2NrQ2FtZXJhUHJvcGVydGllcyYgcHJvcGVydGll
cykgeworICAgICAgICB9LCBbJl0oY29uc3QgTW9ja1NwZWFrZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0
aWVzKSB7CiAgICAgICAgICAgICBlbmNvZGVyIDw8ICh1aW50OF90KTI7CiAgICAgICAgICAgICBl
bmNvZGVyIDw8IHByb3BlcnRpZXM7Ci0gICAgICAgIH0sIFsmXShjb25zdCBNb2NrRGlzcGxheVBy
b3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKKyAgICAgICAgfSwgWyZdKGNvbnN0IE1vY2tDYW1lcmFQ
cm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICBlbmNvZGVyIDw8ICh1aW50OF90
KTM7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHByb3BlcnRpZXM7CisgICAgICAgIH0sIFsmXShj
b25zdCBNb2NrRGlzcGxheVByb3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIGVu
Y29kZXIgPDwgKHVpbnQ4X3QpNDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcHJvcGVydGllczsK
ICAgICAgICAgfSk7CiAgICAgfQogCkBAIC0xOTcsOCArMjQ4LDEwIEBAIHN0cnVjdCBNb2NrTWVk
aWFEZXZpY2UgewogICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICByZXR1cm4gZGVjb2RlTW9j
a01lZGlhRGV2aWNlPE1vY2tNaWNyb3Bob25lUHJvcGVydGllcz4oZGVjb2RlciwgV1RGTW92ZSgq
cGVyc2lzdGVudElkKSwgV1RGTW92ZSgqbGFiZWwpKTsKICAgICAgICAgY2FzZSAyOgotICAgICAg
ICAgICAgcmV0dXJuIGRlY29kZU1vY2tNZWRpYURldmljZTxNb2NrQ2FtZXJhUHJvcGVydGllcz4o
ZGVjb2RlciwgV1RGTW92ZSgqcGVyc2lzdGVudElkKSwgV1RGTW92ZSgqbGFiZWwpKTsKKyAgICAg
ICAgICAgIHJldHVybiBkZWNvZGVNb2NrTWVkaWFEZXZpY2U8TW9ja1NwZWFrZXJQcm9wZXJ0aWVz
PihkZWNvZGVyLCBXVEZNb3ZlKCpwZXJzaXN0ZW50SWQpLCBXVEZNb3ZlKCpsYWJlbCkpOwogICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlTW9ja01lZGlhRGV2aWNlPE1v
Y2tDYW1lcmFQcm9wZXJ0aWVzPihkZWNvZGVyLCBXVEZNb3ZlKCpwZXJzaXN0ZW50SWQpLCBXVEZN
b3ZlKCpsYWJlbCkpOworICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICByZXR1cm4gZGVjb2Rl
TW9ja01lZGlhRGV2aWNlPE1vY2tEaXNwbGF5UHJvcGVydGllcz4oZGVjb2RlciwgV1RGTW92ZSgq
cGVyc2lzdGVudElkKSwgV1RGTW92ZSgqbGFiZWwpKTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwpAQCAtMjA2LDcgKzI1OSw3IEBAIHN0cnVjdCBNb2NrTWVkaWFEZXZp
Y2UgewogCiAgICAgU3RyaW5nIHBlcnNpc3RlbnRJZDsKICAgICBTdHJpbmcgbGFiZWw7Ci0gICAg
VmFyaWFudDxNb2NrTWljcm9waG9uZVByb3BlcnRpZXMsIE1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBN
b2NrRGlzcGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CisgICAgVmFyaWFudDxNb2NrTWljcm9w
aG9uZVByb3BlcnRpZXMsIE1vY2tTcGVha2VyUHJvcGVydGllcywgTW9ja0NhbWVyYVByb3BlcnRp
ZXMsIE1vY2tEaXNwbGF5UHJvcGVydGllcz4gcHJvcGVydGllczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggMDUyZGI4ZGEwZmI3
ZTU5NDI3Mzk2MGU2YzU4MWQ5NjQwYTUzMTUxOC4uMjVmNTIwM2Q0YTJhODgwZTg0YmIyYzllZjJk
ODUxNTQwOTA5NWRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTU1LDYgKzU1
LDEwIEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPE1vY2tNZWRpYURldmljZT4gZGVmYXVsdERldmlj
ZXMoKQogICAgICAgICBNb2NrTWVkaWFEZXZpY2UgeyAiMjM5YzI0YjAtMmIxNS0xMWUzLTgyMjQt
MDgwMDIwMGM5YTY2Il9zLCAiTW9jayBhdWRpbyBkZXZpY2UgMSJfcywgTW9ja01pY3JvcGhvbmVQ
cm9wZXJ0aWVzIHsgNDQxMDAgfSB9LAogICAgICAgICBNb2NrTWVkaWFEZXZpY2UgeyAiMjM5YzI0
YjEtMmIxNS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY2Il9zLCAiTW9jayBhdWRpbyBkZXZpY2UgMiJf
cywgTW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzIHsgNDgwMDAgfSB9LAogCisgICAgICAgIE1vY2tN
ZWRpYURldmljZSB7ICIyMzljMjRiMC0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjciX3MsICJN
b2NrIHNwZWFrZXIgZGV2aWNlIDEiX3MsIE1vY2tTcGVha2VyUHJvcGVydGllcyB7ICIyMzljMjRi
MC0yYjE1LTExZTMtODIyNC0wODAwMjAwYzlhNjYiX3MsIDQ0MTAwIH0gfSwKKyAgICAgICAgTW9j
a01lZGlhRGV2aWNlIHsgIjIzOWMyNGIxLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NyJfcywg
Ik1vY2sgc3BlYWtlciBkZXZpY2UgMiJfcywgTW9ja1NwZWFrZXJQcm9wZXJ0aWVzIHsgIjIzOWMy
NGIxLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NiJfcywgNDgwMDAgfSB9LAorICAgICAgICBN
b2NrTWVkaWFEZXZpY2UgeyAiMjM5YzI0YjItMmIxNS0xMWUzLTgyMjQtMDgwMDIwMGM5YTY3Il9z
LCAiTW9jayBzcGVha2VyIGRldmljZSAzIl9zLCBNb2NrU3BlYWtlclByb3BlcnRpZXMgeyBTdHJp
bmcgeyB9LCA0ODAwMCB9IH0sCisKICAgICAgICAgTW9ja01lZGlhRGV2aWNlIHsgIjIzOWMyNGIy
LTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NiJfcywgIk1vY2sgdmlkZW8gZGV2aWNlIDEiX3Ms
CiAgICAgICAgICAgICBNb2NrQ2FtZXJhUHJvcGVydGllcyB7CiAgICAgICAgICAgICAgICAgMzAs
CkBAIC0xNjEsNiArMTY1LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAg
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CiAgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTE5MCw2ICsxOTUsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2UqIGFjdGl2ZVNvdXJjZSgpIGZpbmFsIHsgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5OjpzaW5nbGV0b24oKS5hY3RpdmVTb3VyY2UoKTsgfQogI2VuZGlmCiAgICAgQ2Fw
dHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJl
dHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpOyB9CisgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBz
cGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzcGVha2VyRGV2aWNlcygpOyB9CiB9OwogCiBzdGF0aWMgVmVjdG9yPE1vY2tN
ZWRpYURldmljZT4mIGRldmljZXMoKQpAQCAtMjE1LDcgKzIyMSw5IEBAIHN0YXRpYyBIYXNoTWFw
PFN0cmluZywgTW9ja01lZGlhRGV2aWNlPiYgZGV2aWNlTWFwKCkKIHN0YXRpYyBpbmxpbmUgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VMaXN0Rm9yRGV2aWNlKGNvbnN0IE1vY2tNZWRpYURl
dmljZSYgZGV2aWNlKQogewogICAgIGlmIChkZXZpY2UuaXNNaWNyb3Bob25lKCkpCi0gICAgICAg
IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9EZXZpY2VzKCk7Cisg
ICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bWljcm9waG9uZURl
dmljZXMoKTsKKyAgICBpZiAoZGV2aWNlLmlzU3BlYWtlcigpKQorICAgICAgICByZXR1cm4gTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNwZWFrZXJEZXZpY2VzKCk7CiAgICAgaWYgKGRl
dmljZS5pc0NhbWVyYSgpKQogICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnZpZGVvRGV2aWNlcygpOwogCkBAIC0yNjIsOSArMjcwLDE2IEBAIGJvb2wgTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5h
YmxlZCgpCiAgICAgcmV0dXJuIHNpbmdsZXRvbigpLm1faXNFbmFibGVkOwogfQogCi1zdGF0aWMg
dm9pZCBjcmVhdGVDYXB0dXJlRGV2aWNlKGNvbnN0IE1vY2tNZWRpYURldmljZSYgZGV2aWNlKQor
c3RhdGljIENhcHR1cmVEZXZpY2UgdG9DYXB0dXJlRGV2aWNlKGNvbnN0IE1vY2tNZWRpYURldmlj
ZSYgZGV2aWNlKQoreworICAgIGF1dG8gY2FwdHVyZURldmljZSA9IGRldmljZS5jYXB0dXJlRGV2
aWNlKCk7CisgICAgY2FwdHVyZURldmljZS5zZXRFbmFibGVkKHRydWUpOworICAgIHJldHVybiBj
YXB0dXJlRGV2aWNlOworfQorCitzdGF0aWMgdm9pZCBjcmVhdGVNb2NrRGV2aWNlKGNvbnN0IE1v
Y2tNZWRpYURldmljZSYgZGV2aWNlKQogewotICAgIGRldmljZUxpc3RGb3JEZXZpY2UoZGV2aWNl
KS5hcHBlbmQoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRo
UGVyc2lzdGVudElEKGRldmljZS50eXBlKCksIGRldmljZS5wZXJzaXN0ZW50SWQpLnZhbHVlKCkp
OworICAgIGRldmljZUxpc3RGb3JEZXZpY2UoZGV2aWNlKS5hcHBlbmQodG9DYXB0dXJlRGV2aWNl
KGRldmljZSkpOwogfQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpyZXNl
dERldmljZXMoKQpAQCAtMjc1LDcgKzI5MCw4IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnJlc2V0RGV2aWNlcygpCiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNldERldmljZXMoVmVjdG9yPE1vY2tNZWRpYURldmljZT4mJiBuZXdNb2NrRGV2aWNl
cykKIHsKLSAgICBhdWRpb0RldmljZXMoKS5jbGVhcigpOworICAgIG1pY3JvcGhvbmVEZXZpY2Vz
KCkuY2xlYXIoKTsKKyAgICBzcGVha2VyRGV2aWNlcygpLmNsZWFyKCk7CiAgICAgdmlkZW9EZXZp
Y2VzKCkuY2xlYXIoKTsKICAgICBkaXNwbGF5RGV2aWNlcygpLmNsZWFyKCk7CiAKQEAgLTI4Nyw3
ICszMDMsNyBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREZXZpY2Vz
KFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+JiYgbmV3TW9jawogCiAgICAgZm9yIChjb25zdCBhdXRv
JiBkZXZpY2UgOiBtb2NrRGV2aWNlcykgewogICAgICAgICBtYXAuYWRkKGRldmljZS5wZXJzaXN0
ZW50SWQsIGRldmljZSk7Ci0gICAgICAgIGNyZWF0ZUNhcHR1cmVEZXZpY2UoZGV2aWNlKTsKKyAg
ICAgICAgY3JlYXRlTW9ja0RldmljZShkZXZpY2UpOwogICAgIH0KICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIH0KQEAg
LTI5Niw3ICszMTIsNyBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphZGRE
ZXZpY2UoY29uc3QgTW9ja01lZGlhRGV2aWNlJiBkZXZpY2UpCiB7CiAgICAgZGV2aWNlcygpLmFw
cGVuZChkZXZpY2UpOwogICAgIGRldmljZU1hcCgpLnNldChkZXZpY2UucGVyc2lzdGVudElkLCBk
ZXZpY2UpOwotICAgIGNyZWF0ZUNhcHR1cmVEZXZpY2UoZGV2aWNlKTsKKyAgICBjcmVhdGVNb2Nr
RGV2aWNlKGRldmljZSk7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiB9CiAKQEAgLTM0MCwyMyArMzU2LDM1IEBAIE9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0
dXJlRGV2aWNlV2l0aFBlcnNpc3RlCiAgICAgaWYgKGl0ZXJhdG9yID09IG1hcC5lbmQoKSB8fCBp
dGVyYXRvci0+dmFsdWUudHlwZSgpICE9IHR5cGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKLSAgICBDYXB0dXJlRGV2aWNlIGRldmljZSB7IGl0ZXJhdG9yLT52YWx1ZS5wZXJzaXN0
ZW50SWQsIHR5cGUsIGl0ZXJhdG9yLT52YWx1ZS5sYWJlbCB9OwotICAgIGRldmljZS5zZXRFbmFi
bGVkKHRydWUpOwotICAgIHJldHVybiBkZXZpY2U7CisgICAgcmV0dXJuIHRvQ2FwdHVyZURldmlj
ZShpdGVyYXRvci0+dmFsdWUpOwogfQogCi1WZWN0b3I8Q2FwdHVyZURldmljZT4mIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRpb0RldmljZXMoKQorVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bWljcm9waG9uZURldmljZXMoKQog
ewotICAgIHN0YXRpYyBhdXRvIGF1ZGlvRGV2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7
Ci0gICAgICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBhdWRpb0RldmljZXM7CisgICAgc3RhdGlj
IGF1dG8gbWljcm9waG9uZURldmljZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10geworICAgICAg
ICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbWljcm9waG9uZURldmljZXM7CiAgICAgICAgIGZvciAo
Y29uc3QgYXV0byYgZGV2aWNlIDogZGV2aWNlcygpKSB7CiAgICAgICAgICAgICBpZiAoZGV2aWNl
LmlzTWljcm9waG9uZSgpKQotICAgICAgICAgICAgICAgIGF1ZGlvRGV2aWNlcy5hcHBlbmQoY2Fw
dHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZSwgZGV2aWNlLnBlcnNpc3RlbnRJZCkudmFsdWUoKSk7CisgICAgICAgICAgICAgICAg
bWljcm9waG9uZURldmljZXMuYXBwZW5kKHRvQ2FwdHVyZURldmljZShkZXZpY2UpKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gbWljcm9waG9uZURldmljZXM7CisgICAgfSgpKTsKKworICAg
IHJldHVybiBtaWNyb3Bob25lRGV2aWNlczsKK30KKworVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtlckRldmljZXMoKQoreworICAgIHN0
YXRpYyBhdXRvIHNwZWFrZXJEZXZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKKyAgICAg
ICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IHNwZWFrZXJEZXZpY2VzOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGRldmljZSA6IGRldmljZXMoKSkgeworICAgICAgICAgICAgaWYgKGRldmljZS5p
c1NwZWFrZXIoKSkKKyAgICAgICAgICAgICAgICBzcGVha2VyRGV2aWNlcy5hcHBlbmQodG9DYXB0
dXJlRGV2aWNlKGRldmljZSkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBhdWRpb0Rldmlj
ZXM7CisgICAgICAgIHJldHVybiBzcGVha2VyRGV2aWNlczsKICAgICB9KCkpOwogCi0gICAgcmV0
dXJuIGF1ZGlvRGV2aWNlczsKKyAgICByZXR1cm4gc3BlYWtlckRldmljZXM7CiB9CiAKIFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZpZGVvRGV2
aWNlcygpCkBAIC0zNjUsNyArMzkzLDcgQEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9EZXZpY2VzKCkKICAgICAgICAgVmVjdG9yPENh
cHR1cmVEZXZpY2U+IHZpZGVvRGV2aWNlczsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZp
Y2UgOiBkZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2UuaXNDYW1lcmEoKSkKLSAg
ICAgICAgICAgICAgICB2aWRlb0RldmljZXMuYXBwZW5kKGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lz
dGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3Rl
bnRJZCkudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VzLmFwcGVuZCh0b0Nh
cHR1cmVEZXZpY2UoZGV2aWNlKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHZpZGVvRGV2
aWNlczsKICAgICB9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IDFjNWFhNjY5ZDVl
ZGQ3YTM4NTZjNjFlYTI1Yzk4YWIxMmY1YmE2ZTkuLmMzN2MyYWM2NzAwM2MwZjRmOThjMjBmNTli
MTI4Mjg5ZjA4NTViZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTUyLDcgKzUyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja1ZpZGVvQ2FwdHVyZUVuYWJsZWQoYm9vbCBpc0Vu
YWJsZWQpIHsgbV9pc01vY2tWaWRlb0NhcHR1cmVFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAg
dm9pZCBzZXRNb2NrRGlzcGxheUNhcHR1cmVFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNN
b2NrRGlzcGxheUNhcHR1cmVFbmFibGVkID0gaXNFbmFibGVkOyB9CiAKLSAgICBzdGF0aWMgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBhdWRpb0RldmljZXMoKTsKKyAgICBzdGF0aWMgVmVjdG9yPENh
cHR1cmVEZXZpY2U+JiBtaWNyb3Bob25lRGV2aWNlcygpOworICAgIHN0YXRpYyBWZWN0b3I8Q2Fw
dHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCk7CiAgICAgc3RhdGljIFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiYgdmlkZW9EZXZpY2VzKCk7CiAgICAgc3RhdGljIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiYgZGlzcGxheURldmljZXMoKTsKIApAQCAtNzMsNyArNzQsNyBAQCBwcml2YXRlOgogCiAgICAg
Y2xhc3MgTW9ja0F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FwdHVy
ZURldmljZU1hbmFnZXIgewogICAgIHByaXZhdGU6Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxDYXB0
dXJlRGV2aWNlPiYgY2FwdHVyZURldmljZXMoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9EZXZpY2VzKCk7IH0KKyAgICAgICAgY29uc3QgVmVjdG9y
PENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjptaWNyb3Bob25lRGV2aWNlcygpOyB9CiAgICAgICAgIE9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBpZCkgZmluYWwgeyByZXR1
cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lz
dGVudElEKHR5cGUsIGlkKTsgfQogICAgIH07CiAgICAgY2xhc3MgTW9ja1ZpZGVvQ2FwdHVyZURl
dmljZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FwdHVyZURldmljZU1hbmFnZXIgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGVkMmVhODI1YTBiN2U2ZDk0OTVkZmE4NGI5ZGFlYmM3ZDc3N2Y4NjkuLjBkYWVh
NjA1MWU3NTU2M2YxOTMwMDgzZjMyNGYwM2I5YTIxNTE5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTEy
Myw2ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAg
ICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmU6CiAgICAgICAgICAgICByZXR1cm4gbV9wcm9jZXNzLmFsbG93c0F1ZGlvQ2FwdHVyZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMDA5Mjc4Y2I0
MmMyNDA4NDlkNTc1YmNhNzI4NmRiYTkyMTlkZmY2MS4uMTFjMWI3YjJlOTFlMjA5NmM0NjYzZmU1
YzkyODQ5OWU0NDBhOTczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCkBAIC02NjgsNiArNjY4LDE0IEBAIFdlYlJUQ01ETlNJQ0VDYW5kaWRhdGVzRW5hYmxlZDoK
ICAgY2F0ZWdvcnk6IGludGVybmFsCiAgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCiAKK0V4
cG9zZVNwZWFrZXJzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNl
CisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWxsb3cgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgor
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBbGxvdyBzcGVha2VyIGRldmljZSBzZWxlY3Rp
b24iCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKyAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JU
QykKKwogVlA5RGVjb2RlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBk
ZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCmluZGV4IGYyNzYzNjUxMzNjYWE0Mjk0ODc5
NjVhOWMzOGUzMTUwMjhmYmY4NDUuLjUyYWUzOTY4MGE0NDc5ODIyY2FhNzEyNjNlZDVjMzBjNjJk
Njk4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01l
ZGlhRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tN
ZWRpYURldmljZS5jcHAKQEAgLTM4LDExICszOCwxMyBAQCB2b2lkIFdLQWRkTW9ja01lZGlhRGV2
aWNlKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBwZXJzaXN0ZW50SWQsIFdLU3Ry
aQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSBX
ZWJLaXQ6OnRvSW1wbCh0eXBlKS0+c3RyaW5nKCk7Ci0gICAgVmFyaWFudDxXZWJDb3JlOjpNb2Nr
TWljcm9waG9uZVByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBXZWJD
b3JlOjpNb2NrRGlzcGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CisgICAgVmFyaWFudDxXZWJD
b3JlOjpNb2NrTWljcm9waG9uZVByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tTcGVha2VyUHJvcGVy
dGllcywgV2ViQ29yZTo6TW9ja0NhbWVyYVByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tEaXNwbGF5
UHJvcGVydGllcz4gcHJvcGVydGllczsKICAgICBpZiAodHlwZVN0cmluZyA9PSAiY2FtZXJhIikK
ICAgICAgICAgcHJvcGVydGllcyA9IFdlYkNvcmU6Ok1vY2tDYW1lcmFQcm9wZXJ0aWVzIHsgfTsK
ICAgICBlbHNlIGlmICh0eXBlU3RyaW5nID09ICJzY3JlZW4iKQogICAgICAgICBwcm9wZXJ0aWVz
ID0gV2ViQ29yZTo6TW9ja0Rpc3BsYXlQcm9wZXJ0aWVzIHsgfTsKKyAgICBlbHNlIGlmICh0eXBl
U3RyaW5nID09ICJzcGVha2VyIikKKyAgICAgICAgcHJvcGVydGllcyA9IFdlYkNvcmU6Ok1vY2tT
cGVha2VyUHJvcGVydGllcyB7IH07CiAgICAgZWxzZSBpZiAodHlwZVN0cmluZyAhPSAibWljcm9w
aG9uZSIpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA4NTFmZDc5OGNlMjg3NTU2OWFkOTUxOTU2ZjE2
NWY0YzQ5YzkzYTdhLi5lMGY5YjY4YzA0NGJmOGE3NTJlZjA0MTJlMGVkZTBlYzE1Yjg1NmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApA
QCAtMTkzMCw2ICsxOTMwLDE2IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhUHJlbG9hZGlu
Z0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9J
bXBsKHByZWZlcmVuY2VzUmVmKS0+bWVkaWFQcmVsb2FkaW5nRW5hYmxlZCgpOwogfQogCit2b2lk
IFdLUHJlZmVyZW5jZXNTZXRFeHBvc2VTcGVha2Vyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChmbGFnKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYp
Cit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmV4cG9zZVNwZWFrZXJzRW5h
YmxlZCgpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMYXJnZUltYWdlQXN5bmNEZWNvZGlu
Z0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewog
ICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZChmbGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IGFmZDk5MGU2YjBkNGY0YzVlOWQ4MzkxZjI4
MzA0NWM1MjRkZmY4NWYuLmJiNTkwNjcxZmYyNzU5ZjkxMGY0OTg1Mzg4Mzk5NTc4NTRjZDcxZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaApAQCAtNTM5LDYgKzUzOSwxMCBAQCBXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0TGlua1ByZWxvYWRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQ
T1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhUHJlbG9hZGluZ0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRp
YVByZWxvYWRpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBm
YWxzZQorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEV4cG9zZVNwZWFrZXJzRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldEV4cG9zZVNwZWFrZXJzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKKwogLy8gRGVm
YXVsdHMgdG8gZmFsc2UKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50
aWNhdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNl
c1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGRhYWQyY2ZjYzYwMDUxMDVk
MzE0NDE1ZTJkMDBiY2ZkMzc0NWM2MGEuLjg2NzkyYWE1NWMxZTdjYjEyNzhiYWMzOTNkODcwNDk5
YWJhNjA2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0yNjAsNiArMjYwLDcg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVh
a2VyOgogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93
bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDdlMDcwZGJkNjEzZWUzYjFjNzM0ZjJl
NWVjMDliYzdiZmJmNzg0OTkuLmMyNjZjM2JiZTBkNjE3OWMzOWFlYTZkYTM1YzM3ZjdhNjQyYzhj
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTU5OCw2ICs1OTgs
MTMgQEAgYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3Jh
bnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhGcmFtZUkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgYm9vbCBoYXZlTWljcm9waG9uZURldmljZShjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mIGRldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7Cisg
ICAgcmV0dXJuIHN0ZDo6YW55X29mKGRldmljZXMuYmVnaW4oKSwgZGV2aWNlcy5lbmQoKSwgWyZk
ZXZpY2VJRF0oYXV0byYgZGV2aWNlKSB7CisgICAgICAgIHJldHVybiBkZXZpY2UucGVyc2lzdGVu
dElkKCkgPT0gZGV2aWNlSUQgJiYgZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpNaWNyb3Bob25lOworICAgIH0pOworfQorCiBWZWN0b3I8Q2FwdHVyZURldmljZT4g
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERl
dmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURI
YXNoU2FsdCkKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRNYXhpbXVtQ2FtZXJhQ291
bnQgPSAxOwpAQCAtNjA5LDcgKzYxNiw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiAKICAg
ICBWZWN0b3I8Q2FwdHVyZURldmljZT4gZmlsdGVyZWREZXZpY2VzOwogICAgIGZvciAoY29uc3Qg
YXV0byYgZGV2aWNlIDogZGV2aWNlcykgewotICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkg
fHwgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
Q2FtZXJhICYmIGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZSkpCisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSB8fCAoZGV2
aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpN
aWNyb3Bob25lICYmIGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U3BlYWtlcikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAo
IXJldmVhbElkc0FuZExhYmVscykgewpAQCAtNjE3LDYgKzYyNCwxMiBAQCBWZWN0b3I8Q2FwdHVy
ZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVG
aWx0ZXJlZERldgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKGRl
dmljZS50eXBlKCkgPT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9w
aG9uZSAmJiArK21pY3JvcGhvbmVDb3VudCA+IGRlZmF1bHRNYXhpbXVtTWljcm9waG9uZUNvdW50
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGRldmljZS50eXBl
KCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmIGRldmlj
ZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIC8vIFdlIG9ubHkgZXhwb3NlIHNwZWFrZXJzIHRpZWQgdG8gYSBtaWNyb3Bob25lIGZvciB0
aGUgbW9tZW50LgorICAgICAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlciAmJiAhaGF2ZU1pY3JvcGhvbmVEZXZpY2Uo
ZGV2aWNlcywgZGV2aWNlLmdyb3VwSWQoKSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAogICAgICAgICBhdXRvIGxhYmVsID0gZW1wdHlTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcAppbmRleCBhN2YwNDAwZTUyYjFjNjUyMjBhMTY3ZWVhZGE1MGVlZWZmMjY5
NTcyLi45ODRmYmJmNGM3ODM0NGQ1ZjgzN2I5YWE1YzlhZTc4YTM1ZmQxZGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0YXRpYyBpbmxpbmUgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6
CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAgICAgICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtu
b3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC05Nyw2ICs5OCw3
IEBAIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5k
b3c6CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTExOCw2ICsxMjAsNyBAQCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCiAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggNmVkMGEwZjk4MmE1NzNkOTVjZmZjNDE3NDY0MGQx
NTYyNTgxMTFmNC4uYjBiMTk4MjkwNTQyMmRlNzI5NTQyYWJiM2VlMDliYzdlMzMwZDAyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKQEAgLTcwLDkgKzcwLDExIEBAIHByaXZhdGU6CiAgICAgcHJpdmF0ZToK
ICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOwogICAgICAgICBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFs
IHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgICAg
ICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQogCiAgICAgICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+IG1fc3BlYWtlckRldmljZXM7CiAgICAgfTsKICAgICBjbGFzcyBWaWRlb0ZhY3Rv
cnkgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiAgICAgcHVibGljOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNiYTNh
ODc4YTBiOTgxZGNlYTJiM2RmYjQ5OWVlNmRiY2EyNzExYTguLjA5OWU4OTAwZTcyMGEzMTdlZjY5
MGMzZDZhYTExNmNlNzZjMWQ5YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOC0yNiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQg
ZXhwb3NlIGF1ZGlvb3V0cHV0IGRldmljZXMgdGhhdCBhcmUgdGllZCB0byBhbiBhdWRpbyBpbnB1
dCBkZXZpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBF
bmFibGUgZXhwZXJpbWVudGFsIGZsYWcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJl
ZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorCiAyMDIwLTA4LTI2ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVHJhbnNmb3Jt
U3RyZWFtCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDhk
Nzk4MjY1NTRjZDUxN2NlMGUyNjE4ZDZjNjhkNjc5NzE1OTExNmMuLmZjM2Q2ZTg3NGZjZGQwNzQ0
ZjZjYmJkZWFhYzUxMDM2Mjk3MzI3ZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC05NjIsNiArOTYyLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW8K
ICAgICBXS1ByZWZlcmVuY2VzU2V0UmVzb3VyY2VUaW1pbmdFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VXNlclRpbWluZ0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVByZWxvYWRpbmdFbmFibGVkKHByZWZl
cmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RXhwb3NlU3BlYWtlcnNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFQbGF5YmFja0Fs
bG93c0lubGluZShwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldElubGlu
ZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKHByZWZlcmVuY2VzLCBm
YWxzZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDg3OTUzNTY1YjgxYmMwODg0NjFkNDFmMWJiZjc0ODk5NjVk
MjRkZi4uNGJiOTUyZTljZjY2ZDJmZjc4OGRhYjY0MzIwOTcwYTU1ZmYyNzUyNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIwLTA4LTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2VzIHNob3VsZCBleHBvc2UgYXVkaW9vdXRwdXQg
ZGV2aWNlcyB0aGF0IGFyZSB0aWVkIHRvIGFuIGF1ZGlvIGlucHV0IGRldmljZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1ODA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9l
bnVtZXJhdGUtc3BlYWtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9t
ZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2
aWNlcy1pZnJhbWUtYWxsb3ctYXR0cmlidXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUtYWxsb3ct
YXR0cmlidXRlLmh0bWw6CisgICAgICAgIFJld3JpdGUgdGVzdCB0byB1c2UgdGVzdGhhcm5lc3Mg
YW5kIGVuc3VyZSBvcmRlciBvZiB0aGUgaWZyYW1lIHRlc3RzIHNvIHRoYXQgY29uc29sZSBtZXNz
YWdlcyBhcmUgb3JkZXJlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9yZXNvdXJjZXMvZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWw6CisKIDIwMjAtMDgtMjYg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBUcmFuc2Zvcm1TdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDYx
ODI4ZDAwYzNkYzhmNzc0ZTIwMzAyZjEyYzliZjcwMDEzOWJkNTguLjU0NzUzZWZlYjBhZWViMzEw
OWMyNmI1Y2YxZTgxYjE3YWY4YTA2NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTA4LTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBlbnVtZXJhdGVEZXZpY2VzIHNob3VsZCBleHBvc2UgYXVkaW9vdXRw
dXQgZGV2aWNlcyB0aGF0IGFyZSB0aWVkIHRvIGFuIGF1ZGlvIGlucHV0IGRldmljZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1ODA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLmh0bWw6CisKIDIw
MjAtMDgtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBUcmFuc2Zvcm1TdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJhdGUtc3BlYWtlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGVmZTI1NzUzOTcyZDZiNWJhN2U2ODQ4NDg3ODkyY2RlMzQyNGUwOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIEJlZm9yZSBndW0sIG5vIGF1ZGlv
b3V0cHV0IGlzIGV4cG9zZWQgCitQQVNTIGF1ZGlvb3V0cHV0IGRldmljZXMgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZW51bWVyYXRlLXNwZWFrZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZjEwMmZhNWNiNTVmOWM3MGEwMTk3NjBhZTg5YmI1MTU0MTA0NTRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9lbnVtZXJhdGUtc3BlYWtl
ci5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlRlc3QgcGFzc2luZyBjYXB0
dXJlIGRldmljZSBJRHMgdG8gZ2V0VXNlck1lZGlhPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorCisgICAgZnVuY3Rpb24gZGV2aWNlRnJvbUxhYmVsKGRldmljZXMsIGxhYmVsKQor
ICAgIHsKKyAgICAgICAgZm9yIChsZXQgZGV2aWNlIG9mIGRldmljZXMpIHsKKyAgICAgICAgICAg
IGlmIChkZXZpY2UubGFiZWwgPT09IGxhYmVsKQorICAgICAgICAgICAgICAgIHJldHVybiBkZXZp
Y2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+
IHsKKyAgICAgICAgY29uc3QgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
ZW51bWVyYXRlRGV2aWNlcygpOworICAgICAgICBkZXZpY2VzLmZvckVhY2goKGRldmljZSkgPT4g
eworICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZGV2aWNlLmtpbmQsICJhdWRpb291dHB1
dCIsICJkZXZpY2Uua2luZCIpOworICAgICAgICB9KTsKKyAgICB9LCAiQmVmb3JlIGd1bSwgbm8g
YXVkaW9vdXRwdXQgaXMgZXhwb3NlZCIpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHsgYXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZSB9KQorICAgICAgICBjb25zdCBkZXZpY2VzID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgICAgICAgIGFz
c2VydF90cnVlKGRldmljZXMubGVuZ3RoID4gMiwgImFmdGVyIGdldHRpbmcgcGVybWlzc2lvbiwg
bW9yZSB0aGFuIDEgY2FtZXJhIGFuZCAxIG1pY3JvcGhvbmUgYXJlIGV4cG9zZWQiKTsKKyAgICAg
ICAgZGV2aWNlcy5mb3JFYWNoKChkZXZpY2UpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKGRldmljZS5kZXZpY2VJZC5sZW5ndGggPT0gMCAsICJkZXZpY2UuZGV2aWNlSWQgaXMg
ZW1wdHkgYmVmb3JlIHBlcm1pc3Npb24gdG8gY2FwdHVyZSIpOworICAgICAgICB9KTsKKworICAg
ICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgY29uc3QgbWljMSA9IGRldmljZUZyb21MYWJlbChkZXZpY2VzLCAiTW9jayBhdWRpbyBkZXZp
Y2UgMSIpOworICAgICAgICBjb25zdCBtaWMyID0gZGV2aWNlRnJvbUxhYmVsKGRldmljZXMsICJN
b2NrIGF1ZGlvIGRldmljZSAyIik7CisgICAgICAgIGNvbnN0IHNwZWFrZXIxID0gZGV2aWNlRnJv
bUxhYmVsKGRldmljZXMsICJNb2NrIHNwZWFrZXIgZGV2aWNlIDEiKTsKKyAgICAgICAgY29uc3Qg
c3BlYWtlcjIgPSBkZXZpY2VGcm9tTGFiZWwoZGV2aWNlcywgIk1vY2sgc3BlYWtlciBkZXZpY2Ug
MiIpOworICAgICAgICBjb25zdCBzcGVha2VyMyA9IGRldmljZUZyb21MYWJlbChkZXZpY2VzLCAi
TW9jayBzcGVha2VyIGRldmljZSAzIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzcGVha2Vy
MS5raW5kLCAiYXVkaW9vdXRwdXQiLCAic3BlYWtlcjEiKTsKKyAgICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMoc3BlYWtlcjEuZ3JvdXBJZCwgIiIsICJzcGVha2VyMSBncm91cElkIik7CisKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzcGVha2VyMi5raW5kLCAiYXVkaW9vdXRwdXQiLCAic3BlYWtlcjIi
KTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc3BlYWtlcjIuZ3JvdXBJZCwgIiIsICJzcGVh
a2VyMiBncm91cElkIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzcGVha2VyMywgdW5kZWZp
bmVkLCAic3BlYWtlcjMiKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHNwZWFrZXIxLmdyb3Vw
SWQsIG1pYzEuZ3JvdXBJZCwgImRldmljZSAxIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3Bl
YWtlcjIuZ3JvdXBJZCwgbWljMi5ncm91cElkLCAiZGV2aWNlIDIiKTsKKyAgICB9LCAiYXVkaW9v
dXRwdXQgZGV2aWNlcyIpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11
c2VyLW1lZGlhLWRldmljZS1pZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQuaHRtbAppbmRleCA5ZjRkMzc5M2VlMDhmNThmZjA4N2I3
NWM3MWVjNzQ3MTc5YzIxYmM5Li5iNDg3YWQ1ZGJkZjkwM2YyZTE5NmUwYWM4NTVjOTZkZTMzYTk4
Njg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1l
ZGlhLWRldmljZS1pZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
LXVzZXItbWVkaWEtZGV2aWNlLWlkLmh0bWwKQEAgLTg1LDcgKzg1LDcgQEAKICAgICAgICAgICAg
IGlmIChkZXZpY2Uua2luZCA9PT0gImF1ZGlvaW5wdXQiKSB7CiAgICAgICAgICAgICAgICAgY29u
c3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1
ZGlvOiB7ZGV2aWNlSWQ6IGRldmljZS5kZXZpY2VJZH19KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkuZGV2aWNl
SWQsIGRldmljZS5kZXZpY2VJZCwgIk1hdGNoaW5nIGF1ZGlvIGRldmljZSBpZCIpOwotICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV2aWNlLmtpbmQgPT09ICJ2
aWRlb2lucHV0IikgewogICAgICAgICAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge2RldmljZUlkOiBkZXZpY2Uu
ZGV2aWNlSWR9fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLmRldmljZUlkLCBkZXZpY2UuZGV2aWNlSWQsICJN
YXRjaGluZyB2aWRlbyBkZXZpY2UgaWQiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2Vz
LWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQKaW5kZXggNjNlOWJkZDgwYTFmMWY5MzcyMDIwOTY3YWQxMTFh
NjE1NjRhOGIxMy4uNmE4NTQzYTUwN2E2MzllZWE1NDc2YThhZDNkZmVlZWJjMjkyOWExMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMt
aWZyYW1lLWFsbG93LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzMCBAQAogQ09O
U09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnQ2FtZXJhJyBjaGVjayBmYWlsZWQgZm9yIGlm
cmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxsb3cgYXR0cmli
dXRlICcnLgogQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnTWljcm9waG9uZScgY2hl
Y2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcg
YW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KIENPTlNPTEUgTUVTU0FHRTogTm90IGFsbG93ZWQgdG8g
Y2FsbCBlbnVtZXJhdGVEZXZpY2VzLgotICAgICAgCi1QQVNTOiAiYWxsb3ciIGF0dHJpYnV0ZSBy
ZXNwZWN0ZWQgaW4gYWxsIGlmcmFtZXMKK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kg
J0NhbWVyYScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KK0NPTlNPTEUgTUVTU0FHRTogRmVh
dHVyZSBwb2xpY3kgJ01pY3JvcGhvbmUnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3Jp
Z2luICdodHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJycuCitDT05T
T0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZW51bWVyYXRlRGV2aWNlcy4KK0NPTlNP
TEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kgJ01pY3JvcGhvbmUnIGNoZWNrIGZhaWxlZCBmb3Ig
aWZyYW1lIHdpdGggb3JpZ2luICdodHRwOi8vbG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRy
aWJ1dGUgJycuCitDT05TT0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0VXNlck1l
ZGlhLgorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnQ2FtZXJhJyBjaGVjayBmYWls
ZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJyBhbmQgYWxs
b3cgYXR0cmlidXRlICcnLgorQ09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0byBjYWxsIGdl
dFVzZXJNZWRpYS4KK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kgJ0NhbWVyYScgY2hl
Y2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcg
YW5kIGFsbG93IGF0dHJpYnV0ZSAnJy4KK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kg
J01pY3JvcGhvbmUnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwOi8v
bG9jYWxob3N0OjgwMDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJycuCitDT05TT0xFIE1FU1NBR0U6
IE5vdCBhbGxvd2VkIHRvIGNhbGwgZW51bWVyYXRlRGV2aWNlcy4KK0NPTlNPTEUgTUVTU0FHRTog
RmVhdHVyZSBwb2xpY3kgJ0NhbWVyYScgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmln
aW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcgYW5kIGFsbG93IGF0dHJpYnV0ZSAnbWljcm9waG9u
ZScuCitDT05TT0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgor
Q09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnTWljcm9waG9uZScgY2hlY2sgZmFpbGVk
IGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcgYW5kIGFsbG93
IGF0dHJpYnV0ZSAnY2FtZXJhJy4KK0NPTlNPTEUgTUVTU0FHRTogTm90IGFsbG93ZWQgdG8gY2Fs
bCBnZXRVc2VyTWVkaWEuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdDYW1lcmEn
IGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwOi8vbG9jYWxob3N0Ojgw
MDAnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJ21pY3JvcGhvbmU7c3BlYWtlci1zZWxlY3Rpb24nLgor
Q09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0byBjYWxsIGdldFVzZXJNZWRpYS4KKyAgICAg
ICAgIAorCitQQVNTIFdhaXQgZm9yIGZyYW1lcyB0byBiZSBsb2FkZWQgCitQQVNTIG5vbmUgCitQ
QVNTIG1pY3JvcGhvbmUgCitQQVNTIGNhbWVyYSAKK1BBU1MgY2FtZXJhK21pY3JvcGhvbmUgCitQ
QVNTIG1pY3JvcGhvbmUrc3BlYWtlcnNlbGVjdGlvbiAKK1BBU1MgY2FtZXJhK21pY3JvcGhvbmUr
c3BlYWtlcnNlbGVjdGlvbiAKK1BBU1Mgc2FtZS1vcmlnaW4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlm
cmFtZS1hbGxvdy1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS1hbGxvdy1hdHRyaWJ1dGUuaHRt
bAppbmRleCA2M2ZkMDM1OGE0YTBjZGQxZGI0Njg2ZGZlNmQ5MmU1OTQ4ZGM0ZWQxLi4yZWIxNWRj
MjIyZTRiYzczYmJjMGYzNjg0N2RhZGJjNTFmODFjYTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUt
YWxsb3ctYXR0cmlidXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1s
CkBAIC0xLDQ5ICsxLDQ0IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxodG1sPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KLSAgICA8
aWZyYW1lIGlkPW5vbmUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3Ry
ZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGlmcmFtZSBpZD0ibm9uZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVk
aWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJh
bWU+CiAgICAgPGlmcmFtZSBpZD0ibWljcm9waG9uZSIgYWxsb3c9Im1pY3JvcGhvbmUiIHNyYz0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwL21lZGlhL21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgogICAgIDxpZnJhbWUgaWQ9ImNhbWVy
YSIgYWxsb3c9ImNhbWVyYSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEt
c3RyZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+
CiAgICAgPGlmcmFtZSBpZD0iY2FtZXJhK21pY3JvcGhvbmUiIGFsbG93PSJjYW1lcmE7bWljcm9w
aG9uZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291
cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFt
ZSBpZD0ibWljcm9waG9uZStzcGVha2Vyc2VsZWN0aW9uIiBhbGxvdz0ibWljcm9waG9uZTtzcGVh
a2VyLXNlbGVjdGlvbiIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVkaWEvbWVkaWEtc3Ry
ZWFtL3Jlc291cmNlcy9lbnVtZXJhdGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGlmcmFtZSBpZD0iY2FtZXJhK21pY3JvcGhvbmUrc3BlYWtlcnNlbGVjdGlvbiIgYWxsb3c9
ImNhbWVyYTttaWNyb3Bob25lO3NwZWFrZXItc2VsZWN0aW9uIiBzcmM9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2VudW1lcmF0ZS1kZXZpY2VzLWlm
cmFtZS5odG1sIj48L2lmcmFtZT4KICAgICA8aWZyYW1lIGlkPSJzYW1lLW9yaWdpbiIgc3JjPSJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJh
dGUtZGV2aWNlcy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Ci0KICAgICA8c2NyaXB0PgorICAgIGNv
bnN0IGlGcmFtZVRlc3RzID0gWworICAgIFsnbm9uZScsICcnXSwKKyAgICBbJ21pY3JvcGhvbmUn
LCAnbWljcm9waG9uZSddLAorICAgIFsnY2FtZXJhJywgJ2NhbWVyYSddLAorICAgIFsnY2FtZXJh
K21pY3JvcGhvbmUnLCAnY2FtZXJhK21pY3JvcGhvbmUnXSwKKyAgICBbJ21pY3JvcGhvbmUrc3Bl
YWtlcnNlbGVjdGlvbicsICdtaWNyb3Bob25lK3NwZWFrZXJzZWxlY3Rpb24nXSwKKyAgICBbJ2Nh
bWVyYSttaWNyb3Bob25lK3NwZWFrZXJzZWxlY3Rpb24nLCAnY2FtZXJhK21pY3JvcGhvbmUrc3Bl
YWtlcnNlbGVjdGlvbiddLAorICAgIFsnc2FtZS1vcmlnaW4nLCAnY2FtZXJhK21pY3JvcGhvbmUr
c3BlYWtlcnNlbGVjdGlvbiddCisgICAgXTsKIAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgZXhwZWN0
ZWQgPSB7Ci0gICAgICAgICAgICAnbWljcm9waG9uZScgOiAnbWljcm9waG9uZScsCi0gICAgICAg
ICAgICAnbm9uZScgOiAnJywKLSAgICAgICAgICAgICdjYW1lcmErbWljcm9waG9uZScgOiAnY2Ft
ZXJhK21pY3JvcGhvbmUnLAotICAgICAgICAgICAgJ2NhbWVyYScgOiAnY2FtZXJhJywKLSAgICAg
ICAgICAgICdzYW1lLW9yaWdpbicgOiAnY2FtZXJhK21pY3JvcGhvbmUnCi0gICAgICAgIH07Ci0g
ICAgICAgIGxldCBjb3VudCA9IDA7Ci0gICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTsKLSAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKLSAgICAg
ICAgICAgIGxldCB2aXNpYmxlID0gZXZlbnQuZGF0YS50cmltKCkuc3BsaXQoJzonKTsKLSAgICAg
ICAgICAgIGlmIChleHBlY3RlZFt2aXNpYmxlWzBdXSAhPSB2aXNpYmxlWzFdKSB7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0LmlubmVySFRNTCArPSBgRkFJTDogJkxUO2lmcmFtZSBpZD0ke3Zpc2li
bGVbMF19PiBzYXcgIiR7dmlzaWJsZVsxXX0iLCBzaG91bGQgaGF2ZSBzZWVuICIke2V4cGVjdGVk
W3Zpc2libGVbMF1dfSI8YnI+YDsKLSAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoKytjb3VudCA9PSA1KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lckhUTUwg
PSAnUEFTUzogImFsbG93IiBhdHRyaWJ1dGUgcmVzcGVjdGVkIGluIGFsbCBpZnJhbWVzJzsKLSAg
ICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0g
ICAgICAgIH0sIGZhbHNlKTsKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwoaUZyYW1lVGVzdHMubWFwKChpRnJhbWVUZXN0KSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlGcmFtZVRlc3RbMF0p
OworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gZnJhbWUub25sb2Fk
ID0gcmVzb2x2ZSk7CisgICAgICAgIH0pKTsKKyAgICB9LCAiV2FpdCBmb3IgZnJhbWVzIHRvIGJl
IGxvYWRlZCIpOwogCi0gICAgICAgIGxldCBlbnVtZXJhdGUgPSAoZXZ0KSA9PiB7IGV2dC50YXJn
ZXQuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShldnQudGFyZ2V0LmlkLCAnKicpOyB9Ci0gICAg
ICAgIEFycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpKS5m
b3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5vbmxvYWQgPSBlbnVtZXJhdGUpOworICAgIGlGcmFt
ZVRlc3RzLmZvckVhY2goKGlGcmFtZVRlc3QpID0+IHsKKyAgICAgICAgcHJvbWlzZV90ZXN0KGFz
eW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IHJl
c29sdmU7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoJ3Rlc3QgdGlt
ZWQgb3V0JyksIDUwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpRnJhbWVUZXN0WzBdKS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCcn
LCAnKicpOworICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5kYXRhLCBpRnJhbWVUZXN0WzFdKTsKKyAgICAgICAg
fSwgaUZyYW1lVGVzdFswXSk7CisgICAgfSk7CiAgICAgPC9zY3JpcHQ+Ci0KLSAgICA8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNl
LWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVt
ZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRtbAppbmRleCA3MDJjZDlhNDQwMDVmMWFmZmFhY2Qy
Y2JhYjQ4YjEwMWUzYjYzMmY5Li5hYjg0YTlhMzY2N2RhZjJlZjYwZDc1ZjNhNzFkMjU4NGVhMTVi
YmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9lbnVtZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRt
bApAQCAtMzQsNyArMzQsNyBAQAogICAgICAgICAgICAgICAgIGlmIChvcmlnaW5JbmZvW2Rldmlj
ZS5kZXZpY2VJZF0gIT0gZGV2aWNlLmtpbmQpCiAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoYDogZHVwbGljYXRlIGRldmljZSBJRHMgZm9yICR7ZGV2aWNlLmtpbmR9IGFuZCAke29yaWdp
bkluZm9bZGV2aWNlLmRldmljZUlkXX0gaW4gJHtvcmlnaW59LyR7c2VsZi5vcmlnaW59YCk7CiAK
LSAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMob3JpZ2luSW5mbykubGVuZ3RoID4gNCkK
KyAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMob3JpZ2luSW5mbykubGVuZ3RoID4gNikK
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgOiBtb3JlIHRoZW4gZm91ciB1bmlxdWUg
ZGV2aWNlIElEcyBpbiAke29yaWdpbn0vJHtzZWxmLm9yaWdpbn1gKTsKICAgICAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
cmVzb3VyY2VzL2VudW1lcmF0ZS1kZXZpY2VzLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vcmVzb3VyY2VzL2VudW1lcmF0ZS1kZXZpY2VzLWlm
cmFtZS5odG1sCmluZGV4IDU4MGM4NmY0NzJlMjMzMTA1YmRhZGY0Njg0YzI1NThjNThhZDg2ODEu
LmQyYWQ0YTg2NmYzMzUwNWViZGEyMzIwYjE2OGZlMjM0ZDMyZWE3YTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL3Jlc291cmNlcy9lbnVtZXJh
dGUtZGV2aWNlcy1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9yZXNvdXJjZXMvZW51bWVyYXRlLWRldmljZXMtaWZyYW1lLmh0bWwKQEAg
LTEsMTQgKzEsNDcgQEAKIDxzY3JpcHQ+Ci0gICAgYXN5bmMgZnVuY3Rpb24gZW51bWVyYXRlKGV2
ZW50KQorICAgIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRGV2aWNlS2luZChraW5kKQogICAgIHsKLSAg
ICAgICAgbGV0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0
ZURldmljZXMoKTsKLSAgICAgICAgbGV0IHZpc2libGUgPSBkZXZpY2VzLm1hcChkZXZpY2UgPT4g
ZGV2aWNlLmtpbmQuaW5kZXhPZigndmlkZW8nKSA9PSAwID8gJ2NhbWVyYScgOiAnbWljcm9waG9u
ZScpLnNvcnQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxldCBkZXZpY2VzID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgICAgICAgICAg
ICBmb3IgKGxldCBkZXZpY2Ugb2YgZGV2aWNlcykgeworICAgICAgICAgICAgICAgIGlmIChkZXZp
Y2Uua2luZCA9PT0ga2luZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tTcGVha2VyU2VsZWN0
aW9uKCkKKyAgICB7CisgICAgICAgIC8vIFNwZWFrZXJzIGFyZSBjdXJyZW50bHkgb25seSBleHBv
c2VkIGFmdGVyIGdldFVzZXJNZWRpYS4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGF3YWl0
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8gOiB0cnVlIH0pOwor
ICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW8gOiB0
cnVlIH0pOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGNoZWNrRGV2aWNlS2luZCgnYXVkaW9vdXRwdXQnKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5j
dGlvbiBlbnVtZXJhdGUoKQorICAgIHsKKyAgICAgICAgbGV0IHZpc2libGUgPSBbXTsKKyAgICAg
ICAgaWYgKGF3YWl0IGNoZWNrRGV2aWNlS2luZCgndmlkZW9pbnB1dCcpKQorICAgICAgICAgICAg
dmlzaWJsZS5wdXNoKCdjYW1lcmEnKTsKKyAgICAgICAgaWYgKGF3YWl0IGNoZWNrRGV2aWNlS2lu
ZCgnYXVkaW9pbnB1dCcpKQorICAgICAgICAgICAgdmlzaWJsZS5wdXNoKCdtaWNyb3Bob25lJyk7
CisgICAgICAgIGlmIChhd2FpdCBjaGVja1NwZWFrZXJTZWxlY3Rpb24oKSkKKyAgICAgICAgICAg
IHZpc2libGUucHVzaCgnc3BlYWtlcnNlbGVjdGlvbicpOworIAogICAgICAgICB2aXNpYmxlID0g
dmlzaWJsZS5qb2luKCcrJyk7Ci0gICAgICAgIHBhcmVudC5wb3N0TWVzc2FnZShgJHtldmVudC5k
YXRhfToke3Zpc2libGV9YCwgJyonKTsKLSAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9IHZpc2li
bGU7CisgICAgICAgIHBhcmVudC5wb3N0TWVzc2FnZSh2aXNpYmxlLCAnKicpOworICAgICAgICBy
ZXN1bHQuaW5uZXJIVE1MID0gJ3Jlc3VsdDogIicgKyB2aXNpYmxlICsgJyInOwogICAgIH0KIAot
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGlkKSA9PiBlbnVtZXJhdGUo
aWQpKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGVudW1lcmF0ZSk7
CiA8L3NjcmlwdD4KIAogPGRpdiBpZD0ncmVzdWx0Jz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMvTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IDgwOWZjZTJkOWQ0NzhjMzE4MWE4NjQyZThmZmQyMzE2NzViYTg2ODQuLmU1MjQ4MTNjOGZlYWQ1
MmEwM2UxMzBjZjNmMWFlMzU1ZWYxNjRlYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRp
YVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcg
QEAgV2hlbiBwcm9tcHRlZCwgYWNjZXB0IHRvIHNoYXJlIHlvdXIgdmlkZW8gc3RyZWFtLgogCiBQ
QVNTIEEgZGV2aWNlIGNhbiBiZSBvcGVuZWQgdHdpY2UgYW5kIGhhdmUgdGhlIHNhbWUgZGV2aWNl
IElEIAogUEFTUyBBIGRldmljZSBjYW4gYmUgb3BlbmVkIHR3aWNlIHdpdGggZGlmZmVyZW50IHJl
c29sdXRpb25zIHJlcXVlc3RlZCAKLUZBSUwgZ3JvdXBJZCBpcyBjb3JyZWN0bHkgcmVwb3J0ZWQg
YnkgZ2V0U2V0dGluZ3MoKSBmb3IgYWxsIGlucHV0IGRldmljZXMgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHN0cmluZykgIiIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgZ3Jv
dXBJZCBpcyBjb3JyZWN0bHkgcmVwb3J0ZWQgYnkgZ2V0U2V0dGluZ3MoKSBmb3IgYWxsIGlucHV0
IGRldmljZXMgYXNzZXJ0X3RydWU6IGRldmljZSBncm91cElkIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCiBQQVNTIGRldmljZUlkIGlzIHJlcG9ydGVkIGJ5IGdldFNldHRpbmdzKCkgZm9yIGdldFVz
ZXJNZWRpYSgpIGF1ZGlvIHRyYWNrcyAKIEZBSUwgZ3JvdXBJZCBpcyByZXBvcnRlZCBieSBnZXRT
ZXR0aW5ncygpIGZvciBnZXRVc2VyTWVkaWEoKSBhdWRpbyB0cmFja3MgYXNzZXJ0X2VxdWFsczog
Z3JvdXBJZCBzaG91bGQgZXhpc3QgYW5kIGl0IHNob3VsZCBiZSBhIHN0cmluZy4gZXhwZWN0ZWQg
InN0cmluZyIgYnV0IGdvdCAidW5kZWZpbmVkIgogUEFTUyBzYW1wbGVSYXRlIGlzIHJlcG9ydGVk
IGJ5IGdldFNldHRpbmdzKCkgZm9yIGdldFVzZXJNZWRpYSgpIGF1ZGlvIHRyYWNrcyAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLmh0bWwKaW5kZXggZDk0
YjQzYzljZjlhMTM3ZDI1MjBmYmY2OTYyMmE2MjAxMTIyMGE0Ni4uOGQ4ZGQ3YjcxYmRjZThkMGI0
NTE0NWExZGUzMjcxY2UwMDA2OTM4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRy
YWNrLWdldFNldHRpbmdzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNr
LWdldFNldHRpbmdzLmh0dHBzLmh0bWwKQEAgLTczLDggKzczLDcgQEAKICAgICAgICAgOiB7dmlk
ZW86IGRldmljZV9pZF9jb25zdHJhaW50fTsKIAogICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoY29uc3RyYWludHMpOwotICAgICAg
YXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0VHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS5ncm91cElk
LAotICAgICAgICAgICAgICAgICAgICBkZXZpY2UuZ3JvdXBJZCk7CisgICAgICBhc3NlcnRfdHJ1
ZShzdHJlYW0uZ2V0VHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS5ncm91cElkID09PSBkZXZpY2Uu
Z3JvdXBJZCwgImRldmljZSBncm91cElkIik7CiAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGRl
dmljZS5ncm91cElkLmxlbmd0aCwgMCk7CiAgICAgfQogICB9LCAnZ3JvdXBJZCBpcyBjb3JyZWN0
bHkgcmVwb3J0ZWQgYnkgZ2V0U2V0dGluZ3MoKSBmb3IgYWxsIGlucHV0IGRldmljZXMnKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>