<?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>221399</bug_id>
          
          <creation_ts>2021-02-04 04:22:20 -0800</creation_ts>
          <short_desc>Device motion / orientation events not working in third-party iframes despite Feature-Policy allowing it</short_desc>
          <delta_ts>2021-12-01 00:23:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>Safari 14</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Will Morgan">will.morgan</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joe.palmer</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>rich.tibbett</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>will.morgan</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725586</commentid>
    <comment_count>0</comment_count>
      <attachid>419269</attachid>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-04 04:22:20 -0800</bug_when>
    <thetext>Created attachment 419269
Safari gyroscope iframe permission problem

Using iOS 14, DeviceMotionEvent.requestPermission does not exist in documents that are hosted within a cross-origin iframe, even if feature policy is set.

This seems to be because the gyroscope capability of Safari isn&apos;t yet supported, as documented on MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy

To replicate, please:

1. See the attached reproduction or https://storage.cloud.google.com/public-demo/safarigyro.html
2. Navigate to the page using Safari, preferably on a device with a gyroscope, like an iPhone or iPad.
3. Observe that DeviceMotionEvent.requestPermission works correctly on the hosting page.
4. Observe that even though the gyroscope property is set per the Feature-Policy (Permissions-Policy?), the clicking the iframe&apos;d button triggers an error.

This currently affects anyone wanting to integrate apps that use device motion in an iframe, which is a proven, reasonable and ubiquitous integration method for web apps wanting to compose their own user experiences with tools from other vendors.

There is no satisfactory workaround for the above issue. Any consenting web application cannot prompt their users to request gyroscope permissions, therefore device motion is broken in iframes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728036</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-11 04:23:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74229227&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728124</commentid>
    <comment_count>2</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-11 09:12:36 -0800</bug_when>
    <thetext>Further to this, detecting this behaviour is extremely difficult if not impossible, which means it is impossible to provide a progressive enhancement workaround.

Using Safari 14, inside an iframe, DeviceMotionEvent and DeviceMotionEvent.requestPermission both exist and the latter is callable.

This means that the only way developers can work around this is to block ALL PREVIOUS, CURRENT AND FUTURE mobile WebKit browsers inside iframes. There is no way we can supply progressive enhancement scaffolding that provides a workaround that will disappear when or indeed if this bug is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728128</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-11 09:16:04 -0800</bug_when>
    <thetext>WebKit does not allow the use of the device motion API at all in third-party iframes so exposing the permission API there did not make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728142</commentid>
    <comment_count>4</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-11 09:40:34 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; WebKit does not allow the use of the device motion API at all in third-party
&gt; iframes so exposing the permission API there did not make sense.

If that is the position that has been taken, why does DeviceMotionEvent.requestPermission exist but simply do nothing?

Would you agree that this undefined behaviour would be better replaced by throwing an error, or simply not exposing the DeviceMotionEvent or requestPermission APIs?

What about consenting app developers who have made the informed choice and want to make use of the Feature Policy functionality to whitelist device motion events, in the same way that cameras can be allowed?

To allow cameras but not device motion, to me, is an unusual weighting of priorities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728144</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-11 09:43:36 -0800</bug_when>
    <thetext>(In reply to Will Morgan from comment #4)
&gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; WebKit does not allow the use of the device motion API at all in third-party
&gt; &gt; iframes so exposing the permission API there did not make sense.
&gt; 
&gt; If that is the position that has been taken, why does
&gt; DeviceMotionEvent.requestPermission exist but simply do nothing?

Do nothing? As far as I can tell, we are resolving the promise with state=&quot;denied&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728149</commentid>
    <comment_count>6</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-11 10:01:41 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; As far as I can tell, we are resolving the promise with state=&quot;denied&quot;.

You are correct - apologies. However IMHO, my point still stands after a slight reformulation:

requestPermission exists and is callable, but it always returns a predetermined denied result. There&apos;s been no user interaction; it is impossible to discern between an informed user action and a blanket block.

Site owners can opt-in to camera access on a per-iframe basis, but they cannot do the same for gyroscope access. iOS prompts for device motion and orientation in the same way as camera access is requested, with a modal confirm dialog.

It would be great to be able to tell the user &quot;sorry, your browser isn&apos;t supported&quot; versus &quot;we need device motion data, could you please allow it?&quot;

But it would be even better if WebKit could respect the gyroscope and accelerometer feature policies, just like it allows camera and fullscreen access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728480</commentid>
    <comment_count>7</comment_count>
    <who name="Mark B">mark.burrett</who>
    <bug_when>2021-02-12 00:51:02 -0800</bug_when>
    <thetext>I would like to second the concerns expressed above.

Providing support for camera, microphone, fullscreen, etc in third-party iframes, but none for device motion detection, seems rather arbitrary and has severe implications, not just for us but almost certainly for many other web apps out there.

This functionality is available in all other major browsers.

Is there any room for optimism that this will be addressed in the near future? If not, can we please get a more comprehensive statement as to why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732502</commentid>
    <comment_count>8</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-23 05:39:59 -0800</bug_when>
    <thetext>Another inconsistency in policy application (IMHO) is that very recently, WebKit allows third party iframes to request local storage access: https://webkit.org/blog/11545/updates-to-the-storage-access-api/

But still not device motion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732562</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 09:37:51 -0800</bug_when>
    <thetext>I agree it seems like a good idea to leverage Feature-Policy make device motion/orientation events functional in third-party iframes.

I see there are 2 feature policies that could be at play here: accelerometer &amp; gyroscope. We also have 2 types of events: DeviceMotionEvent &amp; DeviceOrientationEvent.

I need to look into this because I am not quite should what the mapping should be yet. Let me know if you have an opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732570</commentid>
    <comment_count>10</comment_count>
      <attachid>421322</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 09:53:27 -0800</bug_when>
    <thetext>Created attachment 421322
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732611</commentid>
    <comment_count>11</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-23 11:00:50 -0800</bug_when>
    <thetext>Hi Chris, appreciate that massively. Look forward to testing as and when it hits a technology preview release. Let me know if we can help in any way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732627</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 11:25:24 -0800</bug_when>
    <thetext>(In reply to Will Morgan from comment #11)
&gt; Hi Chris, appreciate that massively. Look forward to testing as and when it
&gt; hits a technology preview release. Let me know if we can help in any way.

Sadly, we don&apos;t have Safari Technology Preview on iOS, only macOS. Device Motion/Orientation is an iOS-only feature.

You can help my letting me know which feature-policy (gyroscope, accelerometer) you think should be required for which events (Motion, Orientation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732631</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 11:37:43 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #12)
&gt; (In reply to Will Morgan from comment #11)
&gt; &gt; Hi Chris, appreciate that massively. Look forward to testing as and when it
&gt; &gt; hits a technology preview release. Let me know if we can help in any way.
&gt; 
&gt; Sadly, we don&apos;t have Safari Technology Preview on iOS, only macOS. Device
&gt; Motion/Orientation is an iOS-only feature.
&gt; 
&gt; You can help my letting me know which feature-policy (gyroscope,
&gt; accelerometer) you think should be required for which events (Motion,
&gt; Orientation).

Looking at the blink code it seems:
1. DeviceMotionEvent: Requires gyroscope &amp; accelerometer
2. DeviceOrientationEvent: Requires gyroscope &amp; accelerometer &amp; magnetometer

Sounds about right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732637</commentid>
    <comment_count>14</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-23 11:54:54 -0800</bug_when>
    <thetext>Ok, noted!

In terms of which feature policies enable which features, here&apos;s my understanding:

DeviceMotionEvent exposes data that you need both accelerometer and gyroscope sensors to access.

DeviceOrientationEvent exposes compass related data that you need the gyroscope for, and in the case of the orientationabsolute event, the magnetometer is needed: https://w3c.github.io/deviceorientation/#deviceorientationabsolute

Looking at your analysis I think we&apos;re agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732648</commentid>
    <comment_count>15</comment_count>
      <attachid>421339</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 12:17:13 -0800</bug_when>
    <thetext>Created attachment 421339
WIP Patch (Needs tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732696</commentid>
    <comment_count>16</comment_count>
      <attachid>421354</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 14:55:14 -0800</bug_when>
    <thetext>Created attachment 421354
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732716</commentid>
    <comment_count>17</comment_count>
      <attachid>421362</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 15:57:53 -0800</bug_when>
    <thetext>Created attachment 421362
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732736</commentid>
    <comment_count>18</comment_count>
      <attachid>421371</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 17:05:53 -0800</bug_when>
    <thetext>Created attachment 421371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732744</commentid>
    <comment_count>19</comment_count>
      <attachid>421376</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-23 17:15:33 -0800</bug_when>
    <thetext>Created attachment 421376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732834</commentid>
    <comment_count>20</comment_count>
      <attachid>421376</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 05:05:58 -0800</bug_when>
    <thetext>Comment on attachment 421376
Patch

LGTM overall, but I&apos;d like to understand why we need m_accessStatePerOrigin.
 
View in context: https://bugs.webkit.org/attachment.cgi?id=421376&amp;action=review

&gt; Source/WebCore/dom/DeviceMotionEvent.cpp:144
&gt; +    page-&gt;deviceOrientationAndMotionAccessController().shouldAllowAccess(document, [promise = WTFMove(promise)](PermissionState permissionState) mutable {

could use auto.

&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:49
&gt; +    auto it = m_accessStatePerOrigin.find(document.securityOrigin().data());

iterator?

&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:72
&gt; +    page-&gt;chrome().client().shouldAllowDeviceOrientationAndMotionAccess(*document.frame(), mayPrompt, [this, weakThis = makeWeakPtr(this), securityOrigin = makeRef(document.securityOrigin()), callback = WTFMove(callback)](DeviceOrientationOrMotionPermissionState permissionState) mutable {

could use auto.

&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:76
&gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);

Why do we need this map?
Also, it seems the map could span multiple top documents? What happens if user changes per-site settings and tries to apply them by reloading a page.
Can we simplify the patch by removing m_accessStatePerOrigin?

&gt; Source/WebCore/page/DOMWindow.cpp:2030
&gt; +        || !isFeaturePolicyAllowedByDocumentAndAllOwners(FeaturePolicy::Type::Accelerometer, *document(), LogFeaturePolicyFailure::No)) {

Is there a case where gyroscope can be used, but not accelerometer? Maybe we should send feedback to the spec authors if that is not the case.

&gt; LayoutTests/ChangeLog:9
&gt; +        Add layout test coverage.

Can we import web-platform-tests/orientation-sensor?
It seems some of these tests might cover the same area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732874</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 07:55:59 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #20)
&gt; Comment on attachment 421376 [details]
&gt; Patch
&gt; 
&gt; LGTM overall, but I&apos;d like to understand why we need m_accessStatePerOrigin.
&gt;  
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421376&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DeviceMotionEvent.cpp:144
&gt; &gt; +    page-&gt;deviceOrientationAndMotionAccessController().shouldAllowAccess(document, [promise = WTFMove(promise)](PermissionState permissionState) mutable {
&gt; 
&gt; could use auto.
&gt; 
&gt; &gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:49
&gt; &gt; +    auto it = m_accessStatePerOrigin.find(document.securityOrigin().data());
&gt; 
&gt; iterator?
&gt; 
&gt; &gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:72
&gt; &gt; +    page-&gt;chrome().client().shouldAllowDeviceOrientationAndMotionAccess(*document.frame(), mayPrompt, [this, weakThis = makeWeakPtr(this), securityOrigin = makeRef(document.securityOrigin()), callback = WTFMove(callback)](DeviceOrientationOrMotionPermissionState permissionState) mutable {
&gt; 
&gt; could use auto.
&gt; 
&gt; &gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:76
&gt; &gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);
&gt; 
&gt; Why do we need this map?
&gt; Also, it seems the map could span multiple top documents? What happens if
&gt; user changes per-site settings and tries to apply them by reloading a page.
&gt; Can we simplify the patch by removing m_accessStatePerOrigin?

Since it is stored on the Page, then yes, it can span multiple top documents in case of navigation. The reason for the caching in the map is that we want to avoid IPC to the UIProcess every time an orientation/motion event listener gets added. I think you have a point with the per-site setting though. I think that ideally we want some kind of caching to avoid frequent IPC to the UIProcess (like we had before this patch) but also, we don&apos;t want this caching to persist on navigation (life before this patch). I will look into this more.
 
&gt; &gt; Source/WebCore/page/DOMWindow.cpp:2030
&gt; &gt; +        || !isFeaturePolicyAllowedByDocumentAndAllOwners(FeaturePolicy::Type::Accelerometer, *document(), LogFeaturePolicyFailure::No)) {
&gt; 
&gt; Is there a case where gyroscope can be used, but not accelerometer? Maybe we
&gt; should send feedback to the spec authors if that is not the case.
&gt; 
&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        Add layout test coverage.
&gt; 
&gt; Can we import web-platform-tests/orientation-sensor?
&gt; It seems some of these tests might cover the same area.

These tests seem to be for https://w3c.github.io/orientation-sensor/ which we do not support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732875</commentid>
    <comment_count>22</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 07:59:46 -0800</bug_when>
    <thetext>Since we have feature policy integration, I would cache the value retrieved through IPC somewhere at the main document level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732880</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:34:17 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #22)
&gt; Since we have feature policy integration, I would cache the value retrieved
&gt; through IPC somewhere at the main document level.

Oh, because different iframes from the same origin could have different feature policy and thus have different access to orientation events?

This works fine with my current approach because DOMWindow checks both whether the frame has API access and if the frame&apos;s origin has received the permission:
```
    if (!isAllowedToUseDeviceOrientation(innerMessage) || !hasPermissionToReceiveDeviceMotionOrOrientationEvents(innerMessage)) {
        if (auto* document = this-&gt;document())
            document-&gt;addConsoleMessage(MessageSource::JS, MessageLevel::Warning, makeString(&quot;No device orientation events will be fired, reason: &quot;, innerMessage, &quot;.&quot;));
        return;
    }
```

Consider the case where you have 2 third-party iframes from the same origin and both need access to orientation events. I do not want to prompt twice in such cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732882</commentid>
    <comment_count>24</comment_count>
      <attachid>421412</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:35:46 -0800</bug_when>
    <thetext>Created attachment 421412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732883</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:36:21 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #23)
&gt; (In reply to youenn fablet from comment #22)
&gt; &gt; Since we have feature policy integration, I would cache the value retrieved
&gt; &gt; through IPC somewhere at the main document level.
&gt; 
&gt; Oh, because different iframes from the same origin could have different
&gt; feature policy and thus have different access to orientation events?
&gt; 
&gt; This works fine with my current approach because DOMWindow checks both
&gt; whether the frame has API access and if the frame&apos;s origin has received the
&gt; permission:
&gt; ```
&gt;     if (!isAllowedToUseDeviceOrientation(innerMessage) ||
&gt; !hasPermissionToReceiveDeviceMotionOrOrientationEvents(innerMessage)) {
&gt;         if (auto* document = this-&gt;document())
&gt;             document-&gt;addConsoleMessage(MessageSource::JS,
&gt; MessageLevel::Warning, makeString(&quot;No device orientation events will be
&gt; fired, reason: &quot;, innerMessage, &quot;.&quot;));
&gt;         return;
&gt;     }
&gt; ```
&gt; 
&gt; Consider the case where you have 2 third-party iframes from the same origin
&gt; and both need access to orientation events. I do not want to prompt twice in
&gt; such cases.

(and both third-party iframes are allowed to use the API via Feature-Policy, obviously)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732884</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:42:49 -0800</bug_when>
    <thetext>I made the following changes:
1. Made suggested nit fixes
2. Moved the DeviceOrientationAndMotionAccessController from the Page to the top Document so that permissions no longer survive on navigation.
3. Fixed per-site setting checking in DeviceOrientationAndMotionAccessController to check the topFrame&apos;s documentLoader instead of the current frame&apos;s when in a first-party iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732886</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:44:32 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #26)
&gt; I made the following changes:
&gt; 1. Made suggested nit fixes
&gt; 2. Moved the DeviceOrientationAndMotionAccessController from the Page to the
&gt; top Document so that permissions no longer survive on navigation.
&gt; 3. Fixed per-site setting checking in
&gt; DeviceOrientationAndMotionAccessController to check the topFrame&apos;s
&gt; documentLoader instead of the current frame&apos;s when in a first-party iframe.

And again, I kept the map of SecurityOrigin -&gt; permission state because I do not want several third-party iframes (from the same origin and all allowed via Feature-Policy) to have to request permission independently, each time with a user-gesture. The permission is per origin so the user giving permission for one of these iframes should be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732892</commentid>
    <comment_count>28</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 08:52:12 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #27)
&gt; (In reply to Chris Dumez from comment #26)
&gt; &gt; I made the following changes:
&gt; &gt; 1. Made suggested nit fixes
&gt; &gt; 2. Moved the DeviceOrientationAndMotionAccessController from the Page to the
&gt; &gt; top Document so that permissions no longer survive on navigation.
&gt; &gt; 3. Fixed per-site setting checking in
&gt; &gt; DeviceOrientationAndMotionAccessController to check the topFrame&apos;s
&gt; &gt; documentLoader instead of the current frame&apos;s when in a first-party iframe.
&gt; 
&gt; And again, I kept the map of SecurityOrigin -&gt; permission state because I do
&gt; not want several third-party iframes (from the same origin and all allowed
&gt; via Feature-Policy) to have to request permission independently, each time
&gt; with a user-gesture. The permission is per origin so the user giving
&gt; permission for one of these iframes should be enough.

From a user perspective, a prompt will likely be annoying no matter whether the two iframes are same origin or not.
User is not aware of the difference between the two.
The decision to prompt or not can either be done UIProcess or WebProcess.

Given feature policy trend, we could remove the possibility for a WebKit application to grant certain iframe origins and not others.
User either grants or denies access to all documents of the page (not persisting on top level document navigation though).

That would fix the case of a user having to deny access to topOrigin/iframeOrigin1, topOrigin/iframeOrigin2, topOrigin/iframeOrigin3.
That said, given there is a user activation requirement for this API and since we check user activation is on the document that calls the device orientation API, we could consider persisting granting but not denying.

That removes the need for the map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732893</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:54:16 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #28)
&gt; (In reply to Chris Dumez from comment #27)
&gt; &gt; (In reply to Chris Dumez from comment #26)
&gt; &gt; &gt; I made the following changes:
&gt; &gt; &gt; 1. Made suggested nit fixes
&gt; &gt; &gt; 2. Moved the DeviceOrientationAndMotionAccessController from the Page to the
&gt; &gt; &gt; top Document so that permissions no longer survive on navigation.
&gt; &gt; &gt; 3. Fixed per-site setting checking in
&gt; &gt; &gt; DeviceOrientationAndMotionAccessController to check the topFrame&apos;s
&gt; &gt; &gt; documentLoader instead of the current frame&apos;s when in a first-party iframe.
&gt; &gt; 
&gt; &gt; And again, I kept the map of SecurityOrigin -&gt; permission state because I do
&gt; &gt; not want several third-party iframes (from the same origin and all allowed
&gt; &gt; via Feature-Policy) to have to request permission independently, each time
&gt; &gt; with a user-gesture. The permission is per origin so the user giving
&gt; &gt; permission for one of these iframes should be enough.
&gt; 
&gt; From a user perspective, a prompt will likely be annoying no matter whether
&gt; the two iframes are same origin or not.
&gt; User is not aware of the difference between the two.
&gt; The decision to prompt or not can either be done UIProcess or WebProcess.
&gt; 
&gt; Given feature policy trend, we could remove the possibility for a WebKit
&gt; application to grant certain iframe origins and not others.
&gt; User either grants or denies access to all documents of the page (not
&gt; persisting on top level document navigation though).
&gt; 
&gt; That would fix the case of a user having to deny access to
&gt; topOrigin/iframeOrigin1, topOrigin/iframeOrigin2, topOrigin/iframeOrigin3.
&gt; That said, given there is a user activation requirement for this API and
&gt; since we check user activation is on the document that calls the device
&gt; orientation API, we could consider persisting granting but not denying.
&gt; 
&gt; That removes the need for the map.

I am not sure what you&apos;re arguing for. We standardized this permission API and it is per origin, not per top level-document. Any standards change is out of scope of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732894</commentid>
    <comment_count>30</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 08:55:23 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #29)
&gt; (In reply to youenn fablet from comment #28)
&gt; &gt; (In reply to Chris Dumez from comment #27)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #26)
&gt; &gt; &gt; &gt; I made the following changes:
&gt; &gt; &gt; &gt; 1. Made suggested nit fixes
&gt; &gt; &gt; &gt; 2. Moved the DeviceOrientationAndMotionAccessController from the Page to the
&gt; &gt; &gt; &gt; top Document so that permissions no longer survive on navigation.
&gt; &gt; &gt; &gt; 3. Fixed per-site setting checking in
&gt; &gt; &gt; &gt; DeviceOrientationAndMotionAccessController to check the topFrame&apos;s
&gt; &gt; &gt; &gt; documentLoader instead of the current frame&apos;s when in a first-party iframe.
&gt; &gt; &gt; 
&gt; &gt; &gt; And again, I kept the map of SecurityOrigin -&gt; permission state because I do
&gt; &gt; &gt; not want several third-party iframes (from the same origin and all allowed
&gt; &gt; &gt; via Feature-Policy) to have to request permission independently, each time
&gt; &gt; &gt; with a user-gesture. The permission is per origin so the user giving
&gt; &gt; &gt; permission for one of these iframes should be enough.
&gt; &gt; 
&gt; &gt; From a user perspective, a prompt will likely be annoying no matter whether
&gt; &gt; the two iframes are same origin or not.
&gt; &gt; User is not aware of the difference between the two.
&gt; &gt; The decision to prompt or not can either be done UIProcess or WebProcess.
&gt; &gt; 
&gt; &gt; Given feature policy trend, we could remove the possibility for a WebKit
&gt; &gt; application to grant certain iframe origins and not others.
&gt; &gt; User either grants or denies access to all documents of the page (not
&gt; &gt; persisting on top level document navigation though).
&gt; &gt; 
&gt; &gt; That would fix the case of a user having to deny access to
&gt; &gt; topOrigin/iframeOrigin1, topOrigin/iframeOrigin2, topOrigin/iframeOrigin3.
&gt; &gt; That said, given there is a user activation requirement for this API and
&gt; &gt; since we check user activation is on the document that calls the device
&gt; &gt; orientation API, we could consider persisting granting but not denying.
&gt; &gt; 
&gt; &gt; That removes the need for the map.
&gt; 
&gt; I am not sure what you&apos;re arguing for. We standardized this permission API
&gt; and it is per origin, not per top level-document. Any standards change is
&gt; out of scope of this patch.

And I am opposed to requiring the user to interact with iframes individually in order to give them permission, if those iframes are from the same origin (and they all have the appropriate feature policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732896</commentid>
    <comment_count>31</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:01:06 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #28)
&gt; (In reply to Chris Dumez from comment #27)
&gt; &gt; (In reply to Chris Dumez from comment #26)
&gt; &gt; &gt; I made the following changes:
&gt; &gt; &gt; 1. Made suggested nit fixes
&gt; &gt; &gt; 2. Moved the DeviceOrientationAndMotionAccessController from the Page to the
&gt; &gt; &gt; top Document so that permissions no longer survive on navigation.
&gt; &gt; &gt; 3. Fixed per-site setting checking in
&gt; &gt; &gt; DeviceOrientationAndMotionAccessController to check the topFrame&apos;s
&gt; &gt; &gt; documentLoader instead of the current frame&apos;s when in a first-party iframe.
&gt; &gt; 
&gt; &gt; And again, I kept the map of SecurityOrigin -&gt; permission state because I do
&gt; &gt; not want several third-party iframes (from the same origin and all allowed
&gt; &gt; via Feature-Policy) to have to request permission independently, each time
&gt; &gt; with a user-gesture. The permission is per origin so the user giving
&gt; &gt; permission for one of these iframes should be enough.
&gt; 
&gt; From a user perspective, a prompt will likely be annoying no matter whether
&gt; the two iframes are same origin or not.
&gt; User is not aware of the difference between the two.
&gt; The decision to prompt or not can either be done UIProcess or WebProcess.

The UIProcess would already make sure we do not prompt twice for the same origin. However, the JS would still need to request the permission again in each iframe from same origin (or even time the third-party gets navigated) and requesting permission requires a user gesture. The issue is not with double prompting but rather with forcing the user to interact with third-party iframes individually for no good reason, or forcing them to interact with a third-party iframe again simply because it got navigated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732900</commentid>
    <comment_count>32</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 09:05:24 -0800</bug_when>
    <thetext>&gt; &gt; I am not sure what you&apos;re arguing for. We standardized this permission API
&gt; &gt; and it is per origin, not per top level-document. Any standards change is
&gt; &gt; out of scope of this patch.

The permission is really per top level-document origin.

&gt; And I am opposed to requiring the user to interact with iframes individually
&gt; in order to give them permission, if those iframes are from the same origin
&gt; (and they all have the appropriate feature policy.

There seems to be a misunderstanding, I am not pushing for more prompts but less prompts.

Let&apos;s say we have a top level document DOC (origin A) with iframe I1 (origin B), iframe I2 (origin B) and iframe I3 (origin C).

User interacts with I1 and allows device orientation after being prompted with origin A in the prompt. From user point of view, decision is made to grant DOC, I1, I2 and I3 are unknown implementation details.

At that point, what you are saying is that you do not want I2 to trigger a prompt. That is fair.
What I am saying is that we might not want to prompt if DOC wants access too.
Ditto for I3 (that might be the most controversial one).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732901</commentid>
    <comment_count>33</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:11:32 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #32)
&gt; &gt; &gt; I am not sure what you&apos;re arguing for. We standardized this permission API
&gt; &gt; &gt; and it is per origin, not per top level-document. Any standards change is
&gt; &gt; &gt; out of scope of this patch.
&gt; 
&gt; The permission is really per top level-document origin.

It is not. I standardized it and it is per origin:
https://w3c.github.io/deviceorientation/#id=permission-model</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732903</commentid>
    <comment_count>34</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:13:57 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #33)
&gt; (In reply to youenn fablet from comment #32)
&gt; &gt; &gt; &gt; I am not sure what you&apos;re arguing for. We standardized this permission API
&gt; &gt; &gt; &gt; and it is per origin, not per top level-document. Any standards change is
&gt; &gt; &gt; &gt; out of scope of this patch.
&gt; &gt; 
&gt; &gt; The permission is really per top level-document origin.
&gt; 
&gt; It is not. I standardized it and it is per origin:
&gt; https://w3c.github.io/deviceorientation/#id=permission-model

And I want it to stay per origin and the origin is displayed on the prompt. Giving access to such sensitive data to the top level origin does not mean I would be OK as a user sharing this information with ads on the page. Similarly, giving the permission to a trusted iframe does not mean I would trust other third-party iframes from different origins with that information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732905</commentid>
    <comment_count>35</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 09:19:18 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #33)
&gt; (In reply to youenn fablet from comment #32)
&gt; &gt; &gt; &gt; I am not sure what you&apos;re arguing for. We standardized this permission API
&gt; &gt; &gt; &gt; and it is per origin, not per top level-document. Any standards change is
&gt; &gt; &gt; &gt; out of scope of this patch.
&gt; &gt; 
&gt; &gt; The permission is really per top level-document origin.
&gt; 
&gt; It is not. I standardized it and it is per origin:
&gt; https://w3c.github.io/deviceorientation/#id=permission-model

Oh I see. So in the prompt, this is the origin of the iframe and not of the top level-document that is shown?
This is a very different model from getUserMedia, geolocation (as well?).
What is the rationale to differ there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732906</commentid>
    <comment_count>36</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 09:20:25 -0800</bug_when>
    <thetext>&gt; &gt; It is not. I standardized it and it is per origin:
&gt; &gt; https://w3c.github.io/deviceorientation/#id=permission-model

It is not clear to me what the origin in this link refers to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732907</commentid>
    <comment_count>37</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:23:38 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #35)
&gt; (In reply to Chris Dumez from comment #33)
&gt; &gt; (In reply to youenn fablet from comment #32)
&gt; &gt; &gt; &gt; &gt; I am not sure what you&apos;re arguing for. We standardized this permission API
&gt; &gt; &gt; &gt; &gt; and it is per origin, not per top level-document. Any standards change is
&gt; &gt; &gt; &gt; &gt; out of scope of this patch.
&gt; &gt; &gt; 
&gt; &gt; &gt; The permission is really per top level-document origin.
&gt; &gt; 
&gt; &gt; It is not. I standardized it and it is per origin:
&gt; &gt; https://w3c.github.io/deviceorientation/#id=permission-model
&gt; 
&gt; Oh I see. So in the prompt, this is the origin of the iframe and not of the
&gt; top level-document that is shown?

That is correct.

&gt; This is a very different model from getUserMedia, geolocation (as well?).
&gt; What is the rationale to differ there?

I am not familiar with getUserMedia (and geolocation is old). The reason we added this permission API is that those events were used by ads for tracking purposes. As a user, I can be a top-level site that legitimately needs my device orientation and as a user I can choose to share this private information with first-party content. However, this should NOT give my private information to ads on that page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732908</commentid>
    <comment_count>38</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:25:12 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #36)
&gt; &gt; &gt; It is not. I standardized it and it is per origin:
&gt; &gt; &gt; https://w3c.github.io/deviceorientation/#id=permission-model
&gt; 
&gt; It is not clear to me what the origin in this link refers to.

Maybe I am no good at writing specs :) But here is where I think it is clear
```
The static requestPermission() operation, when invoked, must run these steps:

Let promise be a new promise.

Run these steps in parallel:

Let permission be permission for relevant settings object’s origin.

If permission is &quot;default&quot; and the method call was not triggered by user activation, then reject promise with a NotAllowedError DOMException and abort these steps.

If permission is &quot;default&quot;, ask the user whether sharing device orientation for the relevant settings object’s origin is acceptable. If it is, set permission to &quot;granted&quot;, and &quot;denied&quot; otherwise.

Queue a task to run these steps:

Set permission for the relevant settings object’s origin to permission.

Fulfill promise with permission.

Return promise.
```

-&gt; Let permission be permission for relevant settings object’s origin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732914</commentid>
    <comment_count>39</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 09:32:24 -0800</bug_when>
    <thetext>
&gt; -&gt; Let permission be permission for relevant settings object’s origin.

Ah ok, this one is clear!
I&apos;ll look again at the patch, I do not think this is the right place to discuss whether it is good for device orientation prompt to defer from other prompts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732916</commentid>
    <comment_count>40</comment_count>
      <attachid>421412</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 09:43:13 -0800</bug_when>
    <thetext>Comment on attachment 421412
Patch

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

&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:58
&gt; +    }

It is a bit odd to have this dual code path here.
Maybe we should always go to UIProcess if we do not have the value in the map.

&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:79
&gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);

s/set/add

&gt; LayoutTests/ChangeLog:9
&gt; +        Add layout test coverage.

It is probably worth adding tests for the two iframe behavior you mentionned above.
This could get easily overlooked in refactorings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732919</commentid>
    <comment_count>41</comment_count>
      <attachid>421412</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 09:49:35 -0800</bug_when>
    <thetext>Comment on attachment 421412
Patch

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

&gt;&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:58
&gt;&gt; +    }
&gt; 
&gt; It is a bit odd to have this dual code path here.
&gt; Maybe we should always go to UIProcess if we do not have the value in the map.

Hmm. The UIProcess currently doesn&apos;t know anything about the per-site setting AFAIK. It is passed by the client app in one of the navigation policy delegates and stored on the DocumentLoader in WebCore. Like before my change, the default access state is defined by the per-site setting. Also note that accessState() is synchronous and called when adding event listeners, we don&apos;t want to be doing IPC to the UIProcess in this case.

&gt;&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:79
&gt;&gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);
&gt; 
&gt; s/set/add

Hmm, I usually use add() but in this case I figured whatever the latest decision should overwrite whatever previous decision we have in the map so I figured set() was more appropriate. I don&apos;t think it is a huge deal in practice but I felt set() was conceptually more accurate since we always want the latest up-to-date permission state in the map.

&gt;&gt; LayoutTests/ChangeLog:9
&gt;&gt; +        Add layout test coverage.
&gt; 
&gt; It is probably worth adding tests for the two iframe behavior you mentionned above.
&gt; This could get easily overlooked in refactorings.

Ok. I will look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732988</commentid>
    <comment_count>42</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 11:24:05 -0800</bug_when>
    <thetext>&gt; &gt;&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:79
&gt; &gt;&gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);
&gt; &gt; 
&gt; &gt; s/set/add
&gt; 
&gt; Hmm, I usually use add() but in this case I figured whatever the latest
&gt; decision should overwrite whatever previous decision we have in the map so I
&gt; figured set() was more appropriate. I don&apos;t think it is a huge deal in
&gt; practice but I felt set() was conceptually more accurate since we always
&gt; want the latest up-to-date permission state in the map.

Oh, I thought we were checking the map first before going through IPC.
So that we would not be able to overwrite a map entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732991</commentid>
    <comment_count>43</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 11:26:03 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #42)
&gt; &gt; &gt;&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:79
&gt; &gt; &gt;&gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);
&gt; &gt; &gt; 
&gt; &gt; &gt; s/set/add
&gt; &gt; 
&gt; &gt; Hmm, I usually use add() but in this case I figured whatever the latest
&gt; &gt; decision should overwrite whatever previous decision we have in the map so I
&gt; &gt; figured set() was more appropriate. I don&apos;t think it is a huge deal in
&gt; &gt; practice but I felt set() was conceptually more accurate since we always
&gt; &gt; want the latest up-to-date permission state in the map.
&gt; 
&gt; Oh, I thought we were checking the map first before going through IPC.
&gt; So that we would not be able to overwrite a map entry.

We are checking the map before calling page-&gt;chrome().client().shouldAllowDeviceOrientationAndMotionAccess(). But page-&gt;chrome().client().shouldAllowDeviceOrientationAndMotionAccess() is async so in theory, the domain could be in the map by the time the lambda runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732993</commentid>
    <comment_count>44</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 11:26:47 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #43)
&gt; (In reply to youenn fablet from comment #42)
&gt; &gt; &gt; &gt;&gt; Source/WebCore/dom/DeviceOrientationAndMotionAccessController.cpp:79
&gt; &gt; &gt; &gt;&gt; +        m_accessStatePerOrigin.set(securityOrigin-&gt;data(), permissionState);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; s/set/add
&gt; &gt; &gt; 
&gt; &gt; &gt; Hmm, I usually use add() but in this case I figured whatever the latest
&gt; &gt; &gt; decision should overwrite whatever previous decision we have in the map so I
&gt; &gt; &gt; figured set() was more appropriate. I don&apos;t think it is a huge deal in
&gt; &gt; &gt; practice but I felt set() was conceptually more accurate since we always
&gt; &gt; &gt; want the latest up-to-date permission state in the map.
&gt; &gt; 
&gt; &gt; Oh, I thought we were checking the map first before going through IPC.
&gt; &gt; So that we would not be able to overwrite a map entry.
&gt; 
&gt; We are checking the map before calling
&gt; page-&gt;chrome().client().shouldAllowDeviceOrientationAndMotionAccess(). But
&gt; page-&gt;chrome().client().shouldAllowDeviceOrientationAndMotionAccess() is
&gt; async so in theory, the domain could be in the map by the time the lambda
&gt; runs.

And I don&apos;t think it is entirely theoretical. I believe this can happen if the JS makes multiple permission requests in parallel for the same origin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732997</commentid>
    <comment_count>45</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-24 11:31:36 -0800</bug_when>
    <thetext>Could this trigger double prompting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732998</commentid>
    <comment_count>46</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 11:32:58 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #45)
&gt; Could this trigger double prompting?

No, I don&apos;t believe so. It looks like WebDeviceOrientationAndMotionAccessController::shouldAllowAccess() in the UIProcess properly queues requests and processes only one at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733074</commentid>
    <comment_count>47</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 14:14:22 -0800</bug_when>
    <thetext>(In reply to Will Morgan from comment #14)
&gt; Ok, noted!
&gt; 
&gt; In terms of which feature policies enable which features, here&apos;s my
&gt; understanding:
&gt; 
&gt; DeviceMotionEvent exposes data that you need both accelerometer and
&gt; gyroscope sensors to access.
&gt; 
&gt; DeviceOrientationEvent exposes compass related data that you need the
&gt; gyroscope for, and in the case of the orientationabsolute event, the
&gt; magnetometer is needed:
&gt; https://w3c.github.io/deviceorientation/#deviceorientationabsolute
&gt; 
&gt; Looking at your analysis I think we&apos;re agreed.

@Will Morgan: Just wanted to point out that the demo page you provided only half works with my change because you are missing the &quot;magnetometer&quot; Feature-Policy on your iframe. You are therefore getting the DeviceMotion events but not the DeviceOrientation ones. I have verified manually that adding the  &quot;magnetometer&quot; Feature-Policy on the iframe makes the demo fully work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733082</commentid>
    <comment_count>48</comment_count>
      <attachid>421457</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-24 14:34:19 -0800</bug_when>
    <thetext>Created attachment 421457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733107</commentid>
    <comment_count>49</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-24 15:17:39 -0800</bug_when>
    <thetext>Committed r273444: &lt;https://commits.webkit.org/r273444&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421457.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733349</commentid>
    <comment_count>50</comment_count>
    <who name="Will Morgan">will.morgan</who>
    <bug_when>2021-02-25 09:10:38 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #47)
&gt; @Will Morgan: Just wanted to point out that the demo page you provided only
&gt; half works with my change because you are missing the &quot;magnetometer&quot;
&gt; Feature-Policy on your iframe. You are therefore getting the DeviceMotion
&gt; events but not the DeviceOrientation ones. I have verified manually that
&gt; adding the  &quot;magnetometer&quot; Feature-Policy on the iframe makes the demo fully
&gt; work.

Thanks for the heads up, and more generally the patching. I&apos;ve updated the example to add magnetometer permissions in there too for future travellers.

Do you have an estimate on which iOS version this patch might land in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733351</commentid>
    <comment_count>51</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-25 09:17:47 -0800</bug_when>
    <thetext>(In reply to Will Morgan from comment #50)
&gt; (In reply to Chris Dumez from comment #47)
&gt; &gt; @Will Morgan: Just wanted to point out that the demo page you provided only
&gt; &gt; half works with my change because you are missing the &quot;magnetometer&quot;
&gt; &gt; Feature-Policy on your iframe. You are therefore getting the DeviceMotion
&gt; &gt; events but not the DeviceOrientation ones. I have verified manually that
&gt; &gt; adding the  &quot;magnetometer&quot; Feature-Policy on the iframe makes the demo fully
&gt; &gt; work.
&gt; 
&gt; Thanks for the heads up, and more generally the patching. I&apos;ve updated the
&gt; example to add magnetometer permissions in there too for future travellers.
&gt; 
&gt; Do you have an estimate on which iOS version this patch might land in?

Sadly I cannot comment on when a particular fix will ship to customers, per Apple policy. All I can say is that WebKit trunk usually gets picked up in iOS/macOS builds twice a year (~Feb &amp; ~Sept).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818952</commentid>
    <comment_count>52</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-11-30 14:34:25 -0800</bug_when>
    <thetext>*** Bug 152299 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>419269</attachid>
            <date>2021-02-04 04:22:20 -0800</date>
            <delta_ts>2021-02-04 04:22:20 -0800</delta_ts>
            <desc>Safari gyroscope iframe permission problem</desc>
            <filename>safarigyro.html</filename>
            <type>text/html</type>
            <size>1389</size>
            <attacher name="Will Morgan">will.morgan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+R3lyb3Njb3BlIFNhZmFyaSBp
ZnJhbWUgVGVzdDwvdGl0bGU+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCIgLz4KICA8c2NyaXB0PgogICAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3Jj
RG9jKHJlZGlyZWN0VXJsKSB7CiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVk
aXJlY3RVcmwsIHsKICAgICAgICBtZXRob2Q6ICJHRVQiLAogICAgICAgIG1vZGU6ICJjb3JzIiwK
ICAgICAgICBjYWNoZTogIm5vLWNhY2hlIiwKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAi
Q29udGVudC1UeXBlIjogInRleHQvcGxhaW4iLAogICAgICAgIH0KICAgICAgfSkKICAgICAgcmV0
dXJuIHJlc3BvbnNlLnRleHQoKQogICAgfQogICAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlR3lyb0lm
cmFtZShyZWRpcmVjdFVybCkgewogICAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKQogICAgICBpZnJhbWUuc3JjID0gcmVkaXJlY3RVcmwKICAgICAgaWZy
YW1lLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCAiYWNjZWxlcm9tZXRlcjtjYW1lcmE7ZnVsbHNjcmVl
bjtneXJvc2NvcGUiKQogICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCJhbGxvd2Z1bGxzY3JlZW4i
LCBudWxsKQogICAgICByZXR1cm4gaWZyYW1lCiAgICB9CiAgICBmdW5jdGlvbiB0ZXN0SG9zdFBl
cm1pc3Npb24oKSB7CiAgICAgIGlmIChEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bikgewogICAgICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgJiYgYWxl
cnQoIlBlcm1pc3Npb24gcmVxdWVzdGVkIikKICAgICAgfSBlbHNlIHsKICAgICAgICBhbGVydCgi
RGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24gZG9lc24ndCBleGlzdCAtIGFyZSB5
b3UgdXNpbmcgU2FmYXJpPyIpCiAgICAgIH0KICAgIH0KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBhc3luYyAoKSA9PiB7CiAgICAgIGNvbnN0IGlmcmFt
ZSA9IGF3YWl0IGNyZWF0ZUd5cm9JZnJhbWUoImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNv
bS9wdWJsaWMtZGVtby9pbmRleC5odG1sIikKICAgICAgaWZyYW1lLnN0eWxlID0gIndpZHRoOiAx
MDB2dzsgaGVpZ2h0OiAxMDB2aDsgYm9yZGVyOiAwIgogICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSkKICAgIH0pCiAgPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxidXR0b24g
b25jbGljaz10ZXN0SG9zdFBlcm1pc3Npb24oKT5SZXF1ZXN0IEhvc3QgUGVybWlzc2lvbjwvYnV0
dG9uPgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421322</attachid>
            <date>2021-02-23 09:53:27 -0800</date>
            <delta_ts>2021-02-23 12:17:13 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>221399_wip.patch</filename>
            <type>text/plain</type>
            <size>5643</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCmluZGV4IDAyM2ZiYzQ5MmU0MS4uYmZk
MmM1ZWYyOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3ku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKQEAgLTUyLDYg
KzUyLDEyIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBwb2xpY3lUeXBlTmFtZShGZWF0dXJlUG9saWN5
OjpUeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiAiU3luY1hIUiI7CiAgICAgY2FzZSBGZWF0dXJl
UG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuOgogICAgICAgICByZXR1cm4gIkZ1bGxzY3JlZW4iOwor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpU
eXBlOjpHeXJvc2NvcGU6CisgICAgICAgIHJldHVybiAiR3lyb3Njb3BlIjsKKyAgICBjYXNlIEZl
YXR1cmVQb2xpY3k6OlR5cGU6OkFjY2VsZXJvbWV0ZXI6CisgICAgICAgIHJldHVybiAiQWNjZWxl
cm9tZXRlciI7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgY2FzZSBGZWF0dXJlUG9s
aWN5OjpUeXBlOjpYUlNwYXRpYWxUcmFja2luZzoKICAgICAgICAgcmV0dXJuICJYUlNwYXRpYWxU
cmFja2luZyI7CkBAIC0xNjEsNiArMTY3LDEwIEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGlj
eTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAg
ICBib29sIGlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNT
eW5jWEhSSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzRnVsbHNjcmVlbkluaXRpYWxp
emVkID0gZmFsc2U7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBib29sIGlz
R3lyb3Njb3BlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBib29sIGlzQWNjZWxlcm9tZXRlcklu
aXRpYWxpemVkID0gZmFsc2U7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgYm9vbCBp
c1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICNlbmRpZgpAQCAtMTk2LDYg
KzIwNiwxOCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgICAgICB1cGRhdGVMaXN0
KGRvY3VtZW50LCBwb2xpY3kubV9mdWxsc2NyZWVuUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTEpKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZ3lyb3Njb3BlIikpIHsKKyAg
ICAgICAgICAgIGlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBk
YXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZ3lyb3Njb3BlUnVsZSwgaXRlbS5zdWJzdHJpbmco
MTApKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChpdGVt
LnN0YXJ0c1dpdGgoImFjY2VsZXJvbWV0ZXIiKSkgeworICAgICAgICAgICAgaXNBY2NlbGVyb21l
dGVySW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwg
cG9saWN5Lm1fYWNjZWxlcm9tZXRlclJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDE0KSk7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQogICAg
ICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJ4ci1zcGF0aWFsLXRyYWNraW5nIikpIHsKICAgICAg
ICAgICAgIGlzWFJTcGF0aWFsVHJhY2tpbmdJbml0aWFsaXplZCA9IHRydWU7CkBAIC0yMTQsNiAr
MjM2LDEyIEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICAgICAgcG9saWN5Lm1fc3BlYWtl
clNlbGVjdGlvblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKICAgICBpZiAoIWlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCkKICAgICAgICAg
cG9saWN5Lm1fZGlzcGxheUNhcHR1cmVSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLmRhdGEoKSk7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICBpZiAoIWlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQpCisgICAgICAgIHBvbGljeS5tX2d5cm9zY29w
ZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsK
KyAgICBpZiAoIWlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVkKQorICAgICAgICBwb2xpY3kubV9h
Y2NlbGVyb21ldGVyUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQogICAgIGlmICghaXNYUlNwYXRp
YWxUcmFja2luZ0luaXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV94clNwYXRpYWxUcmFja2lu
Z1J1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsK
QEAgLTI1NSw2ICsyODMsMTIgQEAgYm9vbCBGZWF0dXJlUG9saWN5OjphbGxvd3MoVHlwZSB0eXBl
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKICAgICAgICAgcmV0dXJu
IGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX3N5bmNYSFJSdWxlLCBvcmlnaW4pOwogICAgIGNh
c2UgVHlwZTo6RnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBv
bGljeShtX2Z1bGxzY3JlZW5SdWxlLCBvcmlnaW4pOworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgY2FzZSBUeXBlOjpHeXJvc2NvcGU6CisgICAgICAgIHJldHVybiBpc0FsbG93
ZWRCeUZlYXR1cmVQb2xpY3kobV9neXJvc2NvcGVSdWxlLCBvcmlnaW4pOworICAgIGNhc2UgVHlw
ZTo6QWNjZWxlcm9tZXRlcjoKKyAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGlj
eShtX2FjY2VsZXJvbWV0ZXJSdWxlLCBvcmlnaW4pOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhS
KQogICAgIGNhc2UgVHlwZTo6WFJTcGF0aWFsVHJhY2tpbmc6CiAgICAgICAgIHJldHVybiBpc0Fs
bG93ZWRCeUZlYXR1cmVQb2xpY3kobV94clNwYXRpYWxUcmFja2luZ1J1bGUsIG9yaWdpbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCmluZGV4IGIyNGJlODJhZmFkMy4uYWUyMzU1NzEx
YjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApAQCAtNDUsNiArNDUsMTAgQEAg
cHVibGljOgogICAgICAgICBEaXNwbGF5Q2FwdHVyZSwKICAgICAgICAgU3luY1hIUiwKICAgICAg
ICAgRnVsbHNjcmVlbiwKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICBH
eXJvc2NvcGUsCisgICAgICAgIEFjY2VsZXJvbWV0ZXIsCisjZW5kaWYKICNpZiBFTkFCTEUoV0VC
WFIpCiAgICAgICAgIFhSU3BhdGlhbFRyYWNraW5nLAogI2VuZGlmCkBAIC02NCw3ICs2OCwxMyBA
QCBwcml2YXRlOgogICAgIEFsbG93UnVsZSBtX2Rpc3BsYXlDYXB0dXJlUnVsZTsKICAgICBBbGxv
d1J1bGUgbV9zeW5jWEhSUnVsZTsKICAgICBBbGxvd1J1bGUgbV9mdWxsc2NyZWVuUnVsZTsKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIEFsbG93UnVsZSBtX2d5cm9zY29wZVJ1
bGU7CisgICAgQWxsb3dSdWxlIG1fYWNjZWxlcm9tZXRlclJ1bGU7CisjZW5kaWYKKyNpZiBFTkFC
TEUoV0VCWFIpCiAgICAgQWxsb3dSdWxlIG1feHJTcGF0aWFsVHJhY2tpbmdSdWxlOworI2VuZGlm
CiB9OwogCiBlbnVtIGNsYXNzIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlIHsgTm8sIFllcyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDMyODc2ZjkwOThkNC4uMWEzZTE5NWE5Yzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
QEAgLTIwMDcsNyArMjAwOCw3IEBAIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6
ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0CiAKIGJvb2wgRE9NV2luZG93Ojppc0FsbG93
ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKIHsK
LSAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRp
b25FdmVudEVuYWJsZWQoKSkgeworICAgIGlmICghZnJhbWUoKSB8fCAhZG9jdW1lbnQoKSB8fCAh
ZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CiAg
ICAgICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRpc2FibGVkIl9zOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtMjAxNywxMCArMjAxOCwxMSBAQCBib29sIERPTVdpbmRvdzo6aXNBbGxv
d2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3Jp
Z2luQXNNYWluRnJhbWUoKSkgewotICAgICAgICBtZXNzYWdlID0gIlNvdXJjZSBmcmFtZSBkaWQg
bm90IGhhdmUgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UiX3M7Cisg
ICAgaWYgKCFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0
dXJlUG9saWN5OjpUeXBlOjpHeXJvc2NvcGUsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5
RmFpbHVyZTo6Tm8pICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVyLCAqZG9jdW1lbnQoKSwgTG9n
RmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKSkgeworICAgICAgICBtZXNzYWdlID0gIlRoaXJkLXBh
cnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIG9yIG9y
aWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5Il9z
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421339</attachid>
            <date>2021-02-23 12:17:13 -0800</date>
            <delta_ts>2021-02-23 14:55:14 -0800</delta_ts>
            <desc>WIP Patch (Needs tests)</desc>
            <filename>221399_DeviceMotion_FeaturePolicy_wip.patch</filename>
            <type>text/plain</type>
            <size>39723</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggOTY3MTc5NzE3OWY3Li5hNDViNzMxZTk1OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC05MTIsNyArOTEyLDYgQEAgZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCiBk
b20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCi1kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAogZG9tL0RvY3VtZW50
LmNwcAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGZkN2NhYTdmZmY1Ni4uZTgzZDkwNjE5M2UyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjQ4LDcgKzEy
NDgsNiBAQAogCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDVGRUE1Q0UxNTZEREU4QzAw
NjU0MTAxIC8qIERlY2ltYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBCQjYx
NDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OwotCQk0NjBFMzA3NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjFEQTUyQTIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50LmggKi87IH07CiAJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAv
KiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVFREQ5RjIyMkY0RUMzMDBCNDZF
MTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MjE4QUNCMUY3MkQ2
NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9N
SGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgx
MDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgxODksOCArODE4OCw2IEBACiAJCTQ2MENCRjMzMUQ0
QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9N
V2luZG93UHJvcGVydGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RP
TVdpbmRvd1Byb3BlcnRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwRDE5
NDQxRkNFMjFERDAwQzNEQjg1IC8qIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYxREE1
MkEyMjJGNDg2RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYxREE1MkMyMjJGNDg2RjAw
RDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3
MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQb3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDEzNyw4ICszMDEzNCw2IEBACiAJCQkJNTlBODVF
QTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJ
CTU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8s
CiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
aWRsICovLAotCQkJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQuY3BwICovLAotCQkJCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLywKIAkJCQk0NjVFREQ5RjIyMkY0RUMz
MDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICov
LAogCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJCQk3QzNBOEFCODI1MDlBMTBGMDA4QzQ3N0Yg
LyogRG9jdW1lbnQrQ1NTT01WaWV3LmlkbCAqLywKQEAgLTMxOTc0LDcgKzMxOTY5LDYgQEAKIAkJ
CQk1OUE4RjFENjExQTY5NTEzMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNl
T3JpZW50YXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4NUVBNDExOUQ2OEVDMDBE
RUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYw
RTMwNzUyMjJGNEVGRDAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUz
OTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNl
UmVxdWVzdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU1vdGlvbkV2ZW50LmNwcAppbmRleCAzYjNlNTllYWEzZWMuLjcwNzM0YWQ0OTE2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAj
aW5jbHVkZSAiRGV2aWNlTW90aW9uRXZlbnQuaCIKIAogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRh
dGEuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNSw0ICsxMjcs
MjYgQEAgRXZlbnRJbnRlcmZhY2UgRGV2aWNlTW90aW9uRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkg
Y29uc3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQg
RGV2aWNlTW90aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwg
UGVybWlzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3Vt
ZW50LmRvbVdpbmRvdygpOworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAg
aWYgKCF3aW5kb3cgfHwgIXBhZ2UpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGJyb3dzaW5nIGNvbnRleHQiX3MgfSk7CisK
KyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2luZG93LT5pc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGRvY3VtZW50LmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VT
dHJpbmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogIiwgZXJy
b3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNz
aW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgcGFnZS0+ZGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuc2hvdWxkQWxsb3dBY2Nlc3MoZG9jdW1lbnQsIFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0
ZSkgbXV0YWJsZSB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlzc2lvblN0
YXRlOjpQcm9tcHQpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgTm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2VzcyByZXF1
aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7CisgICAgICAgIHByb21pc2UucmVz
b2x2ZShwZXJtaXNzaW9uU3RhdGUpOworICAgIH0pOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKaW5kZXggMzll
ZWRkZTcxZjJjLi5lNTBmNzQ2MWY0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5oCkBAIC0yNSwxNCArMjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNs
dWRlICJJRExUeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU1v
dGlvbkRhdGE7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVm
ZXJyZWQ7CiAKLWNsYXNzIERldmljZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50LCBw
dWJsaWMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKK2NsYXNzIERldmljZU1vdGlv
bkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KERldmljZU1vdGlvbkV2ZW50KTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25F
dmVudCgpOwpAQCAtNjgsNiArNzAsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0RGV2aWNl
TW90aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNh
bmNlbGFibGUsIE9wdGlvbmFsPEFjY2VsZXJhdGlvbj4mJiwgT3B0aW9uYWw8QWNjZWxlcmF0aW9u
PiYmLCBPcHRpb25hbDxSb3RhdGlvblJhdGU+JiYsIE9wdGlvbmFsPGRvdWJsZT4pOwogCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB1c2luZyBQZXJtaXNzaW9uU3RhdGUgPSBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOworICAgIHVzaW5nIFBlcm1p
c3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Np
b25TdGF0ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50Jiwg
UGVybWlzc2lvblByb21pc2UmJik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBEZXZpY2VNb3Rp
b25FdmVudCgpOwogICAgIERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50
VHlwZSwgRGV2aWNlTW90aW9uRGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNw
cAppbmRleCAxMDBhYWYxOGI1NzYuLjFlMjhmZmI3NDg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlci5jcHAKQEAgLTM5LDM5ICszOSw0NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAg
ICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXI6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7Ci0gICAgQVNTRVJUKCZtX2RvY3VtZW50
LnRvcERvY3VtZW50KCkgPT0gJm1fZG9jdW1lbnQpOworfQorCitEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlcjo6YWNjZXNzU3RhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAorewor
ICAgIGF1dG8gaXQgPSBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2luLmZpbmQoZG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKS5kYXRhKCkpOworICAgIGlmIChpdCAhPSBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2lu
LmVuZCgpKQorICAgICAgICByZXR1cm4gaXQtPnZhbHVlOwogCi0gICAgLy8gSW5pdGlhbCB2YWx1
ZSBpcyBiYXNlZCBvbiB0aGUgcGVyLXNpdGUgc2V0dGluZy4KLSAgICBhdXRvKiBmcmFtZSA9IG1f
ZG9jdW1lbnQuZnJhbWUoKTsKKyAgICAvLyBDaGVjayBwZXItc2l0ZSBzZXR0aW5nLgorICAgIGF1
dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2Fk
ZXIgPSBmcmFtZSA/IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpIDogbnVsbHB0cikK
LSAgICAgICAgbV9hY2Nlc3NTdGF0ZSA9IGRvY3VtZW50TG9hZGVyLT5kZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc1N0YXRlKCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudExvYWRlci0+
ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgIHJldHVybiBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQ7CiB9CiAKLXZvaWQg
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0Fj
Y2VzcyhGdW5jdGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUpPiYmIGNhbGxiYWNrKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXI6OnNob3VsZEFsbG93QWNjZXNzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgRnVu
Y3Rpb248dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBj
YWxsYmFjaykKIHsKLSAgICBhdXRvKiBwYWdlID0gbV9kb2N1bWVudC5wYWdlKCk7Ci0gICAgYXV0
byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFw
YWdlIHx8ICFmcmFtZSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CiAKLSAgICBib29sIG1heVByb21wdCA9
IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKLSAgICBpZiAo
bV9hY2Nlc3NTdGF0ZSAhPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
OjpQcm9tcHQpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhtX2FjY2Vzc1N0YXRlKTsKKyAgICBh
dXRvIGFjY2Vzc1N0YXRlID0gdGhpcy0+YWNjZXNzU3RhdGUoZG9jdW1lbnQpOworICAgIGlmIChh
Y2Nlc3NTdGF0ZSAhPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQ
cm9tcHQpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhhY2Nlc3NTdGF0ZSk7CiAKLSAgICBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKCptX2RvY3VtZW50LmZyYW1lKCksIG1heVByb21wdCwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxl
IHsKKyAgICBib29sIG1heVByb21wdCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoJmRvY3VtZW50KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKCpkb2N1bWVudC5mcmFtZSgp
LCBtYXlQcm9tcHQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZWN1cml0
eU9yaWdpbiA9IG1ha2VSZWYoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX2FjY2Vzc1N0YXRlID0gcGVybWlzc2lvblN0
YXRlOworICAgICAgICBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2luLnNldChzZWN1cml0eU9yaWdpbi0+
ZGF0YSgpLCBwZXJtaXNzaW9uU3RhdGUpOwogICAgICAgICBjYWxsYmFjayhwZXJtaXNzaW9uU3Rh
dGUpOwogCiAgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBmb3IgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpOyBmcmFtZSAmJiBm
cmFtZS0+d2luZG93KCk7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobV9kb2N1
bWVudC5mcmFtZSgpKSkgeworICAgICAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1fcGFnZS5tYWlu
RnJhbWUoKTsgZnJhbWUgJiYgZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9IGZyYW1lLT50cmVlKCku
dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0
ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CiAgICAgICAgICAgICBmcmFt
ZS0+d2luZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oCmluZGV4IDRhZjk0NjFjOWQ3
OS4uOTI3OTk5NTU4NjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oCkBAIC0zNiwx
OSArMzYsMTkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBQYWdlOwogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERv
Y3VtZW50Jik7CisgICAgZXhwbGljaXQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyKFBhZ2UmKTsKIAotCi0gICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZSBhY2Nlc3NTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzU3RhdGU7IH0K
LSAgICB2b2lkIHNob3VsZEFsbG93QWNjZXNzKEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUgYWNjZXNzU3RhdGUoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsK
KyAgICB2b2lkIHNob3VsZEFsbG93QWNjZXNzKGNvbnN0IERvY3VtZW50JiwgRnVuY3Rpb248dm9p
ZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAKIHByaXZh
dGU6Ci0gICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZSBtX2FjY2Vzc1N0YXRlIHsgRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0IH07CisgICAgUGFnZSYgbV9wYWdlOworICAgIEhh
c2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlPiBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2luOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3Bw
CmluZGV4IGVjZjM3MDBlNDQyZS4uZDAzYjZiYjBiOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgogCisjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMTIsNCArMTE0LDI2IEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU9yaWVu
dGF0aW9uRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKICNlbmRpZgogfQogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVx
dWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHBy
b21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAg
YXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXdpbmRvdyB8fCAhcGFnZSkK
KyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiTm8gYnJvd3NpbmcgY29udGV4dCJfcyB9KTsKKworICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2U7CisgICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50YXRpb24oZXJy
b3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJDYWxsIHRvIHJl
cXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIsIGVycm9yTWVzc2FnZSwgIi4iKSk7
CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQp
OworICAgIH0KKworICAgIHBhZ2UtPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlcigpLnNob3VsZEFsbG93QWNjZXNzKGRvY3VtZW50LCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKFBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIG11dGFibGUgeworICAg
ICAgICBpZiAocGVybWlzc2lvblN0YXRlID09IFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KQorICAg
ICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJv
ciwgIlJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIg
Z2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShwZXJtaXNz
aW9uU3RhdGUpOworICAgIH0pOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCmluZGV4IGU3MDM0
NThhMTY1NC4uODE5ZWNiYjA2ODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgorI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RGV2aWNlT3JpZW50YXRpb25EYXRhOwordGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3Mg
RE9NUHJvbWlzZURlZmVycmVkOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsK
K2NsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGV2aWNlT3JpZW50YXRpb25FdmVudCk7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bVN0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9yaWVudGF0aW9uKQpA
QCAtNjIsNiArNjQsMTIgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdERldmljZU9yaWVudGF0aW9u
RXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFi
bGUsIE9wdGlvbmFsPGRvdWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0aW9u
YWw8ZG91YmxlPiBnYW1tYSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7CisgICAgdXNpbmcgUGVy
bWlzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlz
c2lvblN0YXRlPj47CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQm
LCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9y
aWVudGF0aW9uRXZlbnQoKTsKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21T
dHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDIxYTgxZmJlNWQuLjAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKLQotI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKLXsKLSAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKLSAg
ICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYnJvd3NpbmcgY29udGV4dCJfcyB9KTsKLQotICAgIFN0
cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNl
TW90aW9uT3JpZW50YXRpb24oZXJyb3JNZXNzYWdlKSkgewotICAgICAgICBkb2N1bWVudC5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBt
YWtlU3RyaW5nKCJDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIs
IGVycm9yTWVzc2FnZSwgIi4iKSk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVy
bWlzc2lvblN0YXRlOjpEZW5pZWQpOwotICAgIH0KLQotICAgIGRvY3VtZW50LmRldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLnNob3VsZEFsbG93QWNjZXNzKFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkg
bXV0YWJsZSB7Ci0gICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlzc2lvblN0YXRl
OjpQcm9tcHQpCi0gICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gb3IgbW90aW9u
IGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7Ci0gICAgICAg
IHByb21pc2UucmVzb2x2ZShwZXJtaXNzaW9uU3RhdGUpOwotICAgIH0pOwotfQotI2VuZGlmCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2EzMGYzZDJjMTc0Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAiSURMVHlwZXMuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLQotdGVtcGxhdGU8dHlwZW5hbWUg
SURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwotCi1jbGFzcyBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQgewotcHVibGljOgotCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKLSAgICB1c2luZyBQZXJtaXNzaW9uU3RhdGUgPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlOwotICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJv
bWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OwotICAgIHN0YXRp
YyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7
Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dCgpID0gZGVmYXVsdDsKLSAgICB+RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50KCkgPSBk
ZWZhdWx0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggOTE3OTI1NGExZTA4Li5lOTU0MWZlZmMzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMjY5LDcgKzI2OSw2IEBACiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2ZW50LmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oIgogI2VuZGlmCiAKQEAgLTg1NjksMjAgKzg1NjgsNiBAQCB2b2lkIERvY3Vt
ZW50OjppZGVudGlmaWVkRWxlbWVudFdhc1JlbW92ZWRGcm9tRG9jdW1lbnQoRWxlbWVudCYgZWxl
bWVudCkKICAgICBtX2lkZW50aWZpZWRFbGVtZW50c01hcC5yZW1vdmUoJmVsZW1lbnQpOwogfQog
Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLQotRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyJiBEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NDb250cm9sbGVyKCkKLXsKLSAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykK
LSAgICAgICAgcmV0dXJuIHRvcERvY3VtZW50KCkuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyKCk7Ci0KLSAgICBpZiAoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NDb250cm9sbGVyKQotICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlciA9IG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyPigqdGhpcyk7Ci0gICAgcmV0dXJuICptX2RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjsKLX0KLQotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NT
X1BBSU5USU5HX0FQSSkKIFBhaW50V29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xl
dCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhY2RmZDczYTcxOS4uYmY1ZmFlM2NhZTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE5LDcgKzExOSw2IEBAIGNsYXNzIERhdGFiYXNl
OwogY2xhc3MgRGF0YWJhc2VUaHJlYWQ7CiBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7CiBjbGFz
cyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NDb250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpA
QCAtMTIwMiwxMCArMTIwMSw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNp
bXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwg
ZG91YmxlIGdhbW1hKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
LSAgICBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIGRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpOwotI2VuZGlmCi0KICAgICBjb25z
dCBEb2N1bWVudFRpbWluZyYgdGltaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudFRpbWlu
ZzsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1vbm90b25pY1RpbWVzdGFtcCgpIGNv
bnN0OwpAQCAtMTk0MCwxMCArMTkzNSw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgc3RkOjp1
bmlxdWVfcHRyPERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4gbV9k
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7Ci0jZW5kaWYKLQogICAg
IEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fbG9nTWVzc2FnZVRhc2tRdWV1ZTsKIAogICAgIFRp
bWVyIG1fcGVuZGluZ1Rhc2tzVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmNwcAppbmRleCBkMTNkMWIwYTYwZDkuLjAwNjE0ZWZiMmMwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCkBAIC04OSw3ICs4OSw3IEBA
IHZvaWQgVXNlckdlc3R1cmVUb2tlbjo6c2V0TWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVG
b3J3YXJkaW5nRm9yRmV0Y2hGb3JUZXN0CiAgICAgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZv
cndhcmRpbmdGb3JGZXRjaCA9IFdURk1vdmUodmFsdWUpOwogfQogCi1ib29sIFVzZXJHZXN0dXJl
VG9rZW46OmlzVmFsaWRGb3JEb2N1bWVudChEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0Citib29s
IFVzZXJHZXN0dXJlVG9rZW46OmlzVmFsaWRGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRzSW1wYWN0ZWRCeVVzZXJHZXN0
dXJlLmNvbnRhaW5zKGRvY3VtZW50KTsKIH0KQEAgLTE1Nyw3ICsxNTcsNyBAQCBSZWZQdHI8VXNl
ckdlc3R1cmVUb2tlbj4gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgp
CiAgICAgcmV0dXJuIGN1cnJlbnRUb2tlbigpOwogfQogCi1ib29sIFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoRG9jdW1lbnQqIGRvY3VtZW50KQorYm9vbCBVc2Vy
R2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGNvbnN0IERvY3VtZW50KiBk
b2N1bWVudCkKIHsKICAgICBpZiAoIWlzTWFpblRocmVhZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDY5ZDJl
MDkwNzk5Ni4uZjVjYzdmYWQyMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAgIE1vbm90b25pY1Rp
bWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KIAotICAgIGJvb2wg
aXNWYWxpZEZvckRvY3VtZW50KERvY3VtZW50JikgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkRm9y
RG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBVc2VyR2Vz
dHVyZVRva2VuKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlLCBVc2VyR2VzdHVyZVR5cGUsIERv
Y3VtZW50Kik7CkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3MgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
ewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8VXNlckdlc3R1cmVU
b2tlbj4gY3VycmVudFVzZXJHZXN0dXJlKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoRG9jdW1lbnQqID0gbnVsbHB0cik7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGNvbnN0IERvY3Vt
ZW50KiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCk7CiAKICAgICAvLyBJZiBhIGRvY3VtZW50IGlzIHByb3Zp
ZGVkLCBpdHMgbGFzdCBrbm93biB1c2VyIGdlc3R1cmUgdGltZXN0YW1wIGlzIHVwZGF0ZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcAppbmRleCAwMjNmYmM0OTJlNDEuLmU1Mzlk
NmQ1MmZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCkBAIC01Miw2ICs1
MiwxNCBAQCBzdGF0aWMgY29uc3QgY2hhciogcG9saWN5VHlwZU5hbWUoRmVhdHVyZVBvbGljeTo6
VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gIlN5bmNYSFIiOwogICAgIGNhc2UgRmVhdHVyZVBv
bGljeTo6VHlwZTo6RnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJuICJGdWxsc2NyZWVuIjsKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlw
ZTo6R3lyb3Njb3BlOgorICAgICAgICByZXR1cm4gIkd5cm9zY29wZSI7CisgICAgY2FzZSBGZWF0
dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVyOgorICAgICAgICByZXR1cm4gIkFjY2VsZXJv
bWV0ZXIiOworICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6TWFnbmV0b21ldGVyOgorICAg
ICAgICByZXR1cm4gIk1hZ25ldG9tZXRlciI7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAg
ICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpYUlNwYXRpYWxUcmFja2luZzoKICAgICAgICAg
cmV0dXJuICJYUlNwYXRpYWxUcmFja2luZyI7CkBAIC0xNjEsNiArMTY5LDExIEBAIEZlYXR1cmVQ
b2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1M
SUZyYW1lRWxlbWVudCYKICAgICBib29sIGlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCA9IGZh
bHNlOwogICAgIGJvb2wgaXNTeW5jWEhSSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlz
RnVsbHNjcmVlbkluaXRpYWxpemVkID0gZmFsc2U7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKyAgICBib29sIGlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBib29s
IGlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVkID0gZmFsc2U7CisgICAgYm9vbCBpc01hZ25ldG9t
ZXRlckluaXRpYWxpemVkID0gZmFsc2U7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAg
Ym9vbCBpc1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICNlbmRpZgpAQCAt
MTk2LDYgKzIwOSwyMyBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgICAgICB1cGRh
dGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9mdWxsc2NyZWVuUnVsZSwgaXRlbS5zdWJzdHJpbmco
MTEpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZ3lyb3Njb3BlIikp
IHsKKyAgICAgICAgICAgIGlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAg
ICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZ3lyb3Njb3BlUnVsZSwgaXRlbS5zdWJz
dHJpbmcoMTApKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlm
IChpdGVtLnN0YXJ0c1dpdGgoImFjY2VsZXJvbWV0ZXIiKSkgeworICAgICAgICAgICAgaXNBY2Nl
bGVyb21ldGVySW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1
bWVudCwgcG9saWN5Lm1fYWNjZWxlcm9tZXRlclJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDE0KSk7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNX
aXRoKCJtYWduZXRvbWV0ZXIiKSkgeworICAgICAgICAgICAgaXNNYWduZXRvbWV0ZXJJbml0aWFs
aXplZCA9IHRydWU7CisgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9t
YWduZXRvbWV0ZXJSdWxlLCBpdGVtLnN1YnN0cmluZygxMykpOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKyNlbmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICAgICAgaWYgKGl0
ZW0uc3RhcnRzV2l0aCgieHItc3BhdGlhbC10cmFja2luZyIpKSB7CiAgICAgICAgICAgICBpc1hS
U3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAtMjE0LDYgKzI0NCwxNCBAQCBG
ZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgIHBvbGljeS5tX3NwZWFrZXJTZWxlY3Rpb25S
dWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CiAg
ICAgaWYgKCFpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2Rp
c3BsYXlDYXB0dXJlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKCFpc0d5
cm9zY29wZUluaXRpYWxpemVkKQorICAgICAgICBwb2xpY3kubV9neXJvc2NvcGVSdWxlLmFsbG93
ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CisgICAgaWYgKCFp
c0FjY2VsZXJvbWV0ZXJJbml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1fYWNjZWxlcm9tZXRl
clJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsK
KyAgICBpZiAoIWlzTWFnbmV0b21ldGVySW5pdGlhbGl6ZWQpCisgICAgICAgIHBvbGljeS5tX21h
Z25ldG9tZXRlclJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICBpZiAoIWlzWFJTcGF0aWFs
VHJhY2tpbmdJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1feHJTcGF0aWFsVHJhY2tpbmdS
dWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CkBA
IC0yNTUsNiArMjkzLDE0IEBAIGJvb2wgRmVhdHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlwZSwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVybiBp
c0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9zeW5jWEhSUnVsZSwgb3JpZ2luKTsKICAgICBjYXNl
IFR5cGU6OkZ1bGxzY3JlZW46CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xp
Y3kobV9mdWxsc2NyZWVuUnVsZSwgb3JpZ2luKTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIGNhc2UgVHlwZTo6R3lyb3Njb3BlOgorICAgICAgICByZXR1cm4gaXNBbGxvd2Vk
QnlGZWF0dXJlUG9saWN5KG1fZ3lyb3Njb3BlUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6
OkFjY2VsZXJvbWV0ZXI6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3ko
bV9hY2NlbGVyb21ldGVyUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6Ok1hZ25ldG9tZXRl
cjoKKyAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX21hZ25ldG9tZXRl
clJ1bGUsIG9yaWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgY2FzZSBUeXBl
OjpYUlNwYXRpYWxUcmFja2luZzoKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBv
bGljeShtX3hyU3BhdGlhbFRyYWNraW5nUnVsZSwgb3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0
dXJlUG9saWN5LmgKaW5kZXggYjI0YmU4MmFmYWQzLi5lZWRlOGYxOTc3MjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IERpc3BsYXlDYXB0dXJlLAogICAgICAgICBTeW5jWEhSLAogICAgICAgICBGdWxsc2NyZWVuLAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIEd5cm9zY29wZSwKKyAgICAg
ICAgQWNjZWxlcm9tZXRlciwKKyAgICAgICAgTWFnbmV0b21ldGVyLAorI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQlhSKQogICAgICAgICBYUlNwYXRpYWxUcmFja2luZywKICNlbmRpZgpAQCAtNjQsNyAr
NjksMTQgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9kaXNwbGF5Q2FwdHVyZVJ1bGU7CiAg
ICAgQWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fZnVsbHNjcmVlblJ1
bGU7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBBbGxvd1J1bGUgbV9neXJv
c2NvcGVSdWxlOworICAgIEFsbG93UnVsZSBtX2FjY2VsZXJvbWV0ZXJSdWxlOworICAgIEFsbG93
UnVsZSBtX21hZ25ldG9tZXRlclJ1bGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCWFIpCiAgICAg
QWxsb3dSdWxlIG1feHJTcGF0aWFsVHJhY2tpbmdSdWxlOworI2VuZGlmCiB9OwogCiBlbnVtIGNs
YXNzIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlIHsgTm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCmluZGV4IDMyODc2ZjkwOThkNC4uZjUyNjVlNTJlMTU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNp
bmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVk
ZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQ0Niw3ICs0NDcs
NyBAQCBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IERPTVdpbmRvdzo6bWF0Y2hNZWRpYShjb25zdCBT
dHJpbmcmIG1lZGlhKQogICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+bWVkaWFR
dWVyeU1hdGNoZXIoKS5tYXRjaE1lZGlhKG1lZGlhKSA6IG51bGxwdHI7CiB9CiAKLVBhZ2UqIERP
TVdpbmRvdzo6cGFnZSgpCitQYWdlKiBET01XaW5kb3c6OnBhZ2UoKSBjb25zdAogewogICAgIHJl
dHVybiBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpIDogbnVsbHB0cjsKIH0KQEAgLTIwMDUsOSAr
MjAwNiw5IEBAIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90aW9u
Q29udHJvbGxlcigpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBET01XaW5kb3c6OmlzQWxsb3dl
ZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAorYm9v
bCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihTdHJp
bmcmIG1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5zZXR0
aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKyAgICBpZiAoIWZyYW1l
KCkgfHwgIWRvY3VtZW50KCkgfHwgIWZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRp
b25FdmVudEVuYWJsZWQoKSkgewogICAgICAgICBtZXNzYWdlID0gIkFQSSBpcyBkaXNhYmxlZCJf
czsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIwMTcsMjMgKzIwMTgsNDYgQEAg
Ym9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAg
aWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkpIHsKLSAgICAgICAgbWVzc2Fn
ZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBoYXZlIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBh
cyB0aGUgbWFpbiBwYWdlIl9zOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRv
dzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAorewor
ICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uKG1lc3NhZ2Up
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlzRmVhdHVyZVBvbGljeUFsbG93
ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZSwg
KmRvY3VtZW50KCksIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykKKyAgICAgICAgfHwgIWlz
RmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6
OlR5cGU6OkFjY2VsZXJvbWV0ZXIsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVy
ZTo6Tm8pKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90
IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dl
ZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIpIl9zOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
RE9NV2luZG93Ojppc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIo
U3RyaW5nJiBtZXNzYWdlKSBjb25zdAorYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2
aWNlT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogewotICAgIFN0cmluZyBpbm5l
ck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9u
KGlubmVyTWVzc2FnZSkpIHsKLSAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIkJsb2NrZWQg
YXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3Rl
bmVyLCByZWFzb246ICIsIGlubmVyTWVzc2FnZSwgIi4iKTsKKyAgICBpZiAoIWlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihtZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpHeXJvc2NvcGUsICpkb2N1bWVudCgpLCBMb2dGZWF0
dXJlUG9saWN5RmFpbHVyZTo6Tm8pCisgICAgICAgIHx8ICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2Vk
QnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVy
LCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKQorICAgICAgICB8fCAh
aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGlj
eTo6VHlwZTo6TWFnbmV0b21ldGVyLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1
cmU6Ok5vKSkgeworICAgICAgICBtZXNzYWdlID0gIlRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5v
dCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkg
YWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBt
YWduZXRvbWV0ZXIpIl9zOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgRE9NV2luZG93OjpoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2
aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50cyhTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CiAg
ICAgaWYgKGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJ
RW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBkb2N1bWVudCgpLT5kZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5hY2Nlc3NTdGF0ZSgpOwor
ICAgICAgICBpZiAoIXBhZ2UoKSkgeworICAgICAgICAgICAgbWVzc2FnZSA9ICJObyBicm93c2lu
ZyBjb250ZXh0Il9zOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlcigpLmFjY2Vzc1N0YXRlKCpkb2N1bWVudCgpKTsKICAgICAgICAgc3dp
dGNoIChhY2Nlc3NTdGF0ZSkgewogICAgICAgICBjYXNlIERldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGU6OkRlbmllZDoKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gZGV2
aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBl
cm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmllZC4iX3M7CkBAIC0yMDU4LDEwICsyMDgy
LDEwIEBAIHZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9u
SWZOZWNlc3NhcnkoKQogICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9s
bGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90
aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgU3RyaW5nIGlubmVy
TWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50YXRpb24oaW5uZXJN
ZXNzYWdlKSB8fCAhaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlvbk9yT3JpZW50YXRp
b25FdmVudHMoaW5uZXJNZXNzYWdlKSkgewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2FnZSk7
CisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRv
IGFkZCBhIGRldmljZSBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAiLCBpbm5l
ck1lc3NhZ2UsICIuIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDg2LDExICsy
MTEwLDExIEBAIHZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklm
TmVjZXNzYXJ5KCkKICAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIgfHwgZGV2aWNlQ29udHJvbGxl
ci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRUb0FkZERldmljZU1vdGlv
bk9yaWVudGF0aW9uTGlzdGVuZXIoZXJyb3JNZXNzYWdlKSkgeworICAgIFN0cmluZyBpbm5lck1l
c3NhZ2U7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbihpbm5lck1lc3NhZ2Up
IHx8ICFoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50
cyhpbm5lck1lc3NhZ2UpKSB7CiAgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25F
dmVudExpc3RlbmVyKCk7CiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIikp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCAw
ZTM1MTE3ZjVhZDguLjE1YTZiY2FmZWU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0z
NjYsOCArMzY2LDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VN
b3Rpb25JZk5lY2Vzc2FyeSgpOwogICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlv
bklmTmVjZXNzYXJ5KCk7CiAKLSAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3Jp
ZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKLSAgICBib29sIGlzQWxsb3dlZFRvQWRk
RGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Owor
ICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0OworICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24oU3RyaW5nJiBtZXNz
YWdlKSBjb25zdDsKIAogICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciog
ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OwpAQCAtNDEwLDEzICs0MTAsMTUgQEAgcHJp
dmF0ZToKICAgICBib29sIGlzTG9jYWxET01XaW5kb3coKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgYm9vbCBpc1JlbW90ZURPTVdpbmRvdygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CiAKLSAgICBQYWdlKiBwYWdlKCk7CisgICAgUGFnZSogcGFnZSgpIGNvbnN0Owog
ICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsKIAogICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgV2luZG93RmVh
dHVyZXMmLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRnJhbWUmIGZpcnN0RnJhbWUsIEZyYW1l
JiBvcGVuZXJGcmFtZSwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKERPTVdpbmRvdyYpPiYgcHJl
cGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0
QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7
CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGJvb2wgaXNBbGxvd2VkVG9V
c2VEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAg
Ym9vbCBoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50
cyhTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwogICAgIHZvaWQgZmFpbGVkVG9SZWdpc3RlckRldmlj
ZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4
OGY5MDNlZWZkN2IuLjEwNjIzZTc1YWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNzEsNiAr
MTcxLDEwIEBACiAjaW5jbHVkZSAiRGlzcGxheVZpZXcuaCIKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
YXRpYyBIYXNoU2V0PFBhZ2UqPiYgYWxsUGFnZXMoKQpAQCAtMzQ0Myw2ICszNDQ3LDE3IEBAIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKCkKICAgICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisKK0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciYgUGFnZTo6ZGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkKK3sKKyAgICBpZiAoIW1f
ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKQorICAgICAgICBtX2Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciA9IG1ha2VVbmlxdWU8RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPigqdGhpcyk7CisgICAgcmV0
dXJuICptX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjsKK30KKwor
I2VuZGlmCisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRz
LCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IDE1MmY0OTI0NDRlMS4uZDk0ZjI0MzM4NzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtOTksNiArOTksNyBAQCBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7CiBjbGFzcyBDb29r
aWVKYXI7CiBjbGFzcyBET01SZWN0TGlzdDsKIGNsYXNzIERhdGFiYXNlUHJvdmlkZXI7CitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CiBjbGFzcyBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDsKIGNsYXNzIERyYWdDYXJldENvbnRyb2xsZXI7CiBjbGFzcyBE
cmFnQ29udHJvbGxlcjsKQEAgLTMxMyw2ICszMTQsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAgICAgYm9vbCBzaG91
bGRFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdDsgfQogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
cigpOworI2VuZGlmCisKICAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudCgpOwogICAgIHZv
aWQgbWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpOwogCkBAIC05
MjQsNiArOTI5LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRo
ZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgc3RkOjp1bmlxdWVfcHRyPERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0NvbnRyb2xsZXI7CisjZW5kaWYKKwogICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiAKICAgICBVbmlxdWVS
ZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421354</attachid>
            <date>2021-02-23 14:55:14 -0800</date>
            <delta_ts>2021-02-23 15:57:53 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>221399_DeviceMotion_FeaturePolicy_wip.patch</filename>
            <type>text/plain</type>
            <size>54955</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGI3NjA0ODE0MzZjNi4uZDk1ZDQwZjYxM2NmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTUwLDYgKzUwLDcgQEAgZmFzdC9mb3Jtcy9pb3MgWyBTa2lwIF0KIGZh
c3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvIFsgU2tp
cCBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFNraXAgXQoraHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24gWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2N1cnNvcnMgWyBTa2lwIF0KIGZhc3Qv
ZXZlbnRzL2lvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvd2F0Y2hvcyBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM0OTA4ODE4
NWVlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVh
dHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FH
RTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gZXZlbnQgbGlzdGVuZXIs
IHJlYXNvbjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4uCitS
ZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNl
Y3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4KK1Rlc3RzIHRoYXQgdGhpcmQt
cGFydHkgaWZyYW1lcyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBldmVudHMg
aWYgYWxsb3dlZCBieSBmZWF0dXJlIHBvbGljeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZS5kYXRhIGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1l
LWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93
ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjZhYmY3YmQyZWY5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZy
YW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rp
b24gZXZlbnRzIGlmIGFsbG93ZWQgYnkgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImdyYW50ZWQiKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsgICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRz
Lmh0bWwiIGFsbG93PSJhY2NlbGVyb21ldGVyO2d5cm9zY29wZSI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZm
aWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRl
bmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzBlZDYxZjFkZjEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJl
LXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBldmVudCBsaXN0ZW5lciwgcmVh
c29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNl
IG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3ly
b3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwgdG8gcmVxdWVz
dFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90
IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dl
ZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIpLgorVGVzdHMg
dGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ug
bW90aW9uIGV2ZW50cyB3aXRoIGluc3VmZmljaWVudCBmZWF0dXJlIHBvbGljeS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10
aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBv
bGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2Q1YmIz
MTVlYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
dGhpcmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlv
biBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlz
aEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVu
dHMuaHRtbCIgYWxsb3c9Imd5cm9zY29wZSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjBiZGZlMTI3NTA3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFy
dHktaWZyYW1lLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBN
RVNTQUdFOiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBldmVudCBsaXN0
ZW5lciwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3Mg
dG8gZGV2aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBv
bGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwg
dG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1l
cyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNzIGV4cGxpY2l0
bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIp
LgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0
byBkZXZpY2UgbW90aW9uIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1ZDExM2JiOTk1MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhp
cmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhp
cmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBl
dmVudHMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93
LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9l
KSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwg
ImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJh
bWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNl
cy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1w
b2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjRmMzdlMzczMjVhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0
eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IE5vIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVl
biByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYg
bW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNj
ZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgaWYgYWxsb3dlZCBieSBmZWF0dXJlIHBv
bGljeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJn
cmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJl
LXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUt
cG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMjI4
OGNmMzEzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93
ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJk
LXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBl
dmVudHMgaWYgYWxsb3dlZCBieSBmZWF0dXJlIHBvbGljeS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworCisvLyBJZiBwcm9tcHRlZCwgYWxsb3cuCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzKHRydWUpOworCitvbm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJlLmRhdGEiLCAiZ3JhbnRlZCIpOworICAgIGZpbmlzaEpTVGVz
dCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50
cy5odG1sIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjtneXJvc2NvcGU7bWFnbmV0b21ldGVyIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJh
bWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xp
Y3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
NzQ0ODg5NGU1Njg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZp
Y2Ugb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1l
cyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhw
bGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9t
ZXRlciAmIG1hZ25ldG9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwgdG8gcmVxdWVzdFBl
cm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFs
bG93ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxv
d2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlciAmIG1hZ25l
dG9tZXRlcikuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3Qg
YWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVh
dHVyZSBwb2xpY3kuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0
YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41M2Q4YTI2NTQ3YjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1w
b2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMg
Y2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2l0aCBp
bnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
Ly8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVl
KTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAK
K307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNl
LW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIiBh
bGxvdz0iZ3lyb3Njb3BlIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjY1NzkzZjllODhkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGly
ZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05T
T0xFIE1FU1NBR0U6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Ugb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93
ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2Vk
IHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlciAmIG1hZ25ldG9t
ZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWls
ZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRv
IGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJl
LVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlciAmIG1hZ25ldG9tZXRlcikuCitUZXN0
cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmlj
ZSBvcmllbnRhdGlvbiBldmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGUuZGF0YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVu
aWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmQxNmRhNmQzNGRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDIxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRl
dmljZSBvcmllbnRhdGlvbiBldmVudHMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8g
SWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsK
Kworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307
Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9y
aWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9y
ZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjc2ZjI4NzEzYjgxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVu
dHMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOwor
CitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VNb3Rpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICB0b3AucG9z
dE1lc3NhZ2UocmVzdWx0LCAiKiIpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qtb3Jp
ZW50YXRpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5mZDJlZWY1ODBkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVu
dHMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7
fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgIERldmljZU9yaWVu
dGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAg
ICAgdG9wLnBvc3RNZXNzYWdlKHJlc3VsdCwgIioiKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNWY2ZGQzNzkyZWYzLi4wZDAzNTJkNjg1ODUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1LDYgKzE1LDcg
QEAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2Vy
Lmh0bWwgWyBQYXNzIF0KIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVz
ZW50aW5nLXBpY2tlci5odG1sIFsgUGFzcyBdCiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3QuaHRtbCBbIFBhc3MgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBQYXNzIF0KK2h0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFz
cyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
aW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk2NzE3OTcxNzlmNy4uYTQ1YjczMWU5NTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtOTEyLDcgKzkxMiw2IEBAIGRvbS9EZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyLmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAKIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcAotZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAK
IGRvbS9Eb2N1bWVudC5jcHAKIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAogZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmZDdjYWE3ZmZmNTYuLmU4M2Q5MDYxOTNlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTI0OCw3ICsxMjQ4LDYgQEAKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2lt
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVB
NUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQkI2MTYxRDBBMUJGMDAwMjIxODEyIC8qIEJh
c2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDYwQkI2MTQxRDBBMUJFQzAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MENCRjM2MUQ0
QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAv
KiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLzsgfTsKLQkJNDYwRTMwNzUyMjJGNEVGRDAwOUEw
NjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYxREE1MkEyMjJGNDg2RjAwRDA1QTg3IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovOyB9OwogCQk0NjBFMzA3NzIyMkY0
RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1RUREOUYy
MjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcyRDYxRTAw
MjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2lu
ZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MTg5LDggKzgxODgsNiBAQAog
CQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGll
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDky
RTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQwMEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MURB
NTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIx
QUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAxMzcsOCArMzAxMzQsNiBA
QAogCQkJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcCAqLywKIAkJCQk1OUE4NUVBMzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oICovLAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmlkbCAqLywKLQkJCQk0NjFEQTUyQzIyMkY0ODZGMDBEMDVBODcgLyogRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCAqLywKLQkJCQk0NjFEQTUyQTIyMkY0ODZG
MDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggKi8sCiAJCQkJNDY1
RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaCAqLywKIAkJCQk0NjVFRERBMDIyMkY0RUM0MDBCNDZFMTYgLyogRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwgKi8sCiAJCQkJN0MzQThBQjgyNTA5
QTEwRjAwOEM0NzdGIC8qIERvY3VtZW50K0NTU09NVmlldy5pZGwgKi8sCkBAIC0zMTk3NCw3ICsz
MTk2OSw2IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlG
Nzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVF
QTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYw
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFE
NDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKaW5kZXggM2IzZTU5ZWFhM2VjLi43MDczNGFk
NDkxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjcs
NiArMjcsOCBAQAogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2ZW50LmgiCiAKICNpbmNsdWRlICJE
ZXZpY2VNb3Rpb25EYXRhLmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xMjUsNCArMTI3LDI2IEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU1vdGlvbkV2ZW50OjpldmVu
dEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCit2b2lkIERldmljZU1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVu
dCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3
aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQu
cGFnZSgpOworICAgIGlmICghd2luZG93IHx8ICFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250
ZXh0Il9zIH0pOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24oZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1
bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBtYWtlU3RyaW5nKCJDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCBy
ZWFzb246ICIsIGVycm9yTWVzc2FnZSwgIi4iKSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJl
c29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIHBhZ2UtPmRldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLnNob3VsZEFsbG93QWNjZXNz
KGRvY3VtZW50LCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKFBlcm1pc3Npb25TdGF0ZSBw
ZXJtaXNzaW9uU3RhdGUpIG11dGFibGUgeworICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlID09
IFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KQorICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlJlcXVlc3RpbmcgZGV2aWNlIG1vdGlv
biBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0Il9zIH0pOworICAgICAg
ICBwcm9taXNlLnJlc29sdmUocGVybWlzc2lvblN0YXRlKTsKKyAgICB9KTsKK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVu
dC5oCmluZGV4IDM5ZWVkZGU3MWYyYy4uZTUwZjc0NjFmNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlTW90aW9uRXZlbnQuaApAQCAtMjUsMTQgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEZXZpY2VNb3Rpb25EYXRhOwordGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3Mg
RE9NUHJvbWlzZURlZmVycmVkOwogCi1jbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1
YmxpYyBFdmVudCwgcHVibGljIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CitjbGFz
cyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChEZXZpY2VNb3Rpb25FdmVudCk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
RGV2aWNlTW90aW9uRXZlbnQoKTsKQEAgLTY4LDYgKzcwLDEyIEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgaW5pdERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGJvb2wgYnVi
YmxlcywgYm9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFs
PEFjY2VsZXJhdGlvbj4mJiwgT3B0aW9uYWw8Um90YXRpb25SYXRlPiYmLCBPcHRpb25hbDxkb3Vi
bGU+KTsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdXNpbmcgUGVybWlz
c2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTsKKyAg
ICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJh
dGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgRGV2aWNlTW90aW9uRXZlbnQoKTsKICAgICBEZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUsIERldmljZU1vdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlci5jcHAKaW5kZXggMTAwYWFmMThiNTc2Li4xZTI4ZmZiNzQ4NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCkBAIC0zOSwzOSArMzksNDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXI6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihEb2N1bWVudCYg
ZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorRGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIoUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQogewotICAgIEFTU0VS
VCgmbV9kb2N1bWVudC50b3BEb2N1bWVudCgpID09ICZtX2RvY3VtZW50KTsKK30KKworRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXI6OmFjY2Vzc1N0YXRlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkgY29uc3QKK3sKKyAgICBhdXRvIGl0ID0gbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5maW5kKGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyAgICBpZiAoaXQgIT0gbV9hY2Nlc3NT
dGF0ZVBlck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKIAotICAgIC8v
IEluaXRpYWwgdmFsdWUgaXMgYmFzZWQgb24gdGhlIHBlci1zaXRlIHNldHRpbmcuCi0gICAgYXV0
byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCk7CisgICAgLy8gQ2hlY2sgcGVyLXNpdGUgc2V0
dGluZy4KKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKGF1dG8q
IGRvY3VtZW50TG9hZGVyID0gZnJhbWUgPyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIo
KSA6IG51bGxwdHIpCi0gICAgICAgIG1fYWNjZXNzU3RhdGUgPSBkb2N1bWVudExvYWRlci0+ZGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgICAgICByZXR1cm4gZG9j
dW1lbnRMb2FkZXItPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoKTsKKyAg
ICByZXR1cm4gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0
OwogfQogCi12b2lkIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6
c2hvdWxkQWxsb3dBY2Nlc3MoRnVuY3Rpb248dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlKT4mJiBjYWxsYmFjaykKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0FjY2Vzcyhjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQsIEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZSk+JiYgY2FsbGJhY2spCiB7Ci0gICAgYXV0byogcGFnZSA9IG1fZG9jdW1lbnQucGFn
ZSgpOwotICAgIGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpOworICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgp
OwogICAgIGlmICghcGFnZSB8fCAhZnJhbWUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOwogCi0gICAgYm9v
bCBtYXlQcm9tcHQgPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCk7Ci0gICAgaWYgKG1fYWNjZXNzU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0KQotICAgICAgICByZXR1cm4gY2FsbGJhY2sobV9hY2Nlc3NT
dGF0ZSk7CisgICAgYXV0byBhY2Nlc3NTdGF0ZSA9IHRoaXMtPmFjY2Vzc1N0YXRlKGRvY3VtZW50
KTsKKyAgICBpZiAoYWNjZXNzU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZTo6UHJvbXB0KQorICAgICAgICByZXR1cm4gY2FsbGJhY2soYWNjZXNzU3RhdGUp
OwogCi0gICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcygqbV9kb2N1bWVudC5mcmFtZSgpLCBtYXlQcm9tcHQsIFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25T
dGF0ZSkgbXV0YWJsZSB7CisgICAgYm9vbCBtYXlQcm9tcHQgPSBVc2VyR2VzdHVyZUluZGljYXRv
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCZkb2N1bWVudCk7CisgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcygqZG9j
dW1lbnQuZnJhbWUoKSwgbWF5UHJvbXB0LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgc2VjdXJpdHlPcmlnaW4gPSBtYWtlUmVmKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkp
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9hY2Nlc3NTdGF0ZSA9
IHBlcm1pc3Npb25TdGF0ZTsKKyAgICAgICAgbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5zZXQoc2Vj
dXJpdHlPcmlnaW4tPmRhdGEoKSwgcGVybWlzc2lvblN0YXRlKTsKICAgICAgICAgY2FsbGJhY2so
cGVybWlzc2lvblN0YXRlKTsKIAogICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlICE9IERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUo
KTsgZnJhbWUgJiYgZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KG1fZG9jdW1lbnQuZnJhbWUoKSkpIHsKKyAgICAgICAgZm9yIChhdXRvKiBmcmFtZSA9
ICZtX3BhZ2UubWFpbkZyYW1lKCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICBmcmFtZS0+d2luZG93
KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOwogICAg
ICAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklm
TmVjZXNzYXJ5KCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaAppbmRl
eCA0YWY5NDYxYzlkNzkuLjkyNzk5OTU1ODY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuaApAQCAtMzYsMTkgKzM2LDE5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERv
Y3VtZW50OworY2xhc3MgUGFnZTsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlcihEb2N1bWVudCYpOworICAgIGV4cGxpY2l0IERldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlcihQYWdlJik7CiAKLQotICAgIERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgYWNjZXNzU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Fj
Y2Vzc1N0YXRlOyB9Ci0gICAgdm9pZCBzaG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIGFjY2Vzc1N0YXRlKGNvbnN0IERvY3Vt
ZW50JikgY29uc3Q7CisgICAgdm9pZCBzaG91bGRBbGxvd0FjY2Vzcyhjb25zdCBEb2N1bWVudCYs
IEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+
JiYpOwogCiBwcml2YXRlOgotICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwotICAgIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgbV9hY2Nlc3NTdGF0ZSB7IERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdCB9OworICAgIFBhZ2UmIG1f
cGFnZTsKKyAgICBIYXNoTWFwPFNlY3VyaXR5T3JpZ2luRGF0YSwgRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZT4gbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAppbmRleCBlY2YzNzAwZTQ0MmUuLmQwM2I2YmIwYjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZl
bnQuaCIKIAorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTEyLDQgKzExNCwyNiBAQCBFdmVudEludGVyZmFj
ZSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYK
IH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU9yaWVudGF0
aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lv
blByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdp
bmRvdygpOworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCF3aW5k
b3cgfHwgIXBhZ2UpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIk5vIGJyb3dzaW5nIGNvbnRleHQiX3MgfSk7CisKKyAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2luZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU9y
aWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmlu
ZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1l
c3NhZ2UsICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25T
dGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAgICBwYWdlLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxvd0FjY2Vzcyhkb2N1bWVudCwgW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBt
dXRhYmxlIHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSA9PSBQZXJtaXNzaW9uU3RhdGU6
OlByb21wdCkKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBO
b3RBbGxvd2VkRXJyb3IsICJSZXF1ZXN0aW5nIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcmVx
dWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0Il9zIH0pOworICAgICAgICBwcm9taXNlLnJl
c29sdmUocGVybWlzc2lvblN0YXRlKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
aAppbmRleCBlNzAzNDU4YTE2NTQuLjgxOWVjYmIwNjg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNSwxNCArMjUsMTYgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKKyNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKK3RlbXBsYXRlPHR5cGVuYW1lIElE
TFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCwgcHVibGljIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25FdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGlj
IEV2ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERldmljZU9yaWVudGF0aW9uRXZl
bnQpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBv
cmllbnRhdGlvbikKQEAgLTYyLDYgKzY0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZp
Y2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywg
Ym9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxkb3VibGU+IGFscGhhLCBPcHRpb25hbDxkb3VibGU+
IGJldGEsIE9wdGlvbmFsPGRvdWJsZT4gZ2FtbWEsIE9wdGlvbmFsPGJvb2w+IGFic29sdXRlKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB1c2luZyBQZXJt
aXNzaW9uU3RhdGUgPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOwor
ICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1l
cmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVu
dChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9uRGF0YSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAyMWE4MWZiZTVkLi4wMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25FdmVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
LmgiCi0KLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNz
aW9uUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9t
V2luZG93KCk7Ci0gICAgaWYgKCF3aW5kb3cpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGJyb3dzaW5nIGNvbnRleHQiX3Mg
fSk7Ci0KLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGlmICghd2luZG93LT5pc0FsbG93
ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsKLSAgICAgICAg
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxl
ZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOwotICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKLSAgICB9Ci0KLSAgICBkb2N1bWVu
dC5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxv
d0FjY2VzcyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKFBlcm1pc3Npb25TdGF0ZSBwZXJt
aXNzaW9uU3RhdGUpIG11dGFibGUgewotICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlID09IFBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0KQotICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0
aW9uIG9yIG1vdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0Il9z
IH0pOwotICAgICAgICBwcm9taXNlLnJlc29sdmUocGVybWlzc2lvblN0YXRlKTsKLSAgICB9KTsK
LX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdhMzBmM2QyYzE3NC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIgotI2luY2x1ZGUgIklETFR5
cGVzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKLQotY2xhc3Mg
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKLXB1YmxpYzoKLQotI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgdXNpbmcgUGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTsKLSAgICB1c2luZyBQZXJtaXNzaW9uUHJv
bWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+
PjsKLSAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Np
b25Qcm9taXNlJiYpOwotI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgfkRldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25FdmVudCgpID0gZGVmYXVsdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDkxNzkyNTRhMWUwOC4uZTk1NDFmZWZjM2QxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI2OSw3ICsyNjksNiBAQAogCiAjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgotI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKICNlbmRpZgogCkBAIC04NTY5LDIwICs4NTY4LDYg
QEAgdm9pZCBEb2N1bWVudDo6aWRlbnRpZmllZEVsZW1lbnRXYXNSZW1vdmVkRnJvbURvY3VtZW50
KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgbV9pZGVudGlmaWVkRWxlbWVudHNNYXAucmVtb3ZlKCZl
bGVtZW50KTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0KLURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciYgRG9jdW1lbnQ6OmRldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpCi17Ci0gICAgaWYgKCZ0b3BEb2N1bWVu
dCgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgpLmRldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpOwotCi0gICAgaWYgKCFtX2RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcikKLSAgICAgICAgbV9kZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4oKnRoaXMpOwotICAgIHJldHVybiAqbV9kZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7Ci19Ci0KLSNlbmRpZgotCiAj
aWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBQYWludFdvcmtsZXQmIERvY3VtZW50OjplbnN1
cmVQYWludFdvcmtsZXQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTku
LmJmNWZhZTNjYWU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExOSw3ICsxMTksNiBAQCBj
bGFzcyBEYXRhYmFzZTsKIGNsYXNzIERhdGFiYXNlVGhyZWFkOwogY2xhc3MgRGV2aWNlTW90aW9u
Q2xpZW50OwogY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKLWNsYXNzIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9u
Q2xpZW50OwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogY2xhc3MgRG9jdW1l
bnRGcmFnbWVudDsKQEAgLTEyMDIsMTAgKzEyMDEsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hhbmdlKGRvdWJsZSBhbHBoYSwg
ZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCi0gICAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyJiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsKLSNlbmRp
ZgotCiAgICAgY29uc3QgRG9jdW1lbnRUaW1pbmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1f
ZG9jdW1lbnRUaW1pbmc7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNU
aW1lc3RhbXAoKSBjb25zdDsKQEAgLTE5NDAsMTAgKzE5MzUsNiBAQCBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IG1fZGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQotICAgIHN0ZDo6dW5pcXVlX3B0cjxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXI+IG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOwot
I2VuZGlmCi0KICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX2xvZ01lc3NhZ2VUYXNrUXVl
dWU7CiAKICAgICBUaW1lciBtX3BlbmRpbmdUYXNrc1RpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKaW5kZXggZDEzZDFiMGE2MGQ5Li4wMDYxNGVmYjJj
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcApAQCAt
ODksNyArODksNyBAQCB2b2lkIFVzZXJHZXN0dXJlVG9rZW46OnNldE1heGltdW1JbnRlcnZhbEZv
clVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoRm9yVGVzdAogICAgIG1heEludGVydmFsRm9y
VXNlckdlc3R1cmVGb3J3YXJkaW5nRm9yRmV0Y2ggPSBXVEZNb3ZlKHZhbHVlKTsKIH0KIAotYm9v
bCBVc2VyR2VzdHVyZVRva2VuOjppc1ZhbGlkRm9yRG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
KSBjb25zdAorYm9vbCBVc2VyR2VzdHVyZVRva2VuOjppc1ZhbGlkRm9yRG9jdW1lbnQoY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewogICAgIHJldHVybiBtX2RvY3VtZW50c0ltcGFj
dGVkQnlVc2VyR2VzdHVyZS5jb250YWlucyhkb2N1bWVudCk7CiB9CkBAIC0xNTcsNyArMTU3LDcg
QEAgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50
VXNlckdlc3R1cmUoKQogICAgIHJldHVybiBjdXJyZW50VG9rZW4oKTsKIH0KIAotYm9vbCBVc2Vy
R2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKERvY3VtZW50KiBkb2N1bWVu
dCkKK2Jvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZShjb25z
dCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0
dXJlSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aAppbmRleCA2OWQyZTA5MDc5OTYuLmY1Y2M3ZmFkMjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAg
ICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9
CiAKLSAgICBib29sIGlzVmFsaWRGb3JEb2N1bWVudChEb2N1bWVudCYpIGNvbnN0OworICAgIGJv
b2wgaXNWYWxpZEZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50JikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgVXNlckdlc3R1cmVUb2tlbihQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSwgVXNlckdl
c3R1cmVUeXBlLCBEb2N1bWVudCopOwpAQCAtMTIzLDcgKzEyMyw3IEBAIGNsYXNzIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRy
PFVzZXJHZXN0dXJlVG9rZW4+IGN1cnJlbnRVc2VyR2VzdHVyZSgpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKERvY3VtZW50KiA9IG51bGxw
dHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZShjb25zdCBEb2N1bWVudCogPSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpOwogCiAgICAgLy8gSWYgYSBkb2N1
bWVudCBpcyBwcm92aWRlZCwgaXRzIGxhc3Qga25vd24gdXNlciBnZXN0dXJlIHRpbWVzdGFtcCBp
cyB1cGRhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXggMDIzZmJj
NDkyZTQxLi5lNTM5ZDZkNTJmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVh
dHVyZVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNw
cApAQCAtNTIsNiArNTIsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHBvbGljeVR5cGVOYW1lKEZl
YXR1cmVQb2xpY3k6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuICJTeW5jWEhSIjsKICAgICBj
YXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkZ1bGxzY3JlZW46CiAgICAgICAgIHJldHVybiAiRnVs
bHNjcmVlbiI7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBjYXNlIEZlYXR1
cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZToKKyAgICAgICAgcmV0dXJuICJHeXJvc2NvcGUiOwor
ICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6QWNjZWxlcm9tZXRlcjoKKyAgICAgICAgcmV0
dXJuICJBY2NlbGVyb21ldGVyIjsKKyAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6Ok1hZ25l
dG9tZXRlcjoKKyAgICAgICAgcmV0dXJuICJNYWduZXRvbWV0ZXIiOworI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQlhSKQogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6WFJTcGF0aWFsVHJhY2tp
bmc6CiAgICAgICAgIHJldHVybiAiWFJTcGF0aWFsVHJhY2tpbmciOwpAQCAtMTYxLDYgKzE2OSwx
MSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5p
dGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3luY1hIUkluaXRpYWxpemVkID0gZmFsc2U7
CiAgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFsaXplZCA9IGZhbHNlOworI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgYm9vbCBpc0d5cm9zY29wZUluaXRpYWxpemVkID0gZmFs
c2U7CisgICAgYm9vbCBpc0FjY2VsZXJvbWV0ZXJJbml0aWFsaXplZCA9IGZhbHNlOworICAgIGJv
b2wgaXNNYWduZXRvbWV0ZXJJbml0aWFsaXplZCA9IGZhbHNlOworI2VuZGlmCiAjaWYgRU5BQkxF
KFdFQlhSKQogICAgIGJvb2wgaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkID0gZmFsc2U7
CiAjZW5kaWYKQEAgLTE5Niw2ICsyMDksMjMgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5
OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAg
ICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZnVsbHNjcmVlblJ1bGUsIGl0
ZW0uc3Vic3RyaW5nKDExKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgo
Imd5cm9zY29wZSIpKSB7CisgICAgICAgICAgICBpc0d5cm9zY29wZUluaXRpYWxpemVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2d5cm9zY29wZVJ1
bGUsIGl0ZW0uc3Vic3RyaW5nKDEwKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJhY2NlbGVyb21ldGVyIikpIHsKKyAgICAg
ICAgICAgIGlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHVw
ZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2FjY2VsZXJvbWV0ZXJSdWxlLCBpdGVtLnN1YnN0
cmluZygxNCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGl0ZW0uc3RhcnRzV2l0aCgibWFnbmV0b21ldGVyIikpIHsKKyAgICAgICAgICAgIGlzTWFnbmV0
b21ldGVySW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVu
dCwgcG9saWN5Lm1fbWFnbmV0b21ldGVyUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTMpKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAg
ICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInhyLXNwYXRpYWwtdHJhY2tpbmciKSkgewogICAg
ICAgICAgICAgaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkID0gdHJ1ZTsKQEAgLTIxNCw2
ICsyNDQsMTQgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAgICAgICBwb2xpY3kubV9zcGVh
a2VyU2VsZWN0aW9uUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOwogICAgIGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkKQogICAgICAg
ICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNl
Y3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIGlmICghaXNHeXJvc2NvcGVJbml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1fZ3lyb3Nj
b3BlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkp
OworICAgIGlmICghaXNBY2NlbGVyb21ldGVySW5pdGlhbGl6ZWQpCisgICAgICAgIHBvbGljeS5t
X2FjY2VsZXJvbWV0ZXJSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLmRhdGEoKSk7CisgICAgaWYgKCFpc01hZ25ldG9tZXRlckluaXRpYWxpemVkKQorICAgICAg
ICBwb2xpY3kubV9tYWduZXRvbWV0ZXJSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLmRhdGEoKSk7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgaWYg
KCFpc1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX3hyU3Bh
dGlhbFRyYWNraW5nUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOwpAQCAtMjU1LDYgKzI5MywxNCBAQCBib29sIEZlYXR1cmVQb2xpY3k6OmFsbG93
cyhUeXBlIHR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAogICAg
ICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fc3luY1hIUlJ1bGUsIG9yaWdp
bik7CiAgICAgY2FzZSBUeXBlOjpGdWxsc2NyZWVuOgogICAgICAgICByZXR1cm4gaXNBbGxvd2Vk
QnlGZWF0dXJlUG9saWN5KG1fZnVsbHNjcmVlblJ1bGUsIG9yaWdpbik7CisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICBjYXNlIFR5cGU6Okd5cm9zY29wZToKKyAgICAgICAgcmV0
dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2d5cm9zY29wZVJ1bGUsIG9yaWdpbik7Cisg
ICAgY2FzZSBUeXBlOjpBY2NlbGVyb21ldGVyOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlG
ZWF0dXJlUG9saWN5KG1fYWNjZWxlcm9tZXRlclJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBl
OjpNYWduZXRvbWV0ZXI6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3ko
bV9tYWduZXRvbWV0ZXJSdWxlLCBvcmlnaW4pOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQog
ICAgIGNhc2UgVHlwZTo6WFJTcGF0aWFsVHJhY2tpbmc6CiAgICAgICAgIHJldHVybiBpc0FsbG93
ZWRCeUZlYXR1cmVQb2xpY3kobV94clNwYXRpYWxUcmFja2luZ1J1bGUsIG9yaWdpbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCmluZGV4IGIyNGJlODJhZmFkMy4uZWVkZThmMTk3NzIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApAQCAtNDUsNiArNDUsMTEgQEAgcHVi
bGljOgogICAgICAgICBEaXNwbGF5Q2FwdHVyZSwKICAgICAgICAgU3luY1hIUiwKICAgICAgICAg
RnVsbHNjcmVlbiwKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICBHeXJv
c2NvcGUsCisgICAgICAgIEFjY2VsZXJvbWV0ZXIsCisgICAgICAgIE1hZ25ldG9tZXRlciwKKyNl
bmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICAgICAgWFJTcGF0aWFsVHJhY2tpbmcsCiAjZW5k
aWYKQEAgLTY0LDcgKzY5LDE0IEBAIHByaXZhdGU6CiAgICAgQWxsb3dSdWxlIG1fZGlzcGxheUNh
cHR1cmVSdWxlOwogICAgIEFsbG93UnVsZSBtX3N5bmNYSFJSdWxlOwogICAgIEFsbG93UnVsZSBt
X2Z1bGxzY3JlZW5SdWxlOworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgQWxs
b3dSdWxlIG1fZ3lyb3Njb3BlUnVsZTsKKyAgICBBbGxvd1J1bGUgbV9hY2NlbGVyb21ldGVyUnVs
ZTsKKyAgICBBbGxvd1J1bGUgbV9tYWduZXRvbWV0ZXJSdWxlOworI2VuZGlmCisjaWYgRU5BQkxF
KFdFQlhSKQogICAgIEFsbG93UnVsZSBtX3hyU3BhdGlhbFRyYWNraW5nUnVsZTsKKyNlbmRpZgog
fTsKIAogZW51bSBjbGFzcyBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZSB7IE5vLCBZZXMgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAzMjg3NmY5MDk4ZDQuLmY1MjY1ZTUyZTE1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCisjaW5jbHVkZSAiRmVhdHVyZVBvbGljeS5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBA
IC00NDYsNyArNDQ3LDcgQEAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0PiBET01XaW5kb3c6Om1hdGNo
TWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKICAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3Vt
ZW50KCktPm1lZGlhUXVlcnlNYXRjaGVyKCkubWF0Y2hNZWRpYShtZWRpYSkgOiBudWxscHRyOwog
fQogCi1QYWdlKiBET01XaW5kb3c6OnBhZ2UoKQorUGFnZSogRE9NV2luZG93OjpwYWdlKCkgY29u
c3QKIHsKICAgICByZXR1cm4gZnJhbWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IG51bGxwdHI7CiB9
CkBAIC0yMDA1LDkgKzIwMDYsOSBAQCBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBET01XaW5kb3c6
OmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgRE9NV2lu
ZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2Fn
ZSkgY29uc3QKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yT3Jp
ZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogewotICAgIGlmICghZnJhbWUoKSB8fCAh
ZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7Cisg
ICAgaWYgKCFmcmFtZSgpIHx8ICFkb2N1bWVudCgpIHx8ICFmcmFtZSgpLT5zZXR0aW5ncygpLmRl
dmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKICAgICAgICAgbWVzc2FnZSA9ICJBUEkg
aXMgZGlzYWJsZWQiX3M7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yMDE3LDIz
ICsyMDE4LDQ2IEBAIGJvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9y
aWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIGlmICghaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpKSB7Ci0g
ICAgICAgIG1lc3NhZ2UgPSAiU291cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2FtZSBzZWN1
cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZSJfczsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uKFN0cmluZyYgbWVzc2Fn
ZSkgY29uc3QKK3sKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRh
dGlvbihtZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpc0ZlYXR1
cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBl
OjpHeXJvc2NvcGUsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pCisg
ICAgICAgIHx8ICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhG
ZWF0dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVyLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVy
ZVBvbGljeUZhaWx1cmU6Ok5vKSkgeworICAgICAgICBtZXNzYWdlID0gIlRoaXJkLXBhcnR5IGlm
cmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBleHBs
aWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21l
dGVyKSJfczsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKwogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRh
dGlvbkxpc3RlbmVyKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK2Jvb2wgRE9NV2luZG93Ojppc0Fs
bG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKIHsKLSAg
ICBTdHJpbmcgaW5uZXJNZXNzYWdlOwotICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rp
b25PcmllbnRhdGlvbihpbm5lck1lc3NhZ2UpKSB7Ci0gICAgICAgIG1lc3NhZ2UgPSBtYWtlU3Ry
aW5nKCJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlv
biBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIik7CisgICAgaWYg
KCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yT3JpZW50YXRpb24obWVzc2FnZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9j
dW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6R3lyb3Njb3BlLCAqZG9jdW1l
bnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKQorICAgICAgICB8fCAhaXNGZWF0dXJl
UG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6
QWNjZWxlcm9tZXRlciwgKmRvY3VtZW50KCksIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykK
KyAgICAgICAgfHwgIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJz
KEZlYXR1cmVQb2xpY3k6OlR5cGU6Ok1hZ25ldG9tZXRlciwgKmRvY3VtZW50KCksIExvZ0ZlYXR1
cmVQb2xpY3lGYWlsdXJlOjpObykpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJUaGlyZC1wYXJ0eSBp
ZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIHVubGVz
cyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2Nl
bGVyb21ldGVyICYgbWFnbmV0b21ldGVyKSJfczsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAorICAgIHJldHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRvdzo6aGFzUGVybWlzc2lv
blRvUmVjZWl2ZURldmljZU1vdGlvbk9yT3JpZW50YXRpb25FdmVudHMoU3RyaW5nJiBtZXNzYWdl
KSBjb25zdAorewogICAgIGlmIChmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9u
UGVybWlzc2lvbkFQSUVuYWJsZWQoKSkgewotICAgICAgICBhdXRvIGFjY2Vzc1N0YXRlID0gZG9j
dW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuYWNj
ZXNzU3RhdGUoKTsKKyAgICAgICAgaWYgKCFwYWdlKCkpIHsKKyAgICAgICAgICAgIG1lc3NhZ2Ug
PSAiTm8gYnJvd3NpbmcgY29udGV4dCJfczsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICBhdXRvIGFjY2Vzc1N0YXRlID0gcGFnZSgpLT5kZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5hY2Nlc3NTdGF0ZSgqZG9jdW1lbnQoKSk7
CiAgICAgICAgIHN3aXRjaCAoYWNjZXNzU3RhdGUpIHsKICAgICAgICAgY2FzZSBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpEZW5pZWQ6CiAgICAgICAgICAgICBtZXNz
YWdlID0gIk5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuIl9zOwpAQCAt
MjA1OCwxMCArMjA4MiwxMCBAQCB2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZp
Y2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKICAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIgfHwg
ZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRU
b0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoZXJyb3JNZXNzYWdlKSkgeworICAg
IFN0cmluZyBpbm5lck1lc3NhZ2U7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU9yaWVu
dGF0aW9uKGlubmVyTWVzc2FnZSkgfHwgIWhhc1Blcm1pc3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rp
b25Pck9yaWVudGF0aW9uRXZlbnRzKGlubmVyTWVzc2FnZSkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBl
cnJvck1lc3NhZ2UpOworICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJl
YXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMjA4NiwxMSArMjExMCwxMSBAQCB2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCiAgICAgaWYgKCFkZXZpY2VDb250cm9sbGVyIHx8IGRl
dmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGlmICghaXNBbGxvd2VkVG9B
ZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGVycm9yTWVzc2FnZSkpIHsKKyAgICBT
dHJpbmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24o
aW5uZXJNZXNzYWdlKSB8fCAhaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlvbk9yT3Jp
ZW50YXRpb25FdmVudHMoaW5uZXJNZXNzYWdlKSkgewogICAgICAgICBmYWlsZWRUb1JlZ2lzdGVy
RGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2Fn
ZSk7CisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJN
ZXNzYWdlLCAiLiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKaW5kZXggMGUzNTExN2Y1YWQ4Li4xNWE2YmNhZmVlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaApAQCAtMzY2LDggKzM2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0TGlzdGVu
aW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHN0b3BMaXN0ZW5pbmdG
b3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwogCi0gICAgYm9vbCBpc0FsbG93ZWRUb1VzZURl
dmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7Ci0gICAgYm9vbCBp
c0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3RyaW5nJiBtZXNz
YWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50YXRpb24oU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9u
KFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CiAKICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OwogICAgIERldmljZU1vdGlv
bkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKQEAgLTQxMCwxMyAr
NDEwLDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0xvY2FsRE9NV2luZG93KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNSZW1vdGVET01XaW5kb3coKSBjb25zdCBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgUGFnZSogcGFnZSgpOworICAgIFBhZ2UqIHBh
Z2UoKSBjb25zdDsKICAgICBib29sIGFsbG93ZWRUb0NoYW5nZVdpbmRvd0dlb21ldHJ5KCkgY29u
c3Q7CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEZyYW1lPj4gY3JlYXRlV2luZG93
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBmcmFtZU5hbWUsIGNv
bnN0IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJz
dEZyYW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChET01X
aW5kb3cmKT4mIHByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAgIGJvb2wgaXNJ
bnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBib29s
IGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0OworICAgIGJvb2wgaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlvbk9yT3Jp
ZW50YXRpb25FdmVudHMoU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKICAgICB2b2lkIGZhaWxlZFRv
UmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKaW5kZXggODhmOTAzZWVmZDdiLi4xMDYyM2U3NWFjODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtMTcxLDYgKzE3MSwxMCBAQAogI2luY2x1ZGUgIkRpc3BsYXlWaWV3LmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdGF0aWMgSGFzaFNldDxQYWdlKj4mIGFsbFBhZ2VzKCkKQEAgLTM0NDMsNiAr
MzQ0NywxNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6OnNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbigpCiAgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXImIFBhZ2U6OmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpCit7
CisgICAgaWYgKCFtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcikK
KyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgPSBt
YWtlVW5pcXVlPERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4oKnRo
aXMpOworICAgIHJldHVybiAqbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXI7Cit9CisKKyNlbmRpZgorCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAo
c3RlcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAxNTJmNDkyNDQ0ZTEuLmQ5NGYyNDMzODcyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTk5LDYgKzk5LDcgQEAgY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVy
OwogY2xhc3MgQ29va2llSmFyOwogY2xhc3MgRE9NUmVjdExpc3Q7CiBjbGFzcyBEYXRhYmFzZVBy
b3ZpZGVyOworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
OwogY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiBjbGFzcyBEcmFnQ2FyZXRDb250cm9s
bGVyOwogY2xhc3MgRHJhZ0NvbnRyb2xsZXI7CkBAIC0zMTMsNiArMzE0LDEwIEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwog
ICAgIGJvb2wgc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0KCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQ7
IH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyJiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1l
bnQoKTsKICAgICB2b2lkIG1haW5GcmFtZURpZENoYW5nZVRvTm9uSW5pdGlhbEVtcHR5RG9jdW1l
bnQoKTsKIApAQCAtOTI0LDYgKzkyOSwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI+IG1fZGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOworI2VuZGlmCisKICAgICBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwog
CiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJv
dmlkZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421362</attachid>
            <date>2021-02-23 15:57:53 -0800</date>
            <delta_ts>2021-02-23 17:05:50 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>221399_DeviceMotion_FeaturePolicy_wip.patch</filename>
            <type>text/plain</type>
            <size>56556</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGI3NjA0ODE0MzZjNi4uZDk1ZDQwZjYxM2NmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTUwLDYgKzUwLDcgQEAgZmFzdC9mb3Jtcy9pb3MgWyBTa2lwIF0KIGZh
c3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvIFsgU2tp
cCBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFNraXAgXQoraHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24gWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2N1cnNvcnMgWyBTa2lwIF0KIGZhc3Qv
ZXZlbnRzL2lvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvd2F0Y2hvcyBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM0OTA4ODE4
NWVlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVh
dHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FH
RTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gZXZlbnQgbGlzdGVuZXIs
IHJlYXNvbjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4uCitS
ZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNl
Y3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4KK1Rlc3RzIHRoYXQgdGhpcmQt
cGFydHkgaWZyYW1lcyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBldmVudHMg
aWYgYWxsb3dlZCBieSBmZWF0dXJlIHBvbGljeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZS5kYXRhIGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1l
LWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93
ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjZhYmY3YmQyZWY5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZy
YW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rp
b24gZXZlbnRzIGlmIGFsbG93ZWQgYnkgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImdyYW50ZWQiKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsgICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRz
Lmh0bWwiIGFsbG93PSJhY2NlbGVyb21ldGVyO2d5cm9zY29wZSI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZm
aWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRl
bmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzBlZDYxZjFkZjEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJl
LXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBldmVudCBsaXN0ZW5lciwgcmVh
c29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNl
IG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3ly
b3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwgdG8gcmVxdWVz
dFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90
IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dl
ZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIpLgorVGVzdHMg
dGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ug
bW90aW9uIGV2ZW50cyB3aXRoIGluc3VmZmljaWVudCBmZWF0dXJlIHBvbGljeS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10
aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBv
bGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2Q1YmIz
MTVlYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
dGhpcmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlv
biBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlz
aEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVu
dHMuaHRtbCIgYWxsb3c9Imd5cm9zY29wZSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjBiZGZlMTI3NTA3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFy
dHktaWZyYW1lLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBN
RVNTQUdFOiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBldmVudCBsaXN0
ZW5lciwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3Mg
dG8gZGV2aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBv
bGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwg
dG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1l
cyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNzIGV4cGxpY2l0
bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIp
LgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0
byBkZXZpY2UgbW90aW9uIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1ZDExM2JiOTk1MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhp
cmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhp
cmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBl
dmVudHMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93
LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9l
KSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwg
ImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJh
bWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNl
cy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1w
b2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjRmMzdlMzczMjVhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0
eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IE5vIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVl
biByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYg
bW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNj
ZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgaWYgYWxsb3dlZCBieSBmZWF0dXJlIHBv
bGljeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJn
cmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJl
LXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUt
cG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMjI4
OGNmMzEzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93
ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJk
LXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBl
dmVudHMgaWYgYWxsb3dlZCBieSBmZWF0dXJlIHBvbGljeS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworCisvLyBJZiBwcm9tcHRlZCwgYWxsb3cuCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzKHRydWUpOworCitvbm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJlLmRhdGEiLCAiZ3JhbnRlZCIpOworICAgIGZpbmlzaEpTVGVz
dCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50
cy5odG1sIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjtneXJvc2NvcGU7bWFnbmV0b21ldGVyIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJh
bWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xp
Y3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
NzQ0ODg5NGU1Njg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZp
Y2Ugb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1l
cyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhw
bGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9t
ZXRlciAmIG1hZ25ldG9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwgdG8gcmVxdWVzdFBl
cm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFs
bG93ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxv
d2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlciAmIG1hZ25l
dG9tZXRlcikuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3Qg
YWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVh
dHVyZSBwb2xpY3kuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0
YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41M2Q4YTI2NTQ3YjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1w
b2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMg
Y2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2l0aCBp
bnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
Ly8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVl
KTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAK
K307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNl
LW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIiBh
bGxvdz0iZ3lyb3Njb3BlIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjY1NzkzZjllODhkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGly
ZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05T
T0xFIE1FU1NBR0U6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Ugb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93
ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2Vk
IHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlciAmIG1hZ25ldG9t
ZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWls
ZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRv
IGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJl
LVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlciAmIG1hZ25ldG9tZXRlcikuCitUZXN0
cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmlj
ZSBvcmllbnRhdGlvbiBldmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGUuZGF0YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVu
aWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmQxNmRhNmQzNGRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDIxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRl
dmljZSBvcmllbnRhdGlvbiBldmVudHMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8g
SWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsK
Kworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307
Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9y
aWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9y
ZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjc2ZjI4NzEzYjgxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVu
dHMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOwor
CitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VNb3Rpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICB0b3AucG9z
dE1lc3NhZ2UocmVzdWx0LCAiKiIpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qtb3Jp
ZW50YXRpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5mZDJlZWY1ODBkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVu
dHMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7
fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgIERldmljZU9yaWVu
dGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAg
ICAgdG9wLnBvc3RNZXNzYWdlKHJlc3VsdCwgIioiKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNWY2ZGQzNzkyZWYzLi4wZDAzNTJkNjg1ODUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1LDYgKzE1LDcg
QEAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2Vy
Lmh0bWwgWyBQYXNzIF0KIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVz
ZW50aW5nLXBpY2tlci5odG1sIFsgUGFzcyBdCiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3QuaHRtbCBbIFBhc3MgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBQYXNzIF0KK2h0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFz
cyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
aW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk2NzE3OTcxNzlmNy4uYTQ1YjczMWU5NTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtOTEyLDcgKzkxMiw2IEBAIGRvbS9EZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyLmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAKIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcAotZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAK
IGRvbS9Eb2N1bWVudC5jcHAKIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAogZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmZDdjYWE3ZmZmNTYuLmU4M2Q5MDYxOTNlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTI0OCw3ICsxMjQ4LDYgQEAKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2lt
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVB
NUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQkI2MTYxRDBBMUJGMDAwMjIxODEyIC8qIEJh
c2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDYwQkI2MTQxRDBBMUJFQzAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MENCRjM2MUQ0
QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAv
KiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLzsgfTsKLQkJNDYwRTMwNzUyMjJGNEVGRDAwOUEw
NjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYxREE1MkEyMjJGNDg2RjAwRDA1QTg3IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovOyB9OwogCQk0NjBFMzA3NzIyMkY0
RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1RUREOUYy
MjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcyRDYxRTAw
MjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2lu
ZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MTg5LDggKzgxODgsNiBAQAog
CQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGll
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDky
RTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQwMEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MURB
NTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIx
QUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAxMzcsOCArMzAxMzQsNiBA
QAogCQkJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcCAqLywKIAkJCQk1OUE4NUVBMzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oICovLAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmlkbCAqLywKLQkJCQk0NjFEQTUyQzIyMkY0ODZGMDBEMDVBODcgLyogRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCAqLywKLQkJCQk0NjFEQTUyQTIyMkY0ODZG
MDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggKi8sCiAJCQkJNDY1
RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaCAqLywKIAkJCQk0NjVFRERBMDIyMkY0RUM0MDBCNDZFMTYgLyogRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwgKi8sCiAJCQkJN0MzQThBQjgyNTA5
QTEwRjAwOEM0NzdGIC8qIERvY3VtZW50K0NTU09NVmlldy5pZGwgKi8sCkBAIC0zMTk3NCw3ICsz
MTk2OSw2IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlG
Nzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVF
QTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYw
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFE
NDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBkNzU4Mjcz
NGFmM2QuLjhhZWU0MjMzMzRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTU5MSw3ICs1OTEsNyBAQCBWYWx1ZU9yRXhjZXB0aW9u
IFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsCiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5ub3RpZnlQYWdlT2ZBcHBCb3Vu
ZEJlaGF2aW9yKCk7CiAjZW5kaWYKIAotICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJ
bmRpY2F0b3IocGFyYW1ldGVycy5mb3JjZVVzZXJHZXN0dXJlID09IEZvcmNlVXNlckdlc3R1cmU6
OlllcyA/IE9wdGlvbmFsPFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlPihQcm9jZXNzaW5nVXNl
ckdlc3R1cmUpIDogV1RGOjpudWxsb3B0KTsKKyAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0
dXJlSW5kaWNhdG9yKHBhcmFtZXRlcnMuZm9yY2VVc2VyR2VzdHVyZSA9PSBGb3JjZVVzZXJHZXN0
dXJlOjpZZXMgPyBPcHRpb25hbDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4oUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKSA6IFdURjo6bnVsbG9wdCwgbV9mcmFtZS5kb2N1bWVudCgpKTsKIAogICAg
IGlmICghY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2Vk
KCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EZXRhaWxzIHsgIkNh
bm5vdCBleGVjdXRlIEphdmFTY3JpcHQgaW4gdGhpcyBkb2N1bWVudCJfcyB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCmluZGV4IDNiM2U1OWVhYTNlYy4uNzA3MzRh
ZDQ5MTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKQEAgLTI3
LDYgKzI3LDggQEAKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCiAjaW5jbHVkZSAi
RGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTI1LDQgKzEyNywyNiBAQCBFdmVudEludGVyZmFjZSBEZXZpY2VNb3Rpb25FdmVudDo6ZXZl
bnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQordm9pZCBEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1l
bnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgYXV0byog
d2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKTsKKyAgICBpZiAoIXdpbmRvdyB8fCAhcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYnJvd3NpbmcgY29u
dGV4dCJfcyB9KTsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCF3aW5kb3ct
PmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uKGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZG9j
dW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwg
cmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAgICBwYWdlLT5kZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxvd0FjY2Vz
cyhkb2N1bWVudCwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJtaXNzaW9uU3RhdGUg
cGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSA9
PSBQZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJSZXF1ZXN0aW5nIGRldmljZSBtb3Rp
b24gYWNjZXNzIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdCJfcyB9KTsKKyAgICAg
ICAgcHJvbWlzZS5yZXNvbHZlKHBlcm1pc3Npb25TdGF0ZSk7CisgICAgfSk7Cit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU1vdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZl
bnQuaAppbmRleCAzOWVlZGRlNzFmMmMuLmU1MGY3NDYxZjQyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgorI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBw
dWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworY2xh
c3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoRGV2aWNlTW90aW9uRXZlbnQpOwogcHVibGljOgogICAgIHZpcnR1YWwg
fkRldmljZU1vdGlvbkV2ZW50KCk7CkBAIC02OCw2ICs3MCwxMiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGluaXREZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBib29sIGJ1
YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgT3B0aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRpb25h
bDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPFJvdGF0aW9uUmF0ZT4mJiwgT3B0aW9uYWw8ZG91
YmxlPik7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1p
c3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7Cisg
ICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVy
YXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Np
b24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIERldmljZU1vdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VNb3Rpb25EYXRhKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIuY3BwCmluZGV4IDEwMGFhZjE4YjU3Ni4uMWUyOGZmYjc0ODU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcApAQCAtMzksMzkgKzM5LDQ3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoRG9jdW1lbnQm
IGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyKFBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKLSAgICBBU1NF
UlQoJm1fZG9jdW1lbnQudG9wRG9jdW1lbnQoKSA9PSAmbV9kb2N1bWVudCk7Cit9CisKK0Rldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjphY2Nlc3NTdGF0ZShjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQpIGNvbnN0Cit7CisgICAgYXV0byBpdCA9IG1fYWNjZXNzU3RhdGVQZXJPcmlnaW4uZmluZChk
b2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CisgICAgaWYgKGl0ICE9IG1fYWNjZXNz
U3RhdGVQZXJPcmlnaW4uZW5kKCkpCisgICAgICAgIHJldHVybiBpdC0+dmFsdWU7CiAKLSAgICAv
LyBJbml0aWFsIHZhbHVlIGlzIGJhc2VkIG9uIHRoZSBwZXItc2l0ZSBzZXR0aW5nLgotICAgIGF1
dG8qIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpOworICAgIC8vIENoZWNrIHBlci1zaXRlIHNl
dHRpbmcuCisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIGlmIChhdXRv
KiBkb2N1bWVudExvYWRlciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVy
KCkgOiBudWxscHRyKQotICAgICAgICBtX2FjY2Vzc1N0YXRlID0gZG9jdW1lbnRMb2FkZXItPmRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoKTsKKyAgICAgICAgcmV0dXJuIGRv
Y3VtZW50TG9hZGVyLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlKCk7Cisg
ICAgcmV0dXJuIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21w
dDsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6
OnNob3VsZEFsbG93QWNjZXNzKEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSk+JiYgY2FsbGJhY2spCit2b2lkIERldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlcjo6c2hvdWxkQWxsb3dBY2Nlc3MoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50LCBGdW5jdGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUpPiYmIGNhbGxiYWNrKQogewotICAgIGF1dG8qIHBhZ2UgPSBtX2RvY3VtZW50LnBh
Z2UoKTsKLSAgICBhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUo
KTsKICAgICBpZiAoIXBhZ2UgfHwgIWZyYW1lKQogICAgICAgICByZXR1cm4gY2FsbGJhY2soRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKIAotICAgIGJv
b2wgbWF5UHJvbXB0ID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpOwotICAgIGlmIChtX2FjY2Vzc1N0YXRlICE9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG1fYWNjZXNz
U3RhdGUpOworICAgIGF1dG8gYWNjZXNzU3RhdGUgPSB0aGlzLT5hY2Nlc3NTdGF0ZShkb2N1bWVu
dCk7CisgICAgaWYgKGFjY2Vzc1N0YXRlICE9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGU6OlByb21wdCkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGFjY2Vzc1N0YXRl
KTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3MoKm1fZG9jdW1lbnQuZnJhbWUoKSwgbWF5UHJvbXB0LCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9u
U3RhdGUpIG11dGFibGUgeworICAgIGJvb2wgbWF5UHJvbXB0ID0gVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgmZG9jdW1lbnQpOworICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoKmRv
Y3VtZW50LmZyYW1lKCksIG1heVByb21wdCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyksIHNlY3VyaXR5T3JpZ2luID0gbWFrZVJlZihkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIG11dGFibGUgewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fYWNjZXNzU3RhdGUg
PSBwZXJtaXNzaW9uU3RhdGU7CisgICAgICAgIG1fYWNjZXNzU3RhdGVQZXJPcmlnaW4uc2V0KHNl
Y3VyaXR5T3JpZ2luLT5kYXRhKCksIHBlcm1pc3Npb25TdGF0ZSk7CiAgICAgICAgIGNhbGxiYWNr
KHBlcm1pc3Npb25TdGF0ZSk7CiAKICAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSAhPSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpHcmFudGVkKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIGZvciAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1l
KCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlTmV4dChtX2RvY3VtZW50LmZyYW1lKCkpKSB7CisgICAgICAgIGZvciAoYXV0byogZnJhbWUg
PSAmbV9wYWdlLm1haW5GcmFtZSgpOyBmcmFtZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgZnJhbWUtPndpbmRv
dygpLT5zdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKICAg
ICAgICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25J
Zk5lY2Vzc2FyeSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgKaW5k
ZXggNGFmOTQ2MWM5ZDc5Li45Mjc5OTk1NTg2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyLmgKQEAgLTM2LDE5ICszNiwxOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudDsKK2NsYXNzIFBhZ2U7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoUGFnZSYpOwogCi0KLSAgICBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlIGFjY2Vzc1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2Nlc3NTdGF0ZTsgfQotICAgIHZvaWQgc2hvdWxkQWxsb3dBY2Nlc3MoRnVuY3Rpb248dm9pZChE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBhY2Nlc3NTdGF0ZShjb25zdCBEb2N1
bWVudCYpIGNvbnN0OworICAgIHZvaWQgc2hvdWxkQWxsb3dBY2Nlc3MoY29uc3QgRG9jdW1lbnQm
LCBGdW5jdGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUp
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIG1fYWNjZXNzU3RhdGUgeyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQgfTsKKyAgICBQYWdlJiBt
X3BhZ2U7CisgICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IG1fYWNjZXNzU3RhdGVQZXJPcmlnaW47CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5jcHAKaW5kZXggZWNmMzcwMGU0NDJlLi5kMDNiNmJiMGI5MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKQEAgLTI2LDcgKzI2
LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmgiCiAKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMiw0ICsxMTQsMjYgQEAgRXZlbnRJbnRlcmZh
Y2UgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlm
CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Np
b25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21X
aW5kb3coKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICghd2lu
ZG93IHx8ICFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOworCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxvd2VkVG9Vc2VEZXZpY2VP
cmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJp
bmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JN
ZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgcGFnZS0+ZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuc2hvdWxkQWxsb3dBY2Nlc3MoZG9jdW1lbnQsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlzc2lvblN0YXRl
OjpQcm9tcHQpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzIHJl
cXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdCJfcyB9KTsKKyAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKHBlcm1pc3Npb25TdGF0ZSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmgKaW5kZXggZTcwMzQ1OGExNjU0Li44MTllY2JiMDY4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaApAQCAtMjUsMTQgKzI1LDE2IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBJ
RExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKLWNsYXNzIERldmljZU9yaWVudGF0
aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uRXZlbnQgeworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25FdmVudCBmaW5hbCA6IHB1Ymxp
YyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEZXZpY2VPcmllbnRhdGlvbkV2
ZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9uRGF0YSog
b3JpZW50YXRpb24pCkBAIC02Miw2ICs2NCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0RGV2
aWNlT3JpZW50YXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMs
IGJvb2wgY2FuY2VsYWJsZSwgT3B0aW9uYWw8ZG91YmxlPiBhbHBoYSwgT3B0aW9uYWw8ZG91Ymxl
PiBiZXRhLCBPcHRpb25hbDxkb3VibGU+IGdhbW1hLCBPcHRpb25hbDxib29sPiBhYnNvbHV0ZSk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdXNpbmcgUGVy
bWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTsK
KyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVt
ZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudCgpOwogICAgIERldmljZU9yaWVudGF0aW9uRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwMjFhODFmYmU1ZC4uMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dC5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlz
c2lvblByb21pc2UmJiBwcm9taXNlKQotewotICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRv
bVdpbmRvdygpOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWpl
Y3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9z
IH0pOwotCi0gICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBpZiAoIXdpbmRvdy0+aXNBbGxv
d2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7Ci0gICAgICAg
IGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWls
ZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKLSAgICAgICAgcmV0dXJuIHByb21p
c2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7Ci0gICAgfQotCi0gICAgZG9jdW1l
bnQuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuc2hvdWxkQWxs
b3dBY2Nlc3MoW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJtaXNzaW9uU3RhdGUgcGVy
bWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSA9PSBQ
ZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKLSAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJSZXF1ZXN0aW5nIGRldmljZSBvcmllbnRh
dGlvbiBvciBtb3Rpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdCJf
cyB9KTsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHBlcm1pc3Npb25TdGF0ZSk7Ci0gICAgfSk7
Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YTMwZjNkMmMxNzQuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKLSNpbmNsdWRlICJJRExU
eXBlcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50OwotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Ci0KLWNsYXNz
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7Ci1wdWJsaWM6Ci0KLSNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQotICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7Ci0gICAgdXNpbmcgUGVybWlzc2lvblBy
b21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRl
Pj47Ci0gICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNz
aW9uUHJvbWlzZSYmKTsKLSNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50KCkgPSBkZWZhdWx0OwotICAgIH5EZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQoKSA9IGRlZmF1bHQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MTc5MjU0YTFlMDguLmU5NTQxZmVmYzNkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNjksNyArMjY5LDYgQEAKIAogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZlbnQuaCIKLSNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgiCiAjZW5kaWYKIApAQCAtODU2OSwyMCArODU2OCw2
IEBAIHZvaWQgRG9jdW1lbnQ6OmlkZW50aWZpZWRFbGVtZW50V2FzUmVtb3ZlZEZyb21Eb2N1bWVu
dChFbGVtZW50JiBlbGVtZW50KQogICAgIG1faWRlbnRpZmllZEVsZW1lbnRzTWFwLnJlbW92ZSgm
ZWxlbWVudCk7CiB9CiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotCi1EZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIERvY3VtZW50OjpkZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKQotewotICAgIGlmICgmdG9wRG9jdW1l
bnQoKSAhPSB0aGlzKQotICAgICAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5kZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsKLQotICAgIGlmICghbV9kZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIpCi0gICAgICAgIG1fZGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyID0gbWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI+KCp0aGlzKTsKLSAgICByZXR1cm4gKm1fZGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOwotfQotCi0jZW5kaWYKLQog
I2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogUGFpbnRXb3JrbGV0JiBEb2N1bWVudDo6ZW5z
dXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2FjZGZkNzNhNzE5
Li5iZjVmYWUzY2FlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTksNyArMTE5LDYgQEAg
Y2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBEYXRhYmFzZVRocmVhZDsKIGNsYXNzIERldmljZU1vdGlv
bkNsaWVudDsKIGNsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7Ci1jbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudDsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIERvY3Vt
ZW50RnJhZ21lbnQ7CkBAIC0xMjAyLDEwICsxMjAxLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNoYW5nZShkb3VibGUgYWxwaGEs
IGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQotICAgIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlciYgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCk7Ci0jZW5k
aWYKLQogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0aW1pbmcoKSBjb25zdCB7IHJldHVybiBt
X2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgbW9ub3Rvbmlj
VGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xOTQwLDEwICsxOTM1LDYgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2RldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyPiBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjsK
LSNlbmRpZgotCiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9sb2dNZXNzYWdlVGFza1F1
ZXVlOwogCiAgICAgVGltZXIgbV9wZW5kaW5nVGFza3NUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4IGQxM2QxYjBhNjBkOS4uMTJjNDM2NDM2
OTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKQEAg
LTg5LDcgKzg5LDcgQEAgdm9pZCBVc2VyR2VzdHVyZVRva2VuOjpzZXRNYXhpbXVtSW50ZXJ2YWxG
b3JVc2VyR2VzdHVyZUZvcndhcmRpbmdGb3JGZXRjaEZvclRlc3QKICAgICBtYXhJbnRlcnZhbEZv
clVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoID0gV1RGTW92ZSh2YWx1ZSk7CiB9CiAKLWJv
b2wgVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkgY29uc3QKK2Jvb2wgVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50KGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kb2N1bWVudHNJbXBh
Y3RlZEJ5VXNlckdlc3R1cmUuY29udGFpbnMoZG9jdW1lbnQpOwogfQpAQCAtMTAyLDcgKzEwMiw3
IEBAIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihPcHRpb25hbDxQ
cm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4KICAgICBpZiAoc3RhdGUpCiAgICAgICAgIGN1cnJl
bnRUb2tlbigpID0gVXNlckdlc3R1cmVUb2tlbjo6Y3JlYXRlKHN0YXRlLnZhbHVlKCksIGdlc3R1
cmVUeXBlLCBkb2N1bWVudCk7CiAKLSAgICBpZiAoZG9jdW1lbnQgJiYgY3VycmVudFRva2VuKCkt
PnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpICYmIHN0YXRlKSB7CisgICAgaWYgKHN0YXRlICYmIGRv
Y3VtZW50ICYmIGN1cnJlbnRUb2tlbigpLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgewogICAg
ICAgICBkb2N1bWVudC0+dXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcChjdXJy
ZW50VG9rZW4oKS0+c3RhcnRUaW1lKCkpOwogICAgICAgICBpZiAocHJvY2Vzc0ludGVyYWN0aW9u
U3R5bGUgPT0gUHJvY2Vzc0ludGVyYWN0aW9uU3R5bGU6OkltbWVkaWF0ZSkKICAgICAgICAgICAg
IFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVk
dWNlZFRpbWVSZXNvbHV0aW9uKGRvY3VtZW50LT50b3BEb2N1bWVudCgpKTsKQEAgLTE1Nyw3ICsx
NTcsNyBAQCBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZSgpCiAgICAgcmV0dXJuIGN1cnJlbnRUb2tlbigpOwogfQogCi1ib29s
IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoRG9jdW1lbnQqIGRv
Y3VtZW50KQorYm9vbCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWlzTWFpblRocmVhZCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGlj
YXRvci5oCmluZGV4IDY5ZDJlMDkwNzk5Ni4uZjVjYzdmYWQyMTAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoK
IAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRp
bWU7IH0KIAotICAgIGJvb2wgaXNWYWxpZEZvckRvY3VtZW50KERvY3VtZW50JikgY29uc3Q7Cisg
ICAgYm9vbCBpc1ZhbGlkRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKIAogcHJp
dmF0ZToKICAgICBVc2VyR2VzdHVyZVRva2VuKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlLCBV
c2VyR2VzdHVyZVR5cGUsIERvY3VtZW50Kik7CkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3MgVXNl
ckdlc3R1cmVJbmRpY2F0b3IgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gY3VycmVudFVzZXJHZXN0dXJlKCk7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoRG9jdW1lbnQqID0g
bnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKGNvbnN0IERvY3VtZW50KiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCk7CiAKICAgICAvLyBJZiBh
IGRvY3VtZW50IGlzIHByb3ZpZGVkLCBpdHMgbGFzdCBrbm93biB1c2VyIGdlc3R1cmUgdGltZXN0
YW1wIGlzIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQ
b2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcAppbmRleCAw
MjNmYmM0OTJlNDEuLmU1MzlkNmQ1MmZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xp
Y3kuY3BwCkBAIC01Miw2ICs1MiwxNCBAQCBzdGF0aWMgY29uc3QgY2hhciogcG9saWN5VHlwZU5h
bWUoRmVhdHVyZVBvbGljeTo6VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gIlN5bmNYSFIiOwog
ICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6RnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJu
ICJGdWxsc2NyZWVuIjsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGNhc2Ug
RmVhdHVyZVBvbGljeTo6VHlwZTo6R3lyb3Njb3BlOgorICAgICAgICByZXR1cm4gIkd5cm9zY29w
ZSI7CisgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVyOgorICAgICAg
ICByZXR1cm4gIkFjY2VsZXJvbWV0ZXIiOworICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6
TWFnbmV0b21ldGVyOgorICAgICAgICByZXR1cm4gIk1hZ25ldG9tZXRlciI7CisjZW5kaWYKICNp
ZiBFTkFCTEUoV0VCWFIpCiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpYUlNwYXRpYWxU
cmFja2luZzoKICAgICAgICAgcmV0dXJuICJYUlNwYXRpYWxUcmFja2luZyI7CkBAIC0xNjEsNiAr
MTY5LDExIEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICBib29sIGlzRGlzcGxheUNhcHR1
cmVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNTeW5jWEhSSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKICAgICBib29sIGlzRnVsbHNjcmVlbkluaXRpYWxpemVkID0gZmFsc2U7CisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBib29sIGlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKyAgICBib29sIGlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVkID0gZmFsc2U7Cisg
ICAgYm9vbCBpc01hZ25ldG9tZXRlckluaXRpYWxpemVkID0gZmFsc2U7CisjZW5kaWYKICNpZiBF
TkFCTEUoV0VCWFIpCiAgICAgYm9vbCBpc1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKICNlbmRpZgpAQCAtMTk2LDYgKzIwOSwyMyBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQ
b2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQm
CiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9mdWxsc2NyZWVuUnVs
ZSwgaXRlbS5zdWJzdHJpbmcoMTEpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRz
V2l0aCgiZ3lyb3Njb3BlIikpIHsKKyAgICAgICAgICAgIGlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQg
PSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZ3lyb3Nj
b3BlUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTApKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoImFjY2VsZXJvbWV0ZXIiKSkgewor
ICAgICAgICAgICAgaXNBY2NlbGVyb21ldGVySW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAg
ICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fYWNjZWxlcm9tZXRlclJ1bGUsIGl0ZW0u
c3Vic3RyaW5nKDE0KSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoaXRlbS5zdGFydHNXaXRoKCJtYWduZXRvbWV0ZXIiKSkgeworICAgICAgICAgICAgaXNN
YWduZXRvbWV0ZXJJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgICAgICB1cGRhdGVMaXN0KGRv
Y3VtZW50LCBwb2xpY3kubV9tYWduZXRvbWV0ZXJSdWxlLCBpdGVtLnN1YnN0cmluZygxMykpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyNlbmRpZgogI2lmIEVOQUJMRShXRUJY
UikKICAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgieHItc3BhdGlhbC10cmFja2luZyIpKSB7
CiAgICAgICAgICAgICBpc1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAt
MjE0LDYgKzI0NCwxNCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgIHBvbGljeS5t
X3NwZWFrZXJTZWxlY3Rpb25SdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpLmRhdGEoKSk7CiAgICAgaWYgKCFpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQpCiAg
ICAgICAgIHBvbGljeS5tX2Rpc3BsYXlDYXB0dXJlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCisgICAgaWYgKCFpc0d5cm9zY29wZUluaXRpYWxpemVkKQorICAgICAgICBwb2xpY3kubV9n
eXJvc2NvcGVSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRh
dGEoKSk7CisgICAgaWYgKCFpc0FjY2VsZXJvbWV0ZXJJbml0aWFsaXplZCkKKyAgICAgICAgcG9s
aWN5Lm1fYWNjZWxlcm9tZXRlclJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5
T3JpZ2luKCkuZGF0YSgpKTsKKyAgICBpZiAoIWlzTWFnbmV0b21ldGVySW5pdGlhbGl6ZWQpCisg
ICAgICAgIHBvbGljeS5tX21hZ25ldG9tZXRlclJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50
LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAg
ICBpZiAoIWlzWFJTcGF0aWFsVHJhY2tpbmdJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1f
eHJTcGF0aWFsVHJhY2tpbmdSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpLmRhdGEoKSk7CkBAIC0yNTUsNiArMjkzLDE0IEBAIGJvb2wgRmVhdHVyZVBvbGljeTo6
YWxsb3dzKFR5cGUgdHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0
CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9zeW5jWEhSUnVsZSwg
b3JpZ2luKTsKICAgICBjYXNlIFR5cGU6OkZ1bGxzY3JlZW46CiAgICAgICAgIHJldHVybiBpc0Fs
bG93ZWRCeUZlYXR1cmVQb2xpY3kobV9mdWxsc2NyZWVuUnVsZSwgb3JpZ2luKTsKKyNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGNhc2UgVHlwZTo6R3lyb3Njb3BlOgorICAgICAg
ICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZ3lyb3Njb3BlUnVsZSwgb3JpZ2lu
KTsKKyAgICBjYXNlIFR5cGU6OkFjY2VsZXJvbWV0ZXI6CisgICAgICAgIHJldHVybiBpc0FsbG93
ZWRCeUZlYXR1cmVQb2xpY3kobV9hY2NlbGVyb21ldGVyUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNl
IFR5cGU6Ok1hZ25ldG9tZXRlcjoKKyAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBv
bGljeShtX21hZ25ldG9tZXRlclJ1bGUsIG9yaWdpbik7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VC
WFIpCiAgICAgY2FzZSBUeXBlOjpYUlNwYXRpYWxUcmFja2luZzoKICAgICAgICAgcmV0dXJuIGlz
QWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX3hyU3BhdGlhbFRyYWNraW5nUnVsZSwgb3JpZ2luKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKaW5kZXggYjI0YmU4MmFmYWQzLi5lZWRlOGYx
OTc3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00NSw2ICs0NSwxMSBA
QCBwdWJsaWM6CiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAogICAgICAgICBTeW5jWEhSLAogICAg
ICAgICBGdWxsc2NyZWVuLAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAg
IEd5cm9zY29wZSwKKyAgICAgICAgQWNjZWxlcm9tZXRlciwKKyAgICAgICAgTWFnbmV0b21ldGVy
LAorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQogICAgICAgICBYUlNwYXRpYWxUcmFja2luZywK
ICNlbmRpZgpAQCAtNjQsNyArNjksMTQgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9kaXNw
bGF5Q2FwdHVyZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CiAgICAgQWxsb3dS
dWxlIG1fZnVsbHNjcmVlblJ1bGU7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICBBbGxvd1J1bGUgbV9neXJvc2NvcGVSdWxlOworICAgIEFsbG93UnVsZSBtX2FjY2VsZXJvbWV0
ZXJSdWxlOworICAgIEFsbG93UnVsZSBtX21hZ25ldG9tZXRlclJ1bGU7CisjZW5kaWYKKyNpZiBF
TkFCTEUoV0VCWFIpCiAgICAgQWxsb3dSdWxlIG1feHJTcGF0aWFsVHJhY2tpbmdSdWxlOworI2Vu
ZGlmCiB9OwogCiBlbnVtIGNsYXNzIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlIHsgTm8sIFllcyB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDMyODc2ZjkwOThkNC4uZjUyNjVlNTJl
MTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5j
bHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKQEAgLTQ0Niw3ICs0NDcsNyBAQCBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+IERPTVdpbmRvdzo6
bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIG1lZGlhKQogICAgIHJldHVybiBkb2N1bWVudCgpID8g
ZG9jdW1lbnQoKS0+bWVkaWFRdWVyeU1hdGNoZXIoKS5tYXRjaE1lZGlhKG1lZGlhKSA6IG51bGxw
dHI7CiB9CiAKLVBhZ2UqIERPTVdpbmRvdzo6cGFnZSgpCitQYWdlKiBET01XaW5kb3c6OnBhZ2Uo
KSBjb25zdAogewogICAgIHJldHVybiBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpIDogbnVsbHB0
cjsKIH0KQEAgLTIwMDUsOSArMjAwNiw5IEBAIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIERPTVdp
bmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBE
T01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBt
ZXNzYWdlKSBjb25zdAorYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9u
T3JPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFmcmFtZSgp
IHx8ICFmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkp
IHsKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWRvY3VtZW50KCkgfHwgIWZyYW1lKCktPnNldHRpbmdz
KCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSkgewogICAgICAgICBtZXNzYWdlID0g
IkFQSSBpcyBkaXNhYmxlZCJfczsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIw
MTcsMjMgKzIwMTgsNDYgQEAgYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90
aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCi0gICAgaWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkp
IHsKLSAgICAgICAgbWVzc2FnZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBoYXZlIHRoZSBzYW1l
IHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlIl9zOworICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24oU3RyaW5nJiBt
ZXNzYWdlKSBjb25zdAoreworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pck9y
aWVudGF0aW9uKG1lc3NhZ2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlz
RmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6
OlR5cGU6Okd5cm9zY29wZSwgKmRvY3VtZW50KCksIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpO
bykKKyAgICAgICAgfHwgIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3du
ZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OkFjY2VsZXJvbWV0ZXIsICpkb2N1bWVudCgpLCBMb2dG
ZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiVGhpcmQtcGFy
dHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNz
IGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2Vs
ZXJvbWV0ZXIpIl9zOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9y
aWVudGF0aW9uTGlzdGVuZXIoU3RyaW5nJiBtZXNzYWdlKSBjb25zdAorYm9vbCBET01XaW5kb3c6
OmlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAog
ewotICAgIFN0cmluZyBpbm5lck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmlj
ZU1vdGlvbk9yaWVudGF0aW9uKGlubmVyTWVzc2FnZSkpIHsKLSAgICAgICAgbWVzc2FnZSA9IG1h
a2VTdHJpbmcoIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246ICIsIGlubmVyTWVzc2FnZSwgIi4iKTsKKyAg
ICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihtZXNzYWdlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpc0ZlYXR1cmVQb2xpY3lBbGxvd2Vk
QnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpHeXJvc2NvcGUsICpk
b2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pCisgICAgICAgIHx8ICFpc0Zl
YXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpU
eXBlOjpBY2NlbGVyb21ldGVyLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6
Ok5vKQorICAgICAgICB8fCAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxP
d25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6TWFnbmV0b21ldGVyLCAqZG9jdW1lbnQoKSwgTG9n
RmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKSkgeworICAgICAgICBtZXNzYWdlID0gIlRoaXJkLXBh
cnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24g
dW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAm
IGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRvbWV0ZXIpIl9zOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRE9NV2luZG93OjpoYXNQZXJt
aXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50cyhTdHJpbmcmIG1l
c3NhZ2UpIGNvbnN0Cit7CiAgICAgaWYgKGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50
YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gYWNjZXNzU3RhdGUg
PSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIo
KS5hY2Nlc3NTdGF0ZSgpOworICAgICAgICBpZiAoIXBhZ2UoKSkgeworICAgICAgICAgICAgbWVz
c2FnZSA9ICJObyBicm93c2luZyBjb250ZXh0Il9zOworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisgICAgICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBwYWdlKCktPmRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLmFjY2Vzc1N0YXRlKCpkb2N1bWVu
dCgpKTsKICAgICAgICAgc3dpdGNoIChhY2Nlc3NTdGF0ZSkgewogICAgICAgICBjYXNlIERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OkRlbmllZDoKICAgICAgICAgICAg
IG1lc3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBi
ZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmllZC4iX3M7
CkBAIC0yMDU4LDEwICsyMDgyLDEwIEBAIHZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQogICAgIGlmICghZGV2aWNlQ29udHJvbGxl
ciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBpZiAoIWlzQWxs
b3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7
CisgICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNl
T3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSB8fCAhaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmlj
ZU1vdGlvbk9yT3JpZW50YXRpb25FdmVudHMoaW5uZXJNZXNzYWdlKSkgewogICAgICAgICBpZiAo
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5p
bmcsIGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygi
QmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5l
ciwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIikpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0yMDg2LDExICsyMTEwLDExIEBAIHZvaWQgRE9NV2luZG93OjpzdGFydExpc3Rlbmlu
Z0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKICAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIg
fHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93
ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoZXJyb3JNZXNzYWdlKSkgewor
ICAgIFN0cmluZyBpbm5lck1lc3NhZ2U7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1v
dGlvbihpbm5lck1lc3NhZ2UpIHx8ICFoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9u
T3JPcmllbnRhdGlvbkV2ZW50cyhpbm5lck1lc3NhZ2UpKSB7CiAgICAgICAgIGZhaWxlZFRvUmVn
aXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CiAgICAgICAgIGlmIChhdXRvKiBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JN
ZXNzYWdlKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJCbG9ja2VkIGF0
dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAiLCBp
bm5lck1lc3NhZ2UsICIuIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAppbmRleCAwZTM1MTE3ZjVhZDguLjE1YTZiY2FmZWU0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCkBAIC0zNjYsOCArMzY2LDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwogICAgIHZvaWQgc3RvcExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CiAKLSAgICBib29sIGlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKLSAgICBi
b29sIGlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihTdHJpbmcm
IG1lc3NhZ2UpIGNvbnN0OworICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlv
bihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OworICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VN
b3Rpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKIAogICAgIERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNl
TW90aW9uQ29udHJvbGxlciogZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OwpAQCAtNDEw
LDEzICs0MTAsMTUgQEAgcHJpdmF0ZToKICAgICBib29sIGlzTG9jYWxET01XaW5kb3coKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBpc1JlbW90ZURPTVdpbmRvdygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBQYWdlKiBwYWdlKCk7CisgICAgUGFn
ZSogcGFnZSgpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnko
KSBjb25zdDsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBjcmVhdGVX
aW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFt
ZSwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRnJhbWUm
IGZpcnN0RnJhbWUsIEZyYW1lJiBvcGVuZXJGcmFtZSwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lk
KERPTVdpbmRvdyYpPiYgcHJlcGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgYm9v
bCBpc0luc2VjdXJlU2NyaXB0QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uKFN0cmluZyYgbWVz
c2FnZSkgY29uc3Q7CisgICAgYm9vbCBoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9u
T3JPcmllbnRhdGlvbkV2ZW50cyhTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwogICAgIHZvaWQgZmFp
bGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCA4OGY5MDNlZWZkN2IuLjEwNjIzZTc1YWM4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0xNzEsNiArMTcxLDEwIEBACiAjaW5jbHVkZSAiRGlzcGxheVZpZXcuaCIKICNl
bmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBIYXNoU2V0PFBhZ2UqPiYgYWxsUGFnZXMoKQpAQCAtMzQ0
Myw2ICszNDQ3LDE3IEBAIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkKICAgICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisKK0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlciYgUGFnZTo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
KCkKK3sKKyAgICBpZiAoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyKQorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
ciA9IG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
PigqdGhpcyk7CisgICAgcmV0dXJuICptX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlcjsKK30KKworI2VuZGlmCisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChX
VEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dp
dGNoIChzdGVwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE1MmY0OTI0NDRlMS4uZDk0ZjI0MzM4NzJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtOTksNiArOTksNyBAQCBjbGFzcyBDb250ZXh0TWVudUNvbnRy
b2xsZXI7CiBjbGFzcyBDb29raWVKYXI7CiBjbGFzcyBET01SZWN0TGlzdDsKIGNsYXNzIERhdGFi
YXNlUHJvdmlkZXI7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXI7CiBjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIGNsYXNzIERyYWdDYXJldENv
bnRyb2xsZXI7CiBjbGFzcyBEcmFnQ29udHJvbGxlcjsKQEAgLTMxMyw2ICszMTQsMTAgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
KCk7CiAgICAgYm9vbCBzaG91bGRFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQo
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZ0J5RGVm
YXVsdDsgfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlcigpOworI2VuZGlmCisKICAgICB2b2lkIGRpZENoYW5nZU1haW5E
b2N1bWVudCgpOwogICAgIHZvaWQgbWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlE
b2N1bWVudCgpOwogCkBAIC05MjQsNiArOTI5LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgc3RkOjp1bmlxdWVf
cHRyPERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4gbV9kZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CisjZW5kaWYKKwogICAgIFVuaXF1
ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI7CiAKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3Jk
ZXJQcm92aWRlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421371</attachid>
            <date>2021-02-23 17:05:53 -0800</date>
            <delta_ts>2021-02-23 17:15:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221399-20210223170552.patch</filename>
            <type>text/plain</type>
            <size>82781</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFhZWE2NTNlMTk5ZGEx
ZGFlZTE2ZDFkMDEzZWY3ZDQ3NmNiZWU1My4uMTAwNzI4NzI1YjFhYzgzNjdlYzJiZDNiYjU3NWQ2
Zjk5MDRiNjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0wMi0yMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERldmljZSBtb3Rpb24gLyBv
cmllbnRhdGlvbiBldmVudHMgbm90IHdvcmtpbmcgaW4gdGhpcmQtcGFydHkgaWZyYW1lcyBkZXNw
aXRlIEZlYXR1cmUtUG9saWN5IGFsbG93aW5nIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0
MjI5MjI3PgorCisgICAgICAgIEFsbG93IHRoaXJkLXBhcnR5IGlmcmFtZXMgdG8gcmVxdWVzdCBh
Y2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiAvIG9yaWVudGF0aW9uIGV2ZW50cyBpZiBwZXJtaXR0ZWQg
dmlhCisgICAgICAgIEZlYXR1cmUtUG9saWN5LiBUbyBtYXRjaCBCbGluaywgdGhlIGZvbGxvd2lu
ZyBmZWF0dXJlcyBuZWVkIHRvIGJlIGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5OgorICAgICAg
ICAtIERldmljZU9yaWVudGF0aW9uRXZlbnQ6IGd5cm9zY29wZSwgYWNjZWxlcm9tZXRlciBhbmQg
bWFnbmV0b21ldGVyCisgICAgICAgIC0gRGV2aWNlTW90aW9uRXZlbnQ6IGd5cm9zY29wZSBhbmQg
YWNjZWxlcm9tZXRlcgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRo
aXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQt
cGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlv
bi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0
LXBhcnR5LW9ubHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1l
LWRlbmllZC5odG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIERyb3AgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50IGNsYXNzIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKToKKyAgICAgICAgTWFrZSBz
dXJlIHdlIHNwZWNpZnkgdGhlIGRvY3VtZW50IHdoZW4gdGFraW5nIGEgdXNlciBnZXN0dXJlIHdo
ZW4gYXNrZWQgdG8gcnVuIGEgc2NyaXB0LgorICAgICAgICBUaGlzIGlzIGltcG9ydGFudCBiZWNh
dXNlIHNvbWUgY2xpZW50cyB3YW50IHRvIGtub3cgdGhhdCB0aGVyZSB3YXMgYSB1c2VyIGdlc3R1
cmUgZm9yCisgICAgICAgIGEgZG9jdW1lbnQgd2l0aGluIHRoZWlyIG9yaWdpbiAobGlrZSBkZXZp
Y2UgbW90aW9uICYgb3JpZW50YXRpb24pLgorCisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVy
bWlzc2lvbik6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50Lmg6CisgICAgICAgIE1vdmUgcmVxdWVzdFBlcm1pc3Npb24oKSBm
cm9tIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCBjbGFzcyB0byBpdHMgc3ViY2xhc3Nl
cyBub3cgdGhhdCB0aGVpcgorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgYXJlIHNsaWdodGx5IGRp
ZmZlcmVudC4KKworICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyOjphY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OnNob3VsZEFsbG93QWNj
ZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlcjo6Y2xlYXJQZXJtaXNzaW9ucyk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oOgorICAgICAgICBEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgdXNlZCB0byBiZSB0aWVkIHRvIHRoZSB0b3Ag
ZG9jdW1lbnQgYmVjYXVzZSB3ZSBvbmx5CisgICAgICAgIGFsbG93ZWQgZGV2aWNlIG1vdGlvbiAm
IG9yaWVudGF0aW9uIGV2ZW50cyBpbiBmaXJzdC1wYXJ0eSBjb250ZW50LiBCZWNhdXNlIHdlIG5v
dyBhbGxvdyB0aGVzZQorICAgICAgICBldmVudHMgaW4gdGhpcmQtcGFydHkgY29udGVudCwgRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyIGlzIG5vdyB0aWVkIHRvIHRo
ZQorICAgICAgICBwYWdlIGFuZCBpdCBzdG9yZXMgYSBtYXAgb2YgcGVybWlzc2lvbiBzdGF0ZSBw
ZXIgb3JpZ2luLCBpbnN0ZWFkIG9mIGEgc2luZ2xlIHBlcm1pc3Npb24gc3RhdGUuCisKKyAgICAg
ICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg6IFJlbW92ZWQuCisg
ICAgICAgIERyb3AgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IGNsYXNzIG5vdyB0aGF0
IHRoZSAyIHN1YmNsYXNzZXMgbmVlZCBhIHNsaWdodGx5IGRpZmZlcmVudAorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiBvZiByZXF1ZXN0UGVybWlzc2lvbigpLgorCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyIHdhcyBtb3ZlZCBmcm9tIHRoZSBkb2N1bWVu
dCB0byB0aGUgUGFnZS4KKworICAgICAgICAqIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuOjppc1ZhbGlkRm9yRG9jdW1lbnQg
Y29uc3QpOgorICAgICAgICBNYWtlIHBhcmFtZXRlciBjb25zdCBzaW5jZSBpdCBjYW4gYmUuCisK
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUpOgorICAgICAgICBDaGVjayBzdGF0ZSBmaXJzdCBpbiB0aGUgY29uZGl0aW9uIHRvIGF2
b2lkIGRvaW5nIGEgbnVsbC1kZXJlZiB3aGVuIGEgVXNlckdlc3R1cmVJbmRpY2F0b3IKKyAgICAg
ICAgZ2V0cyBjb25zdHJ1Y3RlZCB3aXRoIG5vIHxzdGF0ZXwgYnV0IHdpdGggYSBub24tbnVsbCB8
ZG9jdW1lbnR8LgorCisgICAgICAgICogZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg6CisKKyAg
ICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9saWN5
VHlwZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL0ZlYXR1cmVQb2xpY3kuaDoKKyAgICAgICAgQWRkIHRoZSBmb2xsb3dpbmcgZmVhdHVyZSBw
b2xpY2llczogYWNjZWxlcm9tZXRlciwgZ3lyb3Njb3BlICYgbWFnbmV0b21ldGVyLgorICAgICAg
ICBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmFwcHNlYy1wZXJtaXNzaW9ucy1wb2xpY3kvYmxv
Yi9tYWluL2ZlYXR1cmVzLm1kCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yT3JpZW50YXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlv
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2
aWNlT3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpoYXNQ
ZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50cyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3Jp
ZW50YXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0YXJ0
TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgIERpZmZlcmVudGlhdGUgcGVybWlzc2lvbiBzdXBwb3J0IGZvciBk
ZXZpY2UgbW90aW9uIGFuZCBkZXZpY2Ugb3JpZW50YXRpb24gdGhhdAorICAgICAgICB0aGV5IGFy
ZSBkaWZmZXJlbnQuIEluIHBhcnRpY3VsYXIsIHRoZSB0d28gdHlwZXMgb2YgZXZlbnRzIG5vdyBy
ZXF1aXJlIGEgZGlmZmVyZW50CisgICAgICAgIHN1YnNldCBvZiBmZWF0dXJlIHBvbGljaWVzLgor
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcik6CisgICAgICAgICogcGFnZS9Q
YWdlLmg6CisgICAgICAgIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
ciB3YXMgbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQgdG8gdGhlIFBhZ2UuCisKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICBNYWtlIHN1cmUgd2UgY2xlYXIgdGhlIG1hcCBv
ZiBwZXJtaXNzaW9uIG9uIHRoZSBQYWdlJ3MgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyCisgICAgICAgIHRvIGF2b2lkIHRlc3QgZmxha2luZXNzLgorCiAyMDIxLTAy
LTIzICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBOdWxscHRy
IGNyYXNoIGluIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHlsZXNB
bmRLZWVwU3R5bGVTcGFuSW5saW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDg4MzljMDMxMDQ1OWFjMGYw
MzY1MjcyNzljZGNkMmJiYjVlMTlhNWQuLmE4YWIzM2Y0MDllMGQyMzQ3ZjQ1YWEyOGE3MDEyYTIz
YmE0MjY3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC05MTIsNyArOTEyLDYgQEAgZG9tL0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcAogZG9tL0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCi1kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50LmNwcAogZG9tL0RvY3VtZW50LmNwcAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCiBkb20v
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgxZTkxYWI1NzhjZjkxODYxNjQ2OGM0
Y2UyZWYzNzE4OWY1ODA2ZDUuLmU5NTBhMjBkZGIxMzNmMTA5ZDJjMTY2ZDIwYzAwYmE2MDc1ODg0
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEyNDgsNyArMTI0OCw2IEBACiAJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAv
KiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgx
MiAvKiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2MEJCNjE0MUQwQTFCRUMwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjBD
QkYzNjFENEJDRDBFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzNDFENEJDQ0ZFMDA5
MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi87IH07Ci0JCTQ2MEUzMDc1MjIyRjRF
RkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MURBNTJBMjIyRjQ4NkYwMEQw
NUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLzsgfTsKIAkJNDYwRTMw
NzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9u
U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDYyMThBQ0IxRjcyRDY0RTAwNTc0RkJFIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTAxNkFEMUY3
MkQ2MUUwMDI4MkIyQyAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIy
IC8qIFdpbmRvd1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODE4MCw4ICs4MTc5
LDYgQEAKIAkJNDYwQ0JGMzMxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGll
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd1By
b3BlcnRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjBDQkYzNDFENEJD
Q0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjBEMTk0NDFGQ0UyMUREMDBDM0RCODUgLyogSlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0NjFEQTUyQTIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0NjFEQTUyQzIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVyTWFjLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvd2VyT2JzZXJ2ZXJNYWMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93UHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8q
IFdpbmRvd1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdp
bmRvd1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMTI4LDggKzMw
MTI1LDYgQEAKIAkJCQk1OUE4NUVBMTExOUQ2OEQ5MDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRp
b25FdmVudC5jcHAgKi8sCiAJCQkJNTlBODVFQTMxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9y
aWVudGF0aW9uRXZlbnQuaCAqLywKIAkJCQk1OUE4NUVBQTExOUQ3QjZFMDBERUYxRUYgLyogRGV2
aWNlT3JpZW50YXRpb25FdmVudC5pZGwgKi8sCi0JCQkJNDYxREE1MkMyMjJGNDg2RjAwRDA1QTg3
IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8sCi0JCQkJNDYxREE1MkEy
MjJGNDg2RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovLAog
CQkJCTQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmggKi8sCiAJCQkJNDY1RUREQTAyMjJGNEVDNDAwQjQ2RTE2IC8qIERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsICovLAogCQkJCTdDM0E4
QUI4MjUwOUExMEYwMDhDNDc3RiAvKiBEb2N1bWVudCtDU1NPTVZpZXcuaWRsICovLApAQCAtMzE0
NTEsNyArMzE0NDYsNiBAQAogCQkJCTExNUNGQTdBMjA4QjhEOUQwMDFFNjk5MSAvKiBCbG9ja0Zv
cm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1RTEwRTgxQkU4NzAwQjI1
OTY1IC8qIEJvcmRlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4OTU1NkVEMThENEE0NDAw
MDc2NEIwMyAvKiBCb3JkZXJFZGdlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0I0Nzc5OTI1RDQ2
RUZGMDA1RUYwQzggLyogUmVuZGVyTW9kZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNURC
MEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMx
NkRFMDAyNDBDNjRGOTAwOTM0MEFBIC8qIEJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFRDhDMzdBMTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMTk2NSw3ICszMTk1OSw2IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8q
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFC
NDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTlBODVFQTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEUzMDc3
MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQw
MUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ0MzIsNiArMzQ0MjUsNyBAQAogCQkJCUU0QzI3OTU5MENGOTc0MTkwMEU5N0I5
OCAvKiBSZW5kZXJNZWRpYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUJEREZFN0EwQTVDNkU3MDAw
QTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU0NDI0RjEx
OUIzNjg3MDA5QkU5MTIgLyogUmVuZGVyTWV0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDQjQ3
Nzk5MjVENDZFRkYwMDVFRjBDOCAvKiBSZW5kZXJNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUEzNTg2RTAxNTI2NEM0NTAwMjJBNjU5IC8qIFJlbmRlck11bHRpQ29sdW1uRmxvdy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFMzJCOUMxNTE3QzBCMjAwRjU0MkVDIC8qIFJlbmRlck11bHRpQ29s
dW1uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0Q5ODE4RkNCNUIwMDA0MjE4NzkgLyog
UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBk
NzU4MjczNGFmM2Q1MDcyMDNiNWU0MzhiN2JlOWVlYzBmZjU5NjlkLi44YWVlNDIzMzM0ZDdmMGU1
NTZlMDE3MjlhOTc3ZGMzMzZiOTEwNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTkxLDcgKzU5MSw3IEBAIFZhbHVlT3JFeGNl
cHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwKICAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLm5vdGlmeVBhZ2VPZkFw
cEJvdW5kQmVoYXZpb3IoKTsKICNlbmRpZgogCi0gICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2Vz
dHVyZUluZGljYXRvcihwYXJhbWV0ZXJzLmZvcmNlVXNlckdlc3R1cmUgPT0gRm9yY2VVc2VyR2Vz
dHVyZTo6WWVzID8gT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGU+KFByb2Nlc3Np
bmdVc2VyR2VzdHVyZSkgOiBXVEY6Om51bGxvcHQpOworICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9y
IGdlc3R1cmVJbmRpY2F0b3IocGFyYW1ldGVycy5mb3JjZVVzZXJHZXN0dXJlID09IEZvcmNlVXNl
ckdlc3R1cmU6OlllcyA/IE9wdGlvbmFsPFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlPihQcm9j
ZXNzaW5nVXNlckdlc3R1cmUpIDogV1RGOjpudWxsb3B0LCBtX2ZyYW1lLmRvY3VtZW50KCkpOwog
CiAgICAgaWYgKCFjYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkgfHwgaXNQ
YXVzZWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRldGFpbHMg
eyAiQ2Fubm90IGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiB0aGlzIGRvY3VtZW50Il9zIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKaW5kZXggM2IzZTU5ZWFhM2VjODEy
OTkxYzA2MTNmYzkwMzkyMzQwMDA2Y2I5NS4uNzA3MzRhZDQ5MTY1YTIzN2QzMGM4YmU0ODlmZmM2
NTgxNmM2MDlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCkBA
IC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZlbnQuaCIKIAogI2luY2x1
ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEyNSw0ICsxMjcsMjYgQEAgRXZlbnRJbnRlcmZhY2UgRGV2aWNlTW90aW9uRXZlbnQ6
OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKK3ZvaWQgRGV2aWNlTW90aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERv
Y3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1
dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpOworICAgIGF1dG8qIHBhZ2UgPSBkb2N1
bWVudC5wYWdlKCk7CisgICAgaWYgKCF3aW5kb3cgfHwgIXBhZ2UpCisgICAgICAgIHJldHVybiBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGJyb3dzaW5n
IGNvbnRleHQiX3MgfSk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2lu
ZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAg
IGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWls
ZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgcGFnZS0+
ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuc2hvdWxkQWxsb3dB
Y2Nlc3MoZG9jdW1lbnQsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0
YXRlIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3Rh
dGUgPT0gUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ug
bW90aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7Cisg
ICAgICAgIHByb21pc2UucmVzb2x2ZShwZXJtaXNzaW9uU3RhdGUpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmgKaW5kZXggMzllZWRkZTcxZjJjYmJjYzJkZDM0YzA3YmIzZGQ1M2I0YTJkNDMzZi4u
ZTUwZjc0NjFmNDI5YjdkNWRjNDY2OTllZDQyNWQ0YTgxOTAxZTAyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgorI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNs
YXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwg
OiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgewor
Y2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoRGV2aWNlTW90aW9uRXZlbnQpOwogcHVibGljOgogICAgIHZpcnR1
YWwgfkRldmljZU1vdGlvbkV2ZW50KCk7CkBAIC02OCw2ICs3MCwxMiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGluaXREZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBib29s
IGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgT3B0aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRp
b25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPFJvdGF0aW9uUmF0ZT4mJiwgT3B0aW9uYWw8
ZG91YmxlPik7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHVzaW5nIFBl
cm1pc3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7
CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51
bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1p
c3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIERldmljZU1vdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VNb3Rpb25EYXRhKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXIuY3BwCmluZGV4IDEwMGFhZjE4YjU3NjIxNWI2ZTU1YmIzMTNkZDEwODVh
ZTkwZTZhOWYuLjc1ODA0YTcxNGJhOGE3ZTYwNDhhNjVlNTA3YzYzOTE5ODQzNzljMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCkBAIC0zOSw0NSArMzksNTggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXI6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihEb2N1bWVu
dCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXIoUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQogewotICAgIEFT
U0VSVCgmbV9kb2N1bWVudC50b3BEb2N1bWVudCgpID09ICZtX2RvY3VtZW50KTsKK30KKworRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OmFjY2Vzc1N0YXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCkgY29uc3QKK3sKKyAgICBhdXRvIGl0ID0gbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5maW5k
KGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyAgICBpZiAoaXQgIT0gbV9hY2Nl
c3NTdGF0ZVBlck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKIAotICAg
IC8vIEluaXRpYWwgdmFsdWUgaXMgYmFzZWQgb24gdGhlIHBlci1zaXRlIHNldHRpbmcuCi0gICAg
YXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCk7CisgICAgLy8gQ2hlY2sgcGVyLXNpdGUg
c2V0dGluZy4KKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKGF1
dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUgPyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSA6IG51bGxwdHIpCi0gICAgICAgIG1fYWNjZXNzU3RhdGUgPSBkb2N1bWVudExvYWRlci0+
ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgICAgICByZXR1cm4g
ZG9jdW1lbnRMb2FkZXItPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoKTsK
KyAgICByZXR1cm4gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6UHJv
bXB0OwogfQogCi12b2lkIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
cjo6c2hvdWxkQWxsb3dBY2Nlc3MoRnVuY3Rpb248dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlKT4mJiBjYWxsYmFjaykKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0FjY2Vzcyhjb25zdCBEb2N1bWVu
dCYgZG9jdW1lbnQsIEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZSk+JiYgY2FsbGJhY2spCiB7Ci0gICAgYXV0byogcGFnZSA9IG1fZG9jdW1lbnQu
cGFnZSgpOwotICAgIGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpOworICAgIGF1dG8q
IHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFt
ZSgpOwogICAgIGlmICghcGFnZSB8fCAhZnJhbWUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOwogCi0gICAg
Ym9vbCBtYXlQcm9tcHQgPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCk7Ci0gICAgaWYgKG1fYWNjZXNzU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KQotICAgICAgICByZXR1cm4gY2FsbGJhY2sobV9hY2Nl
c3NTdGF0ZSk7CisgICAgYXV0byBhY2Nlc3NTdGF0ZSA9IHRoaXMtPmFjY2Vzc1N0YXRlKGRvY3Vt
ZW50KTsKKyAgICBpZiAoYWNjZXNzU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0KQorICAgICAgICByZXR1cm4gY2FsbGJhY2soYWNjZXNzU3Rh
dGUpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcygqbV9kb2N1bWVudC5mcmFtZSgpLCBtYXlQcm9tcHQsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Np
b25TdGF0ZSkgbXV0YWJsZSB7CisgICAgYm9vbCBtYXlQcm9tcHQgPSBVc2VyR2VzdHVyZUluZGlj
YXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCZkb2N1bWVudCk7CisgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcygq
ZG9jdW1lbnQuZnJhbWUoKSwgbWF5UHJvbXB0LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgc2VjdXJpdHlPcmlnaW4gPSBtYWtlUmVmKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2lu
KCkpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9hY2Nlc3NTdGF0
ZSA9IHBlcm1pc3Npb25TdGF0ZTsKKyAgICAgICAgbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5zZXQo
c2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgcGVybWlzc2lvblN0YXRlKTsKICAgICAgICAgY2FsbGJh
Y2socGVybWlzc2lvblN0YXRlKTsKIAogICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlICE9IERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJh
bWUoKTsgZnJhbWUgJiYgZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJh
dmVyc2VOZXh0KG1fZG9jdW1lbnQuZnJhbWUoKSkpIHsKKyAgICAgICAgZm9yIChhdXRvKiBmcmFt
ZSA9ICZtX3BhZ2UubWFpbkZyYW1lKCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICBmcmFtZS0+d2lu
ZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOwog
ICAgICAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlv
bklmTmVjZXNzYXJ5KCk7CiAgICAgICAgIH0KICAgICB9KTsKIH0KIAordm9pZCBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OmNsZWFyUGVybWlzc2lvbnMoKQorewor
ICAgIG1fYWNjZXNzU3RhdGVQZXJPcmlnaW4uY2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0NvbnRyb2xsZXIuaAppbmRleCA0YWY5NDYxYzlkNzkzNGVmMGM0MmNmOGM0NTkwOTkw
MGFlODI4YTE4Li4xNzYzODhmNmI2NGMxY2Y3OTE1ODRiNGYxZmU5ZjA1ODRiY2VmYTE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oCkBAIC0zNiwxOSArMzYsMjEgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOwogCiBjbGFzcyBEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50Jik7CisgICAgZXhwbGlj
aXQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKFBhZ2UmKTsKIAor
ICAgIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgYWNjZXNzU3RhdGUo
Y29uc3QgRG9jdW1lbnQmKSBjb25zdDsKKyAgICB2b2lkIHNob3VsZEFsbG93QWNjZXNzKGNvbnN0
IERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlKT4mJik7CiAKLSAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIGFjY2Vzc1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NTdGF0ZTsgfQotICAg
IHZvaWQgc2hvdWxkQWxsb3dBY2Nlc3MoRnVuY3Rpb248dm9pZChEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVh
clBlcm1pc3Npb25zKCk7CiAKIHByaXZhdGU6Ci0gICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0g
ICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBtX2FjY2Vzc1N0YXRl
IHsgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0IH07Cisg
ICAgUGFnZSYgbV9wYWdlOworICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlPiBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2lu
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCmluZGV4IGVjZjM3MDBlNDQyZTJhZGJkNjZjYTk3ZmEz
ZWJhNzZlZjllMjA3ZGIuLmQwM2I2YmIwYjkyMDViNDM5ZGFmZmUyODcxMWU1NmFiOGQ3OGM4ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKQEAg
LTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgiCiAKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMiw0ICsxMTQsMjYgQEAgRXZl
bnRJbnRlcmZhY2UgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25z
dAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQs
IFBlcm1pc3Npb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1
bWVudC5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAg
IGlmICghd2luZG93IHx8ICFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOwor
CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxvd2VkVG9V
c2VEZXZpY2VPcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGRvY3VtZW50LmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
IG1ha2VTdHJpbmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjog
IiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQ
ZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgcGFnZS0+ZGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuc2hvdWxkQWxsb3dBY2Nlc3MoZG9jdW1l
bnQsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0YXRlIHBlcm1pc3Np
b25TdGF0ZSkgbXV0YWJsZSB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlz
c2lvblN0YXRlOjpQcm9tcHQpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24g
YWNjZXNzIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdCJfcyB9KTsKKyAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKHBlcm1pc3Npb25TdGF0ZSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmgKaW5kZXggZTcwMzQ1OGExNjU0NmMyM2I4YTE2NTU1ODNmYjgzN2M5YjA5MTNk
Zi4uODE5ZWNiYjA2ODU5MTE2Y2M5ODBiZjcyZmEzYTNjZTkyYjQwMmQ4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNSwxNCArMjUsMTYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKK3RlbXBsYXRlPHR5
cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCwgcHVibGljIERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25FdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERldmljZU9yaWVu
dGF0aW9uRXZlbnQpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25F
dmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRp
b25EYXRhKiBvcmllbnRhdGlvbikKQEAgLTYyLDYgKzY0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IGluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGJvb2wg
YnViYmxlcywgYm9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxkb3VibGU+IGFscGhhLCBPcHRpb25h
bDxkb3VibGU+IGJldGEsIE9wdGlvbmFsPGRvdWJsZT4gZ2FtbWEsIE9wdGlvbmFsPGJvb2w+IGFi
c29sdXRlKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB1
c2luZyBQZXJtaXNzaW9uU3RhdGUgPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlOworICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVk
PElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlT3JpZW50
YXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9u
RGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAyMWE4MWZi
ZTVkZWJkNmIxZmRiMzk4MmFkZjExMzI1NmMzYWY3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBP
V05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuaCIKLQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQs
IFBlcm1pc3Npb25Qcm9taXNlJiYgcHJvbWlzZSkKLXsKLSAgICBhdXRvKiB3aW5kb3cgPSBkb2N1
bWVudC5kb21XaW5kb3coKTsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYnJvd3NpbmcgY29u
dGV4dCJfcyB9KTsKLQotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCF3aW5kb3ct
PmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oZXJyb3JNZXNzYWdlKSkgewot
ICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9u
KCkgZmFpbGVkLCByZWFzb246ICIsIGVycm9yTWVzc2FnZSwgIi4iKSk7Ci0gICAgICAgIHJldHVy
biBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOwotICAgIH0KLQotICAg
IGRvY3VtZW50LmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLnNo
b3VsZEFsbG93QWNjZXNzKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0
YXRlIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChwZXJtaXNzaW9uU3Rh
dGUgPT0gUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCi0gICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ug
b3JpZW50YXRpb24gb3IgbW90aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBw
cm9tcHQiX3MgfSk7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShwZXJtaXNzaW9uU3RhdGUpOwot
ICAgIH0pOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2EzMGYzZDJjMTc0Mjk1NTExYTM1OGUyNjU0ODgwNGNl
ZTIzMjAwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKLSNpbmNsdWRl
ICJJRExUeXBlcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50Owot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Ci0K
LWNsYXNzIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7Ci1wdWJsaWM6Ci0KLSNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7Ci0gICAgdXNpbmcgUGVybWlz
c2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lv
blN0YXRlPj47Ci0gICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQ
ZXJtaXNzaW9uUHJvbWlzZSYmKTsKLSNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50KCkgPSBkZWZhdWx0OwotICAgIH5EZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQoKSA9IGRlZmF1bHQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkZTU5YzI3YjE1MzI2NzlmNjZlYjI1MDg0NDA4
OWYzMjk0MTcxYjUwLi41NTE1NjA4NjE1ZTVmMTFjNzhjOTI2OWU5Nzk0NzE3NWZjMzgxNjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI3MSw3ICsyNzEsNiBAQAogCiAjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgotI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKICNlbmRpZgogCkBAIC04NTc5LDIwICs4
NTc4LDYgQEAgdm9pZCBEb2N1bWVudDo6aWRlbnRpZmllZEVsZW1lbnRXYXNSZW1vdmVkRnJvbURv
Y3VtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgbV9pZGVudGlmaWVkRWxlbWVudHNNYXAucmVt
b3ZlKCZlbGVtZW50KTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0KLURl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciYgRG9jdW1lbnQ6OmRldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpCi17Ci0gICAgaWYgKCZ0b3BE
b2N1bWVudCgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgpLmRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpOwotCi0gICAgaWYgKCFtX2Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcikKLSAgICAgICAgbV9kZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4oKnRoaXMpOwotICAgIHJldHVybiAq
bV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7Ci19Ci0KLSNlbmRp
ZgotCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBQYWludFdvcmtsZXQmIERvY3VtZW50
OjplbnN1cmVQYWludFdvcmtsZXQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3
M2E3MTkwZTEyNzc4MTU0NWM3MTQ3MjJmMmFlZGM2MmI1Li5iZjVmYWUzY2FlNDcwNzU5OWRlMmFk
YWU1NzI0ZmZiZmUxMDJmZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE5LDcgKzExOSw2
IEBAIGNsYXNzIERhdGFiYXNlOwogY2xhc3MgRGF0YWJhc2VUaHJlYWQ7CiBjbGFzcyBEZXZpY2VN
b3Rpb25DbGllbnQ7CiBjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwotY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50
YXRpb25DbGllbnQ7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBE
b2N1bWVudEZyYWdtZW50OwpAQCAtMTIwMiwxMCArMTIwMSw2IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFs
cGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKLSAgICBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpOwot
I2VuZGlmCi0KICAgICBjb25zdCBEb2N1bWVudFRpbWluZyYgdGltaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9kb2N1bWVudFRpbWluZzsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1vbm90
b25pY1RpbWVzdGFtcCgpIGNvbnN0OwpAQCAtMTk0MCwxMCArMTkzNSw2IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCi0gICAgc3RkOjp1bmlxdWVfcHRyPERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXI7Ci0jZW5kaWYKLQogICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fbG9nTWVzc2FnZVRh
c2tRdWV1ZTsKIAogICAgIFRpbWVyIG1fcGVuZGluZ1Rhc2tzVGltZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAppbmRleCBkMTNkMWIwYTYwZDkzNjg2YTQz
NjYzNTYyY2ExZTk4OTUzY2M2NTUyLi4xMmM0MzY0MzY5NDY1YzZmNTA3ZDc2M2I5M2NhZDZkMjA0
ZGIzMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAK
QEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBVc2VyR2VzdHVyZVRva2VuOjpzZXRNYXhpbXVtSW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdGb3JGZXRjaEZvclRlc3QKICAgICBtYXhJbnRlcnZh
bEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoID0gV1RGTW92ZSh2YWx1ZSk7CiB9CiAK
LWJvb2wgVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50KERvY3VtZW50JiBkb2N1
bWVudCkgY29uc3QKK2Jvb2wgVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50KGNv
bnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kb2N1bWVudHNJ
bXBhY3RlZEJ5VXNlckdlc3R1cmUuY29udGFpbnMoZG9jdW1lbnQpOwogfQpAQCAtMTAyLDcgKzEw
Miw3IEBAIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihPcHRpb25h
bDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4KICAgICBpZiAoc3RhdGUpCiAgICAgICAgIGN1
cnJlbnRUb2tlbigpID0gVXNlckdlc3R1cmVUb2tlbjo6Y3JlYXRlKHN0YXRlLnZhbHVlKCksIGdl
c3R1cmVUeXBlLCBkb2N1bWVudCk7CiAKLSAgICBpZiAoZG9jdW1lbnQgJiYgY3VycmVudFRva2Vu
KCktPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpICYmIHN0YXRlKSB7CisgICAgaWYgKHN0YXRlICYm
IGRvY3VtZW50ICYmIGN1cnJlbnRUb2tlbigpLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgewog
ICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcChj
dXJyZW50VG9rZW4oKS0+c3RhcnRUaW1lKCkpOwogICAgICAgICBpZiAocHJvY2Vzc0ludGVyYWN0
aW9uU3R5bGUgPT0gUHJvY2Vzc0ludGVyYWN0aW9uU3R5bGU6OkltbWVkaWF0ZSkKICAgICAgICAg
ICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dVc2VySW50ZXJhY3Rpb25XaXRo
UmVkdWNlZFRpbWVSZXNvbHV0aW9uKGRvY3VtZW50LT50b3BEb2N1bWVudCgpKTsKQEAgLTE1Nyw3
ICsxNTcsNyBAQCBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gVXNlckdlc3R1cmVJbmRpY2F0b3I6
OmN1cnJlbnRVc2VyR2VzdHVyZSgpCiAgICAgcmV0dXJuIGN1cnJlbnRUb2tlbigpOwogfQogCi1i
b29sIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoRG9jdW1lbnQq
IGRvY3VtZW50KQorYm9vbCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWlzTWFpblRocmVhZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUlu
ZGljYXRvci5oCmluZGV4IDY5ZDJlMDkwNzk5NjQxOTU0ZDhjZTg5ZWFlNzcwNGUxZjllZWU4NjQu
LmY1Y2M3ZmFkMjEwMjE5NzI2MGE0M2NjZmM0MTdmMTQzY2FmNDQyNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGlj
OgogCiAgICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0
VGltZTsgfQogCi0gICAgYm9vbCBpc1ZhbGlkRm9yRG9jdW1lbnQoRG9jdW1lbnQmKSBjb25zdDsK
KyAgICBib29sIGlzVmFsaWRGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIFVzZXJHZXN0dXJlVG9rZW4oUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUs
IFVzZXJHZXN0dXJlVHlwZSwgRG9jdW1lbnQqKTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBjbGFzcyBV
c2VyR2VzdHVyZUluZGljYXRvciB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZlB0cjxVc2VyR2VzdHVyZVRva2VuPiBjdXJyZW50VXNlckdlc3R1cmUoKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZShEb2N1bWVudCog
PSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNl
ckdlc3R1cmUoY29uc3QgRG9jdW1lbnQqID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKTsKIAogICAgIC8vIElm
IGEgZG9jdW1lbnQgaXMgcHJvdmlkZWQsIGl0cyBsYXN0IGtub3duIHVzZXIgZ2VzdHVyZSB0aW1l
c3RhbXAgaXMgdXBkYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVy
ZVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCmluZGV4
IDAyM2ZiYzQ5MmU0MTAzMTY2MjZjN2Y3YmU0MjU1OGIwMjQzNzdlMzUuLmU1MzlkNmQ1MmZlMzU1
MzgzYTI2Yzk2YjVhY2Y0NDkxMGViMjU2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmVhdHVyZVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9s
aWN5LmNwcApAQCAtNTIsNiArNTIsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHBvbGljeVR5cGVO
YW1lKEZlYXR1cmVQb2xpY3k6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuICJTeW5jWEhSIjsK
ICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkZ1bGxzY3JlZW46CiAgICAgICAgIHJldHVy
biAiRnVsbHNjcmVlbiI7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBjYXNl
IEZlYXR1cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZToKKyAgICAgICAgcmV0dXJuICJHeXJvc2Nv
cGUiOworICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6QWNjZWxlcm9tZXRlcjoKKyAgICAg
ICAgcmV0dXJuICJBY2NlbGVyb21ldGVyIjsKKyAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6
Ok1hZ25ldG9tZXRlcjoKKyAgICAgICAgcmV0dXJuICJNYWduZXRvbWV0ZXIiOworI2VuZGlmCiAj
aWYgRU5BQkxFKFdFQlhSKQogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6WFJTcGF0aWFs
VHJhY2tpbmc6CiAgICAgICAgIHJldHVybiAiWFJTcGF0aWFsVHJhY2tpbmciOwpAQCAtMTYxLDYg
KzE2OSwxMSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0
dXJlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3luY1hIUkluaXRpYWxpemVkID0g
ZmFsc2U7CiAgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFsaXplZCA9IGZhbHNlOworI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgYm9vbCBpc0d5cm9zY29wZUluaXRpYWxpemVk
ID0gZmFsc2U7CisgICAgYm9vbCBpc0FjY2VsZXJvbWV0ZXJJbml0aWFsaXplZCA9IGZhbHNlOwor
ICAgIGJvb2wgaXNNYWduZXRvbWV0ZXJJbml0aWFsaXplZCA9IGZhbHNlOworI2VuZGlmCiAjaWYg
RU5BQkxFKFdFQlhSKQogICAgIGJvb2wgaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkID0g
ZmFsc2U7CiAjZW5kaWYKQEAgLTE5Niw2ICsyMDksMjMgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJl
UG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50
JgogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZnVsbHNjcmVlblJ1
bGUsIGl0ZW0uc3Vic3RyaW5nKDExKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmIChpdGVtLnN0YXJ0
c1dpdGgoImd5cm9zY29wZSIpKSB7CisgICAgICAgICAgICBpc0d5cm9zY29wZUluaXRpYWxpemVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2d5cm9z
Y29wZVJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDEwKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJhY2NlbGVyb21ldGVyIikpIHsK
KyAgICAgICAgICAgIGlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2FjY2VsZXJvbWV0ZXJSdWxlLCBpdGVt
LnN1YnN0cmluZygxNCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgibWFnbmV0b21ldGVyIikpIHsKKyAgICAgICAgICAgIGlz
TWFnbmV0b21ldGVySW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChk
b2N1bWVudCwgcG9saWN5Lm1fbWFnbmV0b21ldGVyUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTMpKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYKICNpZiBFTkFCTEUoV0VC
WFIpCiAgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInhyLXNwYXRpYWwtdHJhY2tpbmciKSkg
ewogICAgICAgICAgICAgaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkID0gdHJ1ZTsKQEAg
LTIxNCw2ICsyNDQsMTQgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAgICAgICBwb2xpY3ku
bV9zcGVha2VyU2VsZWN0aW9uUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKS5kYXRhKCkpOwogICAgIGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkKQog
ICAgICAgICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIGlmICghaXNHeXJvc2NvcGVJbml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1f
Z3lyb3Njb3BlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5k
YXRhKCkpOworICAgIGlmICghaXNBY2NlbGVyb21ldGVySW5pdGlhbGl6ZWQpCisgICAgICAgIHBv
bGljeS5tX2FjY2VsZXJvbWV0ZXJSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLmRhdGEoKSk7CisgICAgaWYgKCFpc01hZ25ldG9tZXRlckluaXRpYWxpemVkKQor
ICAgICAgICBwb2xpY3kubV9tYWduZXRvbWV0ZXJSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVu
dC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAg
ICAgaWYgKCFpc1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5t
X3hyU3BhdGlhbFRyYWNraW5nUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKS5kYXRhKCkpOwpAQCAtMjU1LDYgKzI5MywxNCBAQCBib29sIEZlYXR1cmVQb2xpY3k6
OmFsbG93cyhUeXBlIHR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25z
dAogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fc3luY1hIUlJ1bGUs
IG9yaWdpbik7CiAgICAgY2FzZSBUeXBlOjpGdWxsc2NyZWVuOgogICAgICAgICByZXR1cm4gaXNB
bGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZnVsbHNjcmVlblJ1bGUsIG9yaWdpbik7CisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBjYXNlIFR5cGU6Okd5cm9zY29wZToKKyAgICAg
ICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2d5cm9zY29wZVJ1bGUsIG9yaWdp
bik7CisgICAgY2FzZSBUeXBlOjpBY2NlbGVyb21ldGVyOgorICAgICAgICByZXR1cm4gaXNBbGxv
d2VkQnlGZWF0dXJlUG9saWN5KG1fYWNjZWxlcm9tZXRlclJ1bGUsIG9yaWdpbik7CisgICAgY2Fz
ZSBUeXBlOjpNYWduZXRvbWV0ZXI6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQ
b2xpY3kobV9tYWduZXRvbWV0ZXJSdWxlLCBvcmlnaW4pOworI2VuZGlmCiAjaWYgRU5BQkxFKFdF
QlhSKQogICAgIGNhc2UgVHlwZTo6WFJTcGF0aWFsVHJhY2tpbmc6CiAgICAgICAgIHJldHVybiBp
c0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV94clNwYXRpYWxUcmFja2luZ1J1bGUsIG9yaWdpbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCmluZGV4IGIyNGJlODJhZmFkM2M4ZmUyMDc0
MzQ3NDYxMjdjYmFkYzBkOTExZmQuLmVlZGU4ZjE5NzcyMDMxZTEwYjljNGQyOTM4NGIzZDUwYThj
N2E5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00NSw2ICs0NSwxMSBA
QCBwdWJsaWM6CiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAogICAgICAgICBTeW5jWEhSLAogICAg
ICAgICBGdWxsc2NyZWVuLAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAg
IEd5cm9zY29wZSwKKyAgICAgICAgQWNjZWxlcm9tZXRlciwKKyAgICAgICAgTWFnbmV0b21ldGVy
LAorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQogICAgICAgICBYUlNwYXRpYWxUcmFja2luZywK
ICNlbmRpZgpAQCAtNjQsNyArNjksMTQgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9kaXNw
bGF5Q2FwdHVyZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CiAgICAgQWxsb3dS
dWxlIG1fZnVsbHNjcmVlblJ1bGU7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICBBbGxvd1J1bGUgbV9neXJvc2NvcGVSdWxlOworICAgIEFsbG93UnVsZSBtX2FjY2VsZXJvbWV0
ZXJSdWxlOworICAgIEFsbG93UnVsZSBtX21hZ25ldG9tZXRlclJ1bGU7CisjZW5kaWYKKyNpZiBF
TkFCTEUoV0VCWFIpCiAgICAgQWxsb3dSdWxlIG1feHJTcGF0aWFsVHJhY2tpbmdSdWxlOworI2Vu
ZGlmCiB9OwogCiBlbnVtIGNsYXNzIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlIHsgTm8sIFllcyB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDMyODc2ZjkwOThkNDkwNTI4YzMyZjhj
ZTkxN2VjMjc2YWFkZGJjZGIuLjM4ZjZjYzAwOWYxY2JiN2RlNWExZWI5NWM2NWIwZWU5MTU0YjQ0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNs
dWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtNDQ2LDcgKzQ0Nyw3IEBAIFJlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRE9NV2luZG93Ojpt
YXRjaE1lZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCiAgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBk
b2N1bWVudCgpLT5tZWRpYVF1ZXJ5TWF0Y2hlcigpLm1hdGNoTWVkaWEobWVkaWEpIDogbnVsbHB0
cjsKIH0KIAotUGFnZSogRE9NV2luZG93OjpwYWdlKCkKK1BhZ2UqIERPTVdpbmRvdzo6cGFnZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiBudWxscHRy
OwogfQpAQCAtMjAwNSw5ICsyMDA2LDkgQEAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogRE9NV2lu
ZG93OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QKICNlbmRpZgogfQogCi1ib29sIERP
TVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihTdHJpbmcmIG1l
c3NhZ2UpIGNvbnN0Citib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25P
ck9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKIHsKLSAgICBpZiAoIWZyYW1lKCkg
fHwgIWZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSkg
eworICAgIGlmICghZnJhbWUoKSB8fCAhZG9jdW1lbnQoKSB8fCAhZnJhbWUoKS0+c2V0dGluZ3Mo
KS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CiAgICAgICAgIG1lc3NhZ2UgPSAi
QVBJIGlzIGRpc2FibGVkIl9zOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAx
NywyOSArMjAxOCw1MiBAQCBib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rp
b25PcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSkg
ewotICAgICAgICBtZXNzYWdlID0gIlNvdXJjZSBmcmFtZSBkaWQgbm90IGhhdmUgdGhlIHNhbWUg
c2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UiX3M7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbihTdHJpbmcmIG1l
c3NhZ2UpIGNvbnN0Cit7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yT3Jp
ZW50YXRpb24obWVzc2FnZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaXNG
ZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6
VHlwZTo6R3lyb3Njb3BlLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5v
KQorICAgICAgICB8fCAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25l
cnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6QWNjZWxlcm9tZXRlciwgKmRvY3VtZW50KCksIExvZ0Zl
YXR1cmVQb2xpY3lGYWlsdXJlOjpObykpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJUaGlyZC1wYXJ0
eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiB1bmxlc3Mg
ZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxl
cm9tZXRlcikiX3M7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3Jp
ZW50YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Citib29sIERPTVdpbmRvdzo6
aXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiB7
Ci0gICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKLSAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNl
TW90aW9uT3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSkgewotICAgICAgICBtZXNzYWdlID0gbWFr
ZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50
YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpOworICAg
IGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uKG1lc3NhZ2UpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRC
eURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZSwgKmRv
Y3VtZW50KCksIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykKKyAgICAgICAgfHwgIWlzRmVh
dHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5
cGU6OkFjY2VsZXJvbWV0ZXIsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6
Tm8pCisgICAgICAgIHx8ICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpNYWduZXRvbWV0ZXIsICpkb2N1bWVudCgpLCBMb2dG
ZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiVGhpcmQtcGFy
dHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1
bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYg
YWNjZWxlcm9tZXRlciAmIG1hZ25ldG9tZXRlcikiX3M7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6Omhhc1Blcm1p
c3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uRXZlbnRzKFN0cmluZyYgbWVz
c2FnZSkgY29uc3QKK3sKICAgICBpZiAoZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRh
dGlvblBlcm1pc3Npb25BUElFbmFibGVkKCkpIHsKLSAgICAgICAgYXV0byBhY2Nlc3NTdGF0ZSA9
IGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigp
LmFjY2Vzc1N0YXRlKCk7CisgICAgICAgIGlmICghcGFnZSgpKSB7CisgICAgICAgICAgICBtZXNz
YWdlID0gIk5vIGJyb3dzaW5nIGNvbnRleHQiX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICAgICAgYXV0byBhY2Nlc3NTdGF0ZSA9IHBhZ2UoKS0+ZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCkuYWNjZXNzU3RhdGUoKmRvY3VtZW50
KCkpOwogICAgICAgICBzd2l0Y2ggKGFjY2Vzc1N0YXRlKSB7CiAgICAgICAgIGNhc2UgRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkOgotICAgICAgICAgICAg
bWVzc2FnZSA9ICJObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJl
IGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLiJfczsK
KyAgICAgICAgICAgIG1lc3NhZ2UgPSAiUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVu
aWVkIl9zOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdDoKLSAgICAgICAgICAgIG1l
c3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4iX3M7
CisgICAgICAgICAgICBtZXNzYWdlID0gIlBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIG5v
dCB5ZXQgcmVxdWVzdGVkIl9zOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBj
YXNlIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQ6CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTIwNTgsMTAgKzIwODIsMTAgQEAgdm9pZCBET01XaW5kb3c6
OnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpCiAgICAgaWYg
KCFkZXZpY2VDb250cm9sbGVyIHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlz
dGVuZXIoKnRoaXMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdl
OwotICAgIGlmICghaXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVy
KGVycm9yTWVzc2FnZSkpIHsKKyAgICBTdHJpbmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNB
bGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbihpbm5lck1lc3NhZ2UpIHx8ICFoYXNQZXJtaXNz
aW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50cyhpbm5lck1lc3NhZ2Up
KSB7CiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCi0gICAg
ICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJu
aW5nLCBtYWtlU3RyaW5nKCJObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMjA4NiwxMSArMjExMCwxMSBAQCB2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5p
bmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCiAgICAgaWYgKCFkZXZpY2VDb250cm9sbGVy
IHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGlmICghaXNBbGxv
d2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGVycm9yTWVzc2FnZSkpIHsK
KyAgICBTdHJpbmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VN
b3Rpb24oaW5uZXJNZXNzYWdlKSB8fCAhaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlv
bk9yT3JpZW50YXRpb25FdmVudHMoaW5uZXJNZXNzYWdlKSkgewogICAgICAgICBmYWlsZWRUb1Jl
Z2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwogICAgICAgICBpZiAoYXV0byogZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9y
TWVzc2FnZSk7CisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiTm8gZGV2aWNl
IG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIu
IikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRl
eCAwZTM1MTE3ZjVhZDhhYjhmZGRmNGRkZjY2NjkwMTdjMDFmODljNDUyLi4xNWE2YmNhZmVlNDY1
ZWQzZjAwZGQyY2IxMDFjZTYxMzNmZGUxNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTM2Niw4ICszNjYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90
aW9uSWZOZWNlc3NhcnkoKTsKIAotICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25P
cmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwotICAgIGJvb2wgaXNBbGxvd2VkVG9B
ZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7
CisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2Fn
ZSkgY29uc3Q7CisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbihTdHJpbmcmIG1l
c3NhZ2UpIGNvbnN0OwogCiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBkZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVy
KiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CkBAIC00MTAsMTMgKzQxMCwxNSBAQCBw
cml2YXRlOgogICAgIGJvb2wgaXNMb2NhbERPTVdpbmRvdygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KICAgICBib29sIGlzUmVtb3RlRE9NV2luZG93KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIFBhZ2UqIHBhZ2UoKTsKKyAgICBQYWdlKiBwYWdlKCkgY29uc3Q7
CiAgICAgYm9vbCBhbGxvd2VkVG9DaGFuZ2VXaW5kb3dHZW9tZXRyeSgpIGNvbnN0OwogCiAgICAg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZlB0cjxGcmFtZT4+IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYsIERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBGcmFtZSYgZmlyc3RGcmFtZSwgRnJh
bWUmIG9wZW5lckZyYW1lLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoRE9NV2luZG93Jik+JiBw
cmVwYXJlRGlhbG9nRnVuY3Rpb24gPSBudWxscHRyKTsKICAgICBib29sIGlzSW5zZWN1cmVTY3Jp
cHRBY2Nlc3MoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
KTsKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgYm9vbCBpc0FsbG93ZWRU
b1VzZURldmljZU1vdGlvbk9yT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKyAg
ICBib29sIGhhc1Blcm1pc3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uRXZl
bnRzKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CiAgICAgdm9pZCBmYWlsZWRUb1JlZ2lzdGVyRGV2
aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4
IDg4ZjkwM2VlZmQ3YjBiMWQ1ZTAyODZmODgzODI0MDJmNjQ0YjU3OWIuLjEwNjIzZTc1YWM4OWM5
NzFhOTIwOTM3N2M1OTk2YTdiYjcyMGFlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTcxLDYg
KzE3MSwxMCBAQAogI2luY2x1ZGUgIkRpc3BsYXlWaWV3LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NDb250cm9sbGVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgSGFzaFNldDxQYWdlKj4mIGFsbFBhZ2VzKCkKQEAgLTM0NDMsNiArMzQ0NywxNyBAQCBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbigpCiAgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci0+c3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIFBhZ2U6OmRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpCit7CisgICAgaWYgKCFt
X2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcikKKyAgICAgICAgbV9k
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgPSBtYWtlVW5pcXVlPERl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4oKnRoaXMpOworICAgIHJl
dHVybiAqbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7Cit9CisK
KyNlbmRpZgorCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0
cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCAxNTJmNDkyNDQ0ZTE5MzA0YzgyNmJlMmYzMWY4YWQyMjI1NDkwOTlkLi4x
OWYxOGJiNmU2ZGNmZTQ4MDlmZWU1NzQ0ZTE0OWFmNTljOTJhM2E3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtOTksNiArOTksNyBAQCBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7CiBjbGFzcyBDb29r
aWVKYXI7CiBjbGFzcyBET01SZWN0TGlzdDsKIGNsYXNzIERhdGFiYXNlUHJvdmlkZXI7CitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CiBjbGFzcyBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDsKIGNsYXNzIERyYWdDYXJldENvbnRyb2xsZXI7CiBjbGFzcyBE
cmFnQ29udHJvbGxlcjsKQEAgLTMxMyw2ICszMTQsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAgICAgYm9vbCBzaG91
bGRFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdDsgfQogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXRUJDT1JFX0VYUE9SVCBEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlcigpOworI2VuZGlmCisKICAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1
bWVudCgpOwogICAgIHZvaWQgbWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1
bWVudCgpOwogCkBAIC05MjQsNiArOTI5LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgc3RkOjp1bmlxdWVfcHRy
PERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcj4gbV9kZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CisjZW5kaWYKKwogICAgIFVuaXF1ZVJl
ZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7
CiAKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQ
cm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2MWVhOWExNWJh
OWNkMTkzM2Q4M2U1NTI3ZDk5N2U3NDY2NWYyZTEwLi4wZDNiYjQxZTY1ZWUzMmQyMDM1NzBjN2Ux
ODVmMDI3YzY1NTU5OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0z
MzMsNiArMzMzLDEwIEBACiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisKIHVzaW5n
IEpTQzo6Q2FsbERhdGE7CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKIHVzaW5nIEpTQzo6RnVuY3Rp
b25FeGVjdXRhYmxlOwpAQCAtNDkxLDYgKzQ5NSwxMCBAQCB2b2lkIEludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogCiAgICAgcGFnZS5tYWluRnJhbWUoKS5zZXRU
ZXh0Wm9vbUZhY3RvcigxLjBmKTsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisg
ICAgcGFnZS5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5jbGVh
clBlcm1pc3Npb25zKCk7CisjZW5kaWYKKwogICAgIHBhZ2Uuc2V0Q29tcG9zaXRpbmdQb2xpY3lP
dmVycmlkZShXZWJDb3JlOjpDb21wb3NpdGluZ1BvbGljeTo6Tm9ybWFsKTsKIAogICAgIEZyYW1l
VmlldyogbWFpbkZyYW1lVmlldyA9IHBhZ2UubWFpbkZyYW1lKCkudmlldygpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU3
ZTdiYjhiNWQ3MzZkYzhkN2E3MjY4ZjEzNmIyOTMyNjcwYzZlMWEuLmZmNzdmZjE5ZjFlNTE3ZGFi
NDVjNTRjNGI5MmIzMGY0MWRjMTMxMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0wMi0y
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERldmljZSBtb3Rp
b24gLyBvcmllbnRhdGlvbiBldmVudHMgbm90IHdvcmtpbmcgaW4gdGhpcmQtcGFydHkgaWZyYW1l
cyBkZXNwaXRlIEZlYXR1cmUtUG9saWN5IGFsbG93aW5nIGl0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc0MjI5MjI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVk
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1v
bmx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHkuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ku
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0
dXJlLXBvbGljeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1i
eS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJh
bWUtZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3Jp
ZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGly
ZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVh
dHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRl
bmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJk
LXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHkt
aWZyYW1lLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1v
cmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0
LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDItMjMgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy92b2x1bWUtc3VwcG9ydC92b2x1bWUtc3VwcG9ydC1jbGljay5odG1sIGlzIGEgZmxh
a3kgdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjc2MDQ4MTQzNmM2MTA0MWViOTc1YWQ3
ZjVmYjIxNjhlZTFhNWU2ZS4uZDk1ZDQwZjYxM2NmNzc4MWU0MWNlZjAzZGY3OWU3YjYzNjQ2OTRm
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC01MCw2ICs1MCw3IEBAIGZhc3QvZm9ybXMvaW9zIFsg
U2tpcCBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFNraXAgXQogZmFzdC92aXN1YWwtdmlld3BvcnQv
aW9zLyBbIFNraXAgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBTa2lwIF0KK2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9jdXJzb3JzIFsgU2tp
cCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBTa2lw
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CmluZGV4IDhhOGY0MDI2MmFjOTE4ODQ4M2M5ZjY3NGNi
NzBhNTkyNjdjZGZjZWUuLjEyNzcxMDkzOTVlM2Q3NDQxYzdjZDI4NGU5YzBjMDczNzU1NzhhZjgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKLUNPTlNPTEUgTUVTU0FH
RTogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1
bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK0NPTlNPTEUg
TUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQ
ZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KIFJlY2VpdmVk
IGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkg
b3JpZ2luICIiLgotQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0
aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQ
SSB3YXMgZGVuaWVkLgorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3
aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmll
ZC4KIEJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQK
aW5kZXggY2UxYTcwYTJiNjY5YjkyYmI0ZTc2YmY1OTdlZGM5ZmRjN2MwZDU0NC4uMDkzMTNlZTcy
YzU3ZGFiNTM1OTZkZTkzYmEyNmM0YzJjMGNmM2MzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVl
biByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rp
b24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQ
SSB3YXMgbm90IHlldCByZXF1ZXN0ZWQuCiBSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBt
b3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KIEJhc2ljIHRlc3Rp
bmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11
c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CmluZGV4IDc5ODM3MjMzY2Y1ZGM5NWY2YzkyNzg4OThi
Y2RmZTllNGY5ZGE5NDguLmVjYmRiZmRiNzEzZDU0MmNkODMyZGE0YzhjY2QwZWUwY2MxYzYyZTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNP
TlNPTEUgTUVTU0FHRTogTm90QWxsb3dlZEVycm9yOiBSZXF1ZXN0aW5nIGRldmljZSBvcmllbnRh
dGlvbiBvciBtb3Rpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdAor
Q09OU09MRSBNRVNTQUdFOiBOb3RBbGxvd2VkRXJyb3I6IFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlv
biBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0CiBUZXN0cyB0aGF0IERl
dmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1
cmUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVj
dGVkLnR4dAppbmRleCBjNDAyNjM4YzczODM5NmU2ZDRkOWQ1ZjI2NDlhYjM3ODAzZTVkNWZiLi5l
MDg5NDkzMjc5NDA0NmUxY2Q1MDQxMTYzMDk5OWNmMmQyNzEwZjNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAotQ09OU09MRSBNRVNTQUdFOiBObyBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBl
cm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorQ09OU09MRSBNRVNTQUdF
OiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVy
bWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQuCiBSZWNlaXZlZCBk
ZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9y
aWdpbiAiIi4KLUNPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlv
biBldmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkg
d2FzIGRlbmllZC4KK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50
cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRl
bmllZC4KIEJhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3Jh
bnRlZC1leHBlY3RlZC50eHQKaW5kZXggYmMzN2QwNGQ5NTE2YWY0YmNiNGYyMDliZDE5YmZkYjMx
NTFmZTcxMy4uNzI1NDM4MWY5MjViZGYxNWE0NjkyOWRmOTQxZjQwNjFjMTRjYjYyYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBN
RVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZp
cmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorQ09O
U09MRSBNRVNTQUdFOiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQs
IHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQu
CiBSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9y
IHNlY3VyaXR5IG9yaWdpbiAiIi4KIEJhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CmluZGV4IDkxOTM3YzEzNjI2ZDQ4NThlNzY2NDc5YWQ2ZGU2MGFkYmU3
N2IxMmUuLmM2NWQ5NDY5MTlhNjU3MDU2NmM2MjQ2MjE0MTExODZiMmRiODM2ZjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1D
T05TT0xFIE1FU1NBR0U6IE5vdEFsbG93ZWRFcnJvcjogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50
YXRpb24gb3IgbW90aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQK
K0NPTlNPTEUgTUVTU0FHRTogTm90QWxsb3dlZEVycm9yOiBSZXF1ZXN0aW5nIGRldmljZSBvcmll
bnRhdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0CiBUZXN0cyB0
aGF0IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBh
IHVzZXIgZ2VzdHVyZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNl
ci1nZXN0dXJlLmh0bWwKaW5kZXggOTI2OTkyYWQ0MzU4ZGQ3M2JjYzk1MmE3MDg0ODFlNTJkZDZl
NWNmMS4uMTA5OWQxOWY0NzllYmNhYjg1YTE5MmE0MTBmYjA3MzgyZmYyMGJiMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNz
aW9uLXVzZXItZ2VzdHVyZS5odG1sCkBAIC05LDYgKzksNyBAQCBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAogRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJl
c3VsdCkgPT4gewogICAgIHRlc3RGYWlsZWQoInJlcXVlc3RQZXJtaXNzaW9uIHByb21pc2Ugd2Fz
IG5vdCByZWplY3RlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfSwgKF9lKSA9PiB7CiAgICAg
ZSA9IF9lOwogICAgIGNvbnNvbGUubG9nKGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0
LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNDdmZjZiNWI0YTJiMDY3ODk0NmM5ODdiNjhlMWE5ZjE2
OGU2YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYg
bW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpbGwg
YmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCBy
ZXF1ZXN0ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJl
cXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4KK1Rlc3Rz
IHRoYXQgZ2l2aW5nIGRldmljZSBtb3Rpb24gcGVybWlzc2lvbiBpbiB0aGUgbWFpbiBmcmFtZSBk
b2VzIG5vdCBnaXZlIGFjY2VzcyB0byB0aGlyZC1wYXJ0eSBpZnJhbWVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIGUuZGF0
YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFs
bG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNjRkODkwMTNjY2Fl
ZGIxZDY4Y2I0MjY0MmFhM2Q5YjdjMGNlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4t
Zmlyc3QtcGFydHktb25seS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZ2l2aW5nIGRl
dmljZSBtb3Rpb24gcGVybWlzc2lvbiBpbiB0aGUgbWFpbiBmcmFtZSBkb2VzIG5vdCBnaXZlIGFj
Y2VzcyB0byB0aGlyZC1wYXJ0eSBpZnJhbWVzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
Ky8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1
ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAg
Cit9OworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VNb3Rp
b25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAg
cmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQi
LCAiZ3JhbnRlZCIpOworICAgICAgICAvLyBJZiBwcm9tcHRlZCwgZGVueS4KKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGZhbHNlKTsKKworICAgICAgICAvLyBD
cmVhdGUgdGhpcmQtcGFydHkgaWZyYW1lIHRoYXQgcmVxdWVzdHMgcGVybWlzc2lvbiBmb3IgaXRz
ZWxmLCBidXQgdGhpcyB0aW1lIHNob3VsZCBiZSByZWplY3RlZC4KKyAgICAgICAgbGV0IHRlc3RG
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICB0ZXN0RnJh
bWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3Vy
Y2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1sIjsKKyAgICAgICAgdGVzdEZyYW1lLmFsbG93
ID0gImFjY2VsZXJvbWV0ZXI7Z3lyb3Njb3BlIjsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmQodGVzdEZyYW1lKTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xp
Y3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBv
bGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUwODBiMzc2NGM2MDAxZWYzZmY0ZjgxMGY4
YmYwZDRhNGYwZTExNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93
ZWQtYnktZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNP
TEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29u
OiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KK1JlY2Vp
dmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJp
dHkgb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0
eSBpZnJhbWVzIGNhbiByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIGV2ZW50cyBpZiBh
bGxvd2VkIGJ5IGZlYXR1cmUgcG9saWN5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBlLmRhdGEgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxs
b3dlZC1ieS1mZWF0dXJlLXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1i
eS1mZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYmY3YmQyZWY5NTM4M2MxZjNlMDM2
YzZlZTJkNWU1NTQwYTAyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1h
bGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0
aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbiByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIGV2
ZW50cyBpZiBhbGxvd2VkIGJ5IGZlYXR1cmUgcG9saWN5LiIpOworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJncmFudGVkIik7CisgICAgZmluaXNoSlNUZXN0
KCk7ICAgIAorfTsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1s
IiBhbGxvdz0iYWNjZWxlcm9tZXRlcjtneXJvc2NvcGUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVu
dC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQt
YnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NDE3OTdhM2E3YjZmYjk5YTdjNmM1NGE4OGNhMmQ0ODU1ZDIzMTJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlv
bi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGlj
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZp
Y2UgbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFt
ZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBleHBsaWNp
dGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVy
KS4KK0NPTlNPTEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwg
cmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2
aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAo
Z3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFt
ZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpdGggaW5z
dWZmaWNpZW50IGZlYXR1cmUgcG9saWN5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5p
ZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFt
ZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2Q1YmIzMTVlYjU2ZTMyN2I0NDlhZGY4OTFlNzlmZTYzOWZjMDUwNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xp
Y3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fu
bm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpdGggaW5zdWZmaWNp
ZW50IGZlYXR1cmUgcG9saWN5LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIElmIHBy
b21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNl
dFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK29u
bWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9OworPC9z
Y3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRh
dGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwiIGFsbG93PSJneXJvc2Nv
cGUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1p
ZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyZGIzNjY1Njk2MjcyOTZlMWJmNmNkMzdlNDliYzc4OTJh
ZjQ3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5v
dCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93
ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyKS4KK0NPTlNP
TEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiBU
aGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlv
biB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3Bl
ICYgYWNjZWxlcm9tZXRlcikuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90
IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBh
cnR5LWlmcmFtZS1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ1ZDExM2JiOTk1MTVjNWM3ZTlhNWY0YjBlMGVkM2NmMGMzNDI2YjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDIx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRv
IGRldmljZSBtb3Rpb24gZXZlbnRzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIElm
IHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisK
K29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9Owor
PC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmll
bnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwiPjwvaWZyYW1lPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHkt
b25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMzJjZDBjN2Q1MjdiMWJiMDBiYmMyYmYzODhmZTc1Y2QyMDgx
YTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9u
ICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVu
dHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBu
b3QgeWV0IHJlcXVlc3RlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBh
Y2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LgorVGVzdHMgdGhhdCBnaXZpbmcgZGV2aWNlIG9yaWVudGF0aW9uIHBlcm1pc3Npb24gaW4gdGhl
IG1haW4gZnJhbWUgZG9lcyBub3QgZ2l2ZSBhY2Nlc3MgdG8gdGhpcmQtcGFydHkgaWZyYW1lcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVk
IgorUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1w
YXJ0eS1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTJmMGI5YzdiMzFhZmVmZTQ1Yjc3YTNmNjIyMDE2ZWY3YTU3OGVmYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHkuaHRtbApAQCAtMCww
ICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGdpdmluZyBkZXZpY2Ugb3JpZW50YXRpb24gcGVybWlzc2lvbiBp
biB0aGUgbWFpbiBmcmFtZSBkb2VzIG5vdCBnaXZlIGFjY2VzcyB0byB0aGlyZC1wYXJ0eSBpZnJh
bWVzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkg
PT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJk
ZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9OworCitpbnRlcm5hbHMud2l0aFVz
ZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0Owor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisgICAg
ICAgIC8vIElmIHByb21wdGVkLCBkZW55LgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3MoZmFsc2UpOworCisgICAgICAgIC8vIENyZWF0ZSB0aGlyZC1wYXJ0eSBp
ZnJhbWUgdGhhdCByZXF1ZXN0cyBwZXJtaXNzaW9uIGZvciBpdHNlbGYsIGJ1dCB0aGlzIHRpbWUg
c2hvdWxkIGJlIHJlamVjdGVkLgorICAgICAgICBsZXQgdGVzdEZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRh
dGlvbi1ldmVudHMuaHRtbCI7CisgICAgICAgIHRlc3RGcmFtZS5hbGxvdyA9ICJhY2NlbGVyb21l
dGVyO2d5cm9zY29wZTttYWduZXRvbWV0ZXIiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZCh0ZXN0RnJhbWUpOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUt
cG9saWN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1m
ZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM4MjMxNWU3MTYyODhiYjhj
NjBlMmZkYTU0NWU0ODUzNWJkNzg2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0
eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdp
bGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHll
dCByZXF1ZXN0ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNz
IHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4KK1Rl
c3RzIHRoYXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNl
IG9yaWVudGF0aW9uIGV2ZW50cyBpZiBhbGxvd2VkIGJ5IGZlYXR1cmUgcG9saWN5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImdyYW50ZWQiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMjI4OGNmMzEzZWE4MWE3MjA5NmJkZWQwN2U0YWVkYjM5Yjg5ZDVmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUt
cG9saWN5Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVz
IGNhbiByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIGlmIGFsbG93
ZWQgYnkgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYg
cHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKwor
b25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZS5kYXRhIiwgImdyYW50ZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9Owor
PC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmll
bnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbCIgYWxsb3c9
ImFjY2VsZXJvbWV0ZXI7Z3lyb3Njb3BlO21hZ25ldG9tZXRlciI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1p
bnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5
LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNzNhZGY2ZDA2YzcwZjljMzgzOTBjZThiMjBiOGE5YmQyNzkwMjhiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZm
aWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05T
T0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwg
cmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2
aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9s
aWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0b21ldGVyKS4KK0NPTlNPTEUg
TUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiBUaGly
ZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0
aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2Nv
cGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0b21ldGVyKS4KK1Rlc3RzIHRoYXQgdGhpcmQtcGFy
dHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIGV2
ZW50cyB3aXRoIGluc3VmZmljaWVudCBmZWF0dXJlIHBvbGljeS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJk
LXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1w
b2xpY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2Q4YTI2NTQ3Yjk0NzkwNmQ5YTE3NDBiNjdmNGMzMWQz
NDA1NTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQt
YnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ug
b3JpZW50YXRpb24gZXZlbnRzIHdpdGggaW5zdWZmaWNpZW50IGZlYXR1cmUgcG9saWN5LiIpOwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAg
IGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1v
cmllbnRhdGlvbi1ldmVudHMuaHRtbCIgYWxsb3c9Imd5cm9zY29wZSI+PC9pZnJhbWU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjU1MWVmYTcxYzU3OTc0ZmVlNmM2Nzg0Zjg4Yzg3YjBjYzYwY2Y3YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlv
biBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBu
b3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5
IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYg
bWFnbmV0b21ldGVyKS4KK0NPTlNPTEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lv
bigpIGZhaWxlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBh
Y2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlh
IEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0b21ldGVy
KS4KK1Rlc3RzIHRoYXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3Mg
dG8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlm
cmFtZS1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmQxNmRhNmQzNGRhNGY4NzE4ZGMwNzcxODc1NTI3MTYwODJjOWI3YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWwKQEAgLTAsMCAr
MSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2Vz
cyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
dHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsg
ICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2Rl
dmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRt
bCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZl
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNv
dXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZmMjg3MTNiODE1
ZDk2MWQ4ZDg2ZWNmZGNmZWM4Y2NjMGJiYzA4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlv
bi1ldmVudHMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgKCkgPT4g
e30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VNb3Rp
b25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICB0
b3AucG9zdE1lc3NhZ2UocmVzdWx0LCAiKiIpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVl
c3Qtb3JpZW50YXRpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQyZWVmNTgwZDA1NzQ5OWJj
MjcyMWRiM2NlYmQ4NzgwMDUwNDA4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9u
LWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgp
ID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNl
T3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkgPT4gewor
ICAgICAgICB0b3AucG9zdE1lc3NhZ2UocmVzdWx0LCAiKiIpOworICAgIH0pOworfSk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ZjZkZDM3OTJlZjM1ZmUwOTc1OGFmMWExMTk2YWMwMzUy
ZWFlMTRhLi4wZDAzNTJkNjg1ODU5MGVkZmIyZjQ1MWVhZWIxMjk3OTdkNDE5N2VkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNSw2ICsx
NSw3IEBAIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBp
Y2tlci5odG1sIFsgUGFzcyBdCiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUt
cHJlc2VudGluZy1waWNrZXIuaHRtbCBbIFBhc3MgXQogY29udGFjdC1waWNrZXIvY29udGFjdHMt
c2VsZWN0Lmh0bWwgWyBQYXNzIF0KIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCito
dHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lvcyBb
IFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCiBmYXN0L3NwZWVjaHJlY29nbml0
aW9uL2lvcyBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421376</attachid>
            <date>2021-02-23 17:15:33 -0800</date>
            <delta_ts>2021-02-24 08:35:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221399-20210223171532.patch</filename>
            <type>text/plain</type>
            <size>83143</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFhZWE2NTNlMTk5ZGEx
ZGFlZTE2ZDFkMDEzZWY3ZDQ3NmNiZWU1My4uNWM5MjNkNDM3MjIyNTdjZTY2M2U0NTc1ZmJjNTky
M2ZjM2MzOWZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAyMS0wMi0yMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERldmljZSBtb3Rpb24gLyBv
cmllbnRhdGlvbiBldmVudHMgbm90IHdvcmtpbmcgaW4gdGhpcmQtcGFydHkgaWZyYW1lcyBkZXNw
aXRlIEZlYXR1cmUtUG9saWN5IGFsbG93aW5nIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0
MjI5MjI3PgorCisgICAgICAgIEFsbG93IHRoaXJkLXBhcnR5IGlmcmFtZXMgdG8gcmVxdWVzdCBh
Y2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiAvIG9yaWVudGF0aW9uIGV2ZW50cyBpZiBwZXJtaXR0ZWQg
dmlhCisgICAgICAgIEZlYXR1cmUtUG9saWN5LiBUbyBtYXRjaCBCbGluaywgdGhlIGZvbGxvd2lu
ZyBmZWF0dXJlcyBuZWVkIHRvIGJlIGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5OgorICAgICAg
ICAtIERldmljZU9yaWVudGF0aW9uRXZlbnQ6IGd5cm9zY29wZSwgYWNjZWxlcm9tZXRlciBhbmQg
bWFnbmV0b21ldGVyCisgICAgICAgIC0gRGV2aWNlTW90aW9uRXZlbnQ6IGd5cm9zY29wZSBhbmQg
YWNjZWxlcm9tZXRlcgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRo
aXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQt
cGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlv
bi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0
LXBhcnR5LW9ubHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1l
LWRlbmllZC5odG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIERyb3AgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50IGNsYXNzIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKToKKyAgICAgICAgTWFrZSBz
dXJlIHdlIHNwZWNpZnkgdGhlIGRvY3VtZW50IHdoZW4gdGFraW5nIGEgdXNlciBnZXN0dXJlIHdo
ZW4gYXNrZWQgdG8gcnVuIGEgc2NyaXB0LgorICAgICAgICBUaGlzIGlzIGltcG9ydGFudCBiZWNh
dXNlIHNvbWUgY2xpZW50cyB3YW50IHRvIGtub3cgdGhhdCB0aGVyZSB3YXMgYSB1c2VyIGdlc3R1
cmUgZm9yCisgICAgICAgIGEgZG9jdW1lbnQgd2l0aGluIHRoZWlyIG9yaWdpbiAobGlrZSBkZXZp
Y2UgbW90aW9uICYgb3JpZW50YXRpb24pLgorCisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVy
bWlzc2lvbik6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50Lmg6CisgICAgICAgIE1vdmUgcmVxdWVzdFBlcm1pc3Npb24oKSBm
cm9tIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCBjbGFzcyB0byBpdHMgc3ViY2xhc3Nl
cyBub3cgdGhhdCB0aGVpcgorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgYXJlIHNsaWdodGx5IGRp
ZmZlcmVudC4KKworICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyOjphY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OnNob3VsZEFsbG93QWNj
ZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlcjo6Y2xlYXJQZXJtaXNzaW9ucyk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oOgorICAgICAgICBEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgdXNlZCB0byBiZSB0aWVkIHRvIHRoZSB0b3Ag
ZG9jdW1lbnQgYmVjYXVzZSB3ZSBvbmx5CisgICAgICAgIGFsbG93ZWQgZGV2aWNlIG1vdGlvbiAm
IG9yaWVudGF0aW9uIGV2ZW50cyBpbiBmaXJzdC1wYXJ0eSBjb250ZW50LiBCZWNhdXNlIHdlIG5v
dyBhbGxvdyB0aGVzZQorICAgICAgICBldmVudHMgaW4gdGhpcmQtcGFydHkgY29udGVudCwgRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyIGlzIG5vdyB0aWVkIHRvIHRo
ZQorICAgICAgICBwYWdlIGFuZCBpdCBzdG9yZXMgYSBtYXAgb2YgcGVybWlzc2lvbiBzdGF0ZSBw
ZXIgb3JpZ2luLCBpbnN0ZWFkIG9mIGEgc2luZ2xlIHBlcm1pc3Npb24gc3RhdGUuCisgICAgICAg
IEFsc28sIEkgbm93IHBhc3MgdGhlIGRvY3VtZW50IHRvIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmUoKSB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBpbnRlcmFj
dGluZyB3aXRoIHRoZSB0b3AgZnJhbWUgZG9lcyBub3QgYWxsb3cgYSB0aGlyZC1wYXJ0eSBpZnJh
bWUgdG8gcmVxdWVzdCBwZXJtaXNzaW9uIHRvIHVzZQorICAgICAgICB0aGUgZGV2aWNlIG1vdGlv
biAmIG9yaWVudGF0aW9uIEFQSS4gVGhlIHVzZXIgbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGF0
IHRoaXJkLXBhcnR5IGlmcmFtZQorICAgICAgICB0byBhbGxvdyB0aGUgaWZyYW1lIHRvIHByb21w
dCB0aGUgdXNlci4KKworICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgRHJvcCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQgY2xhc3Mgbm93IHRoYXQgdGhlIDIgc3ViY2xhc3NlcyBuZWVkIGEgc2xpZ2h0bHkgZGlm
ZmVyZW50CisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHJlcXVlc3RQZXJtaXNzaW9uKCkuCisK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgd2FzIG1v
dmVkIGZyb20gdGhlIGRvY3VtZW50IHRvIHRoZSBQYWdlLgorCisgICAgICAgICogZG9tL1VzZXJH
ZXN0dXJlSW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46
OmlzVmFsaWRGb3JEb2N1bWVudCBjb25zdCk6CisgICAgICAgIE1ha2UgcGFyYW1ldGVyIGNvbnN0
IHNpbmNlIGl0IGNhbiBiZS4KKworICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0
b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIENoZWNrIHN0YXRlIGZpcnN0IGlu
IHRoZSBjb25kaXRpb24gdG8gYXZvaWQgZG9pbmcgYSBudWxsLWRlcmVmIHdoZW4gYSBVc2VyR2Vz
dHVyZUluZGljYXRvcgorICAgICAgICBnZXRzIGNvbnN0cnVjdGVkIHdpdGggbm8gfHN0YXRlfCBi
dXQgd2l0aCBhIG5vbi1udWxsIHxkb2N1bWVudHwuCisKKyAgICAgICAgKiBkb20vVXNlckdlc3R1
cmVJbmRpY2F0b3IuaDoKKworICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwb2xpY3lUeXBlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJl
UG9saWN5OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlUG9saWN5OjphbGxvd3Mg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5oOgorICAgICAgICBBZGQgdGhl
IGZvbGxvd2luZyBmZWF0dXJlIHBvbGljaWVzOiBhY2NlbGVyb21ldGVyLCBneXJvc2NvcGUgJiBt
YWduZXRvbWV0ZXIuCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViYXBwc2VjLXBl
cm1pc3Npb25zLXBvbGljeS9ibG9iL21haW4vZmVhdHVyZXMubWQKKworICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cGFnZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9u
T3JPcmllbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxs
b3dlZFRvVXNlRGV2aWNlTW90aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6Omhhc1Blcm1pc3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVu
dGF0aW9uRXZlbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgRGlmZmVyZW50aWF0ZSBwZXJt
aXNzaW9uIHN1cHBvcnQgZm9yIGRldmljZSBtb3Rpb24gYW5kIGRldmljZSBvcmllbnRhdGlvbiB0
aGF0CisgICAgICAgIHRoZXkgYXJlIGRpZmZlcmVudC4gSW4gcGFydGljdWxhciwgdGhlIHR3byB0
eXBlcyBvZiBldmVudHMgbm93IHJlcXVpcmUgYSBkaWZmZXJlbnQKKyAgICAgICAgc3Vic2V0IG9m
IGZlYXR1cmUgcG9saWNpZXMuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyIHdhcyBtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudCB0byB0aGUg
UGFnZS4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIE1ha2Ugc3Vy
ZSB3ZSBjbGVhciB0aGUgbWFwIG9mIHBlcm1pc3Npb24gb24gdGhlIFBhZ2UncyBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIKKyAgICAgICAgdG8gYXZvaWQgdGVzdCBm
bGFraW5lc3MuCisKIDIwMjEtMDItMjMgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJl
bW92ZVJlZHVuZGFudFN0eWxlc0FuZEtlZXBTdHlsZVNwYW5JbmxpbmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggODgzOWMwMzEwNDU5YWMwZjAzNjUyNzI3OWNkY2QyYmJiNWUxOWE1ZC4uYThhYjMzZjQwOWUw
ZDIzNDdmNDVhYTI4YTcwMTJhMjNiYTQyNjcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTkxMiw3ICs5
MTIsNiBAQCBkb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNw
cAogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRh
dGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKLWRvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20vRG9jdW1l
bnRGcmFnbWVudC5jcHAKIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODFl
OTFhYjU3OGNmOTE4NjE2NDY4YzRjZTJlZjM3MTg5ZjU4MDZkNS4uZTk1MGEyMGRkYjEzM2YxMDlk
MmMxNjZkMjBjMDBiYTYwNzU4ODQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI0OCw3ICsxMjQ4LDYgQEAKIAkJNDVGRUE1
RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYw
QkI2MTYxRDBBMUJGMDAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwQkI2MTQxRDBBMUJFQzAwMjIxODEy
IC8qIEJhc2U2NFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2MENCRjM2MUQ0QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1By
b3BlcnRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLzsg
fTsKLQkJNDYwRTMwNzUyMjJGNEVGRDAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYxREE1MkEyMjJGNDg2RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dC5oICovOyB9OwogCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9N
SGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM1
MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBX
aW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC04MTgwLDggKzgxNzksNiBAQAogCQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyog
SlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQwMEMzREI4
NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4
NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2
ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNl
cnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFBMjA4MTA5
MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM1MjFB
QzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzAxMjgsOCArMzAxMjUsNiBAQAogCQkJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFF
RiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVBMzExOUQ2OEVD
MDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5QTg1RUFBMTE5
RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywKLQkJCQk0NjFE
QTUyQzIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNw
cCAqLywKLQkJCQk0NjFEQTUyQTIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50LmggKi8sCiAJCQkJNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAqLywKIAkJCQk0NjVFRERBMDIy
MkY0RUM0MDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZS5pZGwgKi8sCiAJCQkJN0MzQThBQjgyNTA5QTEwRjAwOEM0NzdGIC8qIERvY3VtZW50K0NTU09N
Vmlldy5pZGwgKi8sCkBAIC0zMTQ1MSw3ICszMTQ0Niw2IEBACiAJCQkJMTE1Q0ZBN0EyMDhCOEQ5
RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzVFQjVFMTBFODFCRTg3MDBCMjU5NjUgLyogQm9yZGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTg5NTU2RUQxOEQ0QTQ0MDAwNzY0QjAzIC8qIEJvcmRlckVkZ2UuaCBpbiBIZWFkZXJzICov
LAotCQkJCUJDQjQ3Nzk5MjVENDZFRkYwMDVFRjBDOCAvKiBSZW5kZXJNb2RlbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1RUI1REIwRTgxQjdFQTAwQjI1OTY1IC8qIEJvcmRlclZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzE2REUwMDI0MEM2NEY5MDA5MzQwQUEgLyogQm91bmRhcnlQb2lu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVEOEMzN0ExODNCRkY4QzAwOUU1M0JEIC8qIEJveFNo
YXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTY1LDcgKzMxOTU5LDYgQEAKIAkJCQk1OUE4RjFE
NjExQTY5NTEzMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRp
b25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyog
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYwRTMwNzUyMjJG
NEVGRDAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEJGMjM5
NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQzMiw2ICszNDQyNSw3IEBACiAJCQkJRTRD
Mjc5NTkwQ0Y5NzQxOTAwRTk3Qjk4IC8qIFJlbmRlck1lZGlhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBQkRERkU3QTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE0NTQ0MjRGMTE5QjM2ODcwMDlCRTkxMiAvKiBSZW5kZXJNZXRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQkNCNDc3OTkyNUQ0NkVGRjAwNUVGMEM4IC8qIFJlbmRlck1vZGVsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTM1ODZFMDE1MjY0QzQ1MDAyMkE2NTkgLyogUmVuZGVyTXVs
dGlDb2x1bW5GbG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UzMkI5QzE1MTdDMEIyMDBGNTQy
RUMgLyogUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUE3RDk4
MThGQ0I1QjAwMDQyMTg3OSAvKiBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IGQ3NTgyNzM0YWYzZDUwNzIwM2I1ZTQzOGI3YmU5ZWVjMGZmNTk2
OWQuLjhhZWU0MjMzMzRkN2YwZTU1NmUwMTcyOWE5NzdkYzMzNmI5MTA2ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01OTEsNyAr
NTkxLDcgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0
SW5Xb3JsZChET01XcmFwcGVyV29ybGQmIHdvcmxkLAogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkubm90aWZ5UGFnZU9mQXBwQm91bmRCZWhhdmlvcigpOwogI2VuZGlmCiAKLSAgICBVc2Vy
R2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHBhcmFtZXRlcnMuZm9yY2VVc2VyR2Vz
dHVyZSA9PSBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgPyBPcHRpb25hbDxQcm9jZXNzaW5nVXNlckdl
c3R1cmVTdGF0ZT4oUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSA6IFdURjo6bnVsbG9wdCk7CisgICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihwYXJhbWV0ZXJzLmZvcmNlVXNl
ckdlc3R1cmUgPT0gRm9yY2VVc2VyR2VzdHVyZTo6WWVzID8gT3B0aW9uYWw8UHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlU3RhdGU+KFByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgOiBXVEY6Om51bGxvcHQsIG1f
ZnJhbWUuZG9jdW1lbnQoKSk7CiAKICAgICBpZiAoIWNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9F
eGVjdXRlU2NyaXB0KSB8fCBpc1BhdXNlZCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRXhjZXB0aW9uRGV0YWlscyB7ICJDYW5ub3QgZXhlY3V0ZSBKYXZhU2NyaXB0IGluIHRoaXMg
ZG9jdW1lbnQiX3MgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90
aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcApp
bmRleCAzYjNlNTllYWEzZWM4MTI5OTFjMDYxM2ZjOTAzOTIzNDAwMDZjYjk1Li43MDczNGFkNDkx
NjVhMjM3ZDMwYzhiZTQ4OWZmYzY1ODE2YzYwOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25FdmVudC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJEZXZpY2VNb3Rp
b25FdmVudC5oIgogCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDQgKzEyNywyNiBAQCBFdmVudEludGVyZmFj
ZSBEZXZpY2VNb3Rpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VNb3Rpb25FdmVudDo6
cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYm
IHByb21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7Cisg
ICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXdpbmRvdyB8fCAhcGFn
ZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiTm8gYnJvd3NpbmcgY29udGV4dCJfcyB9KTsKKworICAgIFN0cmluZyBlcnJvck1l
c3NhZ2U7CisgICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uKGVycm9y
TWVzc2FnZSkpIHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1
ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOwor
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsK
KyAgICB9CisKKyAgICBwYWdlLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXIoKS5zaG91bGRBbGxvd0FjY2Vzcyhkb2N1bWVudCwgW3Byb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShQZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKHBlcm1pc3Npb25TdGF0ZSA9PSBQZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKKyAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3Is
ICJSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJl
IHRvIHByb21wdCJfcyB9KTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHBlcm1pc3Npb25TdGF0
ZSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaAppbmRleCAzOWVlZGRlNzFmMmNiYmNjMmRkMzRj
MDdiYjNkZDUzYjRhMmQ0MzNmLi5lNTBmNzQ2MWY0MjliN2Q1ZGM0NjY5OWVkNDI1ZDRhODE5MDFl
MDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaApAQCAtMjUsMTQgKzI1
LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VNb3Rpb25EYXRhOwordGVtcGxhdGU8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1jbGFzcyBEZXZp
Y2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCwgcHVibGljIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudCB7CitjbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1Ymxp
YyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEZXZpY2VNb3Rpb25FdmVudCk7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGV2aWNlTW90aW9uRXZlbnQoKTsKQEAgLTY4LDYgKzcw
LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxB
Y2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPEFjY2VsZXJhdGlvbj4mJiwgT3B0aW9uYWw8Um90YXRp
b25SYXRlPiYmLCBPcHRpb25hbDxkb3VibGU+KTsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgdXNpbmcgUGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9IERPTVBy
b21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAgICBzdGF0
aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9taXNlJiYp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoKTsKICAgICBEZXZp
Y2VNb3Rpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIERldmljZU1vdGlvbkRh
dGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKaW5kZXggMTAwYWFmMThiNTc2
MjE1YjZlNTViYjMxM2RkMTA4NWFlOTBlNmE5Zi4uNzU4MDRhNzE0YmE4YTdlNjA0OGE2NWU1MDdj
NjM5MTk4NDM3OWMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKQEAgLTM5
LDQ1ICszOSw1OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1l
bnQpCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OkRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihQYWdlJiBwYWdlKQorICAgIDogbV9w
YWdlKHBhZ2UpCiB7Ci0gICAgQVNTRVJUKCZtX2RvY3VtZW50LnRvcERvY3VtZW50KCkgPT0gJm1f
ZG9jdW1lbnQpOworfQorCitEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
IERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6YWNjZXNzU3RhdGUo
Y29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAoreworICAgIGF1dG8gaXQgPSBtX2FjY2Vz
c1N0YXRlUGVyT3JpZ2luLmZpbmQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwor
ICAgIGlmIChpdCAhPSBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2luLmVuZCgpKQorICAgICAgICByZXR1
cm4gaXQtPnZhbHVlOwogCi0gICAgLy8gSW5pdGlhbCB2YWx1ZSBpcyBiYXNlZCBvbiB0aGUgcGVy
LXNpdGUgc2V0dGluZy4KLSAgICBhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKTsKKyAg
ICAvLyBDaGVjayBwZXItc2l0ZSBzZXR0aW5nLgorICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQu
ZnJhbWUoKTsKICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSA/IGZyYW1lLT5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpIDogbnVsbHB0cikKLSAgICAgICAgbV9hY2Nlc3NTdGF0
ZSA9IGRvY3VtZW50TG9hZGVyLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRl
KCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudExvYWRlci0+ZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlOjpQcm9tcHQ7CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNhbGxiYWNrKQordm9p
ZCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OnNob3VsZEFsbG93
QWNjZXNzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248dm9pZChEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBjYWxsYmFjaykKIHsKLSAgICBhdXRv
KiBwYWdlID0gbV9kb2N1bWVudC5wYWdlKCk7Ci0gICAgYXV0byogZnJhbWUgPSBtX2RvY3VtZW50
LmZyYW1lKCk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFwYWdlIHx8ICFmcmFtZSkKICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGU6OkRlbmllZCk7CiAKLSAgICBib29sIG1heVByb21wdCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9y
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKLSAgICBpZiAobV9hY2Nlc3NTdGF0ZSAhPSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCi0gICAgICAgIHJl
dHVybiBjYWxsYmFjayhtX2FjY2Vzc1N0YXRlKTsKKyAgICBhdXRvIGFjY2Vzc1N0YXRlID0gdGhp
cy0+YWNjZXNzU3RhdGUoZG9jdW1lbnQpOworICAgIGlmIChhY2Nlc3NTdGF0ZSAhPSBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCisgICAgICAgIHJldHVy
biBjYWxsYmFjayhhY2Nlc3NTdGF0ZSk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5z
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKCptX2RvY3VtZW50LmZy
YW1lKCksIG1heVByb21wdCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICBib29sIG1heVByb21w
dCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoJmRvY3VtZW50
KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKCpkb2N1bWVudC5mcmFtZSgpLCBtYXlQcm9tcHQsIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZWN1cml0eU9yaWdpbiA9IG1ha2VSZWYoZG9j
dW1lbnQuc2VjdXJpdHlPcmlnaW4oKSksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBtX2FjY2Vzc1N0YXRlID0gcGVybWlzc2lvblN0YXRlOworICAgICAgICBtX2FjY2Vz
c1N0YXRlUGVyT3JpZ2luLnNldChzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBwZXJtaXNzaW9uU3Rh
dGUpOwogICAgICAgICBjYWxsYmFjayhwZXJtaXNzaW9uU3RhdGUpOwogCiAgICAgICAgIGlmIChw
ZXJtaXNzaW9uU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZTo6R3JhbnRlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBmb3IgKGF1dG8qIGZy
YW1lID0gbV9kb2N1bWVudC5mcmFtZSgpOyBmcmFtZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobV9kb2N1bWVudC5mcmFtZSgpKSkgeworICAg
ICAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1fcGFnZS5tYWluRnJhbWUoKTsgZnJhbWUgJiYgZnJh
bWUtPndpbmRvdygpOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKICAg
ICAgICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCk7CiAgICAgICAgICAgICBmcmFtZS0+d2luZG93KCktPnN0YXJ0TGlz
dGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKICAgICAgICAgfQogICAgIH0pOwog
fQogCit2b2lkIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6Y2xl
YXJQZXJtaXNzaW9ucygpCit7CisgICAgbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5jbGVhcigpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oCmluZGV4IDRhZjk0NjFjOWQ3
OTM0ZWYwYzQyY2Y4YzQ1OTA5OTAwYWU4MjhhMTguLjE3NjM4OGY2YjY0YzFjZjc5MTU4NGI0ZjFm
ZTlmMDU4NGJjZWZhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgKQEAgLTM2LDE5
ICszNiwyMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNz
IFBhZ2U7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
ciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoRG9j
dW1lbnQmKTsKKyAgICBleHBsaWNpdCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIoUGFnZSYpOwogCisgICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZSBhY2Nlc3NTdGF0ZShjb25zdCBEb2N1bWVudCYpIGNvbnN0OworICAgIHZvaWQgc2hv
dWxkQWxsb3dBY2Nlc3MoY29uc3QgRG9jdW1lbnQmLCBGdW5jdGlvbjx2b2lkKERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKIAotICAgIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgYWNjZXNzU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X2FjY2Vzc1N0YXRlOyB9Ci0gICAgdm9pZCBzaG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lk
KERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNsZWFyUGVybWlzc2lvbnMoKTsKIAogcHJpdmF0ZToKLSAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKLSAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIG1fYWNjZXNzU3RhdGUgeyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlOjpQcm9tcHQgfTsKKyAgICBQYWdlJiBtX3BhZ2U7CisgICAgSGFzaE1hcDxTZWN1cml0
eU9yaWdpbkRhdGEsIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IG1f
YWNjZXNzU3RhdGVQZXJPcmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKaW5kZXggZWNmMzcw
MGU0NDJlMmFkYmQ2NmNhOTdmYTNlYmE3NmVmOWUyMDdkYi4uZDAzYjZiYjBiOTIwNWI0MzlkYWZm
ZTI4NzExZTU2YWI4ZDc4Yzg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKIAorI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MTEyLDQgKzExNCwyNiBAQCBFdmVudEludGVyZmFjZSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50Ojpl
dmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCit2b2lkIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9u
KERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAg
IGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpOworICAgIGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCF3aW5kb3cgfHwgIXBhZ2UpCisgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGJyb3dz
aW5nIGNvbnRleHQiX3MgfSk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICgh
d2luZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsK
KyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lv
bigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAg
ICBwYWdlLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91
bGRBbGxvd0FjY2Vzcyhkb2N1bWVudCwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJt
aXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHBlcm1p
c3Npb25TdGF0ZSA9PSBQZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKKyAgICAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJSZXF1ZXN0aW5n
IGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJv
bXB0Il9zIH0pOworICAgICAgICBwcm9taXNlLnJlc29sdmUocGVybWlzc2lvblN0YXRlKTsKKyAg
ICB9KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAppbmRleCBlNzAzNDU4YTE2NTQ2YzIzYjhh
MTY1NTU4M2ZiODM3YzliMDkxM2RmLi44MTllY2JiMDY4NTkxMTZjYzk4MGJmNzJmYTNhM2NlOTJi
NDAyZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25F
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgK
QEAgLTI1LDE0ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIklE
TFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25EYXRhOwordGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVy
cmVkOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50
LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKK2NsYXNzIERldmljZU9y
aWVudGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoRGV2aWNlT3JpZW50YXRpb25FdmVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9yaWVudGF0aW9uKQpAQCAtNjIsNiArNjQsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgaW5pdERldmljZU9yaWVudGF0aW9uRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIE9wdGlvbmFsPGRv
dWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0aW9uYWw8ZG91YmxlPiBnYW1t
YSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47Cisg
ICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJv
bWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQo
KTsKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzMDIxYTgxZmJlNWRlYmQ2YjFmZGIzOTgyYWRmMTEzMjU2YzNhZjdhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93Lmgi
Ci0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9u
KERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lvblByb21pc2UmJiBwcm9taXNlKQotewotICAg
IGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpOwotICAgIGlmICghd2luZG93KQot
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOwotCi0gICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKLSAgICBpZiAoIXdpbmRvdy0+aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlv
bihlcnJvck1lc3NhZ2UpKSB7Ci0gICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwg
dG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAi
LiIpKTsKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRl
bmllZCk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyKCkuc2hvdWxkQWxsb3dBY2Nlc3MoW3Byb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShQZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKLSAgICAg
ICAgaWYgKHBlcm1pc3Npb25TdGF0ZSA9PSBQZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKLSAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3Is
ICJSZXF1ZXN0aW5nIGRldmljZSBvcmllbnRhdGlvbiBvciBtb3Rpb24gYWNjZXNzIHJlcXVpcmVz
IGEgdXNlciBnZXN0dXJlIHRvIHByb21wdCJfcyB9KTsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZl
KHBlcm1pc3Npb25TdGF0ZSk7Ci0gICAgfSk7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25FdmVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTMwZjNkMmMxNzQy
OTU1MTFhMzU4ZTI2NTQ4ODA0Y2VlMjMyMDBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uRXZlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZS5oIgotI2luY2x1ZGUgIklETFR5cGVzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgRG9jdW1lbnQ7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERP
TVByb21pc2VEZWZlcnJlZDsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
IHsKLXB1YmxpYzoKLQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgdXNpbmcg
UGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZTsKLSAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExF
bnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKLSAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVy
bWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9taXNlJiYpOwotI2VuZGlmCi0KLXByb3Rl
Y3RlZDoKLSAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQoKSA9IGRlZmF1bHQ7Ci0g
ICAgfkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCgpID0gZGVmYXVsdDsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGRlNTljMjdi
MTUzMjY3OWY2NmViMjUwODQ0MDg5ZjMyOTQxNzFiNTAuLjU1MTU2MDg2MTVlNWYxMWM3OGM5MjY5
ZTk3OTQ3MTc1ZmMzODE2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjcxLDcgKzI3
MSw2IEBACiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkRldmlj
ZU1vdGlvbkV2ZW50LmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgogI2Vu
ZGlmCiAKQEAgLTg1NzksMjAgKzg1NzgsNiBAQCB2b2lkIERvY3VtZW50OjppZGVudGlmaWVkRWxl
bWVudFdhc1JlbW92ZWRGcm9tRG9jdW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBtX2lkZW50
aWZpZWRFbGVtZW50c01hcC5yZW1vdmUoJmVsZW1lbnQpOwogfQogCi0jaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKLQotRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyJiBEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
KCkKLXsKLSAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKLSAgICAgICAgcmV0dXJuIHRv
cERvY3VtZW50KCkuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCk7
Ci0KLSAgICBpZiAoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
KQotICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciA9
IG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPigq
dGhpcyk7Ci0gICAgcmV0dXJuICptX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlcjsKLX0KLQotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKIFBh
aW50V29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDNhY2RmZDczYTcxOTBlMTI3NzgxNTQ1YzcxNDcyMmYyYWVkYzYyYjUuLmJm
NWZhZTNjYWU0NzA3NTk5ZGUyYWRhZTU3MjRmZmJmZTEwMmZkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMTksNyArMTE5LDYgQEAgY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBEYXRhYmFzZVRo
cmVhZDsKIGNsYXNzIERldmljZU1vdGlvbkNsaWVudDsKIGNsYXNzIERldmljZU1vdGlvbkNvbnRy
b2xsZXI7Ci1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7
CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjsKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CkBAIC0xMjAyLDEwICsxMjAxLDYg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVEZXZpY2VPcmllbnRh
dGlvbkNoYW5nZShkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEpOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciYgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyKCk7Ci0jZW5kaWYKLQogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0
aW1pbmcoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBkb3VibGUgbW9ub3RvbmljVGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xOTQwLDEwICsx
OTM1LDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyPiBtX2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgogCi0jaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPiBtX2RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlcjsKLSNlbmRpZgotCiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxU
aW1lcj4gbV9sb2dNZXNzYWdlVGFza1F1ZXVlOwogCiAgICAgVGltZXIgbV9wZW5kaW5nVGFza3NU
aW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4
IGQxM2QxYjBhNjBkOTM2ODZhNDM2NjM1NjJjYTFlOTg5NTNjYzY1NTIuLjEyYzQzNjQzNjk0NjVj
NmY1MDdkNzYzYjkzY2FkNmQyMDRkYjMxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJH
ZXN0dXJlSW5kaWNhdG9yLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFVzZXJHZXN0dXJlVG9r
ZW46OnNldE1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoRm9y
VGVzdAogICAgIG1heEludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nRm9yRmV0Y2ggPSBX
VEZNb3ZlKHZhbHVlKTsKIH0KIAotYm9vbCBVc2VyR2VzdHVyZVRva2VuOjppc1ZhbGlkRm9yRG9j
dW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAorYm9vbCBVc2VyR2VzdHVyZVRva2VuOjpp
c1ZhbGlkRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewogICAg
IHJldHVybiBtX2RvY3VtZW50c0ltcGFjdGVkQnlVc2VyR2VzdHVyZS5jb250YWlucyhkb2N1bWVu
dCk7CiB9CkBAIC0xMDIsNyArMTAyLDcgQEAgVXNlckdlc3R1cmVJbmRpY2F0b3I6OlVzZXJHZXN0
dXJlSW5kaWNhdG9yKE9wdGlvbmFsPFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlPgogICAgIGlm
IChzdGF0ZSkKICAgICAgICAgY3VycmVudFRva2VuKCkgPSBVc2VyR2VzdHVyZVRva2VuOjpjcmVh
dGUoc3RhdGUudmFsdWUoKSwgZ2VzdHVyZVR5cGUsIGRvY3VtZW50KTsKIAotICAgIGlmIChkb2N1
bWVudCAmJiBjdXJyZW50VG9rZW4oKS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgJiYgc3RhdGUp
IHsKKyAgICBpZiAoc3RhdGUgJiYgZG9jdW1lbnQgJiYgY3VycmVudFRva2VuKCktPnByb2Nlc3Np
bmdVc2VyR2VzdHVyZSgpKSB7CiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXN0SGFuZGxlZFVz
ZXJHZXN0dXJlVGltZXN0YW1wKGN1cnJlbnRUb2tlbigpLT5zdGFydFRpbWUoKSk7CiAgICAgICAg
IGlmIChwcm9jZXNzSW50ZXJhY3Rpb25TdHlsZSA9PSBQcm9jZXNzSW50ZXJhY3Rpb25TdHlsZTo6
SW1tZWRpYXRlKQogICAgICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxv
Z1VzZXJJbnRlcmFjdGlvbldpdGhSZWR1Y2VkVGltZVJlc29sdXRpb24oZG9jdW1lbnQtPnRvcERv
Y3VtZW50KCkpOwpAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZlB0cjxVc2VyR2VzdHVyZVRva2VuPiBV
c2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlKCkKICAgICByZXR1cm4gY3Vy
cmVudFRva2VuKCk7CiB9CiAKLWJvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZShEb2N1bWVudCogZG9jdW1lbnQpCitib29sIFVzZXJHZXN0dXJlSW5kaWNhdG9y
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAg
IGlmICghaXNNYWluVGhyZWFkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKaW5kZXggNjlkMmUwOTA3OTk2NDE5NTRkOGNl
ODllYWU3NzA0ZTFmOWVlZTg2NC4uZjVjYzdmYWQyMTAyMTk3MjYwYTQzY2NmYzQxN2YxNDNjYWY0
NDI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKQEAgLTEw
Miw3ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CiAKLSAgICBib29sIGlzVmFsaWRGb3JEb2N1bWVu
dChEb2N1bWVudCYpIGNvbnN0OworICAgIGJvb2wgaXNWYWxpZEZvckRvY3VtZW50KGNvbnN0IERv
Y3VtZW50JikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgVXNlckdlc3R1cmVUb2tlbihQcm9jZXNz
aW5nVXNlckdlc3R1cmVTdGF0ZSwgVXNlckdlc3R1cmVUeXBlLCBEb2N1bWVudCopOwpAQCAtMTIz
LDcgKzEyMyw3IEBAIGNsYXNzIFVzZXJHZXN0dXJlSW5kaWNhdG9yIHsKIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IGN1cnJlbnRVc2Vy
R2VzdHVyZSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKERvY3VtZW50KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZShjb25zdCBEb2N1bWVudCogPSBudWxscHRyKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JN
ZWRpYSgpOwogCiAgICAgLy8gSWYgYSBkb2N1bWVudCBpcyBwcm92aWRlZCwgaXRzIGxhc3Qga25v
d24gdXNlciBnZXN0dXJlIHRpbWVzdGFtcCBpcyB1cGRhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVh
dHVyZVBvbGljeS5jcHAKaW5kZXggMDIzZmJjNDkyZTQxMDMxNjYyNmM3ZjdiZTQyNTU4YjAyNDM3
N2UzNS4uZTUzOWQ2ZDUyZmUzNTUzODNhMjZjOTZiNWFjZjQ0OTEwZWIyNTY4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCkBAIC01Miw2ICs1MiwxNCBAQCBzdGF0aWMgY29u
c3QgY2hhciogcG9saWN5VHlwZU5hbWUoRmVhdHVyZVBvbGljeTo6VHlwZSB0eXBlKQogICAgICAg
ICByZXR1cm4gIlN5bmNYSFIiOwogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6RnVsbHNj
cmVlbjoKICAgICAgICAgcmV0dXJuICJGdWxsc2NyZWVuIjsKKyNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6R3lyb3Njb3BlOgorICAg
ICAgICByZXR1cm4gIkd5cm9zY29wZSI7CisgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpB
Y2NlbGVyb21ldGVyOgorICAgICAgICByZXR1cm4gIkFjY2VsZXJvbWV0ZXIiOworICAgIGNhc2Ug
RmVhdHVyZVBvbGljeTo6VHlwZTo6TWFnbmV0b21ldGVyOgorICAgICAgICByZXR1cm4gIk1hZ25l
dG9tZXRlciI7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgY2FzZSBGZWF0dXJlUG9s
aWN5OjpUeXBlOjpYUlNwYXRpYWxUcmFja2luZzoKICAgICAgICAgcmV0dXJuICJYUlNwYXRpYWxU
cmFja2luZyI7CkBAIC0xNjEsNiArMTY5LDExIEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGlj
eTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAg
ICBib29sIGlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNT
eW5jWEhSSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzRnVsbHNjcmVlbkluaXRpYWxp
emVkID0gZmFsc2U7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBib29sIGlz
R3lyb3Njb3BlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBib29sIGlzQWNjZWxlcm9tZXRlcklu
aXRpYWxpemVkID0gZmFsc2U7CisgICAgYm9vbCBpc01hZ25ldG9tZXRlckluaXRpYWxpemVkID0g
ZmFsc2U7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgYm9vbCBpc1hSU3BhdGlhbFRy
YWNraW5nSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICNlbmRpZgpAQCAtMTk2LDYgKzIwOSwyMyBAQCBG
ZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBw
b2xpY3kubV9mdWxsc2NyZWVuUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTEpKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZ3lyb3Njb3BlIikpIHsKKyAgICAgICAgICAgIGlz
R3lyb3Njb3BlSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1
bWVudCwgcG9saWN5Lm1fZ3lyb3Njb3BlUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTApKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgo
ImFjY2VsZXJvbWV0ZXIiKSkgeworICAgICAgICAgICAgaXNBY2NlbGVyb21ldGVySW5pdGlhbGl6
ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fYWNj
ZWxlcm9tZXRlclJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDE0KSk7CisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJtYWduZXRvbWV0ZXIi
KSkgeworICAgICAgICAgICAgaXNNYWduZXRvbWV0ZXJJbml0aWFsaXplZCA9IHRydWU7CisgICAg
ICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9tYWduZXRvbWV0ZXJSdWxlLCBp
dGVtLnN1YnN0cmluZygxMykpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyNl
bmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgieHIt
c3BhdGlhbC10cmFja2luZyIpKSB7CiAgICAgICAgICAgICBpc1hSU3BhdGlhbFRyYWNraW5nSW5p
dGlhbGl6ZWQgPSB0cnVlOwpAQCAtMjE0LDYgKzI0NCwxNCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1
cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1l
bnQmCiAgICAgICAgIHBvbGljeS5tX3NwZWFrZXJTZWxlY3Rpb25SdWxlLmFsbG93ZWRMaXN0LmFk
ZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CiAgICAgaWYgKCFpc0Rpc3BsYXlD
YXB0dXJlSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2Rpc3BsYXlDYXB0dXJlUnVsZS5h
bGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOworI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKCFpc0d5cm9zY29wZUluaXRpYWxpemVk
KQorICAgICAgICBwb2xpY3kubV9neXJvc2NvcGVSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVu
dC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CisgICAgaWYgKCFpc0FjY2VsZXJvbWV0ZXJJbml0
aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1fYWNjZWxlcm9tZXRlclJ1bGUuYWxsb3dlZExpc3Qu
YWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyAgICBpZiAoIWlzTWFnbmV0
b21ldGVySW5pdGlhbGl6ZWQpCisgICAgICAgIHBvbGljeS5tX21hZ25ldG9tZXRlclJ1bGUuYWxs
b3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyNlbmRpZgog
I2lmIEVOQUJMRShXRUJYUikKICAgICBpZiAoIWlzWFJTcGF0aWFsVHJhY2tpbmdJbml0aWFsaXpl
ZCkKICAgICAgICAgcG9saWN5Lm1feHJTcGF0aWFsVHJhY2tpbmdSdWxlLmFsbG93ZWRMaXN0LmFk
ZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CkBAIC0yNTUsNiArMjkzLDE0IEBA
IGJvb2wgRmVhdHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlwZSwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBvcmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQ
b2xpY3kobV9zeW5jWEhSUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6OkZ1bGxzY3JlZW46
CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9mdWxsc2NyZWVuUnVs
ZSwgb3JpZ2luKTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGNhc2UgVHlw
ZTo6R3lyb3Njb3BlOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1f
Z3lyb3Njb3BlUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6OkFjY2VsZXJvbWV0ZXI6Cisg
ICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9hY2NlbGVyb21ldGVyUnVs
ZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6Ok1hZ25ldG9tZXRlcjoKKyAgICAgICAgcmV0dXJu
IGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX21hZ25ldG9tZXRlclJ1bGUsIG9yaWdpbik7Cisj
ZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgY2FzZSBUeXBlOjpYUlNwYXRpYWxUcmFja2lu
ZzoKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX3hyU3BhdGlhbFRy
YWNraW5nUnVsZSwgb3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVh
dHVyZVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKaW5kZXgg
YjI0YmU4MmFmYWQzYzhmZTIwNzQzNDc0NjEyN2NiYWRjMGQ5MTFmZC4uZWVkZThmMTk3NzIwMzFl
MTBiOWM0ZDI5Mzg0YjNkNTBhOGM3YTlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5
LmgKQEAgLTQ1LDYgKzQ1LDExIEBAIHB1YmxpYzoKICAgICAgICAgRGlzcGxheUNhcHR1cmUsCiAg
ICAgICAgIFN5bmNYSFIsCiAgICAgICAgIEZ1bGxzY3JlZW4sCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyAgICAgICAgR3lyb3Njb3BlLAorICAgICAgICBBY2NlbGVyb21ldGVyLAor
ICAgICAgICBNYWduZXRvbWV0ZXIsCisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgICAg
IFhSU3BhdGlhbFRyYWNraW5nLAogI2VuZGlmCkBAIC02NCw3ICs2OSwxNCBAQCBwcml2YXRlOgog
ICAgIEFsbG93UnVsZSBtX2Rpc3BsYXlDYXB0dXJlUnVsZTsKICAgICBBbGxvd1J1bGUgbV9zeW5j
WEhSUnVsZTsKICAgICBBbGxvd1J1bGUgbV9mdWxsc2NyZWVuUnVsZTsKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICAgIEFsbG93UnVsZSBtX2d5cm9zY29wZVJ1bGU7CisgICAgQWxs
b3dSdWxlIG1fYWNjZWxlcm9tZXRlclJ1bGU7CisgICAgQWxsb3dSdWxlIG1fbWFnbmV0b21ldGVy
UnVsZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJYUikKICAgICBBbGxvd1J1bGUgbV94clNwYXRp
YWxUcmFja2luZ1J1bGU7CisjZW5kaWYKIH07CiAKIGVudW0gY2xhc3MgTG9nRmVhdHVyZVBvbGlj
eUZhaWx1cmUgeyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMzI4
NzZmOTA5OGQ0OTA1MjhjMzJmOGNlOTE3ZWMyNzZhYWRkYmNkYi4uMzhmNmNjMDA5ZjFjYmI3ZGU1
YTFlYjk1YzY1YjBlZTkxNTRiNDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAt
NTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVu
dExvb3AuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmVhdHVyZVBvbGlj
eS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC00NDYsNyArNDQ3LDcgQEAgUmVmUHRyPE1lZGlhUXVl
cnlMaXN0PiBET01XaW5kb3c6Om1hdGNoTWVkaWEoY29uc3QgU3RyaW5nJiBtZWRpYSkKICAgICBy
ZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPm1lZGlhUXVlcnlNYXRjaGVyKCkubWF0Y2hN
ZWRpYShtZWRpYSkgOiBudWxscHRyOwogfQogCi1QYWdlKiBET01XaW5kb3c6OnBhZ2UoKQorUGFn
ZSogRE9NV2luZG93OjpwYWdlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJhbWUoKSA/IGZyYW1l
KCktPnBhZ2UoKSA6IG51bGxwdHI7CiB9CkBAIC0yMDA1LDkgKzIwMDYsOSBAQCBEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAog
I2VuZGlmCiB9CiAKLWJvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9y
aWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93
ZWRUb1VzZURldmljZU1vdGlvbk9yT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAog
ewotICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRh
dGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAgaWYgKCFmcmFtZSgpIHx8ICFkb2N1bWVudCgpIHx8
ICFmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsK
ICAgICAgICAgbWVzc2FnZSA9ICJBUEkgaXMgZGlzYWJsZWQiX3M7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CkBAIC0yMDE3LDI5ICsyMDE4LDUyIEBAIGJvb2wgRE9NV2luZG93Ojppc0Fs
bG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICghaXNTYW1lU2VjdXJpdHlP
cmlnaW5Bc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIG1lc3NhZ2UgPSAiU291cmNlIGZyYW1lIGRp
ZCBub3QgaGF2ZSB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZSJfczsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2
aWNlTW90aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAoIWlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihtZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpHeXJvc2NvcGUsICpkb2N1bWVudCgpLCBMb2dGZWF0
dXJlUG9saWN5RmFpbHVyZTo6Tm8pCisgICAgICAgIHx8ICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2Vk
QnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVy
LCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKSkgeworICAgICAgICBt
ZXNzYWdlID0gIlRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBk
ZXZpY2UgbW90aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5
IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyKSJfczsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIERPTVdpbmRvdzo6aXNBbGxvd2Vk
VG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKFN0cmluZyYgbWVzc2FnZSkgY29u
c3QKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uKFN0cmlu
ZyYgbWVzc2FnZSkgY29uc3QKIHsKLSAgICBTdHJpbmcgaW5uZXJNZXNzYWdlOwotICAgIGlmICgh
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihpbm5lck1lc3NhZ2UpKSB7Ci0g
ICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAiLCBpbm5l
ck1lc3NhZ2UsICIuIik7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yT3Jp
ZW50YXRpb24obWVzc2FnZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaXNG
ZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6
VHlwZTo6R3lyb3Njb3BlLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5v
KQorICAgICAgICB8fCAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25l
cnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6QWNjZWxlcm9tZXRlciwgKmRvY3VtZW50KCksIExvZ0Zl
YXR1cmVQb2xpY3lGYWlsdXJlOjpObykKKyAgICAgICAgfHwgIWlzRmVhdHVyZVBvbGljeUFsbG93
ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6Ok1hZ25ldG9tZXRl
ciwgKmRvY3VtZW50KCksIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykpIHsKKyAgICAgICAg
bWVzc2FnZSA9ICJUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8g
ZGV2aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUt
UG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0b21ldGVyKSJfczsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHJldHVybiB0cnVlOworfQorCitib29s
IERPTVdpbmRvdzo6aGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlvbk9yT3JpZW50YXRp
b25FdmVudHMoU3RyaW5nJiBtZXNzYWdlKSBjb25zdAorewogICAgIGlmIChmcmFtZSgpLT5zZXR0
aW5ncygpLmRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQoKSkgewotICAgICAg
ICBhdXRvIGFjY2Vzc1N0YXRlID0gZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NDb250cm9sbGVyKCkuYWNjZXNzU3RhdGUoKTsKKyAgICAgICAgaWYgKCFwYWdlKCkp
IHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gYnJvd3NpbmcgY29udGV4dCJfczsKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGFjY2Vzc1N0YXRl
ID0gcGFnZSgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5h
Y2Nlc3NTdGF0ZSgqZG9jdW1lbnQoKSk7CiAgICAgICAgIHN3aXRjaCAoYWNjZXNzU3RhdGUpIHsK
ICAgICAgICAgY2FzZSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpE
ZW5pZWQ6Ci0gICAgICAgICAgICBtZXNzYWdlID0gIk5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50
YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUg
QVBJIHdhcyBkZW5pZWQuIl9zOworICAgICAgICAgICAgbWVzc2FnZSA9ICJQZXJtaXNzaW9uIHRv
IHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQiX3M7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIGNhc2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6UHJv
bXB0OgotICAgICAgICAgICAgbWVzc2FnZSA9ICJObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0
aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVz
dGVkIGFuZCBncmFudGVkLiJfczsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiUGVybWlzc2lvbiB0
byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQiX3M7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZTo6R3JhbnRlZDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjA1OCwxMCArMjA4Miwx
MCBAQCB2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklm
TmVjZXNzYXJ5KCkKICAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIgfHwgZGV2aWNlQ29udHJvbGxl
ci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRUb0FkZERldmljZU1vdGlv
bk9yaWVudGF0aW9uTGlzdGVuZXIoZXJyb3JNZXNzYWdlKSkgeworICAgIFN0cmluZyBpbm5lck1l
c3NhZ2U7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uKGlubmVyTWVz
c2FnZSkgfHwgIWhhc1Blcm1pc3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9u
RXZlbnRzKGlubmVyTWVzc2FnZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhp
cy0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOwor
ICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIk5vIGRldmljZSBvcmllbnRhdGlv
biBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIikpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDg2LDExICsyMTEwLDExIEBAIHZvaWQgRE9N
V2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKICAgICBp
ZiAoIWRldmljZUNvbnRyb2xsZXIgfHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVu
ZXIoZXJyb3JNZXNzYWdlKSkgeworICAgIFN0cmluZyBpbm5lck1lc3NhZ2U7CisgICAgaWYgKCFp
c0FsbG93ZWRUb1VzZURldmljZU1vdGlvbihpbm5lck1lc3NhZ2UpIHx8ICFoYXNQZXJtaXNzaW9u
VG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50cyhpbm5lck1lc3NhZ2UpKSB7
CiAgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CiAg
ICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCi0gICAgICAgICAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBt
YWtlU3RyaW5nKCJObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246
ICIsIGlubmVyTWVzc2FnZSwgIi4iKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCmluZGV4IDBlMzUxMTdmNWFkOGFiOGZkZGY0ZGRmNjY2OTAxN2MwMWY4
OWM0NTIuLjE1YTZiY2FmZWU0NjVlZDNmMDBkZDJjYjEwMWNlNjEzM2ZkZTE3MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaApAQCAtMzY2LDggKzM2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHN0b3BM
aXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwogCi0gICAgYm9vbCBpc0FsbG93
ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7Ci0g
ICAgYm9vbCBpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50
YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2
aWNlTW90aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CiAKICAgICBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OwogICAgIERl
dmljZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKQEAg
LTQxMCwxMyArNDEwLDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0xvY2FsRE9NV2luZG93KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNSZW1vdGVET01XaW5kb3co
KSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgUGFnZSogcGFnZSgpOworICAg
IFBhZ2UqIHBhZ2UoKSBjb25zdDsKICAgICBib29sIGFsbG93ZWRUb0NoYW5nZVdpbmRvd0dlb21l
dHJ5KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEZyYW1lPj4gY3Jl
YXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBmcmFt
ZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZy
YW1lJiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChET01XaW5kb3cmKT4mIHByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAg
IGJvb2wgaXNJbnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihTdHJpbmcm
IG1lc3NhZ2UpIGNvbnN0OworICAgIGJvb2wgaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1v
dGlvbk9yT3JpZW50YXRpb25FdmVudHMoU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKICAgICB2b2lk
IGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggODhmOTAzZWVmZDdiMGIxZDVlMDI4NmY4ODM4MjQwMmY2NDRi
NTc5Yi4uMTA2MjNlNzVhYzg5Yzk3MWE5MjA5Mzc3YzU5OTZhN2JiNzIwYWViZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC0xNzEsNiArMTcxLDEwIEBACiAjaW5jbHVkZSAiRGlzcGxheVZpZXcuaCIK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBIYXNoU2V0PFBhZ2UqPiYgYWxsUGFnZXMoKQpAQCAt
MzQ0Myw2ICszNDQ3LDE3IEBAIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKICAgICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisKK0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlciYgUGFnZTo6ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyKCkKK3sKKyAgICBpZiAoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250
cm9sbGVyKQorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlciA9IG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyPigqdGhpcyk7CisgICAgcmV0dXJuICptX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzQ29udHJvbGxlcjsKK30KKworI2VuZGlmCisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAg
c3dpdGNoIChzdGVwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE1MmY0OTI0NDRlMTkzMDRjODI2YmUy
ZjMxZjhhZDIyMjU0OTA5OWQuLjE5ZjE4YmI2ZTZkY2ZlNDgwOWZlZTU3NDRlMTQ5YWY1OWM5MmEz
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC05OSw2ICs5OSw3IEBAIGNsYXNzIENvbnRleHRNZW51Q29u
dHJvbGxlcjsKIGNsYXNzIENvb2tpZUphcjsKIGNsYXNzIERPTVJlY3RMaXN0OwogY2xhc3MgRGF0
YWJhc2VQcm92aWRlcjsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlcjsKIGNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwogY2xhc3MgRHJhZ0NhcmV0
Q29udHJvbGxlcjsKIGNsYXNzIERyYWdDb250cm9sbGVyOwpAQCAtMzEzLDYgKzMxNCwxMCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmcoKTsKICAgICBib29sIHNob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZ0J5RGVmYXVs
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlE
ZWZhdWx0OyB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFdFQkNPUkVf
RVhQT1JUIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciYgZGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKCk7CisjZW5kaWYKKwogICAgIHZv
aWQgZGlkQ2hhbmdlTWFpbkRvY3VtZW50KCk7CiAgICAgdm9pZCBtYWluRnJhbWVEaWRDaGFuZ2VU
b05vbkluaXRpYWxFbXB0eURvY3VtZW50KCk7CiAKQEAgLTkyNCw2ICs5MjksMTAgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5
bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250
cm9sbGVyPiBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjsKKyNl
bmRpZgorCiAgICAgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IG1fc3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcjsKIAogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDYxZWE5YTE1YmE5Y2QxOTMzZDgzZTU1MjdkOTk3ZTc0NjY1ZjJlMTAuLjBkM2Ji
NDFlNjVlZTMyZDIwMzU3MGM3ZTE4NWYwMjdjNjU1NTk5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTMzMyw2ICszMzMsMTAgQEAKICNpbmNsdWRlIDx3dGYvc3BpL2Rh
cndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
LmgiCisjZW5kaWYKKwogdXNpbmcgSlNDOjpDYWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2Nr
OwogdXNpbmcgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU7CkBAIC00OTEsNiArNDk1LDEwIEBAIHZv
aWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAKICAgICBw
YWdlLm1haW5GcmFtZSgpLnNldFRleHRab29tRmFjdG9yKDEuMGYpOwogCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICBwYWdlLmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzQ29udHJvbGxlcigpLmNsZWFyUGVybWlzc2lvbnMoKTsKKyNlbmRpZgorCiAgICAgcGFnZS5z
ZXRDb21wb3NpdGluZ1BvbGljeU92ZXJyaWRlKFdlYkNvcmU6OkNvbXBvc2l0aW5nUG9saWN5OjpO
b3JtYWwpOwogCiAgICAgRnJhbWVWaWV3KiBtYWluRnJhbWVWaWV3ID0gcGFnZS5tYWluRnJhbWUo
KS52aWV3KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZTdlN2JiOGI1ZDczNmRjOGQ3YTcyNjhmMTM2YjI5MzI2NzBjNmUx
YS4uZmY3N2ZmMTlmMWU1MTdkYWI0NWM1NGM0YjkyYjMwZjQxZGMxMzEyYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQxIEBACisyMDIxLTAyLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRGV2aWNlIG1vdGlvbiAvIG9yaWVudGF0aW9uIGV2ZW50cyBub3Qgd29ya2luZyBp
biB0aGlyZC1wYXJ0eSBpZnJhbWVzIGRlc3BpdGUgRmVhdHVyZS1Qb2xpY3kgYWxsb3dpbmcgaXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM5OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQyMjkyMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVy
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdl
c3R1cmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxv
d2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4tZmly
c3QtcGFydHktb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dl
ZC1ieS1mZWF0dXJlLXBvbGljeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQt
YnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBh
cnR5LWlmcmFtZS1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHkt
b25seS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHku
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9s
aWN5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5
LWZlYXR1cmUtcG9saWN5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVk
LWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10
aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1l
dmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vcmVzb3VyY2VzL3JlcXVlc3Qtb3JpZW50YXRpb24tZXZlbnRzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMi0yMyAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3ZvbHVtZS1zdXBwb3J0L3ZvbHVtZS1zdXBwb3J0
LWNsaWNrLmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiNzYw
NDgxNDM2YzYxMDQxZWI5NzVhZDdmNWZiMjE2OGVlMWE1ZTZlLi5kOTVkNDBmNjEzY2Y3NzgxZTQx
Y2VmMDNkZjc5ZTdiNjM2NDY5NGYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwLDYgKzUwLDcg
QEAgZmFzdC9mb3Jtcy9pb3MgWyBTa2lwIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBm
YXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvIFsgU2tpcCBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlv
biBbIFNraXAgXQoraHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24gWyBTa2lwIF0KIGZhc3Qv
ZXZlbnRzL2N1cnNvcnMgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2lvcyBbIFNraXAgXQogZmFzdC9l
dmVudHMvd2F0Y2hvcyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKaW5kZXggOGE4ZjQw
MjYyYWM5MTg4NDgzYzlmNjc0Y2I3MGE1OTI2N2NkZmNlZS4uMTI3NzEwOTM5NWUzZDc0NDFjN2Nk
Mjg0ZTljMGMwNzM3NTU3OGFmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAotQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2
ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFu
ZCBncmFudGVkLgorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIG5vdCB5ZXQg
cmVxdWVzdGVkLgogUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyBy
ZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCi1DT05TT0xFIE1FU1NBR0U6IE5vIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJt
aXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRl
dmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1
c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgogQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLWV4cGVjdGVkLnR4dAppbmRleCBjZTFhNzBhMmI2NjliOTJiYjRlNzZiZjU5N2VkYzlm
ZGM3YzBkNTQ0Li4wOTMxM2VlNzJjNTdkYWI1MzU5NmRlOTNiYTI2YzRjMmMwY2YzYzMxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTog
Tm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRp
bCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK0NPTlNPTEUgTUVT
U0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJt
aXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KIFJlY2VpdmVkIGRl
dmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3Jp
Z2luICIiLgogQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24oKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKaW5kZXggNzk4Mzcy
MzNjZjVkYzk1ZjZjOTI3ODg5OGJjZGZlOWU0ZjlkYTk0OC4uZWNiZGJmZGI3MTNkNTQyY2Q4MzJk
YTRjOGNjZDBlZTBjYzFjNjJlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBOb3RBbGxvd2VkRXJyb3I6IFJlcXVl
c3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIG9yIG1vdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2Vy
IGdlc3R1cmUgdG8gcHJvbXB0CitDT05TT0xFIE1FU1NBR0U6IE5vdEFsbG93ZWRFcnJvcjogUmVx
dWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBw
cm9tcHQKIFRlc3RzIHRoYXQgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSBy
ZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CmluZGV4IGM0MDI2MzhjNzM4Mzk2ZTZkNGQ5ZDVm
MjY0OWFiMzc4MDNlNWQ1ZmIuLmUwODk0OTMyNzk0MDQ2ZTFjZDUwNDExNjMwOTk5Y2YyZDI3MTBm
M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACi1D
T05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdp
bGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50
ZWQuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBi
ZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJl
cXVlc3RlZC4KIFJlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVx
dWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgotQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2Ug
bW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlz
c2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZp
Y2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0
byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgogQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dAppbmRleCBiYzM3ZDA0ZDk1MTZh
ZjRiY2I0ZjIwOWJkMTliZmRiMzE1MWZlNzEzLi43MjU0MzgxZjkyNWJkZjE1YTQ2OTI5ZGY5NDFm
NDA2MWMxNGNiNjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRp
b24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0
ZWQgYW5kIGdyYW50ZWQuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdh
cyBub3QgeWV0IHJlcXVlc3RlZC4KIFJlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlv
biBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgogQmFzaWMgdGVzdGluZyBm
b3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKaW5kZXggOTE5MzdjMTM2MjZkNDg1
OGU3NjY0NzlhZDZkZTYwYWRiZTc3YjEyZS4uYzY1ZDk0NjkxOWE2NTcwNTY2YzYyNDYyMTQxMTE4
NmIyZGI4MzZmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogTm90QWxsb3dlZEVycm9yOiBSZXF1
ZXN0aW5nIGRldmljZSBvcmllbnRhdGlvbiBvciBtb3Rpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNl
ciBnZXN0dXJlIHRvIHByb21wdAorQ09OU09MRSBNRVNTQUdFOiBOb3RBbGxvd2VkRXJyb3I6IFJl
cXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVy
ZSB0byBwcm9tcHQKIFRlc3RzIHRoYXQgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVy
bWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbAppbmRleCA5MjY5OTJhZDQzNThkZDcz
YmNjOTUyYTcwODQ4MWU1MmRkNmU1Y2YxLi4xMDk5ZDE5ZjQ3OWViY2FiODVhMTkyYTQxMGZiMDcz
ODJmZjIwYmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKQEAgLTksNiArOSw3IEBA
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQ
ZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgdGVzdEZhaWxlZCgicmVxdWVzdFBl
cm1pc3Npb24gcHJvbWlzZSB3YXMgbm90IHJlamVjdGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7
CiB9LCAoX2UpID0+IHsKICAgICBlID0gX2U7CiAgICAgY29uc29sZS5sb2coZSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4t
Zmlyc3QtcGFydHktb25seS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM0N2ZmNmI1YjRhMmIw
Njc4OTQ2Yzk4N2I2OGUxYTlmMTY4ZTZiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1m
aXJzdC1wYXJ0eS1vbmx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitSZWNlaXZlZCBk
ZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNl
IG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0
aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlv
biAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLgorVGVzdHMgdGhhdCBnaXZpbmcgZGV2aWNlIG1vdGlvbiBwZXJtaXNzaW9u
IGluIHRoZSBtYWluIGZyYW1lIGRvZXMgbm90IGdpdmUgYWNjZXNzIHRvIHRoaXJkLXBhcnR5IGlm
cmFtZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAi
Z3JhbnRlZCIKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0
LXBhcnR5LW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGQ2NGQ4OTAxM2NjYWVkYjFkNjhjYjQyNjQyYWEzZDliN2MwY2ViNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwKQEAgLTAsMCArMSwzNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBnaXZpbmcgZGV2aWNlIG1vdGlvbiBwZXJtaXNzaW9uIGluIHRoZSBtYWluIGZy
YW1lIGRvZXMgbm90IGdpdmUgYWNjZXNzIHRvIHRoaXJkLXBhcnR5IGlmcmFtZXMuIik7Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9
IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAg
IGZpbmlzaEpTVGVzdCgpOyAgICAKK307CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4geworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jl
c3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisgICAgICAgIC8vIElmIHByb21wdGVk
LCBkZW55LgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFs
c2UpOworCisgICAgICAgIC8vIENyZWF0ZSB0aGlyZC1wYXJ0eSBpZnJhbWUgdGhhdCByZXF1ZXN0
cyBwZXJtaXNzaW9uIGZvciBpdHNlbGYsIGJ1dCB0aGlzIHRpbWUgc2hvdWxkIGJlIHJlamVjdGVk
LgorICAgICAgICBsZXQgdGVzdEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2Rldmlj
ZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwiOworICAg
ICAgICB0ZXN0RnJhbWUuYWxsb3cgPSAiYWNjZWxlcm9tZXRlcjtneXJvc2NvcGUiOworICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZCh0ZXN0RnJhbWUpOworICAgIH0pOworfSk7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxs
b3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1h
bGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTA4MGIz
NzY0YzYwMDFlZjNmZjRmODEwZjhiZjBkNGE0ZjBlMTE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGly
ZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3
aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIG5vdCB5
ZXQgcmVxdWVzdGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2Vz
cyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuCitU
ZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmlj
ZSBtb3Rpb24gZXZlbnRzIGlmIGFsbG93ZWQgYnkgZmVhdHVyZSBwb2xpY3kuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0YSBpcyAiZ3JhbnRlZCIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRo
aXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBh
cnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFi
ZjdiZDJlZjk1MzgzYzFmM2UwMzZjNmVlMmQ1ZTU1NDBhMDI1MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
dGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCww
ICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNz
IHRvIGRldmljZSBtb3Rpb24gZXZlbnRzIGlmIGFsbG93ZWQgYnkgZmVhdHVyZSBwb2xpY3kuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7Cisg
ICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImdyYW50ZWQi
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVz
dC1tb3Rpb24tZXZlbnRzLmh0bWwiIGFsbG93PSJhY2NlbGVyb21ldGVyO2d5cm9zY29wZSI+PC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQt
cGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ0MTc5N2EzYTdiNmZiOTlhN2M2YzU0YTg4Y2EyZDQ4NTVkMjMx
MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZm
aWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05T
T0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNv
bjogVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBt
b3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9z
Y29wZSAmIGFjY2VsZXJvbWV0ZXIpLgorQ09OU09MRSBNRVNTQUdFOiBDYWxsIHRvIHJlcXVlc3RQ
ZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBh
bGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQg
dmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyKS4KK1Rlc3RzIHRo
YXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1v
dGlvbiBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3kuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhp
cmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xp
Y3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jZDViYjMxNWViNTZlMzI3YjQ0OWFkZjg5MWU3OWZlNjM5ZmMw
NTA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3Vm
ZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhp
cmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBl
dmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpT
VGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMu
aHRtbCIgYWxsb3c9Imd5cm9zY29wZSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0
eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDJkYjM2NjU2OTYyNzI5
NmUxYmY2Y2QzN2U0OWJjNzg5MmFmNDczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1p
ZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NB
R0U6IE5vIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogVGhpcmQt
cGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5s
ZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFj
Y2VsZXJvbWV0ZXIpLgorQ09OU09MRSBNRVNTQUdFOiBDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9u
KCkgZmFpbGVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFj
Y2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1
cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyKS4KK1Rlc3RzIHRoYXQgdGhpcmQt
cGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBldmVu
dHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0YSBpcyAiZGVu
aWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1p
ZnJhbWUtZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVkMTEzYmI5OTUxNWM1YzdlOWE1ZjRiMGUw
ZWQzY2YwYzM0MjZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmll
ZC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW5u
b3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBldmVudHMuIik7Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlz
aEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVu
dHMuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxs
b3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZp
cnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzMmNkMGM3ZDUyN2IxYmIw
MGJiYzJiZjM4OGZlNzVjZDIwODFhOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1p
bi1maXJzdC1wYXJ0eS1vbmx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitSZWNlaXZl
ZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2
aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24g
dG8gdXNlIHRoZSBBUEkgd2FzIG5vdCB5ZXQgcmVxdWVzdGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9y
aWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuCitUZXN0cyB0aGF0IGdpdmluZyBkZXZpY2Ugb3JpZW50YXRp
b24gcGVybWlzc2lvbiBpbiB0aGUgbWFpbiBmcmFtZSBkb2VzIG5vdCBnaXZlIGFjY2VzcyB0byB0
aGlyZC1wYXJ0eSBpZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIGUuZGF0YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0
LXBhcnR5LW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmYwYjljN2IzMWFmZWZlNDViNzdhM2Y2MjIw
MTZlZjdhNTc4ZWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFy
dHktb25seS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZ2l2aW5nIGRldmljZSBvcmll
bnRhdGlvbiBwZXJtaXNzaW9uIGluIHRoZSBtYWluIGZyYW1lIGRvZXMgbm90IGdpdmUgYWNjZXNz
IHRvIHRoaXJkLXBhcnR5IGlmcmFtZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8g
SWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsK
Kworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307
CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgIERldmljZU9yaWVudGF0
aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAg
IHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0
IiwgImdyYW50ZWQiKTsKKyAgICAgICAgLy8gSWYgcHJvbXB0ZWQsIGRlbnkuCisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKKyAgICAgICAgLy8g
Q3JlYXRlIHRoaXJkLXBhcnR5IGlmcmFtZSB0aGF0IHJlcXVlc3RzIHBlcm1pc3Npb24gZm9yIGl0
c2VsZiwgYnV0IHRoaXMgdGltZSBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgIGxldCB0ZXN0
RnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgdGVzdEZy
YW1lLnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291
cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIjsKKyAgICAgICAgdGVzdEZyYW1l
LmFsbG93ID0gImFjY2VsZXJvbWV0ZXI7Z3lyb3Njb3BlO21hZ25ldG9tZXRlciI7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kKHRlc3RGcmFtZSk7CisgICAgfSk7Cit9KTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1l
LWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5
LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YzgyMzE1ZTcxNjI4OGJiOGM2MGUyZmRhNTQ1ZTQ4NTM1YmQ3ODYwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBv
cmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVz
ZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRh
dGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbiByZXF1
ZXN0IGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIGlmIGFsbG93ZWQgYnkgZmVh
dHVyZSBwb2xpY3kuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0
YSBpcyAiZ3JhbnRlZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnkt
ZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1m
ZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMjg4Y2YzMTNlYTgxYTcyMDk2YmRlZDA3
ZTRhZWRiMzliODlkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1l
LWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRh
dGlvbiBldmVudHMgaWYgYWxsb3dlZCBieSBmZWF0dXJlIHBvbGljeS4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCisvLyBJZiBwcm9tcHRlZCwgYWxsb3cuCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKHRydWUpOworCitvbm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmRhdGEiLCAiZ3JhbnRlZCIpOworICAgIGZpbmlz
aEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9u
LWV2ZW50cy5odG1sIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjtneXJvc2NvcGU7bWFnbmV0b21ldGVy
Ij48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0
eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3Jp
ZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVy
ZS1wb2xpY3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3M2FkZjZkMDZjNzBmOWMzODM5MGNl
OGIyMGI4YTliZDI3OTAyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZy
YW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2
ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBh
bGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxs
b3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWdu
ZXRvbWV0ZXIpLgorQ09OU09MRSBNRVNTQUdFOiBDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkg
ZmFpbGVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2Vz
cyB0byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVh
dHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRvbWV0ZXIpLgor
VGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpdGggaW5zdWZmaWNpZW50IGZlYXR1cmUgcG9saWN5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmll
ZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQt
ZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZDhhMjY1NDdiOTQ3
OTA2ZDlhMTc0MGI2N2Y0YzMxZDM0MDU1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQt
cGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbApA
QCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVl
c3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQg
ZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0
ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNz
YWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307Cis8L3Njcmlw
dD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9u
L3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIiBhbGxvdz0iZ3lyb3Nj
b3BlIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUt
ZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTUxZWZhNzFjNTc5NzRmZWU2YzY3ODRm
ODhjODdiMGNjNjBjZjdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFt
ZS1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTog
Tm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJk
LXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRp
b24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29w
ZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRvbWV0ZXIpLgorQ09OU09MRSBNRVNTQUdFOiBDYWxs
IHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFt
ZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4
cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJv
bWV0ZXIgJiBtYWduZXRvbWV0ZXIpLgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNh
bm5vdCByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlm
cmFtZS1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDE2ZGE2ZDM0ZGE0Zjg3MThkYzA3NzE4NzU1
MjcxNjA4MmM5YjdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMg
Y2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMuIik7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAg
ZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9y
aWVudGF0aW9uLWV2ZW50cy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNl
cy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NmYyODcxM2I4MTVkOTYxZDhkODZlY2ZkY2ZlYzhjY2MwYmJjMDhmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVz
b3VyY2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4geworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVz
dWx0KSA9PiB7CisgICAgICAgIHRvcC5wb3N0TWVzc2FnZShyZXN1bHQsICIqIik7CisgICAgfSk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qtb3JpZW50
YXRpb24tZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZDJlZWY1ODBkMDU3NDk5YmMyNzIxZGIzY2ViZDg3ODAwNTA0MDg5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2Vz
L3JlcXVlc3Qtb3JpZW50YXRpb24tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJl
KCgpID0+IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIHRvcC5wb3N0TWVzc2FnZShyZXN1bHQsICIqIik7
CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVmNmRkMzc5MmVmMzVm
ZTA5NzU4YWYxYTExOTZhYzAzNTJlYWUxNGEuLjBkMDM1MmQ2ODU4NTkwZWRmYjJmNDUxZWFlYjEy
OTc5N2Q0MTk3ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE1LDYgKzE1LDcgQEAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwgWyBQYXNzIF0KIGNvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sIFsgUGFzcyBdCiBjb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbCBbIFBhc3MgXQogZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24gWyBQYXNzIF0KK2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBd
CiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0K
IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421412</attachid>
            <date>2021-02-24 08:35:46 -0800</date>
            <delta_ts>2021-02-24 14:34:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221399-20210224083545.patch</filename>
            <type>text/plain</type>
            <size>80351</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFhZWE2NTNlMTk5ZGEx
ZGFlZTE2ZDFkMDEzZWY3ZDQ3NmNiZWU1My4uZmIyMTc5NTgyYTM3YWY5ZDJhN2JjMWQzNDBmYTM5
YWIyMWE3YTBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIxLTAyLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGV2aWNlIG1vdGlvbiAvIG9y
aWVudGF0aW9uIGV2ZW50cyBub3Qgd29ya2luZyBpbiB0aGlyZC1wYXJ0eSBpZnJhbWVzIGRlc3Bp
dGUgRmVhdHVyZS1Qb2xpY3kgYWxsb3dpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQy
MjkyMjc+CisKKyAgICAgICAgQWxsb3cgdGhpcmQtcGFydHkgaWZyYW1lcyB0byByZXF1ZXN0IGFj
Y2VzcyB0byBkZXZpY2UgbW90aW9uIC8gb3JpZW50YXRpb24gZXZlbnRzIGlmIHBlcm1pdHRlZCB2
aWEKKyAgICAgICAgRmVhdHVyZS1Qb2xpY3kuIFRvIG1hdGNoIEJsaW5rLCB0aGUgZm9sbG93aW5n
IGZlYXR1cmVzIG5lZWQgdG8gYmUgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3k6CisgICAgICAg
IC0gRGV2aWNlT3JpZW50YXRpb25FdmVudDogZ3lyb3Njb3BlLCBhY2NlbGVyb21ldGVyIGFuZCBt
YWduZXRvbWV0ZXIKKyAgICAgICAgLSBEZXZpY2VNb3Rpb25FdmVudDogZ3lyb3Njb3BlIGFuZCBh
Y2NlbGVyb21ldGVyCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhp
cmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3Qt
cGFydHktb25seS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVh
dHVyZS1wb2xpY3kuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5z
dWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUt
ZGVuaWVkLmh0bWwKKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgRHJvcCBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQgY2xhc3MgYXMgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQpOgorICAgICAgICBNYWtlIHN1
cmUgd2Ugc3BlY2lmeSB0aGUgZG9jdW1lbnQgd2hlbiB0YWtpbmcgYSB1c2VyIGdlc3R1cmUgd2hl
biBhc2tlZCB0byBydW4gYSBzY3JpcHQuCisgICAgICAgIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1
c2Ugc29tZSBjbGllbnRzIHdhbnQgdG8ga25vdyB0aGF0IHRoZXJlIHdhcyBhIHVzZXIgZ2VzdHVy
ZSBmb3IKKyAgICAgICAgYSBkb2N1bWVudCB3aXRoaW4gdGhlaXIgb3JpZ2luIChsaWtlIGRldmlj
ZSBtb3Rpb24gJiBvcmllbnRhdGlvbikuCisKKyAgICAgICAgKiBkb20vRGV2aWNlTW90aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uRXZlbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKiBkb20vRGV2aWNlTW90aW9uRXZlbnQuaDoKKyAgICAgICAgKiBk
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogZG9tL0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnQuaDoKKyAgICAgICAgTW92ZSByZXF1ZXN0UGVybWlzc2lvbigpIGZy
b20gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IGNsYXNzIHRvIGl0cyBzdWJjbGFzc2Vz
IG5vdyB0aGF0IHRoZWlyCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBhcmUgc2xpZ2h0bHkgZGlm
ZmVyZW50LgorCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXI6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXI6OmFjY2Vzc1N0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6c2hvdWxkQWxsb3dBY2Nl
c3MpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyOjpjbGVhclBlcm1pc3Npb25zKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg6CisgICAgICAgIERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlciBpcyB0aWVkIHRvIHRoZSB0b3AgZG9jdW1lbnQg
YXMgdXNlZCB0byBoYXZlIGEgc2luZ2xlCisgICAgICAgIGNhY2hlZCAncGVybWlzc2lvbiBzdGF0
ZScgc2luY2Ugd2UgdXNlZCB0byBvbmx5IHN1cHBvcnQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90
aW9uIGV2ZW50cyBpbgorICAgICAgICBmaXJzdC1wYXJ0eSBjb250ZW50LiBOb3cgdGhhdCB3ZSBz
dXBwb3J0IHRob3NlIGV2ZW50cyBpbiB0aGlyZC1wYXJ0eSBjb250ZW50LCBJIHJlcGxhY2VkIHRo
ZQorICAgICAgICBzaW5nbGUgJ3Blcm1pc3Npb24gc3RhdGUnIGRhdGEgbWVtYmVyIGludG8gYSBt
YXAgb2YgJ3Blcm1pc3Npb24gc3RhdGUnIHBlciBvcmlnaW4uIFRoaXMgYWxsb3dzCisgICAgICAg
IHVzIHRvIGtub3cgc3luY2hyb25vdXNseSAoYW5kIHdpdGhvdXQgSVBDIHRvIHRoZSBVSVByb2Nl
c3MpIHRoZSBrbm93biBwZXJtaXNzaW9uIHN0YXRlIG9mIGVhY2gKKyAgICAgICAgaWZyYW1lLgor
ICAgICAgICBBbHNvLCBJIG5vdyBwYXNzIHRoZSBkb2N1bWVudCB0byBVc2VyR2VzdHVyZUluZGlj
YXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgdG8gbWFrZSBzdXJlIHRoYXQKKyAgICAgICAg
aW50ZXJhY3Rpbmcgd2l0aCB0aGUgdG9wIGZyYW1lIGRvZXMgbm90IGFsbG93IGEgdGhpcmQtcGFy
dHkgaWZyYW1lIHRvIHJlcXVlc3QgcGVybWlzc2lvbiB0byB1c2UKKyAgICAgICAgdGhlIGRldmlj
ZSBtb3Rpb24gJiBvcmllbnRhdGlvbiBBUEkuIFRoZSB1c2VyIG5lZWRzIHRvIGludGVyYWN0IHdp
dGggdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWUKKyAgICAgICAgdG8gYWxsb3cgdGhlIGlmcmFtZSB0
byBwcm9tcHQgdGhlIHVzZXIuCisKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgIERyb3AgRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50IGNsYXNzIG5vdyB0aGF0IHRoZSAyIHN1YmNsYXNzZXMgbmVlZCBhIHNsaWdo
dGx5IGRpZmZlcmVudAorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiByZXF1ZXN0UGVybWlzc2lv
bigpLgorCisgICAgICAgICogZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OmlzVmFsaWRGb3JEb2N1bWVudCBjb25zdCk6Cisg
ICAgICAgIE1ha2UgcGFyYW1ldGVyIGNvbnN0IHNpbmNlIGl0IGNhbiBiZS4KKworICAgICAgICAo
V2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6Cisg
ICAgICAgIENoZWNrIHN0YXRlIGZpcnN0IGluIHRoZSBjb25kaXRpb24gdG8gYXZvaWQgZG9pbmcg
YSBudWxsLWRlcmVmIHdoZW4gYSBVc2VyR2VzdHVyZUluZGljYXRvcgorICAgICAgICBnZXRzIGNv
bnN0cnVjdGVkIHdpdGggbm8gfHN0YXRlfCBidXQgd2l0aCBhIG5vbi1udWxsIHxkb2N1bWVudHwu
CisKKyAgICAgICAgKiBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaDoKKworICAgICAgICAqIGh0
bWwvRmVhdHVyZVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2xpY3lUeXBlTmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlUG9saWN5OjpwYXJzZSk6CisgICAgICAgIChXZWJD
b3JlOjpGZWF0dXJlUG9saWN5OjphbGxvd3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvRmVhdHVy
ZVBvbGljeS5oOgorICAgICAgICBBZGQgdGhlIGZvbGxvd2luZyBmZWF0dXJlIHBvbGljaWVzOiBh
Y2NlbGVyb21ldGVyLCBneXJvc2NvcGUgJiBtYWduZXRvbWV0ZXIuCisgICAgICAgIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViYXBwc2VjLXBlcm1pc3Npb25zLXBvbGljeS9ibG9iL21haW4vZmVh
dHVyZXMubWQKKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRh
dGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Omhhc1Blcm1pc3Npb25U
b1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uRXZlbnRzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklm
TmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdG
b3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgRGlmZmVyZW50aWF0ZSBwZXJtaXNzaW9uIHN1cHBvcnQgZm9yIGRldmljZSBtb3Rp
b24gYW5kIGRldmljZSBvcmllbnRhdGlvbiB0aGF0CisgICAgICAgIHRoZXkgYXJlIGRpZmZlcmVu
dC4gSW4gcGFydGljdWxhciwgdGhlIHR3byB0eXBlcyBvZiBldmVudHMgbm93IHJlcXVpcmUgYSBk
aWZmZXJlbnQKKyAgICAgICAgc3Vic2V0IG9mIGZlYXR1cmUgcG9saWNpZXMuCisKIDIwMjEtMDIt
MjMgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIE51bGxwdHIg
Y3Jhc2ggaW4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZVJlZHVuZGFudFN0eWxlc0Fu
ZEtlZXBTdHlsZVNwYW5JbmxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggODgzOWMwMzEwNDU5YWMwZjAz
NjUyNzI3OWNkY2QyYmJiNWUxOWE1ZC4uYThhYjMzZjQwOWUwZDIzNDdmNDVhYTI4YTcwMTJhMjNi
YTQyNjcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTkxMiw3ICs5MTIsNiBAQCBkb20vRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcAogZG9tL0RldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwCiBkb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5jcHAKLWRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKIGRvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODFlOTFhYjU3OGNmOTE4NjE2NDY4YzRj
ZTJlZjM3MTg5ZjU4MDZkNS4uZTk1MGEyMGRkYjEzM2YxMDlkMmMxNjZkMjBjMDBiYTYwNzU4ODQ3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTI0OCw3ICsxMjQ4LDYgQEAKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8q
IERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQkI2MTYxRDBBMUJGMDAwMjIxODEy
IC8qIEJhc2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDYwQkI2MTQxRDBBMUJFQzAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MENC
RjM2MUQ0QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MENCRjM0MUQ0QkNDRkUwMDky
RTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLzsgfTsKLQkJNDYwRTMwNzUyMjJGNEVG
RDAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYxREE1MkEyMjJGNDg2RjAwRDA1
QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovOyB9OwogCQk0NjBFMzA3
NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1
RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcy
RDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIg
LyogV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MTgwLDggKzgxNzks
NiBAQAogCQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJv
cGVydGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkND
RkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQwMEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYz
NDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyog
V2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lu
ZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAxMjgsOCArMzAx
MjUsNiBAQAogCQkJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVBMzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywKLQkJCQk0NjFEQTUyQzIyMkY0ODZGMDBEMDVBODcg
LyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCAqLywKLQkJCQk0NjFEQTUyQTIy
MkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggKi8sCiAJ
CQkJNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaCAqLywKIAkJCQk0NjVFRERBMDIyMkY0RUM0MDBCNDZFMTYgLyogRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwgKi8sCiAJCQkJN0MzQThB
QjgyNTA5QTEwRjAwOEM0NzdGIC8qIERvY3VtZW50K0NTU09NVmlldy5pZGwgKi8sCkBAIC0zMTQ1
MSw3ICszMTQ0Niw2IEBACiAJCQkJMTE1Q0ZBN0EyMDhCOEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9y
bWF0dGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjVFMTBFODFCRTg3MDBCMjU5
NjUgLyogQm9yZGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTg5NTU2RUQxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQjQ3Nzk5MjVENDZF
RkYwMDVFRjBDOCAvKiBSZW5kZXJNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1REIw
RTgxQjdFQTAwQjI1OTY1IC8qIEJvcmRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzE2
REUwMDI0MEM2NEY5MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkVEOEMzN0ExODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggaW4gSGVhZGVycyAqLywK
QEAgLTMxOTY1LDcgKzMxOTU5LDYgQEAKIAkJCQk1OUE4RjFENjExQTY5NTEzMDAxQUMzNEEgLyog
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OTBFMUI0
OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYwRTMwNzUyMjJGNEVGRDAwOUEwNjA2IC8qIERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwRTMwNzcy
MjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJCNDAx
RjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zNDQzMiw2ICszNDQyNSw3IEBACiAJCQkJRTRDMjc5NTkwQ0Y5NzQxOTAwRTk3Qjk4
IC8qIFJlbmRlck1lZGlhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQkRERkU3QTBBNUM2RTcwMDBB
M0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTQ0MjRGMTE5
QjM2ODcwMDlCRTkxMiAvKiBSZW5kZXJNZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNCNDc3
OTkyNUQ0NkVGRjAwNUVGMEM4IC8qIFJlbmRlck1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTM1ODZFMDE1MjY0QzQ1MDAyMkE2NTkgLyogUmVuZGVyTXVsdGlDb2x1bW5GbG93LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0UzMkI5QzE1MTdDMEIyMDBGNTQyRUMgLyogUmVuZGVyTXVsdGlDb2x1
bW5TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUE3RDk4MThGQ0I1QjAwMDQyMTg3OSAvKiBS
ZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ3
NTgyNzM0YWYzZDUwNzIwM2I1ZTQzOGI3YmU5ZWVjMGZmNTk2OWQuLjhhZWU0MjMzMzRkN2YwZTU1
NmUwMTcyOWE5NzdkYzMzNmI5MTA2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01OTEsNyArNTkxLDcgQEAgVmFsdWVPckV4Y2Vw
dGlvbiBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0SW5Xb3JsZChET01XcmFwcGVyV29y
bGQmIHdvcmxkLAogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkubm90aWZ5UGFnZU9mQXBw
Qm91bmRCZWhhdmlvcigpOwogI2VuZGlmCiAKLSAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0
dXJlSW5kaWNhdG9yKHBhcmFtZXRlcnMuZm9yY2VVc2VyR2VzdHVyZSA9PSBGb3JjZVVzZXJHZXN0
dXJlOjpZZXMgPyBPcHRpb25hbDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4oUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKSA6IFdURjo6bnVsbG9wdCk7CisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
Z2VzdHVyZUluZGljYXRvcihwYXJhbWV0ZXJzLmZvcmNlVXNlckdlc3R1cmUgPT0gRm9yY2VVc2Vy
R2VzdHVyZTo6WWVzID8gT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGU+KFByb2Nl
c3NpbmdVc2VyR2VzdHVyZSkgOiBXVEY6Om51bGxvcHQsIG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAK
ICAgICBpZiAoIWNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBpc1Bh
dXNlZCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGV0YWlscyB7
ICJDYW5ub3QgZXhlY3V0ZSBKYXZhU2NyaXB0IGluIHRoaXMgZG9jdW1lbnQiX3MgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAppbmRleCAzYjNlNTllYWEzZWM4MTI5
OTFjMDYxM2ZjOTAzOTIzNDAwMDZjYjk1Li5iZTcwYzliMDVjZGM4YzBiZjQyZWMxMjRiODIxMDhi
ZmM3NGM0ODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKQEAg
LTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTI1LDQgKzEyNywyNiBAQCBFdmVudEludGVyZmFjZSBEZXZpY2VNb3Rpb25FdmVudDo6
ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQordm9pZCBEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9j
dW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgYXV0
byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgYXV0byogcGFnZSA9IGRvY3Vt
ZW50LnBhZ2UoKTsKKyAgICBpZiAoIXdpbmRvdyB8fCAhcGFnZSkKKyAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYnJvd3Npbmcg
Y29udGV4dCJfcyB9KTsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCF3aW5k
b3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uKGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAg
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxl
ZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAgICBkb2N1bWVu
dC5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxv
d0FjY2Vzcyhkb2N1bWVudCwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHBlcm1p
c3Npb25TdGF0ZSkgbXV0YWJsZSB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVy
bWlzc2lvblN0YXRlOjpQcm9tcHQpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFj
Y2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7CisgICAgICAgIHBy
b21pc2UucmVzb2x2ZShwZXJtaXNzaW9uU3RhdGUpOworICAgIH0pOworfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgK
aW5kZXggMzllZWRkZTcxZjJjYmJjYzJkZDM0YzA3YmIzZGQ1M2I0YTJkNDMzZi4uZTUwZjc0NjFm
NDI5YjdkNWRjNDY2OTllZDQyNWQ0YTgxOTAxZTAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgorI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RGV2aWNlTW90aW9uRGF0YTsKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVBy
b21pc2VEZWZlcnJlZDsKIAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMg
RXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworY2xhc3MgRGV2
aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoRGV2aWNlTW90aW9uRXZlbnQpOwogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmlj
ZU1vdGlvbkV2ZW50KCk7CkBAIC02OCw2ICs3MCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGlu
aXREZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMs
IGJvb2wgY2FuY2VsYWJsZSwgT3B0aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRpb25hbDxBY2Nl
bGVyYXRpb24+JiYsIE9wdGlvbmFsPFJvdGF0aW9uUmF0ZT4mJiwgT3B0aW9uYWw8ZG91YmxlPik7
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1pc3Npb25T
dGF0ZSA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7CisgICAgdXNp
bmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248
UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9j
dW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIERl
dmljZU1vdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBEZXZpY2VNb3Rpb25EYXRhKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXIuY3BwCmluZGV4IDEwMGFhZjE4YjU3NjIxNWI2ZTU1YmIzMTNkZDEwODVhZTkwZTZhOWYu
LmU3NTI1MWUxMjM1ZjEwOGJkMmNhNDdjN2ExNjY3OTVlYTdhN2IzZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0NvbnRyb2xsZXIuY3BwCkBAIC0zOSwzOSArMzksNTAgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OkRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihEb2N1bWVudCYgZG9jdW1l
bnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRy
b2xsZXIoRG9jdW1lbnQmIHRvcERvY3VtZW50KQorICAgIDogbV90b3BEb2N1bWVudCh0b3BEb2N1
bWVudCkKIHsKLSAgICBBU1NFUlQoJm1fZG9jdW1lbnQudG9wRG9jdW1lbnQoKSA9PSAmbV9kb2N1
bWVudCk7Cit9CisKK0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjphY2Nlc3NTdGF0ZShjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fYWNj
ZXNzU3RhdGVQZXJPcmlnaW4uZmluZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7
CisgICAgaWYgKGl0ZXJhdG9yICE9IG1fYWNjZXNzU3RhdGVQZXJPcmlnaW4uZW5kKCkpCisgICAg
ICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWU7CisKKyAgICAvLyBDaGVjayBwZXItc2l0ZSBzZXR0
aW5nLgorICAgIGlmICgmZG9jdW1lbnQgPT0gJm1fdG9wRG9jdW1lbnQgfHwgZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5pc1NhbWVPcmlnaW5BcyhtX3RvcERvY3VtZW50LnNlY3VyaXR5T3JpZ2lu
KCkpKSB7CisgICAgICAgIGF1dG8qIGZyYW1lID0gbV90b3BEb2N1bWVudC5mcmFtZSgpOworICAg
ICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSA/IGZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpIDogbnVsbHB0cikKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudExv
YWRlci0+ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgIH0KIAot
ICAgIC8vIEluaXRpYWwgdmFsdWUgaXMgYmFzZWQgb24gdGhlIHBlci1zaXRlIHNldHRpbmcuCi0g
ICAgYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCk7Ci0gICAgaWYgKGF1dG8qIGRvY3Vt
ZW50TG9hZGVyID0gZnJhbWUgPyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSA6IG51
bGxwdHIpCi0gICAgICAgIG1fYWNjZXNzU3RhdGUgPSBkb2N1bWVudExvYWRlci0+ZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgIHJldHVybiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQ7CiB9CiAKLXZvaWQgRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0FjY2VzcyhGdW5j
dGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNh
bGxiYWNrKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6
OnNob3VsZEFsbG93QWNjZXNzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248dm9p
ZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBjYWxsYmFjaykK
IHsKLSAgICBhdXRvKiBwYWdlID0gbV9kb2N1bWVudC5wYWdlKCk7Ci0gICAgYXV0byogZnJhbWUg
PSBtX2RvY3VtZW50LmZyYW1lKCk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsK
KyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFwYWdlIHx8ICFm
cmFtZSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CiAKLSAgICBib29sIG1heVByb21wdCA9IFVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKLSAgICBpZiAobV9hY2Nlc3NT
dGF0ZSAhPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhtX2FjY2Vzc1N0YXRlKTsKKyAgICBhdXRvIGFjY2Vz
c1N0YXRlID0gdGhpcy0+YWNjZXNzU3RhdGUoZG9jdW1lbnQpOworICAgIGlmIChhY2Nlc3NTdGF0
ZSAhPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhhY2Nlc3NTdGF0ZSk7CiAKLSAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKCpt
X2RvY3VtZW50LmZyYW1lKCksIG1heVByb21wdCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICBi
b29sIG1heVByb21wdCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1
cmUoJmRvY3VtZW50KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKCpkb2N1bWVudC5mcmFtZSgpLCBtYXlQcm9t
cHQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZWN1cml0eU9yaWdpbiA9
IG1ha2VSZWYoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlz
c2lvblN0YXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBtX2FjY2Vzc1N0YXRlID0gcGVybWlzc2lvblN0YXRlOworICAg
ICAgICBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2luLnNldChzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBw
ZXJtaXNzaW9uU3RhdGUpOwogICAgICAgICBjYWxsYmFjayhwZXJtaXNzaW9uU3RhdGUpOwogCiAg
ICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgIT0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZTo6R3JhbnRlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBm
b3IgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpOyBmcmFtZSAmJiBmcmFtZS0+d2lu
ZG93KCk7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobV9kb2N1bWVudC5mcmFt
ZSgpKSkgeworICAgICAgICBmb3IgKGF1dG8qIGZyYW1lID0gbV90b3BEb2N1bWVudC5mcmFtZSgp
OyBmcmFtZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoKSkgewogICAgICAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKICAgICAgICAgICAgIGZyYW1lLT53aW5k
b3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgKaW5kZXggNGFmOTQ2MWM5ZDc5MzRlZjBj
NDJjZjhjNDU5MDk5MDBhZTgyOGExOC4uMWIwMTRiNzY2NWIwMTZiNzMyMDlkOTg4Zjc1ODE5Y2Qy
OWUwZGFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaApAQCAtMzYsMTkgKzM2LDE5
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsK
IAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxp
Y2l0IERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihEb2N1bWVudCYp
OworICAgIGV4cGxpY2l0IERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
cihEb2N1bWVudCYgdG9wRG9jdW1lbnQpOwogCi0KLSAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlIGFjY2Vzc1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NT
dGF0ZTsgfQotICAgIHZvaWQgc2hvdWxkQWxsb3dBY2Nlc3MoRnVuY3Rpb248dm9pZChEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBhY2Nlc3NTdGF0ZShjb25zdCBEb2N1bWVudCYp
IGNvbnN0OworICAgIHZvaWQgc2hvdWxkQWxsb3dBY2Nlc3MoY29uc3QgRG9jdW1lbnQmLCBGdW5j
dGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsK
IAogcHJpdmF0ZToKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIG1fYWNjZXNzU3RhdGUgeyBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQgfTsKKyAgICBEb2N1bWVudCYgbV90
b3BEb2N1bWVudDsKKyAgICBIYXNoTWFwPFNlY3VyaXR5T3JpZ2luRGF0YSwgRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZT4gbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmNwcAppbmRleCBlY2YzNzAwZTQ0MmUyYWRiZDY2Y2E5N2ZhM2ViYTc2
ZWY5ZTIwN2RiLi4xMWY3YWVhMzMwMjQ5YTMxZDViYWNhMzRiMGFlMzc1NDkyYzk5OGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCkBAIC0yNiw3
ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oIgogCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTIsNCArMTE0LDI2IEBAIEV2ZW50SW50
ZXJmYWNlIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKICNl
bmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJt
aXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQu
ZG9tV2luZG93KCk7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAo
IXdpbmRvdyB8fCAhcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYnJvd3NpbmcgY29udGV4dCJfcyB9KTsKKworICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2
aWNlT3JpZW50YXRpb24oZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtl
U3RyaW5nKCJDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIsIGVy
cm9yTWVzc2FnZSwgIi4iKSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlz
c2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGRvY3VtZW50LmRldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLnNob3VsZEFsbG93QWNjZXNzKGRvY3VtZW50
LCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKFBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9u
U3RhdGUpIG11dGFibGUgeworICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlID09IFBlcm1pc3Np
b25TdGF0ZTo6UHJvbXB0KQorICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFj
Y2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7CisgICAgICAgIHBy
b21pc2UucmVzb2x2ZShwZXJtaXNzaW9uU3RhdGUpOworICAgIH0pOworfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oCmluZGV4IGU3MDM0NThhMTY1NDZjMjNiOGExNjU1NTgzZmI4MzdjOWIwOTEzZGYu
LjgxOWVjYmIwNjg1OTExNmNjOTgwYmY3MmZhM2EzY2U5MmI0MDJkODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaApAQCAtMjUsMTQgKzI1LDE2IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKLWNsYXNzIERldmljZU9y
aWVudGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQgeworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEZXZpY2VPcmllbnRh
dGlvbkV2ZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPERldmljZU9yaWVudGF0aW9uRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9u
RGF0YSogb3JpZW50YXRpb24pCkBAIC02Miw2ICs2NCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBp
bml0RGV2aWNlT3JpZW50YXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBib29sIGJ1
YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgT3B0aW9uYWw8ZG91YmxlPiBhbHBoYSwgT3B0aW9uYWw8
ZG91YmxlPiBiZXRhLCBPcHRpb25hbDxkb3VibGU+IGdhbW1hLCBPcHRpb25hbDxib29sPiBhYnNv
bHV0ZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdXNp
bmcgUGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJ
RExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9taXNlJiYpOworI2VuZGlmCisKIHBy
aXZhdGU6CiAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudCgpOwogICAgIERldmljZU9yaWVudGF0
aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRh
dGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25FdmVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwMjFhODFmYmU1
ZGViZDZiMWZkYjM5ODJhZGYxMTMyNTZjM2FmN2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dO
RVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50LmgiCi0KLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQ
ZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgYXV0byogd2luZG93ID0gZG9jdW1l
bnQuZG9tV2luZG93KCk7Ci0gICAgaWYgKCF3aW5kb3cpCi0gICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGJyb3dzaW5nIGNvbnRl
eHQiX3MgfSk7Ci0KLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGlmICghd2luZG93LT5p
c0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsKLSAg
ICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigp
IGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOwotICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKLSAgICB9Ci0KLSAgICBk
b2N1bWVudC5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91
bGRBbGxvd0FjY2VzcyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKFBlcm1pc3Npb25TdGF0
ZSBwZXJtaXNzaW9uU3RhdGUpIG11dGFibGUgewotICAgICAgICBpZiAocGVybWlzc2lvblN0YXRl
ID09IFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KQotICAgICAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlJlcXVlc3RpbmcgZGV2aWNlIG9y
aWVudGF0aW9uIG9yIG1vdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJv
bXB0Il9zIH0pOwotICAgICAgICBwcm9taXNlLnJlc29sdmUocGVybWlzc2lvblN0YXRlKTsKLSAg
ICB9KTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMzBmM2QyYzE3NDI5NTUxMWEzNThlMjY1NDg4MDRjZWUy
MzIwMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAi
SURMVHlwZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLQot
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwotCi1j
bGFzcyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgewotcHVibGljOgotCi0jaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICB1c2luZyBQZXJtaXNzaW9uU3RhdGUgPSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOwotICAgIHVzaW5nIFBlcm1pc3Np
b25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25T
dGF0ZT4+OwotICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVy
bWlzc2lvblByb21pc2UmJik7Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25FdmVudCgpID0gZGVmYXVsdDsKLSAgICB+RGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvbkV2ZW50KCkgPSBkZWZhdWx0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKaW5kZXggZDEzZDFi
MGE2MGQ5MzY4NmE0MzY2MzU2MmNhMWU5ODk1M2NjNjU1Mi4uMTJjNDM2NDM2OTQ2NWM2ZjUwN2Q3
NjNiOTNjYWQ2ZDIwNGRiMzFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJH
ZXN0dXJlSW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJ
bmRpY2F0b3IuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgVXNlckdlc3R1cmVUb2tlbjo6c2V0
TWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nRm9yRmV0Y2hGb3JUZXN0CiAg
ICAgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdGb3JGZXRjaCA9IFdURk1vdmUo
dmFsdWUpOwogfQogCi1ib29sIFVzZXJHZXN0dXJlVG9rZW46OmlzVmFsaWRGb3JEb2N1bWVudChE
b2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0Citib29sIFVzZXJHZXN0dXJlVG9rZW46OmlzVmFsaWRG
b3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fZG9jdW1lbnRzSW1wYWN0ZWRCeVVzZXJHZXN0dXJlLmNvbnRhaW5zKGRvY3VtZW50KTsKIH0K
QEAgLTEwMiw3ICsxMDIsNyBAQCBVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRp
Y2F0b3IoT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGU+CiAgICAgaWYgKHN0YXRl
KQogICAgICAgICBjdXJyZW50VG9rZW4oKSA9IFVzZXJHZXN0dXJlVG9rZW46OmNyZWF0ZShzdGF0
ZS52YWx1ZSgpLCBnZXN0dXJlVHlwZSwgZG9jdW1lbnQpOwogCi0gICAgaWYgKGRvY3VtZW50ICYm
IGN1cnJlbnRUb2tlbigpLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKSAmJiBzdGF0ZSkgeworICAg
IGlmIChzdGF0ZSAmJiBkb2N1bWVudCAmJiBjdXJyZW50VG9rZW4oKS0+cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpIHsKICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxhc3RIYW5kbGVkVXNlckdlc3R1
cmVUaW1lc3RhbXAoY3VycmVudFRva2VuKCktPnN0YXJ0VGltZSgpKTsKICAgICAgICAgaWYgKHBy
b2Nlc3NJbnRlcmFjdGlvblN0eWxlID09IFByb2Nlc3NJbnRlcmFjdGlvblN0eWxlOjpJbW1lZGlh
dGUpCiAgICAgICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nVXNlcklu
dGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihkb2N1bWVudC0+dG9wRG9jdW1lbnQo
KSk7CkBAIC0xNTcsNyArMTU3LDcgQEAgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+IFVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKQogICAgIHJldHVybiBjdXJyZW50VG9r
ZW4oKTsKIH0KIAotYm9vbCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKERvY3VtZW50KiBkb2N1bWVudCkKK2Jvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZShjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFp
c01haW5UaHJlYWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VXNlckdlc3R1cmVJbmRpY2F0b3IuaAppbmRleCA2OWQyZTA5MDc5OTY0MTk1NGQ4Y2U4OWVhZTc3
MDRlMWY5ZWVlODY0Li5mNWNjN2ZhZDIxMDIxOTcyNjBhNDNjY2ZjNDE3ZjE0M2NhZjQ0MjVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaApAQCAtMTAyLDcgKzEw
Miw3IEBAIHB1YmxpYzoKIAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFydFRpbWU7IH0KIAotICAgIGJvb2wgaXNWYWxpZEZvckRvY3VtZW50KERvY3Vt
ZW50JikgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQm
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBVc2VyR2VzdHVyZVRva2VuKFByb2Nlc3NpbmdVc2Vy
R2VzdHVyZVN0YXRlLCBVc2VyR2VzdHVyZVR5cGUsIERvY3VtZW50Kik7CkBAIC0xMjMsNyArMTIz
LDcgQEAgY2xhc3MgVXNlckdlc3R1cmVJbmRpY2F0b3IgewogcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gY3VycmVudFVzZXJHZXN0dXJl
KCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUoRG9jdW1lbnQqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGNvbnN0IERvY3VtZW50KiA9IG51bGxwdHIpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCk7
CiAKICAgICAvLyBJZiBhIGRvY3VtZW50IGlzIHByb3ZpZGVkLCBpdHMgbGFzdCBrbm93biB1c2Vy
IGdlc3R1cmUgdGltZXN0YW1wIGlzIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9s
aWN5LmNwcAppbmRleCAwMjNmYmM0OTJlNDEwMzE2NjI2YzdmN2JlNDI1NThiMDI0Mzc3ZTM1Li5l
NTM5ZDZkNTJmZTM1NTM4M2EyNmM5NmI1YWNmNDQ5MTBlYjI1NjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmVhdHVyZVBvbGljeS5jcHAKQEAgLTUyLDYgKzUyLDE0IEBAIHN0YXRpYyBjb25zdCBjaGFy
KiBwb2xpY3lUeXBlTmFtZShGZWF0dXJlUG9saWN5OjpUeXBlIHR5cGUpCiAgICAgICAgIHJldHVy
biAiU3luY1hIUiI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuOgog
ICAgICAgICByZXR1cm4gIkZ1bGxzY3JlZW4iOworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCisgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpHeXJvc2NvcGU6CisgICAgICAgIHJl
dHVybiAiR3lyb3Njb3BlIjsKKyAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkFjY2VsZXJv
bWV0ZXI6CisgICAgICAgIHJldHVybiAiQWNjZWxlcm9tZXRlciI7CisgICAgY2FzZSBGZWF0dXJl
UG9saWN5OjpUeXBlOjpNYWduZXRvbWV0ZXI6CisgICAgICAgIHJldHVybiAiTWFnbmV0b21ldGVy
IjsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5
cGU6OlhSU3BhdGlhbFRyYWNraW5nOgogICAgICAgICByZXR1cm4gIlhSU3BhdGlhbFRyYWNraW5n
IjsKQEAgLTE2MSw2ICsxNjksMTEgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJz
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAgIGJvb2wg
aXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc1N5bmNYSFJJ
bml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNGdWxsc2NyZWVuSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGJvb2wgaXNHeXJvc2Nv
cGVJbml0aWFsaXplZCA9IGZhbHNlOworICAgIGJvb2wgaXNBY2NlbGVyb21ldGVySW5pdGlhbGl6
ZWQgPSBmYWxzZTsKKyAgICBib29sIGlzTWFnbmV0b21ldGVySW5pdGlhbGl6ZWQgPSBmYWxzZTsK
KyNlbmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIGlzWFJTcGF0aWFsVHJhY2tpbmdJ
bml0aWFsaXplZCA9IGZhbHNlOwogI2VuZGlmCkBAIC0xOTYsNiArMjA5LDIzIEBAIEZlYXR1cmVQ
b2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1M
SUZyYW1lRWxlbWVudCYKICAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5t
X2Z1bGxzY3JlZW5SdWxlLCBpdGVtLnN1YnN0cmluZygxMSkpOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICBp
ZiAoaXRlbS5zdGFydHNXaXRoKCJneXJvc2NvcGUiKSkgeworICAgICAgICAgICAgaXNHeXJvc2Nv
cGVJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBw
b2xpY3kubV9neXJvc2NvcGVSdWxlLCBpdGVtLnN1YnN0cmluZygxMCkpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiYWNjZWxl
cm9tZXRlciIpKSB7CisgICAgICAgICAgICBpc0FjY2VsZXJvbWV0ZXJJbml0aWFsaXplZCA9IHRy
dWU7CisgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9hY2NlbGVyb21l
dGVyUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTQpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoIm1hZ25ldG9tZXRlciIpKSB7Cisg
ICAgICAgICAgICBpc01hZ25ldG9tZXRlckluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAg
IHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX21hZ25ldG9tZXRlclJ1bGUsIGl0ZW0uc3Vi
c3RyaW5nKDEzKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorI2VuZGlmCiAj
aWYgRU5BQkxFKFdFQlhSKQogICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJ4ci1zcGF0aWFs
LXRyYWNraW5nIikpIHsKICAgICAgICAgICAgIGlzWFJTcGF0aWFsVHJhY2tpbmdJbml0aWFsaXpl
ZCA9IHRydWU7CkBAIC0yMTQsNiArMjQ0LDE0IEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGlj
eTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAg
ICAgICAgcG9saWN5Lm1fc3BlYWtlclNlbGVjdGlvblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICAgICBpZiAoIWlzRGlzcGxheUNhcHR1cmVJ
bml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1fZGlzcGxheUNhcHR1cmVSdWxlLmFsbG93ZWRM
aXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICBpZiAoIWlzR3lyb3Njb3BlSW5pdGlhbGl6ZWQpCisgICAg
ICAgIHBvbGljeS5tX2d5cm9zY29wZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3Vy
aXR5T3JpZ2luKCkuZGF0YSgpKTsKKyAgICBpZiAoIWlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVk
KQorICAgICAgICBwb2xpY3kubV9hY2NlbGVyb21ldGVyUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9j
dW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOworICAgIGlmICghaXNNYWduZXRvbWV0ZXJJ
bml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1fbWFnbmV0b21ldGVyUnVsZS5hbGxvd2VkTGlz
dC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOworI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQlhSKQogICAgIGlmICghaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkKQogICAg
ICAgICBwb2xpY3kubV94clNwYXRpYWxUcmFja2luZ1J1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKQEAgLTI1NSw2ICsyOTMsMTQgQEAgYm9vbCBG
ZWF0dXJlUG9saWN5OjphbGxvd3MoVHlwZSB0eXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbikgY29uc3QKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeSht
X3N5bmNYSFJSdWxlLCBvcmlnaW4pOwogICAgIGNhc2UgVHlwZTo6RnVsbHNjcmVlbjoKICAgICAg
ICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2Z1bGxzY3JlZW5SdWxlLCBvcmln
aW4pOworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgY2FzZSBUeXBlOjpHeXJv
c2NvcGU6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9neXJvc2Nv
cGVSdWxlLCBvcmlnaW4pOworICAgIGNhc2UgVHlwZTo6QWNjZWxlcm9tZXRlcjoKKyAgICAgICAg
cmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2FjY2VsZXJvbWV0ZXJSdWxlLCBvcmln
aW4pOworICAgIGNhc2UgVHlwZTo6TWFnbmV0b21ldGVyOgorICAgICAgICByZXR1cm4gaXNBbGxv
d2VkQnlGZWF0dXJlUG9saWN5KG1fbWFnbmV0b21ldGVyUnVsZSwgb3JpZ2luKTsKKyNlbmRpZgog
I2lmIEVOQUJMRShXRUJYUikKICAgICBjYXNlIFR5cGU6OlhSU3BhdGlhbFRyYWNraW5nOgogICAg
ICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1feHJTcGF0aWFsVHJhY2tpbmdS
dWxlLCBvcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9s
aWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAppbmRleCBiMjRiZTgy
YWZhZDNjOGZlMjA3NDM0NzQ2MTI3Y2JhZGMwZDkxMWZkLi5lZWRlOGYxOTc3MjAzMWUxMGI5YzRk
MjkzODRiM2Q1MGE4YzdhOWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1
cmVQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApAQCAt
NDUsNiArNDUsMTEgQEAgcHVibGljOgogICAgICAgICBEaXNwbGF5Q2FwdHVyZSwKICAgICAgICAg
U3luY1hIUiwKICAgICAgICAgRnVsbHNjcmVlbiwKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICBHeXJvc2NvcGUsCisgICAgICAgIEFjY2VsZXJvbWV0ZXIsCisgICAgICAg
IE1hZ25ldG9tZXRlciwKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJYUikKICAgICAgICAgWFJTcGF0
aWFsVHJhY2tpbmcsCiAjZW5kaWYKQEAgLTY0LDcgKzY5LDE0IEBAIHByaXZhdGU6CiAgICAgQWxs
b3dSdWxlIG1fZGlzcGxheUNhcHR1cmVSdWxlOwogICAgIEFsbG93UnVsZSBtX3N5bmNYSFJSdWxl
OwogICAgIEFsbG93UnVsZSBtX2Z1bGxzY3JlZW5SdWxlOworI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCisgICAgQWxsb3dSdWxlIG1fZ3lyb3Njb3BlUnVsZTsKKyAgICBBbGxvd1J1bGUg
bV9hY2NlbGVyb21ldGVyUnVsZTsKKyAgICBBbGxvd1J1bGUgbV9tYWduZXRvbWV0ZXJSdWxlOwor
I2VuZGlmCisjaWYgRU5BQkxFKFdFQlhSKQogICAgIEFsbG93UnVsZSBtX3hyU3BhdGlhbFRyYWNr
aW5nUnVsZTsKKyNlbmRpZgogfTsKIAogZW51bSBjbGFzcyBMb2dGZWF0dXJlUG9saWN5RmFpbHVy
ZSB7IE5vLCBZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAzMjg3NmY5MDk4
ZDQ5MDUyOGMzMmY4Y2U5MTdlYzI3NmFhZGRiY2RiLi4wNjI5MzgyYjBkOGNiMWIwN2JhZmRiNDU5
Zjc1NmM5MjA4ODczZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC01OCw2ICs1
OCw3IEBACiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKQEAgLTQ0Niw3ICs0NDcsNyBAQCBSZWZQdHI8TWVkaWFRdWVyeUxpc3Q+
IERPTVdpbmRvdzo6bWF0Y2hNZWRpYShjb25zdCBTdHJpbmcmIG1lZGlhKQogICAgIHJldHVybiBk
b2N1bWVudCgpID8gZG9jdW1lbnQoKS0+bWVkaWFRdWVyeU1hdGNoZXIoKS5tYXRjaE1lZGlhKG1l
ZGlhKSA6IG51bGxwdHI7CiB9CiAKLVBhZ2UqIERPTVdpbmRvdzo6cGFnZSgpCitQYWdlKiBET01X
aW5kb3c6OnBhZ2UoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZSgpID8gZnJhbWUoKS0+cGFn
ZSgpIDogbnVsbHB0cjsKIH0KQEAgLTIwMDUsOSArMjAwNiw5IEBAIERldmljZU1vdGlvbkNvbnRy
b2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0CiAjZW5kaWYK
IH0KIAotYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRp
b24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAorYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNl
RGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAg
aWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZl
bnRFbmFibGVkKCkpIHsKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWRvY3VtZW50KCkgfHwgIWZyYW1l
KCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSkgewogICAgICAg
ICBtZXNzYWdlID0gIkFQSSBpcyBkaXNhYmxlZCJfczsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KQEAgLTIwMTcsMjkgKzIwMTgsNTIgQEAgYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFz
TWFpbkZyYW1lKCkpIHsKLSAgICAgICAgbWVzc2FnZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBo
YXZlIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlIl9zOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rp
b24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAoreworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZp
Y2VNb3Rpb25Pck9yaWVudGF0aW9uKG1lc3NhZ2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZl
YXR1cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZSwgKmRvY3VtZW50KCksIExvZ0ZlYXR1cmVQb2xp
Y3lGYWlsdXJlOjpObykKKyAgICAgICAgfHwgIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3Vt
ZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OkFjY2VsZXJvbWV0ZXIsICpkb2N1
bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pKSB7CisgICAgICAgIG1lc3NhZ2Ug
PSAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBt
b3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9z
Y29wZSAmIGFjY2VsZXJvbWV0ZXIpIl9zOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQor
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb0FkZERl
dmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3RyaW5nJiBtZXNzYWdlKSBjb25zdAorYm9v
bCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50YXRpb24oU3RyaW5nJiBtZXNz
YWdlKSBjb25zdAogewotICAgIFN0cmluZyBpbm5lck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93
ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGlubmVyTWVzc2FnZSkpIHsKLSAgICAgICAg
bWVzc2FnZSA9IG1ha2VTdHJpbmcoIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90
aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246ICIsIGlubmVyTWVzc2Fn
ZSwgIi4iKTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlv
bihtZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFpc0ZlYXR1cmVQ
b2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpH
eXJvc2NvcGUsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pCisgICAg
ICAgIHx8ICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0
dXJlUG9saWN5OjpUeXBlOjpBY2NlbGVyb21ldGVyLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBv
bGljeUZhaWx1cmU6Ok5vKQorICAgICAgICB8fCAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9j
dW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6TWFnbmV0b21ldGVyLCAqZG9j
dW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKSkgeworICAgICAgICBtZXNzYWdl
ID0gIlRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ug
b3JpZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kg
KGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRvbWV0ZXIpIl9zOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRE9NV2lu
ZG93OjpoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50
cyhTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CiAgICAgaWYgKGZyYW1lKCktPnNldHRpbmdzKCku
ZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8g
YWNjZXNzU3RhdGUgPSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIoKS5hY2Nlc3NTdGF0ZSgpOworICAgICAgICBpZiAoIXBhZ2UoKSkgeworICAg
ICAgICAgICAgbWVzc2FnZSA9ICJObyBicm93c2luZyBjb250ZXh0Il9zOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBkb2N1
bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5hY2Nl
c3NTdGF0ZSgqZG9jdW1lbnQoKSk7CiAgICAgICAgIHN3aXRjaCAoYWNjZXNzU3RhdGUpIHsKICAg
ICAgICAgY2FzZSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpEZW5p
ZWQ6Ci0gICAgICAgICAgICBtZXNzYWdlID0gIk5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRp
b24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJ
IHdhcyBkZW5pZWQuIl9zOworICAgICAgICAgICAgbWVzc2FnZSA9ICJQZXJtaXNzaW9uIHRvIHVz
ZSB0aGUgQVBJIHdhcyBkZW5pZWQiX3M7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGNhc2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0
OgotICAgICAgICAgICAgbWVzc2FnZSA9ICJObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVk
IGFuZCBncmFudGVkLiJfczsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiUGVybWlzc2lvbiB0byB1
c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQiX3M7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGNhc2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZTo6R3JhbnRlZDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjA1OCwxMCArMjA4MiwxMCBA
QCB2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVj
ZXNzYXJ5KCkKICAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIgfHwgZGV2aWNlQ29udHJvbGxlci0+
aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCFpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9y
aWVudGF0aW9uTGlzdGVuZXIoZXJyb3JNZXNzYWdlKSkgeworICAgIFN0cmluZyBpbm5lck1lc3Nh
Z2U7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uKGlubmVyTWVzc2Fn
ZSkgfHwgIWhhc1Blcm1pc3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uRXZl
bnRzKGlubmVyTWVzc2FnZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAg
ICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIk5vIGRldmljZSBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIikpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDg2LDExICsyMTEwLDExIEBAIHZvaWQgRE9NV2lu
ZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKICAgICBpZiAo
IWRldmljZUNvbnRyb2xsZXIgfHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRMaXN0
ZW5lcigqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7
Ci0gICAgaWYgKCFpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIo
ZXJyb3JNZXNzYWdlKSkgeworICAgIFN0cmluZyBpbm5lck1lc3NhZ2U7CisgICAgaWYgKCFpc0Fs
bG93ZWRUb1VzZURldmljZU1vdGlvbihpbm5lck1lc3NhZ2UpIHx8ICFoYXNQZXJtaXNzaW9uVG9S
ZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50cyhpbm5lck1lc3NhZ2UpKSB7CiAg
ICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CiAgICAg
ICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBk
b2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtl
U3RyaW5nKCJObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246ICIs
IGlubmVyTWVzc2FnZSwgIi4iKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCmluZGV4IDBlMzUxMTdmNWFkOGFiOGZkZGY0ZGRmNjY2OTAxN2MwMWY4OWM0
NTIuLjE1YTZiY2FmZWU0NjVlZDNmMDBkZDJjYjEwMWNlNjEzM2ZkZTE3MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaApAQCAtMzY2LDggKzM2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0
TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHN0b3BMaXN0
ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwogCi0gICAgYm9vbCBpc0FsbG93ZWRU
b1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7Ci0gICAg
Ym9vbCBpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3RyaW5n
JiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlT3JpZW50YXRp
b24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNl
TW90aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CiAKICAgICBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OwogICAgIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKQEAgLTQx
MCwxMyArNDEwLDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0xvY2FsRE9NV2luZG93KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNSZW1vdGVET01XaW5kb3coKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgUGFnZSogcGFnZSgpOworICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdDsKICAgICBib29sIGFsbG93ZWRUb0NoYW5nZVdpbmRvd0dlb21ldHJ5
KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmUHRyPEZyYW1lPj4gY3JlYXRl
V2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBmcmFtZU5h
bWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1l
JiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZChET01XaW5kb3cmKT4mIHByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAgIGJv
b2wgaXNJbnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbihTdHJpbmcmIG1l
c3NhZ2UpIGNvbnN0OworICAgIGJvb2wgaGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlv
bk9yT3JpZW50YXRpb25FdmVudHMoU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKICAgICB2b2lkIGZh
aWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGU3ZTdiYjhiNWQ3MzZkYzhkN2E3MjY4ZjEzNmIyOTMyNjcwYzZlMWEuLmZmNzdmZjE5ZjFl
NTE3ZGFiNDVjNTRjNGI5MmIzMGY0MWRjMTMxMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAy
MS0wMi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERldmlj
ZSBtb3Rpb24gLyBvcmllbnRhdGlvbiBldmVudHMgbm90IHdvcmtpbmcgaW4gdGhpcmQtcGFydHkg
aWZyYW1lcyBkZXNwaXRlIEZlYXR1cmUtUG9saWN5IGFsbG93aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzOTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0MjI5MjI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1w
YXJ0eS1vbmx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHku
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1w
b2xpY3kuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVu
dC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRl
bmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0
eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVu
aWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGlj
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2ll
bnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZy
YW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQt
cGFydHktaWZyYW1lLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9y
ZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDItMjMgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy92b2x1bWUtc3VwcG9ydC92b2x1bWUtc3VwcG9ydC1jbGljay5odG1sIGlz
IGEgZmxha3kgdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjc2MDQ4MTQzNmM2MTA0MWVi
OTc1YWQ3ZjVmYjIxNjhlZTFhNWU2ZS4uZDk1ZDQwZjYxM2NmNzc4MWU0MWNlZjAzZGY3OWU3YjYz
NjQ2OTRmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC01MCw2ICs1MCw3IEBAIGZhc3QvZm9ybXMv
aW9zIFsgU2tpcCBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFNraXAgXQogZmFzdC92aXN1YWwtdmll
d3BvcnQvaW9zLyBbIFNraXAgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBTa2lwIF0KK2h0
dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9jdXJzb3Jz
IFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3Mg
WyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CmluZGV4IDhhOGY0MDI2MmFjOTE4ODQ4M2M5
ZjY3NGNiNzBhNTkyNjdjZGZjZWUuLjEyNzcxMDkzOTVlM2Q3NDQxYzdjZDI4NGU5YzBjMDczNzU1
NzhhZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKLUNPTlNPTEUg
TUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK0NP
TlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVh
c29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KIFJl
Y2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2Vj
dXJpdHkgb3JpZ2luICIiLgotQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIG9yIG9y
aWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2Ug
dGhlIEFQSSB3YXMgZGVuaWVkLgorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIGV2
ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2Fz
IGRlbmllZC4KIEJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3Rl
ZC50eHQKaW5kZXggY2UxYTcwYTJiNjY5YjkyYmI0ZTc2YmY1OTdlZGM5ZmRjN2MwZDU0NC4uMDkz
MTNlZTcyYzU3ZGFiNTM1OTZkZTkzYmEyNmM0YzJjMGNmM2MzMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rp
b24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBo
YXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmlj
ZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2Ug
dGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQuCiBSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRp
b24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KIEJhc2lj
IHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CmluZGV4IDc5ODM3MjMzY2Y1ZGM5NWY2Yzky
Nzg4OThiY2RmZTllNGY5ZGE5NDguLmVjYmRiZmRiNzEzZDU0MmNkODMyZGE0YzhjY2QwZWUwY2Mx
YzYyZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQg
QEAKLUNPTlNPTEUgTUVTU0FHRTogTm90QWxsb3dlZEVycm9yOiBSZXF1ZXN0aW5nIGRldmljZSBv
cmllbnRhdGlvbiBvciBtb3Rpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHBy
b21wdAorQ09OU09MRSBNRVNTQUdFOiBOb3RBbGxvd2VkRXJyb3I6IFJlcXVlc3RpbmcgZGV2aWNl
IG1vdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0CiBUZXN0cyB0
aGF0IERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2Vy
IGdlc3R1cmUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVk
LWV4cGVjdGVkLnR4dAppbmRleCBjNDAyNjM4YzczODM5NmU2ZDRkOWQ1ZjI2NDlhYjM3ODAzZTVk
NWZiLi5lMDg5NDkzMjc5NDA0NmUxY2Q1MDQxMTYzMDk5OWNmMmQyNzEwZjNhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAotQ09OU09MRSBNRVNTQUdF
OiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVu
dGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorQ09OU09MRSBN
RVNTQUdFOiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNv
bjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQuCiBSZWNl
aXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3Vy
aXR5IG9yaWdpbiAiIi4KLUNPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmll
bnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRo
ZSBBUEkgd2FzIGRlbmllZC4KK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkg
d2FzIGRlbmllZC4KIEJhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tZ3JhbnRlZC1leHBlY3RlZC50eHQKaW5kZXggYmMzN2QwNGQ5NTE2YWY0YmNiNGYyMDliZDE5
YmZkYjMxNTFmZTcxMy4uNzI1NDM4MWY5MjViZGYxNWE0NjkyOWRmOTQxZjQwNjFjMTRjYjYyYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09O
U09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVk
LgorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUg
ZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1
ZXN0ZWQuCiBSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVl
c3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KIEJhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVu
dGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2Vy
LWdlc3R1cmUtZXhwZWN0ZWQudHh0CmluZGV4IDkxOTM3YzEzNjI2ZDQ4NThlNzY2NDc5YWQ2ZGU2
MGFkYmU3N2IxMmUuLmM2NWQ5NDY5MTlhNjU3MDU2NmM2MjQ2MjE0MTExODZiMmRiODM2ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACi1DT05TT0xFIE1FU1NBR0U6IE5vdEFsbG93ZWRFcnJvcjogUmVxdWVzdGluZyBkZXZpY2Ug
b3JpZW50YXRpb24gb3IgbW90aW9uIGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBw
cm9tcHQKK0NPTlNPTEUgTUVTU0FHRTogTm90QWxsb3dlZEVycm9yOiBSZXF1ZXN0aW5nIGRldmlj
ZSBvcmllbnRhdGlvbiBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0CiBU
ZXN0cyB0aGF0IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSByZXF1
aXJlcyBhIHVzZXIgZ2VzdHVyZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tdXNlci1nZXN0dXJlLmh0bWwKaW5kZXggOTI2OTkyYWQ0MzU4ZGQ3M2JjYzk1MmE3MDg0ODFl
NTJkZDZlNWNmMS4uMTA5OWQxOWY0NzllYmNhYjg1YTE5MmE0MTBmYjA3MzgyZmYyMGJiMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCkBAIC05LDYgKzksNyBAQCBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAogRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgIHRlc3RGYWlsZWQoInJlcXVlc3RQZXJtaXNzaW9uIHByb21p
c2Ugd2FzIG5vdCByZWplY3RlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOwogfSwgKF9lKSA9PiB7
CiAgICAgZSA9IF9lOwogICAgIGNvbnNvbGUubG9nKGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWlu
LWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9u
bHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNDdmZjZiNWI0YTJiMDY3ODk0NmM5ODdiNjhl
MWE5ZjE2OGU2YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25s
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0
aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gZXZlbnRz
IHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90
IHlldCByZXF1ZXN0ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNj
ZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4K
K1Rlc3RzIHRoYXQgZ2l2aW5nIGRldmljZSBtb3Rpb24gcGVybWlzc2lvbiBpbiB0aGUgbWFpbiBm
cmFtZSBkb2VzIG5vdCBnaXZlIGFjY2VzcyB0byB0aGlyZC1wYXJ0eSBpZnJhbWVzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNT
IGUuZGF0YSBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNjRkODkw
MTNjY2FlZGIxZDY4Y2I0MjY0MmFhM2Q5YjdjMGNlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLWFsbG93
ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZ2l2
aW5nIGRldmljZSBtb3Rpb24gcGVybWlzc2lvbiBpbiB0aGUgbWFpbiBmcmFtZSBkb2VzIG5vdCBn
aXZlIGFjY2VzcyB0byB0aGlyZC1wYXJ0eSBpZnJhbWVzLiIpOworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsgICAgCit9OworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZp
Y2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAg
ICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICAvLyBJZiBwcm9tcHRlZCwgZGVueS4KKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGZhbHNlKTsKKworICAgICAg
ICAvLyBDcmVhdGUgdGhpcmQtcGFydHkgaWZyYW1lIHRoYXQgcmVxdWVzdHMgcGVybWlzc2lvbiBm
b3IgaXRzZWxmLCBidXQgdGhpcyB0aW1lIHNob3VsZCBiZSByZWplY3RlZC4KKyAgICAgICAgbGV0
IHRlc3RGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICB0
ZXN0RnJhbWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9kZXZpY2Utb3JpZW50YXRpb24v
cmVzb3VyY2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1sIjsKKyAgICAgICAgdGVzdEZyYW1l
LmFsbG93ID0gImFjY2VsZXJvbWV0ZXI7Z3lyb3Njb3BlIjsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmQodGVzdEZyYW1lKTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVy
ZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0
dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUwODBiMzc2NGM2MDAxZWYzZmY0
ZjgxMGY4YmYwZDRhNGYwZTExNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1l
LWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwg
cmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3QgeWV0IHJlcXVlc3RlZC4K
K1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Ig
c2VjdXJpdHkgb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLgorVGVzdHMgdGhhdCB0aGly
ZC1wYXJ0eSBpZnJhbWVzIGNhbiByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIGV2ZW50
cyBpZiBhbGxvd2VkIGJ5IGZlYXR1cmUgcG9saWN5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBlLmRhdGEgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJh
bWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxs
b3dlZC1ieS1mZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYmY3YmQyZWY5NTM4M2Mx
ZjNlMDM2YzZlZTJkNWU1NTQwYTAyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlm
cmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbiByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2UgbW90
aW9uIGV2ZW50cyBpZiBhbGxvd2VkIGJ5IGZlYXR1cmUgcG9saWN5LiIpOworanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJncmFudGVkIik7CisgICAgZmluaXNo
SlNUZXN0KCk7ICAgIAorfTsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50
cy5odG1sIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjtneXJvc2NvcGUiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3Vm
ZmljaWVudC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNDE3OTdhM2E3YjZmYjk5YTdjNmM1NGE4OGNhMmQ0ODU1ZDIzMTJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0dXJl
LXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBO
byBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJkLXBhcnR5
IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBl
eHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVy
b21ldGVyKS4KK0NPTlNPTEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZh
aWxlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3Mg
dG8gZGV2aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBv
bGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5
IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzIHdp
dGggaW5zdWZmaWNpZW50IGZlYXR1cmUgcG9saWN5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFt
ZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5
LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2Q1YmIzMTVlYjU2ZTMyN2I0NDlhZGY4OTFlNzlmZTYzOWZjMDUwNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVy
ZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFt
ZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpdGggaW5z
dWZmaWNpZW50IGZlYXR1cmUgcG9saWN5LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8v
IElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7
CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9
OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1v
cmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwiIGFsbG93PSJn
eXJvc2NvcGUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1w
YXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmll
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyZGIzNjY1Njk2MjcyOTZlMWJmNmNkMzdlNDli
Yzc4OTJhZjQ3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2Ug
bW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMg
YXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIHVubGVzcyBleHBsaWNpdGx5
IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyKS4K
K0NPTlNPTEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVh
c29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNl
IG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3ly
b3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMg
Y2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRo
aXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ1ZDExM2JiOTk1MTVjNWM3ZTlhNWY0YjBlMGVkM2NmMGMzNDI2YjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApAQCAtMCww
ICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNj
ZXNzIHRvIGRldmljZSBtb3Rpb24gZXZlbnRzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
Ky8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1
ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAg
Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2Rldmlj
ZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwiPjwvaWZy
YW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3Qt
cGFydHktb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzJjZDBjN2Q1MjdiMWJiMDBiYmMyYmYzODhmZTc1
Y2QyMDgxYTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHkt
b25seS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorUmVjZWl2ZWQgZGV2aWNlIG9yaWVu
dGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlv
biBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJ
IHdhcyBub3QgeWV0IHJlcXVlc3RlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1v
dGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLgorVGVzdHMgdGhhdCBnaXZpbmcgZGV2aWNlIG9yaWVudGF0aW9uIHBlcm1pc3Npb24g
aW4gdGhlIG1haW4gZnJhbWUgZG9lcyBub3QgZ2l2ZSBhY2Nlc3MgdG8gdGhpcmQtcGFydHkgaWZy
YW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJn
cmFudGVkIgorUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1m
aXJzdC1wYXJ0eS1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTJmMGI5YzdiMzFhZmVmZTQ1Yjc3YTNmNjIyMDE2ZWY3YTU3OGVmYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHkuaHRtbApA
QCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGdpdmluZyBkZXZpY2Ugb3JpZW50YXRpb24gcGVybWlz
c2lvbiBpbiB0aGUgbWFpbiBmcmFtZSBkb2VzIG5vdCBnaXZlIGFjY2VzcyB0byB0aGlyZC1wYXJ0
eSBpZnJhbWVzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIElmIHByb21wdGVkLCBh
bGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9
IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0
YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9OworCitpbnRlcm5hbHMu
d2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVz
dWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7
CisgICAgICAgIC8vIElmIHByb21wdGVkLCBkZW55LgorICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFsc2UpOworCisgICAgICAgIC8vIENyZWF0ZSB0aGlyZC1w
YXJ0eSBpZnJhbWUgdGhhdCByZXF1ZXN0cyBwZXJtaXNzaW9uIGZvciBpdHNlbGYsIGJ1dCB0aGlz
IHRpbWUgc2hvdWxkIGJlIHJlamVjdGVkLgorICAgICAgICBsZXQgdGVzdEZyYW1lID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1v
cmllbnRhdGlvbi1ldmVudHMuaHRtbCI7CisgICAgICAgIHRlc3RGcmFtZS5hbGxvdyA9ICJhY2Nl
bGVyb21ldGVyO2d5cm9zY29wZTttYWduZXRvbWV0ZXIiOworICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZCh0ZXN0RnJhbWUpOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dl
ZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM4MjMxNWU3MTYy
ODhiYjhjNjBlMmZkYTU0NWU0ODUzNWJkNzg2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGly
ZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZl
bnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMg
bm90IHlldCByZXF1ZXN0ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24g
YWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4KK1Rlc3RzIHRoYXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8g
ZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyBpZiBhbGxvd2VkIGJ5IGZlYXR1cmUgcG9saWN5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImdyYW50ZWQi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMjI4OGNmMzEzZWE4MWE3MjA5NmJkZWQwN2U0YWVkYjM5Yjg5ZDVm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZl
YXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBp
ZnJhbWVzIGNhbiByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIGlm
IGFsbG93ZWQgYnkgZmVhdHVyZSBwb2xpY3kuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
Ly8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVl
KTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZS5kYXRhIiwgImdyYW50ZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAg
Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2Rldmlj
ZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbCIg
YWxsb3c9ImFjY2VsZXJvbWV0ZXI7Z3lyb3Njb3BlO21hZ25ldG9tZXRlciI+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmll
ZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJk
LXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNzNhZGY2ZDA2YzcwZjljMzgzOTBjZThiMjBiOGE5YmQyNzkw
MjhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnkt
aW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3Mg
dG8gZGV2aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1
cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0b21ldGVyKS4KK0NP
TlNPTEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29u
OiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG9y
aWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChn
eXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0b21ldGVyKS4KK1Rlc3RzIHRoYXQgdGhp
cmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0
aW9uIGV2ZW50cyB3aXRoIGluc3VmZmljaWVudCBmZWF0dXJlIHBvbGljeS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVh
dHVyZS1wb2xpY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2Q4YTI2NTQ3Yjk0NzkwNmQ5YTE3NDBiNjdm
NGMzMWQzNDA1NTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1k
ZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAsMCArMSwyMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpdGggaW5zdWZmaWNpZW50IGZlYXR1cmUgcG9saWN5
LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4g
eworICAgIGUgPSBfZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5p
ZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsgICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVx
dWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbCIgYWxsb3c9Imd5cm9zY29wZSI+PC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRl
bmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjU1MWVmYTcxYzU3OTc0ZmVlNmM2Nzg0Zjg4Yzg3YjBjYzYwY2Y3
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmll
bnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVz
IGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBs
aWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21l
dGVyICYgbWFnbmV0b21ldGVyKS4KK0NPTlNPTEUgTUVTU0FHRTogQ2FsbCB0byByZXF1ZXN0UGVy
bWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxs
b3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIHVubGVzcyBleHBsaWNpdGx5IGFsbG93
ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChneXJvc2NvcGUgJiBhY2NlbGVyb21ldGVyICYgbWFnbmV0
b21ldGVyKS4KK1Rlc3RzIHRoYXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW5ub3QgcmVxdWVzdCBh
Y2Nlc3MgdG8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBh
cnR5LWlmcmFtZS1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmQxNmRhNmQzNGRhNGY4NzE4ZGMwNzcxODc1NTI3MTYwODJjOWI3Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWwKQEAg
LTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0
IGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzLiIpOworanNUZXN0SXNBc3luYyA9
IHRydWU7CisKKy8vIElmIHByb21wdGVkLCBhbGxvdy4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3ModHJ1ZSk7CisKK29ubWVzc2FnZSA9IChfZSkgPT4geworICAgIGUgPSBfZTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImUuZGF0YSIsICJkZW5pZWQiKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsgICAgCit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVu
dHMuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rp
b24tZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlv
bi9yZXNvdXJjZXMvcmVxdWVzdC1tb3Rpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZmMjg3
MTNiODE1ZDk2MWQ4ZDg2ZWNmZGNmZWM4Y2NjMGJiYzA4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0
LW1vdGlvbi1ldmVudHMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwg
KCkgPT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZp
Y2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkgPT4geworICAg
ICAgICB0b3AucG9zdE1lc3NhZ2UocmVzdWx0LCAiKiIpOworICAgIH0pOworfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2Vz
L3JlcXVlc3Qtb3JpZW50YXRpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQyZWVmNTgwZDA1
NzQ5OWJjMjcyMWRiM2NlYmQ4NzgwMDUwNDA4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVu
dGF0aW9uLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlv
biIsICgpID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAg
RGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkg
PT4geworICAgICAgICB0b3AucG9zdE1lc3NhZ2UocmVzdWx0LCAiKiIpOworICAgIH0pOworfSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250
ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRp
b24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDM4ZjJkNDIwMDllOTNjNGE5
MzkzMjNkNzIwMzk2ZDkxZDY1ZTZkNDQuLjJmNmU3M2RiYTFlZjczYzBlZjkxNTYxMDI5NTQwYjY0
OWFiMzM3ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2Vj
dXJlLWNvbnRleHQuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VNb3Rp
b25UZXN0KCkKICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVy
Iik7CiAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0p
OwogICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dz
aW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBi
ZSBmaXJlZCwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlv
biBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRl
dmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0VGFzaygo
KSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdl
IiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4i
KTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAi
Tm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IEJyb3dz
aW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVz
dCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDVmNmRkMzc5MmVmMzVmZTA5NzU4YWYxYTExOTZhYzAzNTJlYWUxNGEu
LjBkMDM1MmQ2ODU4NTkwZWRmYjJmNDUxZWFlYjEyOTc5N2Q0MTk3ZWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1LDYgKzE1LDcgQEAg
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0
bWwgWyBQYXNzIF0KIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50
aW5nLXBpY2tlci5odG1sIFsgUGFzcyBdCiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qu
aHRtbCBbIFBhc3MgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBQYXNzIF0KK2h0dHAvdGVz
dHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBd
CiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9z
IFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2Rl
dmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dApp
bmRleCA2ODQxMTE3NWRlMWNmMWZmODM1MDU3YWIyZTA0OTQ1NTg2Y2NhYTUxLi5lMmI1MTFkN2Y3
NmUzOTU5ZDEzMGNiODkyYzI5NjhjYTFmZmFiOWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1u
b24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1
cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FH
RTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgot
Q09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBv
ciBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlz
IG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVu
dHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUu
CitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQs
IHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlp
bmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2
aWNlb3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50
YXRpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVt
cHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwg
cmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29s
ZU1lc3NhZ2UgaXMgIk5vIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwg
cmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJlZ2lzdGVyaW5n
IGRldmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9j
a2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBs
aXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBs
YXN0Q29uc29sZU1lc3NhZ2UgaXMgIk5vIGRldmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421457</attachid>
            <date>2021-02-24 14:34:19 -0800</date>
            <delta_ts>2021-02-24 15:17:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221399-20210224143418.patch</filename>
            <type>text/plain</type>
            <size>83143</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFhZWE2NTNlMTk5ZGEx
ZGFlZTE2ZDFkMDEzZWY3ZDQ3NmNiZWU1My4uZDJhNDczOGYwZmY5YjAwODk1YTVjYjc1Mzc3YWI4
MmZiYzZiZTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTAyLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGV2aWNlIG1vdGlvbiAvIG9y
aWVudGF0aW9uIGV2ZW50cyBub3Qgd29ya2luZyBpbiB0aGlyZC1wYXJ0eSBpZnJhbWVzIGRlc3Bp
dGUgRmVhdHVyZS1Qb2xpY3kgYWxsb3dpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQy
MjkyMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBB
bGxvdyB0aGlyZC1wYXJ0eSBpZnJhbWVzIHRvIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBtb3Rp
b24gLyBvcmllbnRhdGlvbiBldmVudHMgaWYgcGVybWl0dGVkIHZpYQorICAgICAgICBGZWF0dXJl
LVBvbGljeS4gVG8gbWF0Y2ggQmxpbmssIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgbmVlZCB0byBi
ZSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeToKKyAgICAgICAgLSBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50OiBneXJvc2NvcGUsIGFjY2VsZXJvbWV0ZXIgYW5kIG1hZ25ldG9tZXRlcgorICAgICAg
ICAtIERldmljZU1vdGlvbkV2ZW50OiBneXJvc2NvcGUgYW5kIGFjY2VsZXJvbWV0ZXIKKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1h
bGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxs
b3dlZC1ieS1mZWF0dXJlLXBvbGljeS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQt
YnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1l
LWRlbmllZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1w
b2xpY3kuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbAorCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICBEcm9wIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCBjbGFz
cyBhcyBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpl
eGVjdXRlU2NyaXB0SW5Xb3JsZCk6CisgICAgICAgIE1ha2Ugc3VyZSB3ZSBzcGVjaWZ5IHRoZSBk
b2N1bWVudCB3aGVuIHRha2luZyBhIHVzZXIgZ2VzdHVyZSB3aGVuIGFza2VkIHRvIHJ1biBhIHNj
cmlwdC4KKyAgICAgICAgVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBzb21lIGNsaWVudHMgd2Fu
dCB0byBrbm93IHRoYXQgdGhlcmUgd2FzIGEgdXNlciBnZXN0dXJlIGZvcgorICAgICAgICBhIGRv
Y3VtZW50IHdpdGhpbiB0aGVpciBvcmlnaW4gKGxpa2UgZGV2aWNlIG1vdGlvbiAmIG9yaWVudGF0
aW9uKS4KKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAq
IGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uRXZlbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5o
OgorICAgICAgICBNb3ZlIHJlcXVlc3RQZXJtaXNzaW9uKCkgZnJvbSBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQgY2xhc3MgdG8gaXRzIHN1YmNsYXNzZXMgbm93IHRoYXQgdGhlaXIKKyAg
ICAgICAgaW1wbGVtZW50YXRpb25zIGFyZSBzbGlnaHRseSBkaWZmZXJlbnQuCisKKyAgICAgICAg
KiBkb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
cjo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6YWNj
ZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0FjY2Vzcyk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OmNsZWFyUGVy
bWlzc2lvbnMpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyIGlzIHRpZWQgdG8gdGhlIHRvcCBkb2N1bWVudCBhcyB1c2VkIHRvIGhhdmUgYSBz
aW5nbGUKKyAgICAgICAgY2FjaGVkICdwZXJtaXNzaW9uIHN0YXRlJyBzaW5jZSB3ZSB1c2VkIHRv
IG9ubHkgc3VwcG9ydCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gZXZlbnRzIGluCisgICAg
ICAgIGZpcnN0LXBhcnR5IGNvbnRlbnQuIE5vdyB0aGF0IHdlIHN1cHBvcnQgdGhvc2UgZXZlbnRz
IGluIHRoaXJkLXBhcnR5IGNvbnRlbnQsIEkgcmVwbGFjZWQgdGhlCisgICAgICAgIHNpbmdsZSAn
cGVybWlzc2lvbiBzdGF0ZScgZGF0YSBtZW1iZXIgaW50byBhIG1hcCBvZiAncGVybWlzc2lvbiBz
dGF0ZScgcGVyIG9yaWdpbi4gVGhpcyBhbGxvd3MKKyAgICAgICAgdXMgdG8ga25vdyBzeW5jaHJv
bm91c2x5IChhbmQgd2l0aG91dCBJUEMgdG8gdGhlIFVJUHJvY2VzcykgdGhlIGtub3duIHBlcm1p
c3Npb24gc3RhdGUgb2YgZWFjaAorICAgICAgICBpZnJhbWUuCisgICAgICAgIEFsc28sIEkgbm93
IHBhc3MgdGhlIGRvY3VtZW50IHRvIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNl
ckdlc3R1cmUoKSB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICBpbnRlcmFjdGluZyB3aXRoIHRo
ZSB0b3AgZnJhbWUgZG9lcyBub3QgYWxsb3cgYSB0aGlyZC1wYXJ0eSBpZnJhbWUgdG8gcmVxdWVz
dCBwZXJtaXNzaW9uIHRvIHVzZQorICAgICAgICB0aGUgZGV2aWNlIG1vdGlvbiAmIG9yaWVudGF0
aW9uIEFQSS4gVGhlIHVzZXIgbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGF0IHRoaXJkLXBhcnR5
IGlmcmFtZQorICAgICAgICB0byBhbGxvdyB0aGUgaWZyYW1lIHRvIHByb21wdCB0aGUgdXNlci4K
KworICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaDogUmVt
b3ZlZC4KKyAgICAgICAgRHJvcCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgY2xhc3Mg
bm93IHRoYXQgdGhlIDIgc3ViY2xhc3NlcyBuZWVkIGEgc2xpZ2h0bHkgZGlmZmVyZW50CisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIHJlcXVlc3RQZXJtaXNzaW9uKCkuCisKKyAgICAgICAgKiBk
b20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1
cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgTWFrZSBwYXJhbWV0
ZXIgY29uc3Qgc2luY2UgaXQgY2FuIGJlLgorCisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVy
ZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgQ2hlY2sgc3RhdGUg
Zmlyc3QgaW4gdGhlIGNvbmRpdGlvbiB0byBhdm9pZCBkb2luZyBhIG51bGwtZGVyZWYgd2hlbiBh
IFVzZXJHZXN0dXJlSW5kaWNhdG9yCisgICAgICAgIGdldHMgY29uc3RydWN0ZWQgd2l0aCBubyB8
c3RhdGV8IGJ1dCB3aXRoIGEgbm9uLW51bGwgfGRvY3VtZW50fC4KKworICAgICAgICAqIGRvbS9V
c2VyR2VzdHVyZUluZGljYXRvci5oOgorCisgICAgICAgICogaHRtbC9GZWF0dXJlUG9saWN5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnBvbGljeVR5cGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkZlYXR1cmVQb2xpY3k6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVQb2xpY3k6
OmFsbG93cyBjb25zdCk6CisgICAgICAgICogaHRtbC9GZWF0dXJlUG9saWN5Lmg6CisgICAgICAg
IEFkZCB0aGUgZm9sbG93aW5nIGZlYXR1cmUgcG9saWNpZXM6IGFjY2VsZXJvbWV0ZXIsIGd5cm9z
Y29wZSAmIG1hZ25ldG9tZXRlci4KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJh
cHBzZWMtcGVybWlzc2lvbnMtcG9saWN5L2Jsb2IvbWFpbi9mZWF0dXJlcy5tZAorCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpwYWdl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZp
Y2VNb3Rpb25Pck9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aGFzUGVybWlzc2lvblRvUmVjZWl2ZURldmljZU1vdGlv
bk9yT3JpZW50YXRpb25FdmVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93
OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICBEaWZmZXJlbnRp
YXRlIHBlcm1pc3Npb24gc3VwcG9ydCBmb3IgZGV2aWNlIG1vdGlvbiBhbmQgZGV2aWNlIG9yaWVu
dGF0aW9uIHRoYXQKKyAgICAgICAgdGhleSBhcmUgZGlmZmVyZW50LiBJbiBwYXJ0aWN1bGFyLCB0
aGUgdHdvIHR5cGVzIG9mIGV2ZW50cyBub3cgcmVxdWlyZSBhIGRpZmZlcmVudAorICAgICAgICBz
dWJzZXQgb2YgZmVhdHVyZSBwb2xpY2llcy4KKwogMjAyMS0wMi0yMyAgRnJlZGVyaWMgV2FuZyAg
PGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGlu
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4ODM5YzAzMTA0NTlhYzBmMDM2NTI3Mjc5Y2RjZDJiYmI1ZTE5
YTVkLi5hOGFiMzNmNDA5ZTBkMjM0N2Y0NWFhMjhhNzAxMmEyM2JhNDI2NzFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtOTEyLDcgKzkxMiw2IEBAIGRvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXIuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcAog
ZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcAotZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKIGRvbS9Eb2N1bWVu
dC5jcHAKIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAogZG9tL0RvY3VtZW50TWFya2VyQ29udHJv
bGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4MWU5MWFiNTc4Y2Y5MTg2MTY0NjhjNGNlMmVmMzcxODlmNTgwNmQ1Li5l
OTUwYTIwZGRiMTMzZjEwOWQyYzE2NmQyMGMwMGJhNjA3NTg4NDczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjQ4LDcgKzEy
NDgsNiBAQAogCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDVGRUE1Q0UxNTZEREU4QzAw
NjU0MTAxIC8qIERlY2ltYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBCQjYx
NDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OwotCQk0NjBFMzA3NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjFEQTUyQTIyMkY0ODZGMDBEMDVBODcgLyogRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50LmggKi87IH07CiAJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAv
KiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVFREQ5RjIyMkY0RUMzMDBCNDZF
MTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MjE4QUNCMUY3MkQ2
NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9N
SGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgx
MDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgxODAsOCArODE3OSw2IEBACiAJCTQ2MENCRjMzMUQ0
QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9N
V2luZG93UHJvcGVydGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RP
TVdpbmRvd1Byb3BlcnRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwRDE5
NDQxRkNFMjFERDAwQzNEQjg1IC8qIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYxREE1
MkEyMjJGNDg2RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYxREE1MkMyMjJGNDg2RjAw
RDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3
MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQb3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDEyOCw4ICszMDEyNSw2IEBACiAJCQkJNTlBODVF
QTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJ
CTU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8s
CiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
aWRsICovLAotCQkJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQuY3BwICovLAotCQkJCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLywKIAkJCQk0NjVFREQ5RjIyMkY0RUMz
MDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICov
LAogCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJCQk3QzNBOEFCODI1MDlBMTBGMDA4QzQ3N0Yg
LyogRG9jdW1lbnQrQ1NTT01WaWV3LmlkbCAqLywKQEAgLTMxNDUxLDcgKzMxNDQ2LDYgQEAKIAkJ
CQkxMTVDRkE3QTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNUVCNUUxMEU4MUJFODcwMEIyNTk2NSAvKiBCb3JkZXJEYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1ODk1NTZFRDE4RDRBNDQwMDA3NjRCMDMgLyogQm9yZGVyRWRn
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCNDc3OTkyNUQ0NkVGRjAwNUVGMEM4IC8qIFJlbmRl
ck1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjVEQjBFODFCN0VBMDBCMjU5NjUgLyog
Qm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMTZERTAwMjQwQzY0RjkwMDkzNDBB
QSAvKiBCb3VuZGFyeVBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUQ4QzM3QTE4M0JGRjhD
MDA5RTUzQkQgLyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzE5NjUsNyArMzE5NTks
NiBAQAogCQkJCTU5QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAv
KiBEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QTg1RUE0MTE5
RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk0NjBFMzA3NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTM5NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAv
KiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDMyLDYgKzM0
NDI1LDcgQEAKIAkJCQlFNEMyNzk1OTBDRjk3NDE5MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuaCBp
biBIZWFkZXJzICovLAogCQkJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQ1NDQyNEYxMTlCMzY4NzAwOUJFOTEyIC8qIFJl
bmRlck1ldGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0I0Nzc5OTI1RDQ2RUZGMDA1RUYwQzgg
LyogUmVuZGVyTW9kZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMzU4NkUwMTUyNjRDNDUwMDIy
QTY1OSAvKiBSZW5kZXJNdWx0aUNvbHVtbkZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTMy
QjlDMTUxN0MwQjIwMEY1NDJFQyAvKiBSZW5kZXJNdWx0aUNvbHVtblNldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxQTdEOTgxOEZDQjVCMDAwNDIxODc5IC8qIFJlbmRlck11bHRpQ29sdW1uU3Bh
bm5lclBsYWNlaG9sZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZDc1ODI3MzRhZjNkNTA3MjAzYjVl
NDM4YjdiZTllZWMwZmY1OTY5ZC4uOGFlZTQyMzMzNGQ3ZjBlNTU2ZTAxNzI5YTk3N2RjMzM2Yjkx
MDZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTU5MSw3ICs1OTEsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xs
ZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQsCiAgICAgbV9m
cmFtZS5sb2FkZXIoKS5jbGllbnQoKS5ub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCk7CiAj
ZW5kaWYKIAotICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IocGFyYW1l
dGVycy5mb3JjZVVzZXJHZXN0dXJlID09IEZvcmNlVXNlckdlc3R1cmU6OlllcyA/IE9wdGlvbmFs
PFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlPihQcm9jZXNzaW5nVXNlckdlc3R1cmUpIDogV1RG
OjpudWxsb3B0KTsKKyAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHBh
cmFtZXRlcnMuZm9yY2VVc2VyR2VzdHVyZSA9PSBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgPyBPcHRp
b25hbDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4oUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSA6
IFdURjo6bnVsbG9wdCwgbV9mcmFtZS5kb2N1bWVudCgpKTsKIAogICAgIGlmICghY2FuRXhlY3V0
ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2VkKCkpCiAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EZXRhaWxzIHsgIkNhbm5vdCBleGVjdXRlIEph
dmFTY3JpcHQgaW4gdGhpcyBkb2N1bWVudCJfcyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
TW90aW9uRXZlbnQuY3BwCmluZGV4IDNiM2U1OWVhYTNlYzgxMjk5MWMwNjEzZmM5MDM5MjM0MDAw
NmNiOTUuLmJlNzBjOWIwNWNkYzhjMGJmNDJlYzEyNGI4MjEwOGJmYzc0YzQ4N2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjcsNiArMjcsOCBAQAogI2lu
Y2x1ZGUgIkRldmljZU1vdGlvbkV2ZW50LmgiCiAKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRh
LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjUsNCArMTI3LDI2
IEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU1vdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNv
bnN0CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERl
dmljZU1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBl
cm1pc3Npb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVu
dC5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlm
ICghd2luZG93IHx8ICFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOworCisg
ICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxvd2VkVG9Vc2VE
ZXZpY2VNb3Rpb24oZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3Ry
aW5nKCJDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIsIGVycm9y
TWVzc2FnZSwgIi4iKSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lv
blN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGRvY3VtZW50LmRldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLnNob3VsZEFsbG93QWNjZXNzKGRvY3VtZW50LCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcGVybWlzc2lvblN0YXRlKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSA9PSBQZXJtaXNzaW9uU3RhdGU6OlByb21w
dCkKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxv
d2VkRXJyb3IsICJSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNl
ciBnZXN0dXJlIHRvIHByb21wdCJfcyB9KTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHBlcm1p
c3Npb25TdGF0ZSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaAppbmRleCAzOWVlZGRlNzFmMmNi
YmNjMmRkMzRjMDdiYjNkZDUzYjRhMmQ0MzNmLi5lNTBmNzQ2MWY0MjliN2Q1ZGM0NjY5OWVkNDI1
ZDRhODE5MDFlMDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9u
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaApAQCAt
MjUsMTQgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURMVHlw
ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VNb3Rpb25EYXRhOwor
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1j
bGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCwgcHVibGljIERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CitjbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5h
bCA6IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEZXZpY2VNb3Rp
b25FdmVudCk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGV2aWNlTW90aW9uRXZlbnQoKTsKQEAg
LTY4LDYgKzcwLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdERldmljZU1vdGlvbkV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlLCBP
cHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPEFjY2VsZXJhdGlvbj4mJiwgT3B0aW9u
YWw8Um90YXRpb25SYXRlPiYmLCBPcHRpb25hbDxkb3VibGU+KTsKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCisgICAgdXNpbmcgUGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsK
KyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Q
cm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoKTsK
ICAgICBEZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIERldmlj
ZU1vdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKaW5kZXggMTAw
YWFmMThiNTc2MjE1YjZlNTViYjMxM2RkMTA4NWFlOTBlNmE5Zi4uZTc1MjUxZTEyMzVmMTA4YmQy
Y2E0N2M3YTE2Njc5NWVhN2E3YjNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5j
cHAKQEAgLTM5LDM5ICszOSw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1l
bnQoZG9jdW1lbnQpCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6
OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcihEb2N1bWVudCYgdG9w
RG9jdW1lbnQpCisgICAgOiBtX3RvcERvY3VtZW50KHRvcERvY3VtZW50KQogewotICAgIEFTU0VS
VCgmbV9kb2N1bWVudC50b3BEb2N1bWVudCgpID09ICZtX2RvY3VtZW50KTsKK30KKworRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXI6OmFjY2Vzc1N0YXRlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkgY29uc3QKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5m
aW5kKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyAgICBpZiAoaXRlcmF0b3Ig
IT0gbV9hY2Nlc3NTdGF0ZVBlck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9y
LT52YWx1ZTsKKworICAgIC8vIENoZWNrIHBlci1zaXRlIHNldHRpbmcuCisgICAgaWYgKCZkb2N1
bWVudCA9PSAmbV90b3BEb2N1bWVudCB8fCBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzU2Ft
ZU9yaWdpbkFzKG1fdG9wRG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSkpIHsKKyAgICAgICAgYXV0
byogZnJhbWUgPSBtX3RvcERvY3VtZW50LmZyYW1lKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1
bWVudExvYWRlciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkgOiBu
dWxscHRyKQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50TG9hZGVyLT5kZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlKCk7CisgICAgfQogCi0gICAgLy8gSW5pdGlhbCB2YWx1
ZSBpcyBiYXNlZCBvbiB0aGUgcGVyLXNpdGUgc2V0dGluZy4KLSAgICBhdXRvKiBmcmFtZSA9IG1f
ZG9jdW1lbnQuZnJhbWUoKTsKLSAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSA/
IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpIDogbnVsbHB0cikKLSAgICAgICAgbV9h
Y2Nlc3NTdGF0ZSA9IGRvY3VtZW50TG9hZGVyLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc1N0YXRlKCk7CisgICAgcmV0dXJuIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGU6OlByb21wdDsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NvbnRyb2xsZXI6OnNob3VsZEFsbG93QWNjZXNzKEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY2FsbGJhY2spCit2b2lkIERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcjo6c2hvdWxkQWxsb3dBY2Nlc3Mo
Y29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBGdW5jdGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNhbGxiYWNrKQogewotICAgIGF1dG8qIHBhZ2Ug
PSBtX2RvY3VtZW50LnBhZ2UoKTsKLSAgICBhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUo
KTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGF1dG8qIGZyYW1lID0g
ZG9jdW1lbnQuZnJhbWUoKTsKICAgICBpZiAoIXBhZ2UgfHwgIWZyYW1lKQogICAgICAgICByZXR1
cm4gY2FsbGJhY2soRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTo6RGVu
aWVkKTsKIAotICAgIGJvb2wgbWF5UHJvbXB0ID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpOwotICAgIGlmIChtX2FjY2Vzc1N0YXRlICE9IERldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKLSAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKG1fYWNjZXNzU3RhdGUpOworICAgIGF1dG8gYWNjZXNzU3RhdGUgPSB0aGlzLT5hY2Nl
c3NTdGF0ZShkb2N1bWVudCk7CisgICAgaWYgKGFjY2Vzc1N0YXRlICE9IERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdCkKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKGFjY2Vzc1N0YXRlKTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoKm1fZG9jdW1lbnQuZnJhbWUoKSwg
bWF5UHJvbXB0LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZSBwZXJtaXNzaW9uU3RhdGUpIG11dGFibGUgeworICAgIGJvb2wgbWF5UHJvbXB0ID0gVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgmZG9jdW1lbnQpOworICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3MoKmRvY3VtZW50LmZyYW1lKCksIG1heVByb21wdCwgW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyksIHNlY3VyaXR5T3JpZ2luID0gbWFrZVJlZihkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IG1fYWNjZXNzU3RhdGUgPSBwZXJtaXNzaW9uU3RhdGU7CisgICAgICAgIG1fYWNjZXNzU3RhdGVQ
ZXJPcmlnaW4uc2V0KHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIHBlcm1pc3Npb25TdGF0ZSk7CiAg
ICAgICAgIGNhbGxiYWNrKHBlcm1pc3Npb25TdGF0ZSk7CiAKICAgICAgICAgaWYgKHBlcm1pc3Np
b25TdGF0ZSAhPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpHcmFu
dGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGZvciAoYXV0byogZnJhbWUgPSBt
X2RvY3VtZW50LmZyYW1lKCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2RvY3VtZW50LmZyYW1lKCkpKSB7CisgICAgICAgIGZv
ciAoYXV0byogZnJhbWUgPSBtX3RvcERvY3VtZW50LmZyYW1lKCk7IGZyYW1lICYmIGZyYW1lLT53
aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAg
ICAgICBmcmFtZS0+d2luZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25J
Zk5lY2Vzc2FyeSgpOwogICAgICAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3Rlbmlu
Z0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0NvbnRyb2xsZXIuaAppbmRleCA0YWY5NDYxYzlkNzkzNGVmMGM0MmNmOGM0NTkwOTkwMGFlODI4
YTE4Li4xYjAxNGI3NjY1YjAxNmI3MzIwOWQ5ODhmNzU4MTljZDI5ZTBkYWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oCkBAIC0zNiwxOSArMzYsMTkgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOwogCiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50Jik7CisgICAgZXhwbGljaXQgRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50JiB0b3BEb2N1
bWVudCk7CiAKLQotICAgIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUg
YWNjZXNzU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc1N0YXRlOyB9Ci0gICAgdm9pZCBz
aG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlIGFjY2Vzc1N0YXRlKGNvbnN0IERvY3VtZW50JikgY29uc3Q7CisgICAgdm9pZCBz
aG91bGRBbGxvd0FjY2Vzcyhjb25zdCBEb2N1bWVudCYsIEZ1bmN0aW9uPHZvaWQoRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOwogCiBwcml2YXRlOgotICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwotICAgIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUgbV9hY2Nlc3NTdGF0ZSB7IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGU6OlByb21wdCB9OworICAgIERvY3VtZW50JiBtX3RvcERvY3VtZW50OworICAgIEhh
c2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlPiBtX2FjY2Vzc1N0YXRlUGVyT3JpZ2luOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3Bw
CmluZGV4IGVjZjM3MDBlNDQyZTJhZGJkNjZjYTk3ZmEzZWJhNzZlZjllMjA3ZGIuLjExZjdhZWEz
MzAyNDlhMzFkNWJhY2EzNGIwYWUzNzU0OTJjOTk4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgiCiAKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTExMiw0ICsxMTQsMjYgQEAgRXZlbnRJbnRlcmZhY2UgRGV2aWNlT3JpZW50
YXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpyZXF1
ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKKyAgICBh
dXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICghd2luZG93IHx8ICFwYWdlKQor
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOworCisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbihlcnJv
ck1lc3NhZ2UpKSB7CisgICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gcmVx
dWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsK
KyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7
CisgICAgfQorCisgICAgZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ND
b250cm9sbGVyKCkuc2hvdWxkQWxsb3dBY2Nlc3MoZG9jdW1lbnQsIFtwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCisg
ICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVy
cm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzIHJlcXVpcmVzIGEgdXNl
ciBnZXN0dXJlIHRvIHByb21wdCJfcyB9KTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHBlcm1p
c3Npb25TdGF0ZSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKaW5kZXggZTcw
MzQ1OGExNjU0NmMyM2I4YTE2NTU1ODNmYjgzN2M5YjA5MTNkZi4uODE5ZWNiYjA2ODU5MTE2Y2M5
ODBiZjcyZmEzYTNjZTkyYjQwMmQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5oCkBAIC0yNSwxNCArMjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERldmljZU9yaWVudGF0aW9uRGF0YTsKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25FdmVudCBmaW5h
bCA6IHB1YmxpYyBFdmVudCwgcHVibGljIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERldmljZU9yaWVudGF0aW9uRXZlbnQpOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0
b21TdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmllbnRhdGlvbikK
QEAgLTYyLDYgKzY0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlv
bkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxh
YmxlLCBPcHRpb25hbDxkb3VibGU+IGFscGhhLCBPcHRpb25hbDxkb3VibGU+IGJldGEsIE9wdGlv
bmFsPGRvdWJsZT4gZ2FtbWEsIE9wdGlvbmFsPGJvb2w+IGFic29sdXRlKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB1c2luZyBQZXJtaXNzaW9uU3RhdGUg
PSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOworICAgIHVzaW5nIFBl
cm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1p
c3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50
JiwgUGVybWlzc2lvblByb21pc2UmJik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudChjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9uRGF0YSopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAyMWE4MWZiZTVkZWJkNmIxZmRiMzk4MmFkZjEx
MzI1NmMzYWY3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKLQotI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKLXsKLSAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKLSAg
ICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYnJvd3NpbmcgY29udGV4dCJfcyB9KTsKLQotICAgIFN0
cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNl
TW90aW9uT3JpZW50YXRpb24oZXJyb3JNZXNzYWdlKSkgewotICAgICAgICBkb2N1bWVudC5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBt
YWtlU3RyaW5nKCJDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIs
IGVycm9yTWVzc2FnZSwgIi4iKSk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVy
bWlzc2lvblN0YXRlOjpEZW5pZWQpOwotICAgIH0KLQotICAgIGRvY3VtZW50LmRldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLnNob3VsZEFsbG93QWNjZXNzKFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkg
bXV0YWJsZSB7Ci0gICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlzc2lvblN0YXRl
OjpQcm9tcHQpCi0gICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90QWxsb3dlZEVycm9yLCAiUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gb3IgbW90aW9u
IGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQiX3MgfSk7Ci0gICAgICAg
IHByb21pc2UucmVzb2x2ZShwZXJtaXNzaW9uU3RhdGUpOwotICAgIH0pOwotfQotI2VuZGlmCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2EzMGYzZDJjMTc0Mjk1NTExYTM1OGUyNjU0ODgwNGNlZTIzMjAwYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKLSNpbmNsdWRlICJJRExUeXBlcy5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBJ
RExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Ci0KLWNsYXNzIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudCB7Ci1wdWJsaWM6Ci0KLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQotICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGU7Ci0gICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9t
aXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47Ci0gICAgc3RhdGlj
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsK
LSNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
KCkgPSBkZWZhdWx0OwotICAgIH5EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQoKSA9IGRl
ZmF1bHQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAppbmRleCBkMTNkMWIwYTYwZDkzNjg2YTQzNjYzNTYy
Y2ExZTk4OTUzY2M2NTUyLi4xMmM0MzY0MzY5NDY1YzZmNTA3ZDc2M2I5M2NhZDZkMjA0ZGIzMWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKQEAgLTg5
LDcgKzg5LDcgQEAgdm9pZCBVc2VyR2VzdHVyZVRva2VuOjpzZXRNYXhpbXVtSW50ZXJ2YWxGb3JV
c2VyR2VzdHVyZUZvcndhcmRpbmdGb3JGZXRjaEZvclRlc3QKICAgICBtYXhJbnRlcnZhbEZvclVz
ZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoID0gV1RGTW92ZSh2YWx1ZSk7CiB9CiAKLWJvb2wg
VXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkg
Y29uc3QKK2Jvb2wgVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckRvY3VtZW50KGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kb2N1bWVudHNJbXBhY3Rl
ZEJ5VXNlckdlc3R1cmUuY29udGFpbnMoZG9jdW1lbnQpOwogfQpAQCAtMTAyLDcgKzEwMiw3IEBA
IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihPcHRpb25hbDxQcm9j
ZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4KICAgICBpZiAoc3RhdGUpCiAgICAgICAgIGN1cnJlbnRU
b2tlbigpID0gVXNlckdlc3R1cmVUb2tlbjo6Y3JlYXRlKHN0YXRlLnZhbHVlKCksIGdlc3R1cmVU
eXBlLCBkb2N1bWVudCk7CiAKLSAgICBpZiAoZG9jdW1lbnQgJiYgY3VycmVudFRva2VuKCktPnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpICYmIHN0YXRlKSB7CisgICAgaWYgKHN0YXRlICYmIGRvY3Vt
ZW50ICYmIGN1cnJlbnRUb2tlbigpLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgewogICAgICAg
ICBkb2N1bWVudC0+dXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcChjdXJyZW50
VG9rZW4oKS0+c3RhcnRUaW1lKCkpOwogICAgICAgICBpZiAocHJvY2Vzc0ludGVyYWN0aW9uU3R5
bGUgPT0gUHJvY2Vzc0ludGVyYWN0aW9uU3R5bGU6OkltbWVkaWF0ZSkKICAgICAgICAgICAgIFJl
c291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNl
ZFRpbWVSZXNvbHV0aW9uKGRvY3VtZW50LT50b3BEb2N1bWVudCgpKTsKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJl
bnRVc2VyR2VzdHVyZSgpCiAgICAgcmV0dXJuIGN1cnJlbnRUb2tlbigpOwogfQogCi1ib29sIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQorYm9vbCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGNv
bnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWlzTWFpblRocmVhZCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRv
ci5oCmluZGV4IDY5ZDJlMDkwNzk5NjQxOTU0ZDhjZTg5ZWFlNzcwNGUxZjllZWU4NjQuLmY1Y2M3
ZmFkMjEwMjE5NzI2MGE0M2NjZmM0MTdmMTQzY2FmNDQyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGljOgogCiAg
ICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsg
fQogCi0gICAgYm9vbCBpc1ZhbGlkRm9yRG9jdW1lbnQoRG9jdW1lbnQmKSBjb25zdDsKKyAgICBi
b29sIGlzVmFsaWRGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIFVzZXJHZXN0dXJlVG9rZW4oUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUsIFVzZXJH
ZXN0dXJlVHlwZSwgRG9jdW1lbnQqKTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBjbGFzcyBVc2VyR2Vz
dHVyZUluZGljYXRvciB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0
cjxVc2VyR2VzdHVyZVRva2VuPiBjdXJyZW50VXNlckdlc3R1cmUoKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZShEb2N1bWVudCogPSBudWxs
cHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUoY29uc3QgRG9jdW1lbnQqID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKTsKIAogICAgIC8vIElmIGEgZG9j
dW1lbnQgaXMgcHJvdmlkZWQsIGl0cyBsYXN0IGtub3duIHVzZXIgZ2VzdHVyZSB0aW1lc3RhbXAg
aXMgdXBkYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGlj
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCmluZGV4IDAyM2Zi
YzQ5MmU0MTAzMTY2MjZjN2Y3YmU0MjU1OGIwMjQzNzdlMzUuLmU1MzlkNmQ1MmZlMzU1MzgzYTI2
Yzk2YjVhY2Y0NDkxMGViMjU2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVh
dHVyZVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNw
cApAQCAtNTIsNiArNTIsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHBvbGljeVR5cGVOYW1lKEZl
YXR1cmVQb2xpY3k6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuICJTeW5jWEhSIjsKICAgICBj
YXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkZ1bGxzY3JlZW46CiAgICAgICAgIHJldHVybiAiRnVs
bHNjcmVlbiI7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBjYXNlIEZlYXR1
cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZToKKyAgICAgICAgcmV0dXJuICJHeXJvc2NvcGUiOwor
ICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6QWNjZWxlcm9tZXRlcjoKKyAgICAgICAgcmV0
dXJuICJBY2NlbGVyb21ldGVyIjsKKyAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6Ok1hZ25l
dG9tZXRlcjoKKyAgICAgICAgcmV0dXJuICJNYWduZXRvbWV0ZXIiOworI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQlhSKQogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6WFJTcGF0aWFsVHJhY2tp
bmc6CiAgICAgICAgIHJldHVybiAiWFJTcGF0aWFsVHJhY2tpbmciOwpAQCAtMTYxLDYgKzE2OSwx
MSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5p
dGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3luY1hIUkluaXRpYWxpemVkID0gZmFsc2U7
CiAgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFsaXplZCA9IGZhbHNlOworI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgYm9vbCBpc0d5cm9zY29wZUluaXRpYWxpemVkID0gZmFs
c2U7CisgICAgYm9vbCBpc0FjY2VsZXJvbWV0ZXJJbml0aWFsaXplZCA9IGZhbHNlOworICAgIGJv
b2wgaXNNYWduZXRvbWV0ZXJJbml0aWFsaXplZCA9IGZhbHNlOworI2VuZGlmCiAjaWYgRU5BQkxF
KFdFQlhSKQogICAgIGJvb2wgaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkID0gZmFsc2U7
CiAjZW5kaWYKQEAgLTE5Niw2ICsyMDksMjMgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5
OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAg
ICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZnVsbHNjcmVlblJ1bGUsIGl0
ZW0uc3Vic3RyaW5nKDExKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgo
Imd5cm9zY29wZSIpKSB7CisgICAgICAgICAgICBpc0d5cm9zY29wZUluaXRpYWxpemVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2d5cm9zY29wZVJ1
bGUsIGl0ZW0uc3Vic3RyaW5nKDEwKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJhY2NlbGVyb21ldGVyIikpIHsKKyAgICAg
ICAgICAgIGlzQWNjZWxlcm9tZXRlckluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHVw
ZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2FjY2VsZXJvbWV0ZXJSdWxlLCBpdGVtLnN1YnN0
cmluZygxNCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGl0ZW0uc3RhcnRzV2l0aCgibWFnbmV0b21ldGVyIikpIHsKKyAgICAgICAgICAgIGlzTWFnbmV0
b21ldGVySW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVu
dCwgcG9saWN5Lm1fbWFnbmV0b21ldGVyUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTMpKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAg
ICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoInhyLXNwYXRpYWwtdHJhY2tpbmciKSkgewogICAg
ICAgICAgICAgaXNYUlNwYXRpYWxUcmFja2luZ0luaXRpYWxpemVkID0gdHJ1ZTsKQEAgLTIxNCw2
ICsyNDQsMTQgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JgogICAgICAgICBwb2xpY3kubV9zcGVh
a2VyU2VsZWN0aW9uUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOwogICAgIGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkKQogICAgICAg
ICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNl
Y3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIGlmICghaXNHeXJvc2NvcGVJbml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5Lm1fZ3lyb3Nj
b3BlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkp
OworICAgIGlmICghaXNBY2NlbGVyb21ldGVySW5pdGlhbGl6ZWQpCisgICAgICAgIHBvbGljeS5t
X2FjY2VsZXJvbWV0ZXJSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLmRhdGEoKSk7CisgICAgaWYgKCFpc01hZ25ldG9tZXRlckluaXRpYWxpemVkKQorICAgICAg
ICBwb2xpY3kubV9tYWduZXRvbWV0ZXJSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLmRhdGEoKSk7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgaWYg
KCFpc1hSU3BhdGlhbFRyYWNraW5nSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX3hyU3Bh
dGlhbFRyYWNraW5nUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOwpAQCAtMjU1LDYgKzI5MywxNCBAQCBib29sIEZlYXR1cmVQb2xpY3k6OmFsbG93
cyhUeXBlIHR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAogICAg
ICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fc3luY1hIUlJ1bGUsIG9yaWdp
bik7CiAgICAgY2FzZSBUeXBlOjpGdWxsc2NyZWVuOgogICAgICAgICByZXR1cm4gaXNBbGxvd2Vk
QnlGZWF0dXJlUG9saWN5KG1fZnVsbHNjcmVlblJ1bGUsIG9yaWdpbik7CisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICBjYXNlIFR5cGU6Okd5cm9zY29wZToKKyAgICAgICAgcmV0
dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2d5cm9zY29wZVJ1bGUsIG9yaWdpbik7Cisg
ICAgY2FzZSBUeXBlOjpBY2NlbGVyb21ldGVyOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlG
ZWF0dXJlUG9saWN5KG1fYWNjZWxlcm9tZXRlclJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBl
OjpNYWduZXRvbWV0ZXI6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3ko
bV9tYWduZXRvbWV0ZXJSdWxlLCBvcmlnaW4pOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQog
ICAgIGNhc2UgVHlwZTo6WFJTcGF0aWFsVHJhY2tpbmc6CiAgICAgICAgIHJldHVybiBpc0FsbG93
ZWRCeUZlYXR1cmVQb2xpY3kobV94clNwYXRpYWxUcmFja2luZ1J1bGUsIG9yaWdpbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCmluZGV4IGIyNGJlODJhZmFkM2M4ZmUyMDc0MzQ3NDYx
MjdjYmFkYzBkOTExZmQuLmVlZGU4ZjE5NzcyMDMxZTEwYjljNGQyOTM4NGIzZDUwYThjN2E5YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAogICAgICAgICBTeW5jWEhSLAogICAgICAgICBG
dWxsc2NyZWVuLAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIEd5cm9z
Y29wZSwKKyAgICAgICAgQWNjZWxlcm9tZXRlciwKKyAgICAgICAgTWFnbmV0b21ldGVyLAorI2Vu
ZGlmCiAjaWYgRU5BQkxFKFdFQlhSKQogICAgICAgICBYUlNwYXRpYWxUcmFja2luZywKICNlbmRp
ZgpAQCAtNjQsNyArNjksMTQgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9kaXNwbGF5Q2Fw
dHVyZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CiAgICAgQWxsb3dSdWxlIG1f
ZnVsbHNjcmVlblJ1bGU7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBBbGxv
d1J1bGUgbV9neXJvc2NvcGVSdWxlOworICAgIEFsbG93UnVsZSBtX2FjY2VsZXJvbWV0ZXJSdWxl
OworICAgIEFsbG93UnVsZSBtX21hZ25ldG9tZXRlclJ1bGU7CisjZW5kaWYKKyNpZiBFTkFCTEUo
V0VCWFIpCiAgICAgQWxsb3dSdWxlIG1feHJTcGF0aWFsVHJhY2tpbmdSdWxlOworI2VuZGlmCiB9
OwogCiBlbnVtIGNsYXNzIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlIHsgTm8sIFllcyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDMyODc2ZjkwOThkNDkwNTI4YzMyZjhjZTkxN2Vj
Mjc2YWFkZGJjZGIuLjA2MjkzODJiMGQ4Y2IxYjA3YmFmZGI0NTlmNzU2YzkyMDg4NzNmOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJF
dmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKICNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAt
NDQ2LDcgKzQ0Nyw3IEBAIFJlZlB0cjxNZWRpYVF1ZXJ5TGlzdD4gRE9NV2luZG93OjptYXRjaE1l
ZGlhKGNvbnN0IFN0cmluZyYgbWVkaWEpCiAgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVu
dCgpLT5tZWRpYVF1ZXJ5TWF0Y2hlcigpLm1hdGNoTWVkaWEobWVkaWEpIDogbnVsbHB0cjsKIH0K
IAotUGFnZSogRE9NV2luZG93OjpwYWdlKCkKK1BhZ2UqIERPTVdpbmRvdzo6cGFnZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiBudWxscHRyOwogfQpA
QCAtMjAwNSw5ICsyMDA2LDkgQEAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogRE9NV2luZG93Ojpk
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QKICNlbmRpZgogfQogCi1ib29sIERPTVdpbmRv
dzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0Citib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pck9yaWVu
dGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKIHsKLSAgICBpZiAoIWZyYW1lKCkgfHwgIWZy
YW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSkgeworICAg
IGlmICghZnJhbWUoKSB8fCAhZG9jdW1lbnQoKSB8fCAhZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZp
Y2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CiAgICAgICAgIG1lc3NhZ2UgPSAiQVBJIGlz
IGRpc2FibGVkIl9zOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAxNywyOSAr
MjAxOCw1MiBAQCBib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pcmll
bnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKLSAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSkgewotICAg
ICAgICBtZXNzYWdlID0gIlNvdXJjZSBmcmFtZSBkaWQgbm90IGhhdmUgdGhlIHNhbWUgc2VjdXJp
dHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UiX3M7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0Cit7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yT3JpZW50YXRp
b24obWVzc2FnZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaXNGZWF0dXJl
UG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6
R3lyb3Njb3BlLCAqZG9jdW1lbnQoKSwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKQorICAg
ICAgICB8fCAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVh
dHVyZVBvbGljeTo6VHlwZTo6QWNjZWxlcm9tZXRlciwgKmRvY3VtZW50KCksIExvZ0ZlYXR1cmVQ
b2xpY3lGYWlsdXJlOjpObykpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJUaGlyZC1wYXJ0eSBpZnJh
bWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGlj
aXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRl
cikiX3M7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRp
b25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Citib29sIERPTVdpbmRvdzo6aXNBbGxv
d2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAg
U3RyaW5nIGlubmVyTWVzc2FnZTsKLSAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9u
T3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSkgewotICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmlu
ZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpOworICAgIGlmICgh
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uKG1lc3NhZ2UpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3Vt
ZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6Okd5cm9zY29wZSwgKmRvY3VtZW50
KCksIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykKKyAgICAgICAgfHwgIWlzRmVhdHVyZVBv
bGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OkFj
Y2VsZXJvbWV0ZXIsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pCisg
ICAgICAgIHx8ICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhG
ZWF0dXJlUG9saWN5OjpUeXBlOjpNYWduZXRvbWV0ZXIsICpkb2N1bWVudCgpLCBMb2dGZWF0dXJl
UG9saWN5RmFpbHVyZTo6Tm8pKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiVGhpcmQtcGFydHkgaWZy
YW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiB1bmxlc3Mg
ZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxl
cm9tZXRlciAmIG1hZ25ldG9tZXRlcikiX3M7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6Omhhc1Blcm1pc3Npb25U
b1JlY2VpdmVEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uRXZlbnRzKFN0cmluZyYgbWVzc2FnZSkg
Y29uc3QKK3sKICAgICBpZiAoZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvblBl
cm1pc3Npb25BUElFbmFibGVkKCkpIHsKLSAgICAgICAgYXV0byBhY2Nlc3NTdGF0ZSA9IGRvY3Vt
ZW50KCktPmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLmFjY2Vz
c1N0YXRlKCk7CisgICAgICAgIGlmICghcGFnZSgpKSB7CisgICAgICAgICAgICBtZXNzYWdlID0g
Ik5vIGJyb3dzaW5nIGNvbnRleHQiX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICAgICAgYXV0byBhY2Nlc3NTdGF0ZSA9IGRvY3VtZW50KCktPmRldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlcigpLmFjY2Vzc1N0YXRlKCpkb2N1bWVudCgp
KTsKICAgICAgICAgc3dpdGNoIChhY2Nlc3NTdGF0ZSkgewogICAgICAgICBjYXNlIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OkRlbmllZDoKLSAgICAgICAgICAgIG1l
c3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmllZC4iX3M7Cisg
ICAgICAgICAgICBtZXNzYWdlID0gIlBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmll
ZCJfczsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpQcm9tcHQ6Ci0gICAgICAgICAgICBtZXNz
YWdlID0gIk5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuIl9zOwor
ICAgICAgICAgICAgbWVzc2FnZSA9ICJQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBub3Qg
eWV0IHJlcXVlc3RlZCJfczsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2Fz
ZSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOjpHcmFudGVkOgogICAg
ICAgICAgICAgYnJlYWs7CkBAIC0yMDU4LDEwICsyMDgyLDEwIEBAIHZvaWQgRE9NV2luZG93Ojpz
dGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQogICAgIGlmICgh
ZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3Rl
bmVyKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIGVycm9yTWVzc2FnZTsK
LSAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihl
cnJvck1lc3NhZ2UpKSB7CisgICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxs
b3dlZFRvVXNlRGV2aWNlT3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSB8fCAhaGFzUGVybWlzc2lv
blRvUmVjZWl2ZURldmljZU1vdGlvbk9yT3JpZW50YXRpb25FdmVudHMoaW5uZXJNZXNzYWdlKSkg
ewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQotICAgICAg
ICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICBkb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgbWFrZVN0cmluZygiTm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVk
LCByZWFzb246ICIsIGlubmVyTWVzc2FnZSwgIi4iKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTIwODYsMTEgKzIxMTAsMTEgQEAgdm9pZCBET01XaW5kb3c6OnN0YXJ0TGlzdGVuaW5n
Rm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKQogICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8
fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBpZiAoIWlzQWxsb3dl
ZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7Cisg
ICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90
aW9uKGlubmVyTWVzc2FnZSkgfHwgIWhhc1Blcm1pc3Npb25Ub1JlY2VpdmVEZXZpY2VNb3Rpb25P
ck9yaWVudGF0aW9uRXZlbnRzKGlubmVyTWVzc2FnZSkpIHsKICAgICAgICAgZmFpbGVkVG9SZWdp
c3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKICAgICAgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1l
c3NhZ2UpOworICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIk5vIGRldmljZSBt
b3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXgg
MGUzNTExN2Y1YWQ4YWI4ZmRkZjRkZGY2NjY5MDE3YzAxZjg5YzQ1Mi4uMTVhNmJjYWZlZTQ2NWVk
M2YwMGRkMmNiMTAxY2U2MTMzZmRlMTcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0z
NjYsOCArMzY2LDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VN
b3Rpb25JZk5lY2Vzc2FyeSgpOwogICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlv
bklmTmVjZXNzYXJ5KCk7CiAKLSAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3Jp
ZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKLSAgICBib29sIGlzQWxsb3dlZFRvQWRk
RGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Owor
ICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VPcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0OworICAgIGJvb2wgaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb24oU3RyaW5nJiBtZXNz
YWdlKSBjb25zdDsKIAogICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciog
ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OwpAQCAtNDEwLDEzICs0MTAsMTUgQEAgcHJp
dmF0ZToKICAgICBib29sIGlzTG9jYWxET01XaW5kb3coKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgYm9vbCBpc1JlbW90ZURPTVdpbmRvdygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CiAKLSAgICBQYWdlKiBwYWdlKCk7CisgICAgUGFnZSogcGFnZSgpIGNvbnN0Owog
ICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsKIAogICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgV2luZG93RmVh
dHVyZXMmLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRnJhbWUmIGZpcnN0RnJhbWUsIEZyYW1l
JiBvcGVuZXJGcmFtZSwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKERPTVdpbmRvdyYpPiYgcHJl
cGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0
QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7
CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGJvb2wgaXNBbGxvd2VkVG9V
c2VEZXZpY2VNb3Rpb25Pck9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAg
Ym9vbCBoYXNQZXJtaXNzaW9uVG9SZWNlaXZlRGV2aWNlTW90aW9uT3JPcmllbnRhdGlvbkV2ZW50
cyhTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwogICAgIHZvaWQgZmFpbGVkVG9SZWdpc3RlckRldmlj
ZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTdlN2JiOGI1ZDczNmRj
OGQ3YTcyNjhmMTM2YjI5MzI2NzBjNmUxYS4uNTdjZWFkZWMyNDFmZmJhNjU2NTcxOWE3OWJhNDRh
MjhmMzE3MzZkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTAyLTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGV2aWNlIG1vdGlvbiAvIG9yaWVudGF0
aW9uIGV2ZW50cyBub3Qgd29ya2luZyBpbiB0aGlyZC1wYXJ0eSBpZnJhbWVzIGRlc3BpdGUgRmVh
dHVyZS1Qb2xpY3kgYWxsb3dpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTM5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQyMjkyMjc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBBZGQgbGF5
b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNz
aW9uLWRlbmllZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRl
bmllZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi11c2VyLWdlc3R1cmUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFy
dHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRo
aXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhp
cmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50
LWZlYXR1cmUtcG9saWN5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
YWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93
ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1l
LWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQt
cGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRo
aXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZm
aWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUt
ZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVz
b3VyY2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1l
dmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0
YXRpb25zOgorCiAyMDIxLTAyLTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OOiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdm9sdW1l
LXN1cHBvcnQvdm9sdW1lLXN1cHBvcnQtY2xpY2suaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGI3NjA0ODE0MzZjNjEwNDFlYjk3NWFkN2Y1ZmIyMTY4ZWUxYTVl
NmUuLmQ5NWQ0MGY2MTNjZjc3ODFlNDFjZWYwM2RmNzllN2I2MzY0Njk0ZjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNTAsNiArNTAsNyBAQCBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92
aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0K
IGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCitodHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbiBbIFNraXAgXQogZmFzdC9ldmVudHMvY3Vyc29ycyBbIFNraXAgXQogZmFzdC9ldmVu
dHMvaW9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy93YXRjaG9zIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dAppbmRleCA4YThmNDAyNjJhYzkxODg0ODNjOWY2NzRjYjcwYTU5MjY3Y2RmY2Vl
Li4xMjc3MTA5Mzk1ZTNkNzQ0MWM3Y2QyODRlOWMwYzA3Mzc1NTc4YWY4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1l
eHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACi1DT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBt
b3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lv
biBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitDT05TT0xFIE1FU1NBR0U6IE5vIGRl
dmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1
c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQuCiBSZWNlaXZlZCBkZXZpY2Ugb3JpZW50
YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KLUNP
TlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2ls
bCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmllZC4K
K0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwg
cmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCiBCYXNpYyB0ZXN0
aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CmluZGV4IGNlMWE3MGEy
YjY2OWI5MmJiNGU3NmJmNTk3ZWRjOWZkYzdjMGQ1NDQuLjA5MzEzZWU3MmM1N2RhYjUzNTk2ZGU5
M2JhMjZjNGMyYzBjZjNjMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAotQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2
ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFu
ZCBncmFudGVkLgorQ09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIG5vdCB5ZXQg
cmVxdWVzdGVkLgogUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyBy
ZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCiBCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4
cGVjdGVkLnR4dAppbmRleCA3OTgzNzIzM2NmNWRjOTVmNmM5Mjc4ODk4YmNkZmU5ZTRmOWRhOTQ4
Li5lY2JkYmZkYjcxM2Q1NDJjZDgzMmRhNGM4Y2NkMGVlMGNjMWM2MmU5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVz
ZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6
IE5vdEFsbG93ZWRFcnJvcjogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gb3IgbW90aW9u
IGFjY2VzcyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSB0byBwcm9tcHQKK0NPTlNPTEUgTUVTU0FH
RTogTm90QWxsb3dlZEVycm9yOiBSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzIHJlcXVp
cmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdAogVGVzdHMgdGhhdCBEZXZpY2VNb3Rpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKaW5kZXgg
YzQwMjYzOGM3MzgzOTZlNmQ0ZDlkNWYyNjQ5YWIzNzgwM2U1ZDVmYi4uZTA4OTQ5MzI3OTQwNDZl
MWNkNTA0MTE2MzA5OTljZjJkMjcxMGYzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDYgQEAKLUNPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBv
ciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBi
ZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9y
aWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNl
IHRoZSBBUEkgd2FzIG5vdCB5ZXQgcmVxdWVzdGVkLgogUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0
aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCi1DT05T
T0xFIE1FU1NBR0U6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwg
YmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitD
T05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJl
ZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCiBCYXNpYyB0
ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQu
dHh0CmluZGV4IGJjMzdkMDRkOTUxNmFmNGJjYjRmMjA5YmQxOWJmZGIzMTUxZmU3MTMuLjcyNTQz
ODFmOTI1YmRmMTVhNDY5MjlkZjk0MWY0MDYxYzE0Y2I2MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogTm8gZGV2
aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJt
aXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK0NPTlNPTEUgTUVTU0FHRTog
Tm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1p
c3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIG5vdCB5ZXQgcmVxdWVzdGVkLgogUmVjZWl2ZWQgZGV2
aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmln
aW4gIiIuCiBCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQ
ZXJtaXNzaW9uKCkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4
dAppbmRleCA5MTkzN2MxMzYyNmQ0ODU4ZTc2NjQ3OWFkNmRlNjBhZGJlNzdiMTJlLi5jNjVkOTQ2
OTE5YTY1NzA1NjZjNjI0NjIxNDExMTg2YjJkYjgzNmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11
c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdF
OiBOb3RBbGxvd2VkRXJyb3I6IFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIG9yIG1vdGlv
biBhY2Nlc3MgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUgdG8gcHJvbXB0CitDT05TT0xFIE1FU1NB
R0U6IE5vdEFsbG93ZWRFcnJvcjogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNz
IHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlIHRvIHByb21wdAogVGVzdHMgdGhhdCBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUu
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tdXNlci1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1s
CmluZGV4IDkyNjk5MmFkNDM1OGRkNzNiY2M5NTJhNzA4NDgxZTUyZGQ2ZTVjZjEuLjEwOTlkMTlm
NDc5ZWJjYWI4NWExOTJhNDEwZmIwNzM4MmZmMjBiYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tdXNlci1nZXN0dXJlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUuaHRtbApAQCAtOSw2ICs5LDcgQEAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKIERldmljZU9y
aWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICB0ZXN0RmFpbGVkKCJyZXF1ZXN0UGVybWlzc2lvbiBwcm9taXNlIHdhcyBub3QgcmVqZWN0ZWQi
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0sIChfZSkgPT4gewogICAgIGUgPSBfZTsKICAgICBj
b25zb2xlLmxvZyhlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMzQ3ZmY2YjViNGEyYjA2Nzg5NDZjOTg3YjY4ZTFhOWYxNjhlNmIxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3Mg
cmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLgorQ09O
U09MRSBNRVNTQUdFOiBObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFz
b246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIG5vdCB5ZXQgcmVxdWVzdGVkLgorUmVj
ZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1
cml0eSBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuCitUZXN0cyB0aGF0IGdpdmluZyBk
ZXZpY2UgbW90aW9uIHBlcm1pc3Npb24gaW4gdGhlIG1haW4gZnJhbWUgZG9lcyBub3QgZ2l2ZSBh
Y2Nlc3MgdG8gdGhpcmQtcGFydHkgaWZyYW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBlLmRhdGEgaXMgImRlbmllZCIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0
LXBhcnR5LW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDY0ZDg5MDEzY2NhZWRiMWQ2OGNiNDI2NDJh
YTNkOWI3YzBjZWI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9u
bHkuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGdpdmluZyBkZXZpY2UgbW90aW9uIHBl
cm1pc3Npb24gaW4gdGhlIG1haW4gZnJhbWUgZG9lcyBub3QgZ2l2ZSBhY2Nlc3MgdG8gdGhpcmQt
cGFydHkgaWZyYW1lcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisvLyBJZiBwcm9tcHRl
ZCwgYWxsb3cuCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCitvbm1lc3Nh
Z2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
LmRhdGEiLCAiZGVuaWVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7ICAgIAorfTsKKworaW50ZXJu
YWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1
bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsK
KyAgICAgICAgLy8gSWYgcHJvbXB0ZWQsIGRlbnkuCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKKyAgICAgICAgLy8gQ3JlYXRlIHRoaXJkLXBh
cnR5IGlmcmFtZSB0aGF0IHJlcXVlc3RzIHBlcm1pc3Npb24gZm9yIGl0c2VsZiwgYnV0IHRoaXMg
dGltZSBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgIGxldCB0ZXN0RnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgdGVzdEZyYW1lLnNyYyA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1v
dGlvbi1ldmVudHMuaHRtbCI7CisgICAgICAgIHRlc3RGcmFtZS5hbGxvdyA9ICJhY2NlbGVyb21l
dGVyO2d5cm9zY29wZSI7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHRlc3RGcmFtZSk7
CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ1MDgwYjM3NjRjNjAwMWVmM2ZmNGY4MTBmOGJmMGQ0YTRmMGUxMTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUt
cG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IE5v
IGRldmljZSBtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0
byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3Jp
ZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4KK1Rlc3RzIHRoYXQgdGhpcmQtcGFydHkgaWZyYW1lcyBjYW4g
cmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBldmVudHMgaWYgYWxsb3dlZCBieSBmZWF0
dXJlIHBvbGljeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRh
IGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVy
ZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xp
Y3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YWJmN2JkMmVmOTUzODNjMWYzZTAzNmM2ZWUyZDVlNTU0MGEw
MjUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0
dXJlLXBvbGljeS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhpcmQtcGFydHkgaWZy
YW1lcyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiBldmVudHMgaWYgYWxsb3dl
ZCBieSBmZWF0dXJlIHBvbGljeS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisvLyBJZiBw
cm9tcHRlZCwgYWxsb3cuCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5z
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCitv
bm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJlLmRhdGEiLCAiZ3JhbnRlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307Cis8
L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVu
dGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbCIgYWxsb3c9ImFjY2Vs
ZXJvbWV0ZXI7Z3lyb3Njb3BlIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xp
Y3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVu
dC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQxNzk3YTNhN2I2ZmI5
OWE3YzZjNTRhODhjYTJkNDg1NWQyMzEyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHkt
aWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVu
dHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxs
b3dlZCBhY2Nlc3MgdG8gZGV2aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZp
YSBGZWF0dXJlLVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitDT05TT0xFIE1F
U1NBR0U6IENhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQt
cGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5s
ZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFj
Y2VsZXJvbWV0ZXIpLgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1
ZXN0IGFjY2VzcyB0byBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aXRoIGluc3VmZmljaWVudCBmZWF0
dXJlIHBvbGljeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5kYXRh
IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmlj
aWVudC1mZWF0dXJlLXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWlu
c3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNWJiMzE1ZWI1NmUz
MjdiNDQ5YWRmODkxZTc5ZmU2MzlmYzA1MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5
LWlmcmFtZS1kZW5pZWQtYnktaW5zdWZmaWNpZW50LWZlYXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAs
MCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFj
Y2VzcyB0byBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aXRoIGluc3VmZmljaWVudCBmZWF0dXJlIHBv
bGljeS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisvLyBJZiBwcm9tcHRlZCwgYWxsb3cu
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCitvbm1lc3NhZ2UgPSAoX2Up
ID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmRhdGEiLCAi
ZGVuaWVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7ICAgIAorfTsKKzwvc2NyaXB0PgorPGlmcmFt
ZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2Vz
L3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1sIiBhbGxvdz0iZ3lyb3Njb3BlIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYwMmRiMzY2NTY5NjI3Mjk2ZTFiZjZjZDM3ZTQ5YmM3ODkyYWY0NzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBi
ZSBmaXJlZCwgcmVhc29uOiBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCBhY2Nl
c3MgdG8gZGV2aWNlIG1vdGlvbiB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJl
LVBvbGljeSAoZ3lyb3Njb3BlICYgYWNjZWxlcm9tZXRlcikuCitDT05TT0xFIE1FU1NBR0U6IENh
bGwgdG8gcmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogVGhpcmQtcGFydHkgaWZy
YW1lcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGRldmljZSBtb3Rpb24gdW5sZXNzIGV4cGxp
Y2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0
ZXIpLgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2Vz
cyB0byBkZXZpY2UgbW90aW9uIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZS5kYXRhIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVu
aWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2UtbW90aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWQx
MTNiYjk5NTE1YzVjN2U5YTVmNGIwZTBlZDNjZjBjMzQyNmIzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi10
aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0
aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2UgbW90aW9u
IGV2ZW50cy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisvLyBJZiBwcm9tcHRlZCwgYWxs
b3cuCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCitvbm1lc3NhZ2UgPSAo
X2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmRhdGEi
LCAiZGVuaWVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7ICAgIAorfTsKKzwvc2NyaXB0PgorPGlm
cmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3Vy
Y2VzL3JlcXVlc3QtbW90aW9uLWV2ZW50cy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjMyY2QwYzdkNTI3YjFiYjAwYmJjMmJmMzg4ZmU3NWNkMjA4MWE5NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1vcmllbnRhdGlvbi1hbGxvd2VkLWluLWZpcnN0LXBhcnR5LW9ubHktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nl
c3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLgor
Q09OU09MRSBNRVNTQUdFOiBObyBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQsIHJlYXNvbjogUGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgbm90IHlldCByZXF1ZXN0
ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3Qg
Zm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4KK1Rlc3RzIHRoYXQg
Z2l2aW5nIGRldmljZSBvcmllbnRhdGlvbiBwZXJtaXNzaW9uIGluIHRoZSBtYWluIGZyYW1lIGRv
ZXMgbm90IGdpdmUgYWNjZXNzIHRvIHRoaXJkLXBhcnR5IGlmcmFtZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1MgZS5kYXRh
IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLWFsbG93ZWQtaW4tZmlyc3QtcGFydHktb25seS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyZjBi
OWM3YjMxYWZlZmU0NWI3N2EzZjYyMjAxNmVmN2E1NzhlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tYWxsb3dlZC1pbi1maXJzdC1wYXJ0eS1vbmx5Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBnaXZpbmcgZGV2aWNlIG9yaWVudGF0aW9uIHBlcm1pc3Npb24gaW4gdGhlIG1haW4gZnJh
bWUgZG9lcyBub3QgZ2l2ZSBhY2Nlc3MgdG8gdGhpcmQtcGFydHkgaWZyYW1lcy4iKTsKK2pzVGVz
dElzQXN5bmMgPSB0cnVlOworCisvLyBJZiBwcm9tcHRlZCwgYWxsb3cuCitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzKHRydWUpOworCitvbm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0g
X2U7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmRhdGEiLCAiZGVuaWVkIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7ICAgIAorfTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9
PiB7CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4o
KF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICAvLyBJZiBwcm9t
cHRlZCwgZGVueS4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KGZhbHNlKTsKKworICAgICAgICAvLyBDcmVhdGUgdGhpcmQtcGFydHkgaWZyYW1lIHRoYXQgcmVx
dWVzdHMgcGVybWlzc2lvbiBmb3IgaXRzZWxmLCBidXQgdGhpcyB0aW1lIHNob3VsZCBiZSByZWpl
Y3RlZC4KKyAgICAgICAgbGV0IHRlc3RGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9k
ZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qtb3JpZW50YXRpb24tZXZlbnRzLmh0
bWwiOworICAgICAgICB0ZXN0RnJhbWUuYWxsb3cgPSAiYWNjZWxlcm9tZXRlcjtneXJvc2NvcGU7
bWFnbmV0b21ldGVyIjsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQodGVzdEZyYW1lKTsK
KyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi1wZXJtaXNzaW9uLWdyYW50ZWQtaW4tb3RoZXItaWZyYW1lcy1mcm9tLXNhbWUtb3JpZ2lu
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1wZXJtaXNzaW9uLWdyYW50ZWQtaW4tb3RoZXItaWZyYW1lcy1m
cm9tLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2Y2N2RhZjNkNmUzYTNj
NTA2MTc5ODkwNTBmNmMxNjBiNjg0OTY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXBlcm1pc3Np
b24tZ3JhbnRlZC1pbi1vdGhlci1pZnJhbWVzLWZyb20tc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkg
d2FzIG5vdCB5ZXQgcmVxdWVzdGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90
aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuCitUZXN0cyB0aGF0IGdpdmluZyBkZXZpY2Ugb3JpZW50YXRpb24gcGVybWlzc2lvbiB0
byBvbmUgdGhpcmQtcGFydHkgaWZyYW1lIGdpdmVzIGl0IHRvIG90aGVyIGlmcmFtZXMgb2YgdGhl
IHNhbWUgb3JpZ2luIHRvby4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZS5kYXRhIGlzICJncmFudGVkIgorUEFTUyBlLmRhdGEgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXBlcm1pc3Npb24tZ3JhbnRlZC1pbi1vdGhlci1pZnJhbWVzLWZyb20tc2FtZS1vcmlnaW4uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1wZXJtaXNzaW9uLWdyYW50ZWQtaW4tb3RoZXItaWZyYW1lcy1mcm9tLXNhbWUtb3Jp
Z2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRkZTdlZTJjYjI1YTc1N2RjYTkzNjFjNzdlMGU2OWZlYjJk
YzQ4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1wZXJtaXNzaW9uLWdyYW50ZWQtaW4tb3RoZXIt
aWZyYW1lcy1mcm9tLXNhbWUtb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBn
aXZpbmcgZGV2aWNlIG9yaWVudGF0aW9uIHBlcm1pc3Npb24gdG8gb25lIHRoaXJkLXBhcnR5IGlm
cmFtZSBnaXZlcyBpdCB0byBvdGhlciBpZnJhbWVzIG9mIHRoZSBzYW1lIG9yaWdpbiB0b28uIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworbGV0IGZpcnN0RnJhbWUgPSB0cnVlOwor
Citvbm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJlLmRhdGEiLCAiZ3JhbnRlZCIpOworCisgICAgaWYgKCFmaXJzdEZyYW1lKSB7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGZpcnN0
RnJhbWUgPSBmYWxzZTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxz
ZSk7CisKKyAgICBsZXQgc2Vjb25kRnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICBzZWNvbmRGcmFtZS5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2Rldmlj
ZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbCI7
CisgICAgc2Vjb25kRnJhbWUuYWxsb3cgPSAiYWNjZWxlcm9tZXRlcjtneXJvc2NvcGU7bWFnbmV0
b21ldGVyIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChzZWNvbmRGcmFtZSk7Cit9OworPC9z
Y3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2RldmljZS1vcmllbnRh
dGlvbi9yZXNvdXJjZXMvcmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbCIgYWxsb3c9ImFj
Y2VsZXJvbWV0ZXI7Z3lyb3Njb3BlO21hZ25ldG9tZXRlciI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVh
dHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1hbGxvd2Vk
LWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzgyMzE1ZTcxNjI4
OGJiOGM2MGUyZmRhNTQ1ZTQ4NTM1YmQ3ODYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJk
LXBhcnR5LWlmcmFtZS1hbGxvd2VkLWJ5LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IE5vIGRldmljZSBvcmllbnRhdGlvbiBldmVu
dHMgd2lsbCBiZSBmaXJlZCwgcmVhc29uOiBQZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBu
b3QgeWV0IHJlcXVlc3RlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBh
Y2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbiByZXF1ZXN0IGFjY2VzcyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIGlmIGFsbG93ZWQgYnkgZmVhdHVyZSBwb2xpY3kuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGUuZGF0YSBpcyAiZ3JhbnRlZCIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVhdHVyZS1wb2xpY3ku
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtYWxsb3dlZC1ieS1mZWF0dXJlLXBvbGljeS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIyMjg4Y2YzMTNlYTgxYTcyMDk2YmRlZDA3ZTRhZWRiMzliODlkNWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWFsbG93ZWQtYnktZmVh
dHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlm
cmFtZXMgY2FuIHJlcXVlc3QgYWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMgaWYg
YWxsb3dlZCBieSBmZWF0dXJlIHBvbGljeS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisv
LyBJZiBwcm9tcHRlZCwgYWxsb3cuCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUp
OworCitvbm1lc3NhZ2UgPSAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJlLmRhdGEiLCAiZ3JhbnRlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAK
K307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNl
LW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIiBh
bGxvdz0iYWNjZWxlcm9tZXRlcjtneXJvc2NvcGU7bWFnbmV0b21ldGVyIj48L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVk
LWJ5LWluc3VmZmljaWVudC1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQt
cGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM3M2FkZjZkMDZjNzBmOWMzODM5MGNlOGIyMGI4YTliZDI3OTAy
OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1p
bnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZp
cmVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0
byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVy
ZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRvbWV0ZXIpLgorQ09O
U09MRSBNRVNTQUdFOiBDYWxsIHRvIHJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246
IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3Jp
ZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5
cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRvbWV0ZXIpLgorVGVzdHMgdGhhdCB0aGly
ZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRp
b24gZXZlbnRzIHdpdGggaW5zdWZmaWNpZW50IGZlYXR1cmUgcG9saWN5LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
dGhpcmQtcGFydHktaWZyYW1lLWRlbmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3ku
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWJ5LWluc3VmZmljaWVudC1mZWF0
dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZDhhMjY1NDdiOTQ3OTA2ZDlhMTc0MGI2N2Y0
YzMxZDM0MDU1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFydHktaWZyYW1lLWRl
bmllZC1ieS1pbnN1ZmZpY2llbnQtZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtMCwwICsxLDIxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3QgYWNjZXNzIHRvIGRl
dmljZSBvcmllbnRhdGlvbiBldmVudHMgd2l0aCBpbnN1ZmZpY2llbnQgZmVhdHVyZSBwb2xpY3ku
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7
CisgICAgZSA9IF9lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmll
ZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3Jj
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1
ZXN0LW9yaWVudGF0aW9uLWV2ZW50cy5odG1sIiBhbGxvdz0iZ3lyb3Njb3BlIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVu
aWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi10aGlyZC1wYXJ0eS1pZnJhbWUtZGVuaWVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NTUxZWZhNzFjNTc5NzRmZWU2YzY3ODRmODhjODdiMGNjNjBjZjdj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVu
dGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMg
YXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4cGxp
Y2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0
ZXIgJiBtYWduZXRvbWV0ZXIpLgorQ09OU09MRSBNRVNTQUdFOiBDYWxsIHRvIHJlcXVlc3RQZXJt
aXNzaW9uKCkgZmFpbGVkLCByZWFzb246IFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxv
d2VkIGFjY2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dl
ZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGd5cm9zY29wZSAmIGFjY2VsZXJvbWV0ZXIgJiBtYWduZXRv
bWV0ZXIpLgorVGVzdHMgdGhhdCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGNhbm5vdCByZXF1ZXN0IGFj
Y2VzcyB0byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBlLmRhdGEgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tdGhpcmQtcGFy
dHktaWZyYW1lLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZDE2ZGE2ZDM0ZGE0Zjg3MThkYzA3NzE4NzU1MjcxNjA4MmM5YjdjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXRoaXJkLXBhcnR5LWlmcmFtZS1kZW5pZWQuaHRtbApAQCAt
MCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoaXJkLXBhcnR5IGlmcmFtZXMgY2Fubm90IHJlcXVlc3Qg
YWNjZXNzIHRvIGRldmljZSBvcmllbnRhdGlvbiBldmVudHMuIik7Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworLy8gSWYgcHJvbXB0ZWQsIGFsbG93LgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzcyh0cnVlKTsKKworb25tZXNzYWdlID0gKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZS5kYXRhIiwgImRlbmllZCIpOworICAgIGZpbmlzaEpTVGVz
dCgpOyAgICAKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW9yaWVudGF0aW9uLWV2ZW50
cy5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uL3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlv
bi1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9u
L3Jlc291cmNlcy9yZXF1ZXN0LW1vdGlvbi1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmYyODcx
M2I4MTVkOTYxZDhkODZlY2ZkY2ZlYzhjY2MwYmJjMDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qt
bW90aW9uLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAo
KSA9PiB7fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgIERldmlj
ZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAg
ICAgIHRvcC5wb3N0TWVzc2FnZShyZXN1bHQsICIqIik7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9k
ZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qtb3JpZW50YXRpb24tZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2RldmljZS1vcmllbnRhdGlvbi9yZXNvdXJjZXMv
cmVxdWVzdC1vcmllbnRhdGlvbi1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDJlZWY1ODBkMDU3
NDk5YmMyNzIxZGIzY2ViZDg3ODAwNTA0MDg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9kZXZpY2Utb3JpZW50YXRpb24vcmVzb3VyY2VzL3JlcXVlc3Qtb3JpZW50
YXRpb24tZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9u
IiwgKCkgPT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9
PiB7CisgICAgICAgIHRvcC5wb3N0TWVzc2FnZShyZXN1bHQsICIqIik7CisgICAgfSk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRl
eHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKaW5kZXggMzhmMmQ0MjAwOWU5M2M0YTkz
OTMyM2Q3MjAzOTZkOTFkNjVlNmQ0NC4uMmY2ZTczZGJhMWVmNzNjMGVmOTE1NjEwMjk1NDBiNjQ5
YWIzMzdlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1
cmUtY29udGV4dC5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHJ1bkRldmljZU1vdGlv
blRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIi
KTsKICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCBmdW5jdGlvbigpIHsgfSk7
CiAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJObyBkZXZpY2UgbW90aW9uIGV2ZW50cyB3aWxsIGJl
IGZpcmVkLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSk7CiB9CkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9u
IHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCgpCiAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2
aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CiAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNl
b3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsgfSk7CiAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgp
ID0+IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2Ui
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJO
byBkZXZpY2Ugb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQsIHJlYXNvbjogQnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIpOwogICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0
KCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNWY2ZGQzNzkyZWYzNWZlMDk3NThhZjFhMTE5NmFjMDM1MmVhZTE0YS4u
MGQwMzUyZDY4NTg1OTBlZGZiMmY0NTFlYWViMTI5Nzk3ZDQxOTdlZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUsNiArMTUsNyBAQCBj
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRt
bCBbIFBhc3MgXQogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRp
bmctcGlja2VyLmh0bWwgWyBQYXNzIF0KIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5o
dG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQoraHR0cC90ZXN0
cy9kZXZpY2Utb3JpZW50YXRpb24gWyBQYXNzIF0KIGZhc3QvaGlzdG9yeS9pb3MgWyBQYXNzIF0K
IGZhc3Qvc2Nyb2xsaW5nL2lvcyBbIFBhc3MgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3Mg
WyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2
aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY4NDExMTc1ZGUxY2YxZmY4MzUwNTdhYjJlMDQ5NDU1ODZjY2FhNTEuLmUyYjUxMWQ3Zjc2
ZTM5NTlkMTMwY2I4OTJjMjk2OGNhMWZmYWI5YzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5v
bi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3Vy
ZS1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSwxNSBAQAotQ09OU09MRSBNRVNTQUdF
OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCi1D
T05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9y
IG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZS4KK0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50
cyB3aWxsIGJlIGZpcmVkLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4K
K0NPTlNPTEUgTUVTU0FHRTogTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCwg
cmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCiBUZXN0cyB0aGF0IHRyeWlu
ZyB0byBzZXQgYW4gZXZlbnQgbGlzdGVuZXIgZm9yIGRldmljZW9yaWVudGF0aW9uIGFuZCBkZXZp
Y2VvcmllbnRhdGlvbiBsb2dzIGFuIGVycm9yIGluIG5vbi1zZWN1cmUgY29udGV4dHMuCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRh
dGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1w
dCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCBy
ZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCitQQVNTIGxhc3RDb25zb2xl
TWVzc2FnZSBpcyAiTm8gZGV2aWNlIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkLCBy
ZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCiAKICogUmVnaXN0ZXJpbmcg
ZGV2aWNlIG1vdGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxp
c3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCitQQVNTIGxh
c3RDb25zb2xlTWVzc2FnZSBpcyAiTm8gZGV2aWNlIG1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJl
ZCwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>