<?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>212580</bug_id>
          
          <creation_ts>2020-05-31 06:04:34 -0700</creation_ts>
          <short_desc>CSS &quot;any-pointer:fine&quot; media query false on iPad/Pencil</short_desc>
          <delta_ts>2020-11-02 15:22:59 -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>CSS</component>
          <version>Safari 13</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209292</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=217684</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218463</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick H. Lauke">redux</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>hi</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1657772</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick H. Lauke">redux</who>
    <bug_when>2020-05-31 06:04:34 -0700</bug_when>
    <thetext>Related to https://bugs.webkit.org/show_bug.cgi?id=209292 - testing iPad / iOS 13.5 / Pencil, &quot;any-pointer:fine&quot; evaluates to false when it should evaluate to true (if the Pencil&apos;s presence can be detected)

https://patrickhlauke.github.io/touch/pointer-hover-any-pointer-any-hover/results/index.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657812</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-31 17:44:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/63813283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695941</commentid>
    <comment_count>2</comment_count>
      <attachid>410855</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-08 10:02:14 -0700</bug_when>
    <thetext>Created attachment 410855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695942</commentid>
    <comment_count>3</comment_count>
      <attachid>410856</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-08 10:07:13 -0700</bug_when>
    <thetext>Created attachment 410856
Patch

add log when `changeTimeInterval` is overridden by `NSUserDefaults`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695955</commentid>
    <comment_count>4</comment_count>
      <attachid>410856</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-08 10:41:39 -0700</bug_when>
    <thetext>Comment on attachment 410856
Patch

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

&gt; Source/WebKit/ChangeLog:16
&gt; +        Use `+[UIScribbleInteraction isPencilInputExpected]` as a proxy for the presence of stylus
&gt; +        devices as there&apos;s no way of directly querying for connected stylus devices (especially if
&gt; +        there is no active connection). When the value is changed to `YES`, notify all WebProcess
&gt; +        immediately. When the value is changed to `NO`, use an `NSTimer` to delay notifying all
&gt; +        WebProcess for 10min in case the user starts using their stylus again.
&gt; +
&gt; +        For testing/debugging purposes this 10min timeout can be adjusted before the UIProcess is
&gt; +        created with the `WKStylusDeviceObserverChangeTimeInterval` key in `NSUserDefaults`.

I think this can and should be generalized for all platforms that support styluses. While the implementation to check for a stylus on iOS can&apos;t be shared, it would be good to create a more general pipeline for passing this information down to the WebProcess that is not iOS specific like this.

Additionally, please avoid using NSUserDefaults directly for testing. Rather, please add a new preference to the WebPreferences yaml files for your needs. This allows us to better keep track of all the settings in one place, rather than having them scattered around in different places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695976</commentid>
    <comment_count>5</comment_count>
      <attachid>410856</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-08 11:44:44 -0700</bug_when>
    <thetext>Comment on attachment 410856
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:16
&gt;&gt; +        created with the `WKStylusDeviceObserverChangeTimeInterval` key in `NSUserDefaults`.
&gt; 
&gt; I think this can and should be generalized for all platforms that support styluses. While the implementation to check for a stylus on iOS can&apos;t be shared, it would be good to create a more general pipeline for passing this information down to the WebProcess that is not iOS specific like this.
&gt; 
&gt; Additionally, please avoid using NSUserDefaults directly for testing. Rather, please add a new preference to the WebPreferences yaml files for your needs. This allows us to better keep track of all the settings in one place, rather than having them scattered around in different places.

Could you give an example of what you mean by &quot;generalized for all platforms&quot;?  My thinking is that any other platform that wants to add this UIProcess-&gt;WebProcess communication of &quot;we now have a stylus&quot; (and the opposite) would adjust the `#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)` around `WebProcessProxy::notifyHasStylusDeviceChanged`, `WebProcess::setHasStylusDevice`, etc. and likely have it&apos;s own way of calling those functions based on it&apos;s own platform-specific way of knowing &quot;we now have a stylus&quot; (and the opposite).

When I said &quot;testing&quot; I mean this more as a QA form of testing (i.e. &quot;live on&quot;), where we could set the default and see how it feels (I chose 10min as a sort of gut guesstimate rather than a value backed by some collected metric/statistic).  The API tests included in this patch do not actually use `NSUserDefaults` for testing this behavior.  I initially went with `NSUserDefaults` because I wanted something global as we only really expect `WKStylusDeviceObserver` to be used from it&apos;s `sharedInstance`.  Is it possible for `WebPreferences` (or something similar) to be global and configurable like this, or is there perhaps another approach to getting the same outcome?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695986</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-08 11:59:54 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; Comment on attachment 410856 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410856&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/ChangeLog:16
&gt; &gt;&gt; +        created with the `WKStylusDeviceObserverChangeTimeInterval` key in `NSUserDefaults`.
&gt; &gt; 
&gt; &gt; I think this can and should be generalized for all platforms that support styluses. While the implementation to check for a stylus on iOS can&apos;t be shared, it would be good to create a more general pipeline for passing this information down to the WebProcess that is not iOS specific like this.
&gt; &gt; 
&gt; &gt; Additionally, please avoid using NSUserDefaults directly for testing. Rather, please add a new preference to the WebPreferences yaml files for your needs. This allows us to better keep track of all the settings in one place, rather than having them scattered around in different places.
&gt; 
&gt; Could you give an example of what you mean by &quot;generalized for all
&gt; platforms&quot;?  My thinking is that any other platform that wants to add this
&gt; UIProcess-&gt;WebProcess communication of &quot;we now have a stylus&quot; (and the
&gt; opposite) would adjust the `#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)`
&gt; around `WebProcessProxy::notifyHasStylusDeviceChanged`,
&gt; `WebProcess::setHasStylusDevice`, etc. and likely have it&apos;s own way of
&gt; calling those functions based on it&apos;s own platform-specific way of knowing
&gt; &quot;we now have a stylus&quot; (and the opposite).

Pretty sure he means &quot;leave the plumbing in place on all platforms, so they just have to add /callers/ of it&quot;. The plumbing will all be the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696033</commentid>
    <comment_count>7</comment_count>
      <attachid>410884</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-08 14:24:26 -0700</bug_when>
    <thetext>Created attachment 410884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696265</commentid>
    <comment_count>8</comment_count>
      <attachid>410884</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-09 10:42:40 -0700</bug_when>
    <thetext>Comment on attachment 410884
Patch

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

&gt; Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:45
&gt; +    if (WebProcessProxy::allProcesses().size() == 1) {
&gt;  #if HAVE(UIKIT_WITH_MOUSE_SUPPORT) &amp;&amp; PLATFORM(IOS)
&gt; -    if (WebProcessProxy::allProcesses().size() == 1)
&gt;          [[WKMouseDeviceObserver sharedInstance] start];
&gt;  #endif
&gt; +#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)

I don&apos;t think the PLATFORM(IOS) checks are needed here, since this file should only be compiled on iOS platforms.

&gt; Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:59
&gt; +#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)
&gt; +        [[WKStylusDeviceObserver sharedInstance] stop];
&gt; +#endif

This seems like an error prone way to use a shared observer. If any other client ever get&apos;s created, it will be confusing that this call site completely stops it.

A common pattern for things like this is to have the shared instance maintain a reference count, and rather than explicitly starting and stoping the observer, the clients increment / decrement the count, and when it reaches 0, it stops observing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696305</commentid>
    <comment_count>9</comment_count>
      <attachid>410884</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-09 12:22:00 -0700</bug_when>
    <thetext>Comment on attachment 410884
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:45
&gt;&gt; +#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)
&gt; 
&gt; I don&apos;t think the PLATFORM(IOS) checks are needed here, since this file should only be compiled on iOS platforms.

Is there a way to connect a stylus/pencil to a simulator?  I didn&apos;t think there was, so I figured it wouldn&apos;t be desirable, but I suppose it couldn&apos;t hurt to have it.

&gt;&gt; Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:59
&gt;&gt; +#endif
&gt; 
&gt; This seems like an error prone way to use a shared observer. If any other client ever get&apos;s created, it will be confusing that this call site completely stops it.
&gt; 
&gt; A common pattern for things like this is to have the shared instance maintain a reference count, and rather than explicitly starting and stoping the observer, the clients increment / decrement the count, and when it reaches 0, it stops observing.

Wow yeah I dunno why I didn&apos;t do that :|

I&apos;ll adjust `WKMouseDeviceObserver` too while im at it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696310</commentid>
    <comment_count>10</comment_count>
      <attachid>410884</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-09 12:29:54 -0700</bug_when>
    <thetext>Comment on attachment 410884
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:45
&gt;&gt;&gt; +#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)
&gt;&gt; 
&gt;&gt; I don&apos;t think the PLATFORM(IOS) checks are needed here, since this file should only be compiled on iOS platforms.
&gt; 
&gt; Is there a way to connect a stylus/pencil to a simulator?  I didn&apos;t think there was, so I figured it wouldn&apos;t be desirable, but I suppose it couldn&apos;t hurt to have it.

err, s/simulator/catalyst</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696347</commentid>
    <comment_count>11</comment_count>
      <attachid>410970</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-09 13:49:00 -0700</bug_when>
    <thetext>Created attachment 410970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696354</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-09 14:01:26 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #9)
&gt; Comment on attachment 410884 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410884&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:45
&gt; &gt;&gt; +#if HAVE(PENCILKIT_TEXT_INPUT) &amp;&amp; PLATFORM(IOS)
&gt; &gt; 
&gt; &gt; I don&apos;t think the PLATFORM(IOS) checks are needed here, since this file should only be compiled on iOS platforms.
&gt; 
&gt; Is there a way to connect a stylus/pencil to a simulator?  I didn&apos;t think
&gt; there was, so I figured it wouldn&apos;t be desirable, but I suppose it couldn&apos;t
&gt; hurt to have it.

PLATFORM(IOS) is true for both the simulator and hardware.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696360</commentid>
    <comment_count>13</comment_count>
      <attachid>410972</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-09 14:10:47 -0700</bug_when>
    <thetext>Created attachment 410972
Patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696939</commentid>
    <comment_count>14</comment_count>
      <attachid>411132</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-12 10:58:28 -0700</bug_when>
    <thetext>Created attachment 411132
Patch

add another test for when the stylus disconnected timeout should be cancelled (e.g. a stylus is reconnected within the 10min window)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696984</commentid>
    <comment_count>15</comment_count>
      <attachid>411132</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-12 12:50:18 -0700</bug_when>
    <thetext>Comment on attachment 411132
Patch

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

&gt; Source/WebKit/Shared/WebProcessCreationParameters.cpp:91
&gt; +    encoder &lt;&lt; hasStylusDevice;

Probably can drop the word &quot;device&quot; everywhere :)

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:43
&gt;  #import &quot;WKMouseDeviceObserver.h&quot;

But you&apos;ve got it for mouse too so maybe not

&gt; Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm:50
&gt; +    while (_startCount)

Looping in dealloc is /very weird/. Just shut it down!

&gt; Source/WebKit/UIProcess/ios/WKStylusDeviceObserver.mm:36
&gt; +static Seconds s_changeTimeInterval { 10_min };

I think the s_ rule from the style guide (which you might be following here) is about static data members; this should just be &apos;changeTimeInterval&apos;

&gt; Source/WebKit/UIProcess/ios/WKStylusDeviceObserver.mm:69
&gt; +    while (_startCount)

Ditto from the other place

&gt; Source/WebKit/UIProcess/ios/WKStylusDeviceObserver.mm:77
&gt; +- (void)_setHasStylusDevice:(BOOL)hasStylusDevice

Don&apos;t need leading underscores for methods on internal classes, only exported ones</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696993</commentid>
    <comment_count>16</comment_count>
      <attachid>411132</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-12 13:19:45 -0700</bug_when>
    <thetext>Comment on attachment 411132
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm:50
&gt;&gt; +    while (_startCount)
&gt; 
&gt; Looping in dealloc is /very weird/. Just shut it down!

Also, do we ever expect this -dealloc method to be hit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697014</commentid>
    <comment_count>17</comment_count>
      <attachid>411132</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-12 14:06:41 -0700</bug_when>
    <thetext>Comment on attachment 411132
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm:50
&gt;&gt;&gt; +    while (_startCount)
&gt;&gt; 
&gt;&gt; Looping in dealloc is /very weird/. Just shut it down!
&gt; 
&gt; Also, do we ever expect this -dealloc method to be hit?

I was trying to avoid duplicating the unregister logic, but yeah this is maybe a bit too odd.  I&apos;ll just copy it :)

No, this is not expected to be called (at least so long as the UIProcess exists).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697021</commentid>
    <comment_count>18</comment_count>
      <attachid>411154</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-12 14:14:03 -0700</bug_when>
    <thetext>Created attachment 411154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697111</commentid>
    <comment_count>19</comment_count>
      <attachid>411154</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-12 16:39:39 -0700</bug_when>
    <thetext>Comment on attachment 411154
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKStylusDeviceObserver.mm:67
&gt; +- (void)dealloc

I still think we should just remove these `-dealloc`s, since it&apos;s dead code.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSStylusSupport.mm:173
&gt; +    WKStylusDeviceObserver *stylusDeviceObserver = [NSClassFromString(@&quot;WKStylusDeviceObserver&quot;) sharedInstance];
&gt; +    [stylusDeviceObserver start];
&gt; +    stylusDeviceObserver.hasStylusDevice = YES;
&gt; +
&gt; +    auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600)]);
&gt; +
&gt; +    [webView synchronouslyLoadHTMLString:@&quot;&quot;];
&gt; +
&gt; +    [stylusDeviceObserver startChangeTimer:0.01];

Nit - it might be a bit cleaner if you pulled this test setup logic out into a separate helper function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697121</commentid>
    <comment_count>20</comment_count>
      <attachid>411154</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-12 17:31:15 -0700</bug_when>
    <thetext>Comment on attachment 411154
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKStylusDeviceObserver.mm:67
&gt;&gt; +- (void)dealloc
&gt; 
&gt; I still think we should just remove these `-dealloc`s, since it&apos;s dead code.

oh yeah that&apos;s fine I can remove this

i&apos;ll add this too
```
    + (instancetype)new NS_UNAVAILABLE;
    - (instancetype)init NS_UNAVAILABLE;
```
to be extra clear :)

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSStylusSupport.mm:173
&gt;&gt; +    [stylusDeviceObserver startChangeTimer:0.01];
&gt; 
&gt; Nit - it might be a bit cleaner if you pulled this test setup logic out into a separate helper function.

good idea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697138</commentid>
    <comment_count>21</comment_count>
      <attachid>411184</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-12 18:07:32 -0700</bug_when>
    <thetext>Created attachment 411184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697152</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-12 19:15:04 -0700</bug_when>
    <thetext>Committed r268384: &lt;https://trac.webkit.org/changeset/268384&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411184.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410855</attachid>
            <date>2020-10-08 10:02:14 -0700</date>
            <delta_ts>2020-10-08 10:07:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201008100213.patch</filename>
            <type>text/plain</type>
            <size>37808</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmRkOWRhMGMyZWFhNDYxYjEyZjMzOGZiNTllZjBlYzZmMDUzNGQ4NS4uOTA2
MDM4YjUzZWRkNWU4MTg1NDMzYjViN2QxMmE3OWE2MmU0MjA2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2NiBAQAorMjAyMC0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIHRlc3RpbmcvZGVidWdnaW5nIHB1cnBvc2VzIHRoaXMgMTBtaW4gdGltZW91dCBjYW4gYmUg
YWRqdXN0ZWQgYmVmb3JlIHRoZSBVSVByb2Nlc3MgaXMKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRo
ZSBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRpbWVJbnRlcnZhbGAga2V5IGluIGBOU1Vz
ZXJEZWZhdWx0c2AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9i
c2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKCtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFy
ZWRJbnN0YW5jZV0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGluaXRdKToK
KyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgt
W1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpdKToKKyAgICAgICAg
KC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS1N0eWx1c0Rl
dmljZU9ic2VydmVyIHN0b3BdKToKKyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBv
YnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAg
ICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIF9zdGFydENoYW5nZVRpbWVyOl0pOgorICAgICAg
ICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIF9jaGFuZ2VUaW1lckZpcmVkOl0pOgorICAgICAg
ICBVc2UgT2JqQyBLVk8gdG8gbGlzdGVuIGZvciBjaGFuZ2VzIHRvIGArW1VJU2NyaWJibGVJbnRl
cmFjdGlvbiBpc1BlbmNpbElucHV0RXhwZWN0ZWRdYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJv
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzU3R5bHVzRGV2
aWNlQ2hhbmdlZCk6IEFkZGVkLgorICAgICAgICBUZWxsIHRoZSBzaGFyZWQgYFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXJgIHRvIHN0YXJ0IGxpc3RlbmluZyB3aGVuIGNyZWF0aW5nIHRoZSBXZWJQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgVXNlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzaGFyZWQgYFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXJgIHdoZW4gY3JlYXRpbmcgV2ViUHJvY2VzcyBpbnN0ZWFkCisgICAgICAg
IG9mIHNlbmRpbmcgYSBgU2V0SGFzU3R5bHVzRGV2aWNlYCBtZXNzYWdlIGltbWVkaWF0ZWx5IGFm
dGVyIHRoZSBXZWJQcm9jZXNzIGlzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omhhc1N0eWx1c0RldmljZSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldEhhc1N0eWx1c0RldmljZSk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0
eWxlIChpbmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hh
bmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2VzIGNvbnN0KToKKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQg
dGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IHN0eWx1cyBkZXZpY2Vz
LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG1pc3NpbmcgYCNkZWZpbmVgIGZvciBgUEVOQ0lM
S0lUX1RFWFRfSU5QVVRgIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNmIyODNlZjI0NThkODM2NTkzNDRi
ZTlkNTQ1OTBjYzJlMTc2ZTIwNC4uZTlkOGQwN2FmOTFlOWM1N2Y2ZTJmNWEyMWExOWY5YmRiMGNj
NzVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg3LDYgKzg3LDkgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKICNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQogICAgIGVuY29kZXIgPDwgaGFzTW91c2VE
ZXZpY2U7CisjZW5kaWYKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9S
TShJT1MpCisgICAgZW5jb2RlciA8PCBoYXNTdHlsdXNEZXZpY2U7CiAjZW5kaWYKICAgICBlbmNv
ZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAgIGVuY29kZXIgPDwgYmFj
a0ZvcndhcmRDYWNoZUNhcGFjaXR5OwpAQCAtMzAwLDYgKzMwMywxMCBAQCBib29sIFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlBy
b2Nlc3NDcmVhdAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisjaWYgSEFWRShQRU5DSUxLSVRfVEVY
VF9JTlBVVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5oYXNTdHlsdXNEZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50
ZXJ2YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2Q4NmE3NGIxZDNlZTUx
MDE1MzRhZDM5MjU2MjMyMjFlZmMzZWNhYS4uNTRhYjJlYzZhZjgxZDVjYzIxZjdiMzk0ZmRiYTFi
NGUxZDY0OTA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE5LDYgKzExOSw5IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQg
eyBmYWxzZSB9OwogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCiAgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKKyNpZiBI
QVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAgYm9vbCBoYXNT
dHlsdXNEZXZpY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2Fi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CmluZGV4IDc3NjkwZDBkZDUyNzJhMDVlMmE3ODQyMjIxOGEzNWI0MjJi
NTc1NWEuLjE2OWIyOTU3MmM1ZjQ1ZjE5YWY4NDlhYWM1NDRhNjg1ZTU2ZTUxNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTQ2Niw2ICs0NjYsNyBAQCBVSVByb2Nlc3MvaW9zL1dLUGFzc3dv
cmRWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQogVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCitV
SVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tT
eW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbQogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRp
Y1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3lzdGVtUHJldmlld1Zp
ZXcubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCmluZGV4IGNmNzU1MjI2ZWNiNzQwOGNmMDNkMDJmZWRjMjhlOGUyMmFiYWE4
N2IuLjQ0MTcwMDM5NjZmMGI0NjJmYjMwN2VlN2FkMzI1NjllN2JjYjQ0ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpA
QCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tNb3Vz
ZURldmljZU9ic2VydmVyLmgiCisjaW1wb3J0ICJXS1N0eWx1c0RldmljZU9ic2VydmVyLmgiCiAj
aW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtNTEwLDYgKzUxMSwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSAmJiBQTEFURk9STShJT1MpCiAgICAgcGFyYW1ldGVycy5oYXNNb3VzZURldmljZSA9IFtb
V0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNNb3VzZURldmljZV07CiAj
ZW5kaWYKKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykK
KyAgICBwYXJhbWV0ZXJzLmhhc1N0eWx1c0RldmljZSA9IFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ciBzaGFyZWRJbnN0YW5jZV0gaGFzU3R5bHVzRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQzOWYyMDczMmRkZjFhMTNiY2U4MzQ1M2MwOTI3
ZTIzYWM5YmI4ZS4uMmU3ZTA1ODk2NjJkNDFhNDc5NDUzNzlkMTNiODIzY2VlYThkMDBkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxNSw2ICsyMTUs
MTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdl
ZCgpOwogI2VuZGlmCiAKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9S
TShJT1MpCisgICAgc3RhdGljIHZvaWQgbm90aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZCgpOwor
I2VuZGlmCisKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRh
KT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
UEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM3ZGRhZjUzZDA2ZTU3MGRkYWIwYzMzYjIxYzg1ZjI5
YWVhNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
U3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKworQGludGVyZmFj
ZSBXS1N0eWx1c0RldmljZU9ic2VydmVyIDogTlNPYmplY3QKKworKyAoV0tTdHlsdXNEZXZpY2VP
YnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworCistICh2b2lkKXN0YXJ0OworLSAodm9pZClzdG9w
OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaGFzU3R5bHVzRGV2aWNl
OworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1
c0RldmljZU9ic2VydmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDYxNmE0MGU0MGQzYzFmZjI4MjQ2ODBh
NjRhMmE1MDFkMzgyMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ci5oIgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkgJiYgUExBVEZPUk0oSU9TKQor
CisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFVJS2l0L1VJU2NyaWJibGVJ
bnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1Nl
Y29uZHMuaD4KKworc3RhdGljIFNlY29uZHMgc19jaGFuZ2VUaW1lSW50ZXJ2YWwgeyAxMF9taW4g
fTsKKworQGltcGxlbWVudGF0aW9uIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgeworICAgIEJPT0wg
X2hhc1N0eWx1c0RldmljZTsKKyAgICBCT09MIF9vYnNlcnZpbmc7CisgICAgUmV0YWluUHRyPE5T
VGltZXI+IF9jaGFuZ2VUaW1lcjsKK30KKworKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqKXNo
YXJlZEluc3RhbmNlCit7CisgICAgc3RhdGljIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKmluc3Rh
bmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGluc3RhbmNlID0gW1tXS1N0eWx1c0Rl
dmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKKy0g
KGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaGFzU3R5bHVzRGV2aWNlID0gVUlTY3JpYmJsZUlu
dGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZDsKKworICAgIGlmIChOU051bWJlciAqY2hh
bmdlVGltZUludGVydmFsT3ZlcnJpZGUgPSBbTlNVc2VyRGVmYXVsdHMuc3RhbmRhcmRVc2VyRGVm
YXVsdHMgb2JqZWN0Rm9yS2V5OkAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRpbWVJbnRl
cnZhbCJdKQorICAgICAgICBzX2NoYW5nZVRpbWVJbnRlcnZhbCA9IFNlY29uZHMoW2NoYW5nZVRp
bWVJbnRlcnZhbE92ZXJyaWRlIGRvdWJsZVZhbHVlXSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZClkZWFsbG9jCit7CisgICAgW3NlbGYgc3RvcF07CisKKyAgICBbc3VwZXIgZGVh
bGxvY107Cit9CisKKyNwcmFnbWEgbWFyayAtIFN0YXRlCisKKy0gKHZvaWQpX3NldEhhc1N0eWx1
c0RldmljZTooQk9PTCloYXNTdHlsdXNEZXZpY2UKK3sKKyAgICBfaGFzU3R5bHVzRGV2aWNlID0g
aGFzU3R5bHVzRGV2aWNlOworCisgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhh
c1N0eWx1c0RldmljZUNoYW5nZWQoKTsKKworICAgIFtfY2hhbmdlVGltZXIgaW52YWxpZGF0ZV07
CisgICAgX2NoYW5nZVRpbWVyID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgaWYg
KF9vYnNlcnZpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIFtbVUlTY3JpYmJsZUludGVyYWN0
aW9uIGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhw
ZWN0ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpu
aWxdOworCisgICAgX29ic2VydmluZyA9IFlFUzsKK30KKworLSAodm9pZClzdG9wCit7CisgICAg
aWYgKCFfb2JzZXJ2aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBbW1VJU2NyaWJibGVJbnRl
cmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJ
bnB1dEV4cGVjdGVkIl07CisKKyAgICBfb2JzZXJ2aW5nID0gTk87Cit9CisKKyNwcmFnbWEgbWFy
ayAtIGlzUGVuY2lsSW5wdXRFeHBlY3RlZCBLVk8KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5T
RGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEFTU0VS
VChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiXSk7Cisg
ICAgQVNTRVJUKG9iamVjdCA9PSBbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSk7CisKKyAg
ICBCT09MIGhhc1N0eWx1c0RldmljZSA9IFVJU2NyaWJibGVJbnRlcmFjdGlvbi5pc1BlbmNpbElu
cHV0RXhwZWN0ZWQ7CisgICAgaWYgKGhhc1N0eWx1c0RldmljZSA9PSBfaGFzU3R5bHVzRGV2aWNl
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaGFzU3R5bHVzRGV2aWNlKSB7CisgICAgICAg
IFtzZWxmIF9zZXRIYXNTdHlsdXNEZXZpY2U6aGFzU3R5bHVzRGV2aWNlXTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFtzZWxmIF9zdGFydENoYW5nZVRpbWVyOnNfY2hhbmdlVGltZUlu
dGVydmFsLnNlY29uZHMoKV07Cit9CisKKyNwcmFnbWEgbWFyayAtIGlzUGVuY2lsSW5wdXRFeHBl
Y3RlZCBUaW1lcgorCistICh2b2lkKV9zdGFydENoYW5nZVRpbWVyOihOU1RpbWVJbnRlcnZhbCl0
aW1lSW50ZXJ2YWwKK3sKKyAgICBbX2NoYW5nZVRpbWVyIGludmFsaWRhdGVdOworICAgIF9jaGFu
Z2VUaW1lciA9IFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRpbWVJbnRlcnZhbDp0aW1lSW50
ZXJ2YWwgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jaGFuZ2VUaW1lckZpcmVkOikg
dXNlckluZm86bmlsIHJlcGVhdHM6Tk9dOworfQorCistICh2b2lkKV9jaGFuZ2VUaW1lckZpcmVk
OihOU1RpbWVyICopdGltZXIKK3sKKyAgICBbc2VsZiBfc2V0SGFzU3R5bHVzRGV2aWNlOk5PXTsK
K30KKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkgJiYgUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBy
b2Nlc3NQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNz
UHJveHlJT1MubW0KaW5kZXggY2E0ZWEyMDM2MDgyOWExZTExNzA4NzBkN2ZjNDQzMDAyNGZiYTc2
Yi4uODA0ZDU3YTYxMTk3ZTgzZDc3YTk4YmM3MjY2ZDcwNTc3NjgxOWYxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBAIC0zMSwy
NCArMzEsMzMgQEAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0
ICJXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKICNpbXBvcnQgIldLTW91c2VEZXZpY2VP
YnNlcnZlci5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKKyAgICBpZiAoV2ViUHJvY2Vzc1By
b3h5OjphbGxQcm9jZXNzZXMoKS5zaXplKCkgPT0gMSkgewogI2lmIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYlByb2Nlc3NQcm94eTo6
YWxsUHJvY2Vzc2VzKCkuc2l6ZSgpID09IDEpCiAgICAgICAgIFtbV0tNb3VzZURldmljZU9ic2Vy
dmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CiAjZW5kaWYKKyNpZiBIQVZFKFBFTkNJTEtJVF9U
RVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAgICAgIFtbV0tTdHlsdXNEZXZpY2VPYnNl
cnZlciBzaGFyZWRJbnN0YW5jZV0gc3RhcnRdOworI2VuZGlmCisgICAgfQogfQogCiB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKKyAgICBpZiAoV2ViUHJvY2Vzc1By
b3h5OjphbGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpIHsKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQotICAgIGlmIChXZWJQcm9jZXNzUHJveHk6OmFs
bFByb2Nlc3NlcygpLmlzRW1wdHkoKSkKICAgICAgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
c2hhcmVkSW5zdGFuY2VdIHN0b3BdOwogI2VuZGlmCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9J
TlBVVCkgJiYgUExBVEZPUk0oSU9TKQorICAgICAgICBbW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIg
c2hhcmVkSW5zdGFuY2VdIHN0b3BdOworI2VuZGlmCisgICAgfQogfQogCiAjaWYgSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKQEAgLTYwLDcgKzY5LDE4IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKQogICAg
ICAgICB3ZWJQcm9jZXNzUHJveHktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc01v
dXNlRGV2aWNlKGhhc01vdXNlRGV2aWNlKSwgMCk7CiB9CiAKLSNlbmRpZiAvLyBIQVZFKFVJS0lU
X1dJVEhfTU9VU0VfU1VQUE9SVCkKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkg
JiYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzU3R5bHVz
RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgYm9vbCBoYXNTdHlsdXNEZXZpY2UgPSBbW1dLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc1N0eWx1c0RldmljZV07CisgICAgZm9y
IChhdXRvKiB3ZWJQcm9jZXNzUHJveHkgOiBXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3Nlcygp
LnZhbHVlcygpKQorICAgICAgICB3ZWJQcm9jZXNzUHJveHktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OlNldEhhc1N0eWx1c0RldmljZShoYXNTdHlsdXNEZXZpY2UpLCAwKTsKK30KKworI2Vu
ZGlmIC8vIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKIAogYm9v
bCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjVmZjg2
ZGIzZDIzZjBjYWEyOGIyZTZjNzM1ZWNmNDM5ZmIxZDA2OS4uNGY5ZjUyYWFhNWRjNzdiOTFjNDk1
MTNlZDBhZWNiMmU5NTE4ODU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzgwLDYgKzEzODAsNyBAQAogCQk5M0U2QTRFRTFCQzVE
RDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hp
dFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU0
OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJOTUwRjI4ODAyNTI0MTRF
QTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdL
TW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NTkzNjc1RjI1MkU1RTMxMDBEM0YwQTAg
LyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VC
b2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAz
NkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZB
RTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwu
aCAqLzsgfTsKIAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFF
MzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLzsgfTsKQEAgLTQ0Mjks
NiArNDQzMCw4IEBACiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29u
ZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
U25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBwYXRo
ID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb3VzZURldmljZU9i
c2VydmVyLm1tOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5oOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU5MzY3NUUyNTJFNUUzMTAwRDNGMEEwIC8q
IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXS1N0eWx1c0RldmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1Qzk0Mzkw
MjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0lu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRl
YnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkw
MzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03MDM4LDYgKzcwNDEsOCBAQAogCQkJCUExMDQ2RUEwMjA3OTI2MzEw
MEYwQzVEOCAvKiBXS1BERlZpZXcubW0gKi8sCiAJCQkJMEZDQjRFNDQxOEJCRTA0NDAwMEZDRkM5
IC8qIFdLU2Nyb2xsVmlldy5oICovLAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAvKiBX
S1Njcm9sbFZpZXcubW0gKi8sCisJCQkJOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5
bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLywKKwkJCQk5NTkzNjc1RTI1MkU1RTMxMDBEM0YwQTAgLyog
V0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAqLywKIAkJCQlDRTVCNEM4NjIxQjczRDg3MDAyMkU2
NEYgLyogV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oICovLAogCQkJCUNFNUI0Qzg3
MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lm1tICov
LAogCQkJCTI2RjEwQkU2MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVS
ZWNvZ25pemVyLmggKi8sCkBAIC0xMTczOSw2ICsxMTc0NCw3IEBACiAJCQkJQkM0MDc2MDYxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEy
NEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5
ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUNFNUI0Qzg4MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRp
Y0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNkYxMEJFODE5MTg3
RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzE2QjhCNjQyMDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1Zp
ZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlODU1ZTVmZWRjNDVkMWU5YjJlNmFkZGQyZjNi
MDQ4YmM3OTBiODI1Li5jOWRkMDgxMTg2Y2U3NTUzOTc3NTQ1ZmE2OTg2Zjk4ZmJkZTkzY2NjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtNDAwMCw2ICs0MDAwLDE1IEBAIHN0YXRpYyBib29sIGhhc01vdXNlRGV2aWNlKCkK
ICNlbmRpZgogfQogCitzdGF0aWMgYm9vbCBoYXNTdHlsdXNEZXZpY2UoKQoreworI2lmIEhBVkUo
UEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuaGFzU3R5bHVzRGV2aWNlKCk7CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCiBib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlQcmltYXJ5
UG9pbnRpbmdEZXZpY2UoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTQwMTgsNyAr
NDAyNyw3IEBAIE9wdGlvbmFsPFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3NPZlByaW1hcnlQb2ludGluCiBPcHRpb25TZXQ8UG9pbnRlckNoYXJh
Y3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKIHsKICAgICBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3Rl
cmlzdGljcz4gcmVzdWx0KFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkNvYXJzZSk7Ci0gICAgaWYg
KGhhc01vdXNlRGV2aWNlKCkpCisgICAgaWYgKGhhc01vdXNlRGV2aWNlKCkgfHwgaGFzU3R5bHVz
RGV2aWNlKCkpCiAgICAgICAgIHJlc3VsdC5hZGQoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6Rmlu
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCA1OWUwN2IwODAxYWZmOTcwZGZjNmEzYWU1NDEwM2ZkOWY3NWEwZmRiLi5h
NTQyZDAwODFjMmZjNTgwMzVlZjI0OTYxMDkwZTZhZmEyMGMzYzUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDY0LDYgKzEwNjQsMjAgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQogCiAjZW5kaWYg
Ly8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKIAorI2lm
IEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKwordm9pZCBXZWJQ
cm9jZXNzOjpzZXRIYXNTdHlsdXNEZXZpY2UoYm9vbCBoYXNTdHlsdXNEZXZpY2UpCit7CisgICAg
aWYgKGhhc1N0eWx1c0RldmljZSA9PSBtX2hhc1N0eWx1c0RldmljZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9oYXNTdHlsdXNEZXZpY2UgPSBoYXNTdHlsdXNEZXZpY2U7CisKKyAgICBQYWdl
Ojp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7
Cit9CisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJ
T1MpCisKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFs
R2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBmM2UxOWFiNmFiMzJiZDBl
YzY0Y2Q3Mjc3OTNmNGJjZDNlNGQ0OGY0Li5lYTZiYjQ0NTU4YTU1Njc3MzkwNzhhMTFiODJjNjE0
ODkxZDUwN2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE5Miw2
ICsxOTIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7CiAj
ZW5kaWYKIAorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykK
KyAgICBib29sIGhhc1N0eWx1c0RldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzU3R5bHVzRGV2
aWNlOyB9CisgICAgdm9pZCBzZXRIYXNTdHlsdXNEZXZpY2UoYm9vbCk7CisjZW5kaWYKKwogICAg
IFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAg
IFZlY3RvcjxXZWJGcmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAtNTYzLDYgKzU2OCwx
MCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNNb3VzZURldmljZSB7IGZhbHNlIH07CiAjZW5k
aWYKIAorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKyAg
ICBib29sIG1faGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKIAogICAg
IHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NT
dXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IFdlYlByb2Nlc3NTdXBwbGVtZW50TWFw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCAzNzAwMTc5OTc5MzMyOTE0NjJmNjBmZDE1ODgzODJhZjc1NTY0YjlkLi40OGJmM2FhZGFi
M2JiMmJmZGY5YjFmMGJjNDQwMzIwNDhkODZjNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTYsNiArNTYsMTAgQEAgbWVzc2Fn
ZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBTZXRI
YXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQogI2VuZGlmCiAKKyNpZiBIQVZFKFBF
TkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAgU2V0SGFzU3R5bHVzRGV2
aWNlKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQorI2VuZGlmCisKICAgICAjIFBsdWctaW5zLgogICAg
IERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgV2FsbFRpbWUg
ZXhwaXJhdGlvblRpbWUpCiAgICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFz
aE1hcDx1aW50MzJfdCxXYWxsVGltZT4gaGFzaGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNjI5NTUyOGNiNGJmMWY1YTkx
ODNhMzI4NjU5MjM2ZjExYjJlZGJhYy4uM2FhZjNmYWI1MzE3YzBkM2M1NDhkMjFlN2VlNzA5ZmVj
MWNiNWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCkBAIC0zMDMsNiArMzAzLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
CiAgICAgbV9oYXNNb3VzZURldmljZSA9IHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2U7CiAjZW5k
aWYKIAorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKyAg
ICBtX2hhc1N0eWx1c0RldmljZSA9IHBhcmFtZXRlcnMuaGFzU3R5bHVzRGV2aWNlOworI2VuZGlm
CisKICAgICBXZWJDb3JlOjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKHBhcmFtZXRlcnMuc2NyZWVuUHJv
cGVydGllcyk7CiAKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwODUzMzk1NTdhNTQwZDA3NzI0OTUxYWI3ODFmN2M4MzJkZmUyNzRkLi5k
YWJjMmZmODEwNGY1ZDA1Mjg3OWEwZjBkMmFlNGYwMTZlYzM2NWFlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAt
MTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyAi
YW55LXBvaW50ZXI6ZmluZSIgbWVkaWEgcXVlcnkgZmFsc2Ugb24gaVBhZC9QZW5jaWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjU4MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjM4MTMyODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lP
U1N0eWx1c1N1cHBvcnQubW06IEFkZGVkLgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHls
dXNJbml0aWFsbHlEaXNjb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHls
dXNJbml0aWFsbHlDb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNM
YXRlckRpc2Nvbm5lY3RlZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xhdGVy
Q29ubmVjdGVkKToKKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVzRGlzY29ubmVjdGVk
VGltZW91dCk6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0wNyAgS2FybCBSYWNrbGVyICA8cmFja2xl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjgxMTUuCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVlMDBkNGNmM2Q4Y2FkNWQ1MDUwOWEzZGMxZjRmNzc0
MTY1YzQ2NzYuLjk5ZmNmZDYzMTJlYzI2ZDM0ZjYyZDNkN2E5MzcwMDk4NjM4ZjNjZTIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MjgsNiArODI4LDcgQEAKIAkJOTNGNTZEQTcxRTVGOTE3
NDAwM0VERTg0IC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgzRTAzMzFEMEE1RjI3MDBGRUJDRjMgLyogbGliaWN1
Y29yZS5keWxpYiAqLzsgfTsKIAkJOTNGNTZEQTkxRTVGOTE5RDAwM0VERTg0IC8qIFdLV2ViVmll
d1NuYXBzaG90Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tICovOyB9
OwogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87IH07CisJCTk1MEU0Q0MxMjUyRTc1
MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0
eWx1c1N1cHBvcnQubW0gKi87IH07CiAJCTk1QjZCM0I3MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRp
YURvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gKi87IH07CiAJ
CTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTg0RkFDQTFDRkZBRUVF
MDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovOyB9OwogCQk5OTg0RkFDRTFDRkZC
MDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAv
KiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CkBAIC0yNDM1LDYgKzI0MzYsNyBAQAogCQk5M0Y1
NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdTbmFwc2hvdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGN0U4NkIxNERDOEU0RDAwQzg0QTk5IC8qIE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkg
LyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGcmFtZXNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUw
RTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFE
b2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
RG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFF
RUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZWRpdGFibGUtYm9keS5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNjcsNiArMzI2OSw3IEBACiAJCQkJQ0VE
NzNEMzUyNDZGMjA0QzAwREFFMzI3IC8qIEluc2VydFRleHRBbHRlcm5hdGl2ZXMubW0gKi8sCiAJ
CQkJMkRCMDIzMkUxRTRFODcxODAwNzA3MTIzIC8qIEludGVyYWN0aW9uRGVhZGxvY2tBZnRlckNy
YXNoLm1tICovLAogCQkJCTJEMTE2RTEyMjNFMENCMzkwMDIwODkwMCAvKiBpT1NNb3VzZVN1cHBv
cnQubW0gKi8sCisJCQkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBv
cnQubW0gKi8sCiAJCQkJNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJp
bmdOYXZpZ2F0aW9uLm1tICovLAogCQkJCTVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRF
bmFibGVkLm1tICovLAogCQkJCUMyNUNDQTA1MUU1MTM4MEIwMDI2Q0I4QSAvKiBMaW5lQnJlYWtp
bmcubW0gKi8sCkBAIC01MjIyLDYgKzUyMjUsNyBAQAogCQkJCTdBOTA5QTgyMUQ4Nzc0ODAwMDdF
MTBGOCAvKiBJbnRSZWN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBODMxRDg3
NzQ4MDAwN0UxMEY4IC8qIEludFNpemVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDEx
NkUxMzIzRTBDQjNBMDAyMDg5MDAgLyogaU9TTW91c2VTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1QzBCRjg5MzFERDU5OUJEMDBCMDAzMjggLyogSXNOYXZpZ2F0aW9u
QWN0aW9uVHJ1c3RlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENUZGNDlGMjE2MkU5NDMwMDRC
RDg2RiAvKiBJU09Cb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM2OUJERDUxRjgyQTdFRjAw
MEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1
c1N1cHBvcnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0
eWx1c1N1cHBvcnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwMDkzN2FhZjM4NmVlZmVmNDE5OTZkZDVmZTYz
MTMyMTY5NjUzNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdL
V2ViVmlldy5oIgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorCisjaWYg
SEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKworQGludGVyZmFjZSBXS1N0eWx1c0RldmljZU9i
c2VydmVyCisrIChXS1N0eWx1c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7CistICh2
b2lkKXN0YXJ0OworLSAodm9pZClfc3RhcnRDaGFuZ2VUaW1lcjooTlNUaW1lSW50ZXJ2YWwpdGlt
ZUludGVydmFsOworLSAodm9pZClfc2V0SGFzU3R5bHVzRGV2aWNlOihCT09MKWhhc1N0eWx1c0Rl
dmljZTsKK0BlbmQKKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNJbml0aWFsbHlEaXNj
b25uZWN0ZWQpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9ic2VydmVyIikgc2hh
cmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW3N0
eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJd
KTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9T
U3R5bHVzU3VwcG9ydCwgU3R5bHVzSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAgIFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5n
KEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVz
RGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFz
U3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOwor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBu
b25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBv
aW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2
YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNl
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1w
b2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0xhdGVy
RGlzY29ubmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0Rldmlj
ZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIp
IHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAg
IFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3Nl
dEhhc1N0eWx1c0RldmljZTpOT107CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFs
dWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVy
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
cG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChp
T1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBXS1N0eWx1c0Rl
dmljZU9ic2VydmVyICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhA
IldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0Rl
dmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0
eWx1c0RldmljZTpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwor
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBb
c3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpZRVNdOworCisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJd
KTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVy
OiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
cjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNEaXNjb25uZWN0
ZWRUaW1lb3V0KQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9i
c2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNo
YXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtz
dHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0
Q2hhbmdlVGltZXI6MC4wMV07CisKKyAgICBfX2Jsb2NrIEJPT0wgZG9uZSA9IGZhbHNlOworICAg
IFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRpbWVJbnRlcnZhbDowLjA1IHJlcGVhdHM6Tk8g
YmxvY2s6XihOU1RpbWVyICp0aW1lcikgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQRUNUX1RSVUUo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2Ui
XSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50
ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUi
XSk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410856</attachid>
            <date>2020-10-08 10:07:13 -0700</date>
            <delta_ts>2020-10-08 14:24:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201008100712.patch</filename>
            <type>text/plain</type>
            <size>37980</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmRkOWRhMGMyZWFhNDYxYjEyZjMzOGZiNTllZjBlYzZmMDUzNGQ4NS4uOTA2
MDM4YjUzZWRkNWU4MTg1NDMzYjViN2QxMmE3OWE2MmU0MjA2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2NiBAQAorMjAyMC0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIHRlc3RpbmcvZGVidWdnaW5nIHB1cnBvc2VzIHRoaXMgMTBtaW4gdGltZW91dCBjYW4gYmUg
YWRqdXN0ZWQgYmVmb3JlIHRoZSBVSVByb2Nlc3MgaXMKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRo
ZSBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRpbWVJbnRlcnZhbGAga2V5IGluIGBOU1Vz
ZXJEZWZhdWx0c2AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9i
c2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKCtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFy
ZWRJbnN0YW5jZV0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGluaXRdKToK
KyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgt
W1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpdKToKKyAgICAgICAg
KC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS1N0eWx1c0Rl
dmljZU9ic2VydmVyIHN0b3BdKToKKyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBv
YnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAg
ICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIF9zdGFydENoYW5nZVRpbWVyOl0pOgorICAgICAg
ICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIF9jaGFuZ2VUaW1lckZpcmVkOl0pOgorICAgICAg
ICBVc2UgT2JqQyBLVk8gdG8gbGlzdGVuIGZvciBjaGFuZ2VzIHRvIGArW1VJU2NyaWJibGVJbnRl
cmFjdGlvbiBpc1BlbmNpbElucHV0RXhwZWN0ZWRdYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJv
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzU3R5bHVzRGV2
aWNlQ2hhbmdlZCk6IEFkZGVkLgorICAgICAgICBUZWxsIHRoZSBzaGFyZWQgYFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXJgIHRvIHN0YXJ0IGxpc3RlbmluZyB3aGVuIGNyZWF0aW5nIHRoZSBXZWJQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgVXNlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzaGFyZWQgYFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXJgIHdoZW4gY3JlYXRpbmcgV2ViUHJvY2VzcyBpbnN0ZWFkCisgICAgICAg
IG9mIHNlbmRpbmcgYSBgU2V0SGFzU3R5bHVzRGV2aWNlYCBtZXNzYWdlIGltbWVkaWF0ZWx5IGFm
dGVyIHRoZSBXZWJQcm9jZXNzIGlzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omhhc1N0eWx1c0RldmljZSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldEhhc1N0eWx1c0RldmljZSk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0
eWxlIChpbmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hh
bmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2VzIGNvbnN0KToKKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQg
dGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IHN0eWx1cyBkZXZpY2Vz
LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0wNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG1pc3NpbmcgYCNkZWZpbmVgIGZvciBgUEVOQ0lM
S0lUX1RFWFRfSU5QVVRgIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNmIyODNlZjI0NThkODM2NTkzNDRi
ZTlkNTQ1OTBjYzJlMTc2ZTIwNC4uZTlkOGQwN2FmOTFlOWM1N2Y2ZTJmNWEyMWExOWY5YmRiMGNj
NzVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg3LDYgKzg3LDkgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKICNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQogICAgIGVuY29kZXIgPDwgaGFzTW91c2VE
ZXZpY2U7CisjZW5kaWYKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9S
TShJT1MpCisgICAgZW5jb2RlciA8PCBoYXNTdHlsdXNEZXZpY2U7CiAjZW5kaWYKICAgICBlbmNv
ZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAgIGVuY29kZXIgPDwgYmFj
a0ZvcndhcmRDYWNoZUNhcGFjaXR5OwpAQCAtMzAwLDYgKzMwMywxMCBAQCBib29sIFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlBy
b2Nlc3NDcmVhdAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisjaWYgSEFWRShQRU5DSUxLSVRfVEVY
VF9JTlBVVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5oYXNTdHlsdXNEZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50
ZXJ2YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2Q4NmE3NGIxZDNlZTUx
MDE1MzRhZDM5MjU2MjMyMjFlZmMzZWNhYS4uNTRhYjJlYzZhZjgxZDVjYzIxZjdiMzk0ZmRiYTFi
NGUxZDY0OTA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE5LDYgKzExOSw5IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQg
eyBmYWxzZSB9OwogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCiAgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKKyNpZiBI
QVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAgYm9vbCBoYXNT
dHlsdXNEZXZpY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2Fi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CmluZGV4IDc3NjkwZDBkZDUyNzJhMDVlMmE3ODQyMjIxOGEzNWI0MjJi
NTc1NWEuLjE2OWIyOTU3MmM1ZjQ1ZjE5YWY4NDlhYWM1NDRhNjg1ZTU2ZTUxNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTQ2Niw2ICs0NjYsNyBAQCBVSVByb2Nlc3MvaW9zL1dLUGFzc3dv
cmRWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQogVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCitV
SVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tT
eW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbQogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRp
Y1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3lzdGVtUHJldmlld1Zp
ZXcubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCmluZGV4IGNmNzU1MjI2ZWNiNzQwOGNmMDNkMDJmZWRjMjhlOGUyMmFiYWE4
N2IuLjQ0MTcwMDM5NjZmMGI0NjJmYjMwN2VlN2FkMzI1NjllN2JjYjQ0ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpA
QCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tNb3Vz
ZURldmljZU9ic2VydmVyLmgiCisjaW1wb3J0ICJXS1N0eWx1c0RldmljZU9ic2VydmVyLmgiCiAj
aW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtNTEwLDYgKzUxMSwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSAmJiBQTEFURk9STShJT1MpCiAgICAgcGFyYW1ldGVycy5oYXNNb3VzZURldmljZSA9IFtb
V0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNNb3VzZURldmljZV07CiAj
ZW5kaWYKKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykK
KyAgICBwYXJhbWV0ZXJzLmhhc1N0eWx1c0RldmljZSA9IFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ciBzaGFyZWRJbnN0YW5jZV0gaGFzU3R5bHVzRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQzOWYyMDczMmRkZjFhMTNiY2U4MzQ1M2MwOTI3
ZTIzYWM5YmI4ZS4uMmU3ZTA1ODk2NjJkNDFhNDc5NDUzNzlkMTNiODIzY2VlYThkMDBkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxNSw2ICsyMTUs
MTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdl
ZCgpOwogI2VuZGlmCiAKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9S
TShJT1MpCisgICAgc3RhdGljIHZvaWQgbm90aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZCgpOwor
I2VuZGlmCisKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRh
KT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
UEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM3ZGRhZjUzZDA2ZTU3MGRkYWIwYzMzYjIxYzg1ZjI5
YWVhNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
U3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKworQGludGVyZmFj
ZSBXS1N0eWx1c0RldmljZU9ic2VydmVyIDogTlNPYmplY3QKKworKyAoV0tTdHlsdXNEZXZpY2VP
YnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworCistICh2b2lkKXN0YXJ0OworLSAodm9pZClzdG9w
OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaGFzU3R5bHVzRGV2aWNl
OworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1
c0RldmljZU9ic2VydmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYThhNDM3ZWViMjk1NDczNGQzYTM0OGMx
NzdlMWY2ODk1Mjg1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ci5oIgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkgJiYgUExBVEZPUk0oSU9TKQor
CisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFVJS2l0L1VJU2NyaWJibGVJ
bnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1Nl
Y29uZHMuaD4KKworc3RhdGljIFNlY29uZHMgc19jaGFuZ2VUaW1lSW50ZXJ2YWwgeyAxMF9taW4g
fTsKKworQGltcGxlbWVudGF0aW9uIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgeworICAgIEJPT0wg
X2hhc1N0eWx1c0RldmljZTsKKyAgICBCT09MIF9vYnNlcnZpbmc7CisgICAgUmV0YWluUHRyPE5T
VGltZXI+IF9jaGFuZ2VUaW1lcjsKK30KKworKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqKXNo
YXJlZEluc3RhbmNlCit7CisgICAgc3RhdGljIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKmluc3Rh
bmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGluc3RhbmNlID0gW1tXS1N0eWx1c0Rl
dmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKKy0g
KGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaGFzU3R5bHVzRGV2aWNlID0gVUlTY3JpYmJsZUlu
dGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZDsKKworICAgIGlmIChOU051bWJlciAqY2hh
bmdlVGltZUludGVydmFsT3ZlcnJpZGUgPSBbTlNVc2VyRGVmYXVsdHMuc3RhbmRhcmRVc2VyRGVm
YXVsdHMgb2JqZWN0Rm9yS2V5OkAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRpbWVJbnRl
cnZhbCJdKSB7CisgICAgICAgIHNfY2hhbmdlVGltZUludGVydmFsID0gU2Vjb25kcyhbY2hhbmdl
VGltZUludGVydmFsT3ZlcnJpZGUgZG91YmxlVmFsdWVdKTsKKyAgICAgICAgV1RGTG9nQWx3YXlz
KCJXYXJuaW5nOiBXS1N0eWx1c0RldmljZU9ic2VydmVyIGNoYW5nZVRpbWVJbnRlcnZhbCB3YXMg
b3ZlcnJpZGVuIHZpYSB1c2VyIGRlZmF1bHRzIGFuZCBpcyBub3cgJWcgc2Vjb25kcyIsIHNfY2hh
bmdlVGltZUludGVydmFsLnNlY29uZHMoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIHN0b3BdOworCisgICAgW3N1cGVyIGRl
YWxsb2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBTdGF0ZQorCistICh2b2lkKV9zZXRIYXNTdHls
dXNEZXZpY2U6KEJPT0wpaGFzU3R5bHVzRGV2aWNlCit7CisgICAgX2hhc1N0eWx1c0RldmljZSA9
IGhhc1N0eWx1c0RldmljZTsKKworICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlI
YXNTdHlsdXNEZXZpY2VDaGFuZ2VkKCk7CisKKyAgICBbX2NoYW5nZVRpbWVyIGludmFsaWRhdGVd
OworICAgIF9jaGFuZ2VUaW1lciA9IG5pbDsKK30KKworLSAodm9pZClzdGFydAoreworICAgIGlm
IChfb2JzZXJ2aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBbW1VJU2NyaWJibGVJbnRlcmFj
dGlvbiBjbGFzc10gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4
cGVjdGVkIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6
bmlsXTsKKworICAgIF9vYnNlcnZpbmcgPSBZRVM7Cit9CisKKy0gKHZvaWQpc3RvcAoreworICAg
IGlmICghX29ic2VydmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgW1tVSVNjcmliYmxlSW50
ZXJhY3Rpb24gY2xhc3NdIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImlzUGVuY2ls
SW5wdXRFeHBlY3RlZCJdOworCisgICAgX29ic2VydmluZyA9IE5POworfQorCisjcHJhZ21hIG1h
cmsgLSBpc1BlbmNpbElucHV0RXhwZWN0ZWQgS1ZPCisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9y
S2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihO
U0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBBU1NF
UlQoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl0pOwor
ICAgIEFTU0VSVChvYmplY3QgPT0gW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10pOworCisg
ICAgQk9PTCBoYXNTdHlsdXNEZXZpY2UgPSBVSVNjcmliYmxlSW50ZXJhY3Rpb24uaXNQZW5jaWxJ
bnB1dEV4cGVjdGVkOworICAgIGlmIChoYXNTdHlsdXNEZXZpY2UgPT0gX2hhc1N0eWx1c0Rldmlj
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGhhc1N0eWx1c0RldmljZSkgeworICAgICAg
ICBbc2VsZiBfc2V0SGFzU3R5bHVzRGV2aWNlOmhhc1N0eWx1c0RldmljZV07CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBbc2VsZiBfc3RhcnRDaGFuZ2VUaW1lcjpzX2NoYW5nZVRpbWVJ
bnRlcnZhbC5zZWNvbmRzKCldOworfQorCisjcHJhZ21hIG1hcmsgLSBpc1BlbmNpbElucHV0RXhw
ZWN0ZWQgVGltZXIKKworLSAodm9pZClfc3RhcnRDaGFuZ2VUaW1lcjooTlNUaW1lSW50ZXJ2YWwp
dGltZUludGVydmFsCit7CisgICAgW19jaGFuZ2VUaW1lciBpbnZhbGlkYXRlXTsKKyAgICBfY2hh
bmdlVGltZXIgPSBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6dGltZUlu
dGVydmFsIHRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfY2hhbmdlVGltZXJGaXJlZDop
IHVzZXJJbmZvOm5pbCByZXBlYXRzOk5PXTsKK30KKworLSAodm9pZClfY2hhbmdlVGltZXJGaXJl
ZDooTlNUaW1lciAqKXRpbWVyCit7CisgICAgW3NlbGYgX3NldEhhc1N0eWx1c0RldmljZTpOT107
Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
cm9jZXNzUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vz
c1Byb3h5SU9TLm1tCmluZGV4IGNhNGVhMjAzNjA4MjlhMWUxMTcwODcwZDdmYzQ0MzAwMjRmYmE3
NmIuLjgwNGQ1N2E2MTE5N2U4M2Q3N2E5OGJjNzI2NmQ3MDU3NzY4MTlmMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzEs
MjQgKzMxLDMzIEBACiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIgogI2ltcG9y
dCAiV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmgiCiAjaW1wb3J0ICJXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIuaCIKKyNpbXBvcnQgIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CisgICAgaWYgKFdlYlByb2Nlc3NQ
cm94eTo6YWxsUHJvY2Vzc2VzKCkuc2l6ZSgpID09IDEpIHsKICNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQotICAgIGlmIChXZWJQcm9jZXNzUHJveHk6
OmFsbFByb2Nlc3NlcygpLnNpemUoKSA9PSAxKQogICAgICAgICBbW1dLTW91c2VEZXZpY2VPYnNl
cnZlciBzaGFyZWRJbnN0YW5jZV0gc3RhcnRdOwogI2VuZGlmCisjaWYgSEFWRShQRU5DSUxLSVRf
VEVYVF9JTlBVVCkgJiYgUExBVEZPUk0oSU9TKQorICAgICAgICBbW1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0YXJ0XTsKKyNlbmRpZgorICAgIH0KIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCiB7CisgICAgaWYgKFdlYlByb2Nlc3NQ
cm94eTo6YWxsUHJvY2Vzc2VzKCkuaXNFbXB0eSgpKSB7CiAjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5Ojph
bGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpCiAgICAgICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVy
IHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKICNlbmRpZgorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRf
SU5QVVQpICYmIFBMQVRGT1JNKElPUykKKyAgICAgICAgW1tXS1N0eWx1c0RldmljZU9ic2VydmVy
IHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorICAgIH0KIH0KIAogI2lmIEhBVkUoVUlL
SVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCkBAIC02MCw3ICs2OSwxOCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzTW91c2VEZXZpY2VDaGFuZ2VkKCkKICAg
ICAgICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRIYXNN
b3VzZURldmljZShoYXNNb3VzZURldmljZSksIDApOwogfQogCi0jZW5kaWYgLy8gSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpICYmIFBMQVRGT1JNKElPUykKKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQp
ICYmIFBMQVRGT1JNKElPUykKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1
c0RldmljZUNoYW5nZWQoKQoreworICAgIGJvb2wgaGFzU3R5bHVzRGV2aWNlID0gW1tXS1N0eWx1
c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNTdHlsdXNEZXZpY2VdOworICAgIGZv
ciAoYXV0byogd2ViUHJvY2Vzc1Byb3h5IDogV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMo
KS52YWx1ZXMoKSkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpTZXRIYXNTdHlsdXNEZXZpY2UoaGFzU3R5bHVzRGV2aWNlKSwgMCk7Cit9CisKKyNl
bmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCiAKIGJv
b2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY1ZmY4
NmRiM2QyM2YwY2FhMjhiMmU2YzczNWVjZjQzOWZiMWQwNjkuLjRmOWY1MmFhYTVkYzc3YjkxYzQ5
NTEzZWQwYWVjYjJlOTUxODg1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM4MCw2ICsxMzgwLDcgQEAKIAkJOTNFNkE0RUUxQkM1
REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tI
aXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1
NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0
RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEw
IC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1c0Rl
dmljZU9ic2VydmVyLmggKi87IH07CiAJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNl
Qm9hcmRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLzsgfTsKIAkJOTkw
MzZBRTIyM0E5NDlDRjAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2
QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFs
LmggKi87IH07CiAJCTk5MDM2QUU1MjNBOTU4NzUwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZB
RTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggKi87IH07CkBAIC00NDI5
LDYgKzQ0MzAsOCBAQAogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENv
bmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0
aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VP
YnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1
c0RldmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLU3R5
bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OTM2NzVFMjUyRTVFMzEwMEQzRjBBMCAv
KiBXS1N0eWx1c0RldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS1N0eWx1
c0RldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUM5NDM5
MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JE
ZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzAzOCw2ICs3MDQxLDggQEAKIAkJCQlBMTA0NkVBMDIwNzkyNjMx
MDBGMEM1RDggLyogV0tQREZWaWV3Lm1tICovLAogCQkJCTBGQ0I0RTQ0MThCQkUwNDQwMDBGQ0ZD
OSAvKiBXS1Njcm9sbFZpZXcuaCAqLywKIAkJCQkwRkNCNEU0NTE4QkJFMDQ0MDAwRkNGQzkgLyog
V0tTY3JvbGxWaWV3Lm1tICovLAorCQkJCTk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0
eWx1c0RldmljZU9ic2VydmVyLmggKi8sCisJCQkJOTU5MzY3NUUyNTJFNUUzMTAwRDNGMEEwIC8q
IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0gKi8sCiAJCQkJQ0U1QjRDODYyMUI3M0Q4NzAwMjJF
NjRGIC8qIFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaCAqLywKIAkJCQlDRTVCNEM4
NzIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbSAq
LywKIAkJCQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNUYXBHZXN0dXJl
UmVjb2duaXplci5oICovLApAQCAtMTE3MzksNiArMTE3NDQsNyBAQAogCQkJCUJDNDA3NjA2MTI0
RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MUEx
MjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5
OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk1OTM2NzVGMjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRTVCNEM4ODIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0
aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZGMTBCRTgxOTE4
N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNkI4QjY0MjA1NEI1NTgwMEJENEE2MiAvKiBXS1N5c3RlbVByZXZpZXdW
aWV3LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTg1NWU1ZmVkYzQ1ZDFlOWIyZTZhZGRkMmYz
YjA0OGJjNzkwYjgyNS4uYzlkZDA4MTE4NmNlNzU1Mzk3NzU0NWZhNjk4NmY5OGZiZGU5M2NjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KQEAgLTQwMDAsNiArNDAwMCwxNSBAQCBzdGF0aWMgYm9vbCBoYXNNb3VzZURldmljZSgp
CiAjZW5kaWYKIH0KIAorc3RhdGljIGJvb2wgaGFzU3R5bHVzRGV2aWNlKCkKK3sKKyNpZiBIQVZF
KFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmhhc1N0eWx1c0RldmljZSgpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5UHJpbWFy
eVBvaW50aW5nRGV2aWNlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC00MDE4LDcg
KzQwMjcsNyBAQCBPcHRpb25hbDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZQcmltYXJ5UG9pbnRpbgogT3B0aW9uU2V0PFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0CiB7CiAgICAgT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3M+IHJlc3VsdChQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpDb2Fyc2UpOwotICAgIGlm
IChoYXNNb3VzZURldmljZSgpKQorICAgIGlmIChoYXNNb3VzZURldmljZSgpIHx8IGhhc1N0eWx1
c0RldmljZSgpKQogICAgICAgICByZXN1bHQuYWRkKFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZp
bmUpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNTllMDdiMDgwMWFmZjk3MGRmYzZhM2FlNTQxMDNmZDlmNzVhMGZkYi4u
YTU0MmQwMDgxYzJmYzU4MDM1ZWYyNDk2MTA5MGU2YWZhMjBjM2M1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTA2NCw2ICsxMDY0LDIwIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6c2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKIAogI2VuZGlm
IC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCiAKKyNp
ZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisKK3ZvaWQgV2Vi
UHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQoreworICAg
IGlmIChoYXNTdHlsdXNEZXZpY2UgPT0gbV9oYXNTdHlsdXNEZXZpY2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1faGFzU3R5bHVzRGV2aWNlID0gaGFzU3R5bHVzRGV2aWNlOworCisgICAgUGFn
ZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgp
OworfQorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkgJiYgUExBVEZPUk0o
SU9TKQorCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5pdGlh
bEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZjNlMTlhYjZhYjMyYmQw
ZWM2NGNkNzI3NzkzZjRiY2QzZTRkNDhmNC4uZWE2YmI0NDU1OGE1NTY3NzM5MDc4YTExYjgyYzYx
NDg5MWQ1MDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTIs
NiArMTkyLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc01vdXNlRGV2aWNlKGJvb2wpOwog
I2VuZGlmCiAKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1Mp
CisgICAgYm9vbCBoYXNTdHlsdXNEZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2hhc1N0eWx1c0Rl
dmljZTsgfQorICAgIHZvaWQgc2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wpOworI2VuZGlmCisKICAg
ICBXZWJGcmFtZSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKICAg
ICBWZWN0b3I8V2ViRnJhbWUqPiB3ZWJGcmFtZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFdlYkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqKTsKQEAgLTU2Myw2ICs1Njgs
MTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisg
ICAgYm9vbCBtX2hhc1N0eWx1c0RldmljZSB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIEhhc2hN
YXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAg
ICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNz
U3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggMzcwMDE3OTk3OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3NTU2NGI5ZC4uNDhiZjNhYWRh
YjNiYjJiZmRmOWIxZjBiYzQ0MDMyMDQ4ZDg2YzViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTU2LDYgKzU2LDEwIEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0
SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKICNlbmRpZgogCisjaWYgSEFWRShQ
RU5DSUxLSVRfVEVYVF9JTlBVVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIFNldEhhc1N0eWx1c0Rl
dmljZShib29sIGhhc1N0eWx1c0RldmljZSkKKyNlbmRpZgorCiAgICAgIyBQbHVnLWlucy4KICAg
ICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90IGhhc2gsIFdhbGxUaW1l
IGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhh
c2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDYyOTU1MjhjYjRiZjFmNWE5
MTgzYTMyODY1OTIzNmYxMWIyZWRiYWMuLjNhYWYzZmFiNTMxN2MwZDNjNTQ4ZDIxZTdlZTcwOWZl
YzFjYjVkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQpAQCAtMzAzLDYgKzMwMywxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YQogICAgIG1faGFzTW91c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlOwogI2Vu
ZGlmCiAKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisg
ICAgbV9oYXNTdHlsdXNEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc1N0eWx1c0RldmljZTsKKyNlbmRp
ZgorCiAgICAgV2ViQ29yZTo6c2V0U2NyZWVuUHJvcGVydGllcyhwYXJhbWV0ZXJzLnNjcmVlblBy
b3BlcnRpZXMpOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5E
T1dTRVJWRVJfQkxPQ0tJTkcpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMDg1MzM5NTU3YTU0MGQwNzcyNDk1MWFiNzgxZjdjODMyZGZlMjc0ZC4u
ZGFiYzJmZjgxMDRmNWQwNTI4NzlhMGYwZDJhZTRmMDE2ZWMzNjVhZSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIw
LTEwLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mg
ImFueS1wb2ludGVyOmZpbmUiIG1lZGlhIHF1ZXJ5IGZhbHNlIG9uIGlQYWQvUGVuY2lsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1ODAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYzODEzMjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9p
T1NTdHlsdXNTdXBwb3J0Lm1tOiBBZGRlZC4KKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5
bHVzSW5pdGlhbGx5RGlzY29ubmVjdGVkKToKKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5
bHVzSW5pdGlhbGx5Q29ubmVjdGVkKToKKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVz
TGF0ZXJEaXNjb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNMYXRl
ckNvbm5lY3RlZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0Rpc2Nvbm5lY3Rl
ZFRpbWVvdXQpOgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTAtMDcgIEthcmwgUmFja2xlciAgPHJhY2ts
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY4MTE1Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZTAwZDRjZjNkOGNhZDVkNTA1MDlhM2RjMWY0Zjc3
NDE2NWM0Njc2Li45OWZjZmQ2MzEyZWMyNmQzNGY2MmQzZDdhOTM3MDA5ODYzOGYzY2UyIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODI4LDYgKzgyOCw3IEBACiAJCTkzRjU2REE3MUU1Rjkx
NzQwMDNFREU4NCAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4M0UwMzMxRDBBNUYyNzAwRkVCQ0YzIC8qIGxpYmlj
dWNvcmUuZHlsaWIgKi87IH07CiAJCTkzRjU2REE5MUU1RjkxOUQwMDNFREU4NCAvKiBXS1dlYlZp
ZXdTbmFwc2hvdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSAqLzsg
fTsKIAkJOTNGN0U4NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovOyB9OworCQk5NTBFNENDMTI1MkU3
NTI0MDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NT
dHlsdXNTdXBwb3J0Lm1tICovOyB9OwogCQk5NUI2QjNCNzI1MUVCRjJGMDBGQzQzODIgLyogTWVk
aWFEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovOyB9Owog
CQk5OTg0RkFDQzFDRkZBRjYwMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0ExQ0ZGQUVF
RTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLzsgfTsKIAkJOTk4NEZBQ0UxQ0ZG
QjA5MDAwOEQxOThDIC8qIGVkaXRhYmxlLWJvZHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTg0RkFDRDFDRkZCMDM4MDA4RDE5OEMg
LyogZWRpdGFibGUtYm9keS5odG1sICovOyB9OwpAQCAtMjQzNSw2ICsyNDM2LDcgQEAKIAkJOTNG
NTZEQTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3U25hcHNob3QubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjdFODZCMTREQzhFNEQwMEM4NEE5OSAvKiBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5
IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3VwcG9ydC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlh
RG9jdW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRp
YURvY3VtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0RkFDQTFDRkZB
RUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGV4dElucHV0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTg0RkFDRDFDRkZCMDM4MDA4RDE5OEMgLyogZWRpdGFibGUtYm9k
eS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLWJvZHkuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjY3LDYgKzMyNjksNyBAQAogCQkJCUNF
RDczRDM1MjQ2RjIwNEMwMERBRTMyNyAvKiBJbnNlcnRUZXh0QWx0ZXJuYXRpdmVzLm1tICovLAog
CQkJCTJEQjAyMzJFMUU0RTg3MTgwMDcwNzEyMyAvKiBJbnRlcmFjdGlvbkRlYWRsb2NrQWZ0ZXJD
cmFzaC5tbSAqLywKIAkJCQkyRDExNkUxMjIzRTBDQjM5MDAyMDg5MDAgLyogaU9TTW91c2VTdXBw
b3J0Lm1tICovLAorCQkJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBw
b3J0Lm1tICovLAogCQkJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVy
aW5nTmF2aWdhdGlvbi5tbSAqLywKIAkJCQk1QzAxNjBDMDIxQTEzMjMyMDA3N0ZBMzIgLyogSklU
RW5hYmxlZC5tbSAqLywKIAkJCQlDMjVDQ0EwNTFFNTEzODBCMDAyNkNCOEEgLyogTGluZUJyZWFr
aW5nLm1tICovLApAQCAtNTIyMiw2ICs1MjI1LDcgQEAKIAkJCQk3QTkwOUE4MjFEODc3NDgwMDA3
RTEwRjggLyogSW50UmVjdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTgzMUQ4
Nzc0ODAwMDdFMTBGOCAvKiBJbnRTaXplVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQx
MTZFMTMyM0UwQ0IzQTAwMjA4OTAwIC8qIGlPU01vdXNlU3VwcG9ydC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUMwQkY4OTMxREQ1OTlCRDAwQjAwMzI4IC8qIElzTmF2aWdhdGlv
bkFjdGlvblRydXN0ZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDVGRjQ5RjIxNjJFOTQzMDA0
QkQ4NkYgLyogSVNPQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNjlCREQ1MUY4MkE3RUYw
MDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NTdHls
dXNTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NT
dHlsdXNTdXBwb3J0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMDA5MzdhYWYzODZlZWZlZjQxOTk2ZGQ1ZmU2
MzEzMjE2OTY1MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL2lPU1N0eWx1c1N1cHBvcnQubW0KQEAgLTAsMCArMSwxNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKworI2lm
IEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisKK0BpbnRlcmZhY2UgV0tTdHlsdXNEZXZpY2VP
YnNlcnZlcgorKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworLSAo
dm9pZClzdGFydDsKKy0gKHZvaWQpX3N0YXJ0Q2hhbmdlVGltZXI6KE5TVGltZUludGVydmFsKXRp
bWVJbnRlcnZhbDsKKy0gKHZvaWQpX3NldEhhc1N0eWx1c0RldmljZTooQk9PTCloYXNTdHlsdXNE
ZXZpY2U7CitAZW5kCisKK1RFU1QoaU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzSW5pdGlhbGx5RGlz
Y29ubmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9i
c2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNo
YXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtz
dHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOk5PXTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1
YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIi
XSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1w
b2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFR
dWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlP
U1N0eWx1c1N1cHBvcnQsIFN0eWx1c0luaXRpYWxseUNvbm5lY3RlZCkKK3sKKyAgICBXS1N0eWx1
c0RldmljZU9ic2VydmVyICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmlu
ZyhAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1
c0RldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhh
c1N0eWx1c0RldmljZTpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsK
KyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjog
bm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJw
b2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJz
ZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
cG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNMYXRl
ckRpc2Nvbm5lY3RlZCkKK3sKKyAgICBXS1N0eWx1c0RldmljZU9ic2VydmVyICpzdHlsdXNEZXZp
Y2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIi
KSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAg
ICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpZRVNdOworCisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9z
ZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2Vi
VmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNU
X0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
ciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55
LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1Qo
aU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzTGF0ZXJDb25uZWN0ZWQpCit7CisgICAgV0tTdHlsdXNE
ZXZpY2VPYnNlcnZlciAqc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmco
QCJXS1N0eWx1c0RldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNE
ZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNT
dHlsdXNEZXZpY2U6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
KworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAg
W3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6WUVTXTsKKworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUi
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRl
cjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7
CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50
ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzRGlzY29ubmVj
dGVkVGltZW91dCkKK3sKKyAgICBXS1N0eWx1c0RldmljZU9ic2VydmVyICpzdHlsdXNEZXZpY2VP
YnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBz
aGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBb
c3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpZRVNdOworCisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zdGFy
dENoYW5nZVRpbWVyOjAuMDFdOworCisgICAgX19ibG9jayBCT09MIGRvbmUgPSBmYWxzZTsKKyAg
ICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6MC4wNSByZXBlYXRzOk5P
IGJsb2NrOl4oTlNUaW1lciAqdGltZXIpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNl
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2lu
dGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5l
Il0pOworfQorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410884</attachid>
            <date>2020-10-08 14:24:26 -0700</date>
            <delta_ts>2020-10-09 13:48:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201008142425.patch</filename>
            <type>text/plain</type>
            <size>36926</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmRkOWRhMGMyZWFhNDYxYjEyZjMzOGZiNTllZjBlYzZmMDUzNGQ4NS4uOTc0
YzAyNDVmNjg5MzJhYWU1ZTgyMTMzM2FmYjA0N2QxYzRjZmZkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2NyBAQAorMjAyMC0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIGxpdmUtb24vdHdlYWtpbmcgcHVycG9zZXMgdGhpcyAxMG1pbiB0aW1lb3V0IGNhbiBiZSBh
ZGp1c3RlZCBiZWZvcmUgdGhlIFVJUHJvY2VzcyBpcworICAgICAgICBjcmVhdGVkIHdpdGggdGhl
IGBXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsYCBrZXkgaW4gYE5TVXNl
ckRlZmF1bHRzYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW06IEFkZGVkLgorICAgICAgICAoK1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgaW5pdF0pOgor
ICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOl0pOgorICAgICAgICAo
LVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIG9i
c2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0Q2hhbmdlVGltZXI6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX2NoYW5nZVRpbWVyRmlyZWQ6XSk6CisgICAgICAg
IFVzZSBPYmpDIEtWTyB0byBsaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0Rldmlj
ZUNoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJv
eSk6CisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAgdG8g
c3RhcnQgbGlzdGVuaW5nIHdoZW4gY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICBVc2Ug
dGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAg
d2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzCisgICAgICAgIGluc3RlYWQgb2Ygc2VuZGluZyBhIGBT
ZXRIYXNTdHlsdXNEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdlYlByb2Nl
c3MgaXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzU3R5bHVzRGV2aWNlIGNvbnN0KTogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0eWxlIChp
bmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hhbmdlLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
IGNvbnN0KToKKyAgICAgICAgSW5jbHVkZSBgZmluZWAgd2hlbiB0aGVyZSBpcyBhIHN0eWx1cyBk
ZXZpY2UuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTA3ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBgI2RlZmluZWAgZm9yIGBQ
RU5DSUxLSVRfVEVYVF9JTlBVVGAgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA2YjI4M2VmMjQ1OGQ4MzY1
OTM0NGJlOWQ1NDU5MGNjMmUxNzZlMjA0Li42ZGU3ODVlZWI4ZjYwZDVlZWRiMDYxMzM4OTllNGU5
YTMyNTA1ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODgsNiArODgsNyBAQCB2b2lkIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKICAgICBl
bmNvZGVyIDw8IGhhc01vdXNlRGV2aWNlOwogI2VuZGlmCisgICAgZW5jb2RlciA8PCBoYXNTdHls
dXNEZXZpY2U7CiAgICAgZW5jb2RlciA8PCBkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbDsK
ICAgICBlbmNvZGVyIDw8IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eTsKICNpZiBQTEFURk9STShD
T0NPQSkKQEAgLTMwMSw2ICszMDIsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICNlbmRpZgorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5o
YXNTdHlsdXNEZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5iYWNr
Rm9yd2FyZENhY2hlQ2FwYWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDNkODZhNzRiMWQzZWU1MTAxNTM0YWQz
OTI1NjIzMjIxZWZjM2VjYWEuLjQ1MTk2YmQ2ODIyNzhiNWRhOWUxZDRmYzQ1MTA3OGQxYjRhODJm
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRG
T1JNKElPUykKICAgICBib29sIGhhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKICNlbmRpZgorICAg
IGJvb2wgaGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1lbW9yeUNhY2hlRGlz
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAppbmRleCA3NzY5MGQwZGQ1MjcyYTA1ZTJhNzg0MjIyMThhMzViNDIyYjU3NTVh
Li4xNjliMjk1NzJjNWY0NWYxOWFmODQ5YWFjNTQ0YTY4NWU1NmU1MTZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC00NjYsNiArNDY2LDcgQEAgVUlQcm9jZXNzL2lvcy9XS1Bhc3N3b3JkVmll
dy5tbQogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KIFVJUHJvY2Vz
cy9pb3MvV0tQREZWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQorVUlQcm9j
ZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3ludGhl
dGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQubW0KIFVJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBH
ZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS1N5c3RlbVByZXZpZXdWaWV3Lm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQppbmRleCBjZjc1NTIyNmVjYjc0MDhjZjAzZDAyZmVkYzI4ZThlMjJhYmFhODdiLi40
NDE3MDAzOTY2ZjBiNDYyZmIzMDdlZTdhZDMyNTY5ZTdiY2I0NGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTQx
LDYgKzQxLDcgQEAKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTW91c2VEZXZp
Y2VPYnNlcnZlci5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9y
dCAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2ltcG9ydCAiV2ViTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmgiCiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKQEAgLTUxMCw2ICs1MTEsMTAgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkg
JiYgUExBVEZPUk0oSU9TKQogICAgIHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91
c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOwogI2VuZGlm
CisKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAg
cGFyYW1ldGVycy5oYXNTdHlsdXNEZXZpY2UgPSBbW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdIGhhc1N0eWx1c0RldmljZV07CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MGM0OWE5OTMyN2IxODU2YjA1MDZiNDQzYmE4YjQx
YTNhYjFiNzBhLi5mODBhYTg3NzZmMmRlNTJmNjUwYjIzOTdkY2U5ZWVlMjAxYzJhOTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTExNDcsNiAr
MTE0NywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6d2luZG93U2VydmVyQ29ubmVjdGlvblN0
YXRlQ2hhbmdlZCgpCiAgICAgICAgIHBhZ2UtPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoQWN0aXZp
dHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6bm90
aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZChib29sIGhhc1N0eWx1c0RldmljZSkKK3sKKyAgICBm
b3IgKGF1dG8qIHdlYlByb2Nlc3NQcm94eSA6IFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2Vz
KCkudmFsdWVzKCkpCisgICAgICAgIHdlYlByb2Nlc3NQcm94eS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6U2V0SGFzU3R5bHVzRGV2aWNlKGhhc1N0eWx1c0RldmljZSksIDApOworfQorCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKGNhblNlbmRNZXNzYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCA0NDM5ZjIwNzMyZGRmMWExM2JjZTgzNDUzYzA5MjdlMjNhYzliYjhlLi5h
MGQ1ODJhZDU2NWE3ODcwOTkzY2NjZTU4MTA0YzQzNzczZmM2ZWI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKICNlbmRpZgog
CisgICAgc3RhdGljIHZvaWQgbm90aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZChib29sIGhhc1N0
eWx1c0RldmljZSk7CisKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNp
dGVEYXRhKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM3ZGRhZjUzZDA2ZTU3MGRkYWIwYzMzYjIx
Yzg1ZjI5YWVhNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKworQGlu
dGVyZmFjZSBXS1N0eWx1c0RldmljZU9ic2VydmVyIDogTlNPYmplY3QKKworKyAoV0tTdHlsdXNE
ZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworCistICh2b2lkKXN0YXJ0OworLSAodm9p
ZClzdG9wOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaGFzU3R5bHVz
RGV2aWNlOworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAm
JiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S1N0eWx1c0RldmljZU9ic2VydmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiZGQ1OTRiNGQxNTNlNTEyOWM1
M2RiN2RmMDI3MGQxOTg2Y2YyMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDE0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VP
YnNlcnZlci5oIgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkgJiYgUExBVEZPUk0o
SU9TKQorCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFVJS2l0L1VJU2Ny
aWJibGVJbnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL1NlY29uZHMuaD4KKworc3RhdGljIFNlY29uZHMgc19jaGFuZ2VUaW1lSW50ZXJ2YWwgeyAx
MF9taW4gfTsKKworQGltcGxlbWVudGF0aW9uIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgeworICAg
IEJPT0wgX2hhc1N0eWx1c0RldmljZTsKKyAgICBCT09MIF9vYnNlcnZpbmc7CisgICAgUmV0YWlu
UHRyPE5TVGltZXI+IF9jaGFuZ2VUaW1lcjsKK30KKworKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ciAqKXNoYXJlZEluc3RhbmNlCit7CisgICAgc3RhdGljIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIg
Kmluc3RhbmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGluc3RhbmNlID0gW1tXS1N0
eWx1c0RldmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9
CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaGFzU3R5bHVzRGV2aWNlID0gVUlTY3Jp
YmJsZUludGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZDsKKworICAgIGlmIChOU051bWJl
ciAqY2hhbmdlVGltZUludGVydmFsT3ZlcnJpZGUgPSBbTlNVc2VyRGVmYXVsdHMuc3RhbmRhcmRV
c2VyRGVmYXVsdHMgb2JqZWN0Rm9yS2V5OkAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRp
bWVJbnRlcnZhbCJdKSB7CisgICAgICAgIHNfY2hhbmdlVGltZUludGVydmFsID0gU2Vjb25kcyhb
Y2hhbmdlVGltZUludGVydmFsT3ZlcnJpZGUgZG91YmxlVmFsdWVdKTsKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCJXYXJuaW5nOiBXS1N0eWx1c0RldmljZU9ic2VydmVyIGNoYW5nZVRpbWVJbnRlcnZh
bCB3YXMgb3ZlcnJpZGVuIHZpYSB1c2VyIGRlZmF1bHRzIGFuZCBpcyBub3cgJWcgc2Vjb25kcyIs
IHNfY2hhbmdlVGltZUludGVydmFsLnNlY29uZHMoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIHN0b3BdOworCisgICAgW3N1
cGVyIGRlYWxsb2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBTdGF0ZQorCistICh2b2lkKV9zZXRI
YXNTdHlsdXNEZXZpY2U6KEJPT0wpaGFzU3R5bHVzRGV2aWNlCit7CisgICAgX2hhc1N0eWx1c0Rl
dmljZSA9IGhhc1N0eWx1c0RldmljZTsKKworICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpu
b3RpZnlIYXNTdHlsdXNEZXZpY2VDaGFuZ2VkKF9oYXNTdHlsdXNEZXZpY2UpOworCisgICAgW19j
aGFuZ2VUaW1lciBpbnZhbGlkYXRlXTsKKyAgICBfY2hhbmdlVGltZXIgPSBuaWw7Cit9CisKKy0g
KHZvaWQpc3RhcnQKK3sKKyAgICBpZiAoX29ic2VydmluZykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgW1tVSVNjcmliYmxlSW50ZXJhY3Rpb24gY2xhc3NdIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5
UGF0aDpAImlzUGVuY2lsSW5wdXRFeHBlY3RlZCIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5n
T3B0aW9uSW5pdGlhbCBjb250ZXh0Om5pbF07CisKKyAgICBfb2JzZXJ2aW5nID0gWUVTOworfQor
CistICh2b2lkKXN0b3AKK3sKKyAgICBpZiAoIV9vYnNlcnZpbmcpCisgICAgICAgIHJldHVybjsK
KworICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSByZW1vdmVPYnNlcnZlcjpzZWxm
IGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiXTsKKworICAgIF9vYnNlcnZpbmcg
PSBOTzsKK30KKworI3ByYWdtYSBtYXJrIC0gaXNQZW5jaWxJbnB1dEV4cGVjdGVkIEtWTworCist
ICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVj
dDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQg
Kiljb250ZXh0Cit7CisgICAgQVNTRVJUKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImlzUGVu
Y2lsSW5wdXRFeHBlY3RlZCJdKTsKKyAgICBBU1NFUlQob2JqZWN0ID09IFtVSVNjcmliYmxlSW50
ZXJhY3Rpb24gY2xhc3NdKTsKKworICAgIEJPT0wgaGFzU3R5bHVzRGV2aWNlID0gVUlTY3JpYmJs
ZUludGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZDsKKyAgICBpZiAoaGFzU3R5bHVzRGV2
aWNlID09IF9oYXNTdHlsdXNEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChoYXNT
dHlsdXNEZXZpY2UpIHsKKyAgICAgICAgW3NlbGYgX3NldEhhc1N0eWx1c0RldmljZTpoYXNTdHls
dXNEZXZpY2VdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgX3N0YXJ0Q2hh
bmdlVGltZXI6c19jaGFuZ2VUaW1lSW50ZXJ2YWwuc2Vjb25kcygpXTsKK30KKworI3ByYWdtYSBt
YXJrIC0gaXNQZW5jaWxJbnB1dEV4cGVjdGVkIFRpbWVyCisKKy0gKHZvaWQpX3N0YXJ0Q2hhbmdl
VGltZXI6KE5TVGltZUludGVydmFsKXRpbWVJbnRlcnZhbAoreworICAgIFtfY2hhbmdlVGltZXIg
aW52YWxpZGF0ZV07CisgICAgX2NoYW5nZVRpbWVyID0gW05TVGltZXIgc2NoZWR1bGVkVGltZXJX
aXRoVGltZUludGVydmFsOnRpbWVJbnRlcnZhbCB0YXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2NoYW5nZVRpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpOT107Cit9CisKKy0g
KHZvaWQpX2NoYW5nZVRpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgoreworICAgIFtzZWxmIF9z
ZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJ
TEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQppbmRleCBjYTRlYTIwMzYwODI5YTFl
MTE3MDg3MGQ3ZmM0NDMwMDI0ZmJhNzZiLi5lNzgzMGY0YTQ1NmY0YzM0MjRlM2ZiMWJiNTU5NWJm
ZTA5M2Y5YjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJv
Y2Vzc1Byb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9j
ZXNzUHJveHlJT1MubW0KQEAgLTMxLDI0ICszMSwzMyBAQAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0
eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIldLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5oIgog
I2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCisjaW1wb3J0ICJXS1N0eWx1c0Rldmlj
ZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQog
eworICAgIGlmIChXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3NlcygpLnNpemUoKSA9PSAxKSB7
CiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKLSAg
ICBpZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS5zaXplKCkgPT0gMSkKICAgICAg
ICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0YXJ0XTsKICNlbmRp
ZgorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpICYmIFBMQVRGT1JNKElPUykKKyAgICAg
ICAgW1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CisjZW5k
aWYKKyAgICB9CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3koKQog
eworICAgIGlmIChXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3NlcygpLmlzRW1wdHkoKSkgewog
I2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCi0gICAg
aWYgKFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2VzKCkuaXNFbXB0eSgpKQogICAgICAgICBb
W1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RvcF07CiAjZW5kaWYKKyNp
ZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKSAmJiBQTEFURk9STShJT1MpCisgICAgICAgIFtb
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RvcF07CisjZW5kaWYKKyAg
ICB9CiB9CiAKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNjVmZjg2ZGIzZDIzZjBjYWEyOGIyZTZjNzM1ZWNmNDM5ZmIxZDA2OS4uNGY5ZjUyYWFh
NWRjNzdiOTFjNDk1MTNlZDBhZWNiMmU5NTE4ODU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzgwLDYgKzEzODAsNyBAQAogCQk5
M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhB
MEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJOTUw
RjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAw
Qjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NTkzNjc1RjI1MkU1
RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8q
IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJOTVDOTQzOTEyNTIzQzBEMDAwNTRG
M0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICov
OyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJs
ZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJ
bmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8qIEFQSURl
YnVnZ2FibGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLzsg
fTsKQEAgLTQ0MjksNiArNDQzMCw4IEBACiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2Vy
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNl
cnZlci5oOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmlj
ZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tN
b3VzZURldmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEw
IC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU5MzY3NUUyNTJFNUUz
MTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1N0eWx1c0RldmljZU9ic2VydmVyLm1tOyBwYXRoID0g
aW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1
Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDM4LDYgKzcwNDEsOCBAQAogCQkJCUExMDQ2
RUEwMjA3OTI2MzEwMEYwQzVEOCAvKiBXS1BERlZpZXcubW0gKi8sCiAJCQkJMEZDQjRFNDQxOEJC
RTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5oICovLAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQw
MDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCisJCQkJOTU5MzY3NUQyNTJFNUUzMDAwRDNG
MEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLywKKwkJCQk5NTkzNjc1RTI1MkU1RTMx
MDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAqLywKIAkJCQlDRTVCNEM4NjIx
QjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oICovLAog
CQkJCUNFNUI0Qzg3MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdl
YkV2ZW50Lm1tICovLAogCQkJCTI2RjEwQkU2MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRp
Y1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8sCkBAIC0xMTczOSw2ICsxMTc0NCw3IEBACiAJCQkJ
QkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNUI0Qzg4MjFCNzNEODcwMDIyRTY0RiAv
KiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQky
NkYxMEJFODE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXpl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2QjhCNjQyMDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lz
dGVtUHJldmlld1ZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlODU1ZTVmZWRjNDVkMWU5
YjJlNmFkZGQyZjNiMDQ4YmM3OTBiODI1Li5hMTc2ZTFhOWVkOWJkNjVhODE4NTY1ZGE3NWMzMWJl
ZTU5NTZkNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtNDAxOCw3ICs0MDE4LDcgQEAgT3B0aW9uYWw8UG9pbnRlckNo
YXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mUHJpbWFyeVBv
aW50aW4KIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVy
Q2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdAogewog
ICAgIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiByZXN1bHQoUG9pbnRlckNoYXJh
Y3RlcmlzdGljczo6Q29hcnNlKTsKLSAgICBpZiAoaGFzTW91c2VEZXZpY2UoKSkKKyAgICBpZiAo
aGFzTW91c2VEZXZpY2UoKSB8fCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5oYXNTdHlsdXNEZXZp
Y2UoKSkKICAgICAgICAgcmVzdWx0LmFkZChQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IDU5ZTA3YjA4MDFhZmY5NzBkZmM2YTNhZTU0MTAzZmQ5Zjc1YTBmZGIuLmMwODMy
ZjMyOGRjNTFjNTBkM2JjOGJiMjQ1ZDZmNzVmMGRjNmY4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQwNiw2ICs0MDYsOCBAQCB2b2lkIFdlYlByb2Nlc3M6
OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogCiAgICAgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkID0gcGFyYW1ldGVycy5m
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogCisgICAgbV9oYXNTdHlsdXNEZXZpY2UgPSBwYXJh
bWV0ZXJzLmhhc1N0eWx1c0RldmljZTsKKwogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1l
dGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudCkKICAgICAgICAgcmVnaXN0
ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoc2NoZW1lKTsKIApAQCAtMTA2NCw2ICsxMDY2LDE2
IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmlj
ZSkKIAogI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCiAKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wgaGFzU3R5
bHVzRGV2aWNlKQoreworICAgIGlmIChoYXNTdHlsdXNEZXZpY2UgPT0gbV9oYXNTdHlsdXNEZXZp
Y2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzU3R5bHVzRGV2aWNlID0gaGFzU3R5bHVz
RGV2aWNlOworCisgICAgUGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hh
bmdlSW5FbnZpcm9ubWVudCgpOworfQorCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQgV2Vi
UHJvY2Vzczo6c2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWRE
YXRhPiYgZ2FtZXBhZERhdGFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggZjNlMTlhYjZhYjMyYmQwZWM2NGNkNzI3NzkzZjRiY2QzZTRkNDhmNC4uMWZkOWVkYWY5MDEz
OTljNGY3MzViZTk4MmZlZjk3Yjc4YWQzOTNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFzTW91
c2VEZXZpY2UoYm9vbCk7CiAjZW5kaWYKIAorICAgIGJvb2wgaGFzU3R5bHVzRGV2aWNlKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNTdHlsdXNEZXZpY2U7IH0KKyAgICB2b2lkIHNldEhhc1N0eWx1c0Rl
dmljZShib29sKTsKKwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpIGNvbnN0OwogICAgIFZlY3RvcjxXZWJGcmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0Owog
ICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSop
OwpAQCAtNTYzLDYgKzU2Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc01vdXNlRGV2aWNl
IHsgZmFsc2UgfTsKICNlbmRpZgogCisgICAgYm9vbCBtX2hhc1N0eWx1c0RldmljZSB7IGZhbHNl
IH07CisKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBt
X2ZyYW1lTWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJv
Y2Vzc1N1cHBsZW1lbnRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDM3MDAxNzk5NzkzMzI5MTQ2MmY2MGZkMTU4ODM4MmFmNzU1
NjRiOWQuLjI0OTZjOWRhYzEzMmQ4ZDNjYzQxZmQ0NTE1NjA4ZmRmNzkwY2I1NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Niw2
ICs1Niw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291
bnRlZCB7CiAgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKICNlbmRp
ZgogCisgICAgU2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQorCiAgICAg
IyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90
IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwODUzMzk1NTdhNTQw
ZDA3NzI0OTUxYWI3ODFmN2M4MzJkZmUyNzRkLi5kYWJjMmZmODEwNGY1ZDA1Mjg3OWEwZjBkMmFl
NGYwMTZlYzM2NWFlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyAiYW55LXBvaW50ZXI6ZmluZSIgbWVkaWEgcXVl
cnkgZmFsc2Ugb24gaVBhZC9QZW5jaWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjU4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM4MTMyODM+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1c1N1cHBvcnQubW06IEFkZGVkLgor
ICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNJbml0aWFsbHlEaXNjb25uZWN0ZWQpOgor
ICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNJbml0aWFsbHlDb25uZWN0ZWQpOgorICAg
ICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNMYXRlckRpc2Nvbm5lY3RlZCk6CisgICAgICAg
IChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xhdGVyQ29ubmVjdGVkKToKKyAgICAgICAgKGlPU1N0
eWx1c1N1cHBvcnQuU3R5bHVzRGlzY29ubmVjdGVkVGltZW91dCk6CisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAy
MC0xMC0wNyAgS2FybCBSYWNrbGVyICA8cmFja2xlckBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjgxMTUuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVl
MDBkNGNmM2Q4Y2FkNWQ1MDUwOWEzZGMxZjRmNzc0MTY1YzQ2NzYuLjk5ZmNmZDYzMTJlYzI2ZDM0
ZjYyZDNkN2E5MzcwMDk4NjM4ZjNjZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04Mjgs
NiArODI4LDcgQEAKIAkJOTNGNTZEQTcxRTVGOTE3NDAwM0VERTg0IC8qIGxpYmljdWNvcmUuZHls
aWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzgz
RTAzMzFEMEE1RjI3MDBGRUJDRjMgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKIAkJOTNGNTZE
QTkxRTVGOTE5RDAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0
IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tICovOyB9OwogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRB
OTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4
RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRs
ZS5jcHAgKi87IH07CisJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBw
b3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUw
RTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07CiAJCTk1
QjZCM0I3MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVCNkIzQjYyNTFFQkYyRjAwRkM0Mzgy
IC8qIE1lZGlhRG9jdW1lbnQubW0gKi87IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAv
KiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElu
cHV0Lm1tICovOyB9OwogCQk5OTg0RkFDRTFDRkZCMDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9k
eS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07
CkBAIC0yNDM1LDYgKzI0MzYsNyBAQAogCQk5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tX
ZWJWaWV3U25hcHNob3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlZpZXdTbmFwc2hvdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
N0U4NkIxNERDOEU0RDAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlP
U1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2
QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0
SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZp
ZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNEMUNG
RkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiZWRpdGFibGUtYm9keS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMyNjcsNiArMzI2OSw3IEBACiAJCQkJQ0VENzNEMzUyNDZGMjA0QzAwREFFMzI3IC8qIElu
c2VydFRleHRBbHRlcm5hdGl2ZXMubW0gKi8sCiAJCQkJMkRCMDIzMkUxRTRFODcxODAwNzA3MTIz
IC8qIEludGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tICovLAogCQkJCTJEMTE2RTEyMjNF
MENCMzkwMDIwODkwMCAvKiBpT1NNb3VzZVN1cHBvcnQubW0gKi8sCisJCQkJOTUwRTRDQzAyNTJF
NzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8sCiAJCQkJNUM2OUJERDQxRjgy
QTdFQjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovLAogCQkJCTVD
MDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tICovLAogCQkJCUMyNUNDQTA1
MUU1MTM4MEIwMDI2Q0I4QSAvKiBMaW5lQnJlYWtpbmcubW0gKi8sCkBAIC01MjIyLDYgKzUyMjUs
NyBAQAogCQkJCTdBOTA5QTgyMUQ4Nzc0ODAwMDdFMTBGOCAvKiBJbnRSZWN0VGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBODMxRDg3NzQ4MDAwN0UxMEY4IC8qIEludFNpemVUZXN0
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDExNkUxMzIzRTBDQjNBMDAyMDg5MDAgLyogaU9T
TW91c2VTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzBCRjg5MzFE
RDU5OUJEMDBCMDAzMjggLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENUZGNDlGMjE2MkU5NDMwMDRCRDg2RiAvKiBJU09Cb3guY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUM2OUJERDUxRjgyQTdFRjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdO
YXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1c1N1cHBvcnQubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1c1N1cHBvcnQubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTIwMDkzN2FhZjM4NmVlZmVmNDE5OTZkZDVmZTYzMTMyMTY5NjUzNwotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9y
dC5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lt
cG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVUlLaXRT
UEkuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2lt
cG9ydCA8V2ViS2l0L1dlYktpdC5oPgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkK
KworQGludGVyZmFjZSBXS1N0eWx1c0RldmljZU9ic2VydmVyCisrIChXS1N0eWx1c0RldmljZU9i
c2VydmVyICopc2hhcmVkSW5zdGFuY2U7CistICh2b2lkKXN0YXJ0OworLSAodm9pZClfc3RhcnRD
aGFuZ2VUaW1lcjooTlNUaW1lSW50ZXJ2YWwpdGltZUludGVydmFsOworLSAodm9pZClfc2V0SGFz
U3R5bHVzRGV2aWNlOihCT09MKWhhc1N0eWx1c0RldmljZTsKK0BlbmQKKworVEVTVChpT1NTdHls
dXNTdXBwb3J0LCBTdHlsdXNJbml0aWFsbHlEaXNjb25uZWN0ZWQpCit7CisgICAgV0tTdHlsdXNE
ZXZpY2VPYnNlcnZlciAqc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmco
QCJXS1N0eWx1c0RldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNE
ZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNT
dHlsdXNEZXZpY2U6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
KworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9u
ZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2lu
dGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFR
dWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFs
dWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJd
KTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzSW5pdGlh
bGx5Q29ubmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0Rldmlj
ZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIp
IHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAg
IFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFs
dWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsK
KworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2lu
dGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJh
bnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNU
KGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0xhdGVyRGlzY29ubmVjdGVkKQoreworICAgIFdLU3R5
bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3Ry
aW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5
bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0
SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisK
KyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpOT107CisKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOwor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBu
b25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBv
aW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2
YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNl
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
cG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNMYXRl
ckNvbm5lY3RlZCkKK3sKKyAgICBXS1N0eWx1c0RldmljZU9ic2VydmVyICpzdHlsdXNEZXZpY2VP
YnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBz
aGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBb
c3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpOT107CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhh
c1N0eWx1c0RldmljZTpZRVNdOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJd
KTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NT
dHlsdXNTdXBwb3J0LCBTdHlsdXNEaXNjb25uZWN0ZWRUaW1lb3V0KQoreworICAgIFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5n
KEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVz
RGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFz
U3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAg
ICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0Q2hhbmdlVGltZXI6MC4wMV07CisKKyAgICBf
X2Jsb2NrIEJPT0wgZG9uZSA9IGZhbHNlOworICAgIFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0
aFRpbWVJbnRlcnZhbDowLjA1IHJlcGVhdHM6Tk8gYmxvY2s6XihOU1RpbWVyICp0aW1lcikgewor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5v
bmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55
LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFBF
TkNJTEtJVF9URVhUX0lOUFVUKQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410970</attachid>
            <date>2020-10-09 13:49:00 -0700</date>
            <delta_ts>2020-10-09 14:10:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201009134859.patch</filename>
            <type>text/plain</type>
            <size>38147</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmRkOWRhMGMyZWFhNDYxYjEyZjMzOGZiNTllZjBlYzZmMDUzNGQ4NS4uMTI1
M2M0NDNkNWNlNjIwMjdmMjRmNTA1NTljMmVlNjlmNThkY2U2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MyBAQAorMjAyMC0xMC0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIGxpdmUtb24vdHdlYWtpbmcgcHVycG9zZXMgdGhpcyAxMG1pbiB0aW1lb3V0IGNhbiBiZSBh
ZGp1c3RlZCBiZWZvcmUgdGhlIFVJUHJvY2VzcyBpcworICAgICAgICBjcmVhdGVkIHdpdGggdGhl
IGBXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsYCBrZXkgaW4gYE5TVXNl
ckRlZmF1bHRzYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW06IEFkZGVkLgorICAgICAgICAoK1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgaW5pdF0pOgor
ICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOl0pOgorICAgICAgICAo
LVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIG9i
c2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0Q2hhbmdlVGltZXI6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX2NoYW5nZVRpbWVyRmlyZWQ6XSk6CisgICAgICAg
IFVzZSBPYmpDIEtWTyB0byBsaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0Rldmlj
ZUNoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJv
eSk6CisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAgdG8g
c3RhcnQgbGlzdGVuaW5nIHdoZW4gY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICBVc2Ug
dGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAg
d2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzCisgICAgICAgIGluc3RlYWQgb2Ygc2VuZGluZyBhIGBT
ZXRIYXNTdHlsdXNEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdlYlByb2Nl
c3MgaXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzU3R5bHVzRGV2aWNlIGNvbnN0KTogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0eWxlIChp
bmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hhbmdlLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
IGNvbnN0KToKKyAgICAgICAgSW5jbHVkZSBgZmluZWAgd2hlbiB0aGVyZSBpcyBhIHN0eWx1cyBk
ZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5t
bToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAg
KC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgIERyaXZlLWJ5OiB1c2UgYSBjb3VudCBvZiBgc3Rh
cnRgL2BzdG9wYCBpbnN0ZWFkIG9mIGBXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3Nlc2Agc2l6
ZS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTAtMDcgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtaXNzaW5nIGAjZGVmaW5lYCBmb3IgYFBFTkNJ
TEtJVF9URVhUX0lOUFVUYCBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDZiMjgzZWYyNDU4ZDgzNjU5MzQ0
YmU5ZDU0NTkwY2MyZTE3NmUyMDQuLjZkZTc4NWVlYjhmNjBkNWVlZGIwNjEzMzg5OWU0ZTlhMzI1
MDVmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC04OCw2ICs4OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQogICAgIGVuY29k
ZXIgPDwgaGFzTW91c2VEZXZpY2U7CiAjZW5kaWYKKyAgICBlbmNvZGVyIDw8IGhhc1N0eWx1c0Rl
dmljZTsKICAgICBlbmNvZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAg
IGVuY29kZXIgPDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09B
KQpAQCAtMzAxLDYgKzMwMiw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc1N0
eWx1c0RldmljZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmJhY2tGb3J3
YXJkQ2FjaGVDYXBhY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2Q4NmE3NGIxZDNlZTUxMDE1MzRhZDM5MjU2
MjMyMjFlZmMzZWNhYS4uNDUxOTZiZDY4MjI3OGI1ZGE5ZTFkNGZjNDUxMDc4ZDFiNGE4MmYwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0o
SU9TKQogICAgIGJvb2wgaGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgYm9v
bCBoYXNTdHlsdXNEZXZpY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDc3NjkwZDBkZDUyNzJhMDVlMmE3ODQyMjIxOGEzNWI0MjJiNTc1NWEuLjE2
OWIyOTU3MmM1ZjQ1ZjE5YWY4NDlhYWM1NDRhNjg1ZTU2ZTUxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTQ2Niw2ICs0NjYsNyBAQCBVSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3Lm1t
CiBVSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQogVUlQcm9jZXNzL2lv
cy9XS1BERlZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCitVSVByb2Nlc3Mv
aW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNG
bGFnc0NoYW5nZWRXZWJFdmVudC5tbQogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1
cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3lzdGVtUHJldmlld1ZpZXcubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCmluZGV4IGNmNzU1MjI2ZWNiNzQwOGNmMDNkMDJmZWRjMjhlOGUyMmFiYWE4N2IuLmNlOTAw
OTBiOGYzZjRkN2NmZjIxMmY0MzU5MGE2Y2E5MzgyZmEwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtNDEsNiAr
NDEsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tNb3VzZURldmljZU9i
c2VydmVyLmgiCisjaW1wb3J0ICJXS1N0eWx1c0RldmljZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJX
ZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtNTEwLDYgKzUxMSwxMCBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcwogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQ
TEFURk9STShJT1MpCiAgICAgcGFyYW1ldGVycy5oYXNNb3VzZURldmljZSA9IFtbV0tNb3VzZURl
dmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNNb3VzZURldmljZV07CiAjZW5kaWYKKwor
I2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisgICAgcGFyYW1ldGVycy5oYXNTdHlsdXNE
ZXZpY2UgPSBbW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc1N0eWx1
c0RldmljZV07CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCA0MGM0OWE5OTMyN2IxODU2YjA1MDZiNDQzYmE4YjQxYTNhYjFiNzBhLi5mODBhYTg3NzZm
MmRlNTJmNjUwYjIzOTdkY2U5ZWVlMjAxYzJhOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTExNDcsNiArMTE0NywxMiBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6d2luZG93U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpCiAgICAgICAg
IHBhZ2UtPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlk
bGUpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzU3R5bHVzRGV2aWNlQ2hh
bmdlZChib29sIGhhc1N0eWx1c0RldmljZSkKK3sKKyAgICBmb3IgKGF1dG8qIHdlYlByb2Nlc3NQ
cm94eSA6IFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2VzKCkudmFsdWVzKCkpCisgICAgICAg
IHdlYlByb2Nlc3NQcm94eS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SGFzU3R5bHVz
RGV2aWNlKGhhc1N0eWx1c0RldmljZSksIDApOworfQorCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0
YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA0NDM5ZjIw
NzMyZGRmMWExM2JjZTgzNDUzYzA5MjdlMjNhYzliYjhlLi5hMGQ1ODJhZDU2NWE3ODcwOTkzY2Nj
ZTU4MTA0YzQzNzczZmM2ZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBub3Rp
ZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKICNlbmRpZgogCisgICAgc3RhdGljIHZvaWQgbm90
aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZChib29sIGhhc1N0eWx1c0RldmljZSk7CisKICAgICB2
b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhKT4mJik7CiAgICAgdm9p
ZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQppbmRl
eCA0ODkxYmQ1Yzg1YjE2ZDg5YWIyMDU1YTZiZDNjZTdhNWJmZDdkMjJlLi5kZTMzNjZiOTAzNzg3
NDc5OWVlZjdkNDdlYjViYjJjNThlNmQyZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAK
IAogQGltcGxlbWVudGF0aW9uIFdLTW91c2VEZXZpY2VPYnNlcnZlciB7CiAgICAgQk9PTCBfaGFz
TW91c2VEZXZpY2U7CisgICAgc2l6ZV90IF9zdGFydENvdW50OwogICAgIFJldGFpblB0cjxpZDxC
U0ludmFsaWRhdGFibGU+PiBfdG9rZW47CiB9CiAKQEAgLTQ2LDcgKzQ3LDggQEAgKyAoV0tNb3Vz
ZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2UKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0g
ICAgW3NlbGYgc3RvcF07CisgICAgd2hpbGUgKF9zdGFydENvdW50KQorICAgICAgICBbc2VsZiBz
dG9wXTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KQEAgLTU1LDE3ICs1NywyMCBAQCAtICh2
b2lkKWRlYWxsb2MKIAogLSAodm9pZClzdGFydAogewotICAgIGlmIChfdG9rZW4pCisgICAgaWYg
KCsrX3N0YXJ0Q291bnQgPiAxKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQoIV90b2tl
bik7CiAgICAgX3Rva2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJlZEluc3RhbmNl
XSBhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6c2VsZl07CiB9CiAKIC0gKHZvaWQpc3RvcAogewot
ICAgIGlmICghX3Rva2VuKQorICAgIEFTU0VSVChfc3RhcnRDb3VudCA+IDEpOworICAgIGlmICgt
LV9zdGFydENvdW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQoX3Rva2VuKTsKICAg
ICBbX3Rva2VuIGludmFsaWRhdGVdOwogICAgIF90b2tlbiA9IG5pbDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4OThmMDJiN2Q4MWMzMGQ3YWI4YjdhYzk4ZGE0ZTMzZWU3ZWJjM2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShQRU5DSUxLSVRf
VEVYVF9JTlBVVCkKKworQGludGVyZmFjZSBXS1N0eWx1c0RldmljZU9ic2VydmVyIDogTlNPYmpl
Y3QKKworKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworCistICh2
b2lkKXN0YXJ0OworLSAodm9pZClzdG9wOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgaGFzU3R5bHVzRGV2aWNlOworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJ
TEtJVF9URVhUX0lOUFVUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDhlODI2YWRjN2ExZTRiZDVj
YTk5ZmNmNDA0MjEyZGU5YTczY2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0KQEAgLTAsMCArMSwxMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaCIKKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisKKyNpbXBvcnQg
IldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8VUlLaXQvVUlTY3JpYmJsZUludGVyYWN0aW9u
Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU2Vjb25kcy5oPgor
CitzdGF0aWMgU2Vjb25kcyBzX2NoYW5nZVRpbWVJbnRlcnZhbCB7IDEwX21pbiB9OworCitAaW1w
bGVtZW50YXRpb24gV0tTdHlsdXNEZXZpY2VPYnNlcnZlciB7CisgICAgQk9PTCBfaGFzU3R5bHVz
RGV2aWNlOworICAgIHNpemVfdCBfc3RhcnRDb3VudDsKKyAgICBSZXRhaW5QdHI8TlNUaW1lcj4g
X2NoYW5nZVRpbWVyOworfQorCisrIChXS1N0eWx1c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5z
dGFuY2UKK3sKKyAgICBzdGF0aWMgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqaW5zdGFuY2U7Cisg
ICAgaWYgKCFpbnN0YW5jZSkKKyAgICAgICAgaW5zdGFuY2UgPSBbW1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworLSAoaW5zdGFu
Y2V0eXBlKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9oYXNTdHlsdXNEZXZpY2UgPSBVSVNjcmliYmxlSW50ZXJhY3Rp
b24uaXNQZW5jaWxJbnB1dEV4cGVjdGVkOworCisgICAgaWYgKE5TTnVtYmVyICpjaGFuZ2VUaW1l
SW50ZXJ2YWxPdmVycmlkZSA9IFtOU1VzZXJEZWZhdWx0cy5zdGFuZGFyZFVzZXJEZWZhdWx0cyBv
YmplY3RGb3JLZXk6QCJXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsIl0p
IHsKKyAgICAgICAgc19jaGFuZ2VUaW1lSW50ZXJ2YWwgPSBTZWNvbmRzKFtjaGFuZ2VUaW1lSW50
ZXJ2YWxPdmVycmlkZSBkb3VibGVWYWx1ZV0pOworICAgICAgICBXVEZMb2dBbHdheXMoIldhcm5p
bmc6IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgY2hhbmdlVGltZUludGVydmFsIHdhcyBvdmVycmlk
ZW4gdmlhIHVzZXIgZGVmYXVsdHMgYW5kIGlzIG5vdyAlZyBzZWNvbmRzIiwgc19jaGFuZ2VUaW1l
SW50ZXJ2YWwuc2Vjb25kcygpKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAo
dm9pZClkZWFsbG9jCit7CisgICAgd2hpbGUgKF9zdGFydENvdW50KQorICAgICAgICBbc2VsZiBz
dG9wXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworI3ByYWdtYSBtYXJrIC0gU3RhdGUK
KworLSAodm9pZClfc2V0SGFzU3R5bHVzRGV2aWNlOihCT09MKWhhc1N0eWx1c0RldmljZQorewor
ICAgIF9oYXNTdHlsdXNEZXZpY2UgPSBoYXNTdHlsdXNEZXZpY2U7CisKKyAgICBXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZChfaGFzU3R5bHVzRGV2
aWNlKTsKKworICAgIFtfY2hhbmdlVGltZXIgaW52YWxpZGF0ZV07CisgICAgX2NoYW5nZVRpbWVy
ID0gbmlsOworfQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgaWYgKCsrX3N0YXJ0Q291bnQgPiAx
KQorICAgICAgICByZXR1cm47CisKKyAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10g
YWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIiBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6bmlsXTsKK30KKwor
LSAodm9pZClzdG9wCit7CisgICAgQVNTRVJUKF9zdGFydENvdW50ID4gMSk7CisgICAgaWYgKC0t
X3N0YXJ0Q291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIFtbVUlTY3JpYmJsZUludGVyYWN0
aW9uIGNsYXNzXSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0
RXhwZWN0ZWQiXTsKK30KKworI3ByYWdtYSBtYXJrIC0gaXNQZW5jaWxJbnB1dEV4cGVjdGVkIEtW
TworCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBv
Zk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6
KHZvaWQgKiljb250ZXh0Cit7CisgICAgQVNTRVJUKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpA
ImlzUGVuY2lsSW5wdXRFeHBlY3RlZCJdKTsKKyAgICBBU1NFUlQob2JqZWN0ID09IFtVSVNjcmli
YmxlSW50ZXJhY3Rpb24gY2xhc3NdKTsKKworICAgIEJPT0wgaGFzU3R5bHVzRGV2aWNlID0gVUlT
Y3JpYmJsZUludGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZDsKKyAgICBpZiAoaGFzU3R5
bHVzRGV2aWNlID09IF9oYXNTdHlsdXNEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChoYXNTdHlsdXNEZXZpY2UpIHsKKyAgICAgICAgW3NlbGYgX3NldEhhc1N0eWx1c0RldmljZTpo
YXNTdHlsdXNEZXZpY2VdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgX3N0
YXJ0Q2hhbmdlVGltZXI6c19jaGFuZ2VUaW1lSW50ZXJ2YWwuc2Vjb25kcygpXTsKK30KKworI3By
YWdtYSBtYXJrIC0gaXNQZW5jaWxJbnB1dEV4cGVjdGVkIFRpbWVyCisKKy0gKHZvaWQpX3N0YXJ0
Q2hhbmdlVGltZXI6KE5TVGltZUludGVydmFsKXRpbWVJbnRlcnZhbAoreworICAgIFtfY2hhbmdl
VGltZXIgaW52YWxpZGF0ZV07CisgICAgX2NoYW5nZVRpbWVyID0gW05TVGltZXIgc2NoZWR1bGVk
VGltZXJXaXRoVGltZUludGVydmFsOnRpbWVJbnRlcnZhbCB0YXJnZXQ6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX2NoYW5nZVRpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpOT107Cit9
CisKKy0gKHZvaWQpX2NoYW5nZVRpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgoreworICAgIFtz
ZWxmIF9zZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZF
KFBFTkNJTEtJVF9URVhUX0lOUFVUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQcm9jZXNzUHJveHlJT1MubW0KaW5kZXggY2E0ZWEyMDM2MDgyOWExZTExNzA4NzBkN2Zj
NDQzMDAyNGZiYTc2Yi4uMzEyYTRiNDA4NTFlNDA1YzhhZGIyNzE1NGVhOWFmMjc3ZTE5Njg4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9T
Lm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5o
IgogI2ltcG9ydCAiV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmgiCiAjaW1wb3J0ICJXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKyNpbXBvcnQgIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTM4LDE2ICszOSwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSAmJiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vz
c2VzKCkuc2l6ZSgpID09IDEpCi0gICAgICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSBzdGFydF07CisgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5z
dGFuY2VdIHN0YXJ0XTsKKyNlbmRpZgorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisg
ICAgW1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CiAjZW5k
aWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiAjaWYg
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKLSAgICBpZiAo
V2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpCi0gICAgICAgIFtbV0tN
b3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyAgICBbW1dLTW91c2VE
ZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RvcF07CisjZW5kaWYKKyNpZiBIQVZFKFBF
TkNJTEtJVF9URVhUX0lOUFVUKQorICAgIFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV0gc3RvcF07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjVmZjg2ZGIzZDIzZjBjYWEyOGIyZTZjNzM1
ZWNmNDM5ZmIxZDA2OS4uNGY5ZjUyYWFhNWRjNzdiOTFjNDk1MTNlZDBhZWNiMmU5NTE4ODU1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMzgwLDYgKzEzODAsNyBAQAogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0
VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3
NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAv
KiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFB1YmxpYywgKTsgfTsgfTsKIAkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VE
ZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5o
ICovOyB9OworCQk5NTkzNjc1RjI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5
MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsK
IAkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRG
M0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEg
LyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8q
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTkwMzZBRTUy
M0E5NTg3NTAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyog
QVBJRGVidWdnYWJsZUluZm8uaCAqLzsgfTsKQEAgLTQ0MjksNiArNDQzMCw4IEBACiAJCTkzRjU0
OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9u
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRG
MUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VP
YnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBGMjg3RjI1MjQxNEVB
MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oOyBw
YXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTU5MzY3NUUyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1N0eWx1c0Rl
dmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBC
YXNlQm9hcmRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJk
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAw
QjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZB
IC8qIEFQSURlYnVnZ2FibGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSURlYnVnZ2FibGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDM4
LDYgKzcwNDEsOCBAQAogCQkJCUExMDQ2RUEwMjA3OTI2MzEwMEYwQzVEOCAvKiBXS1BERlZpZXcu
bW0gKi8sCiAJCQkJMEZDQjRFNDQxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5oICov
LAogCQkJCTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCisJ
CQkJOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAq
LywKKwkJCQk5NTkzNjc1RTI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ci5tbSAqLywKIAkJCQlDRTVCNEM4NjIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFn
c0NoYW5nZWRXZWJFdmVudC5oICovLAogCQkJCUNFNUI0Qzg3MjFCNzNEODcwMDIyRTY0RiAvKiBX
S1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lm1tICovLAogCQkJCTI2RjEwQkU2MTkxODdF
MkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8sCkBAIC0x
MTczOSw2ICsxMTc0NCw3IEBACiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3Ry
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tT
dHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8q
IFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU5MzY3NUYyNTJFNUUzMTAw
RDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNF
NUI0Qzg4MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNkYxMEJFODE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50
aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2QjhCNjQy
MDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1ZpZXcuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQppbmRleCBlODU1ZTVmZWRjNDVkMWU5YjJlNmFkZGQyZjNiMDQ4YmM3OTBiODI1Li5hMTc2ZTFh
OWVkOWJkNjVhODE4NTY1ZGE3NWMzMWJlZTU5NTZkNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDAxOCw3ICs0MDE4
LDcgQEAgT3B0aW9uYWw8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNo
YXJhY3RlcmlzdGljc09mUHJpbWFyeVBvaW50aW4KIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMoKSBjb25zdAogewogICAgIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0
aWNzPiByZXN1bHQoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6Q29hcnNlKTsKLSAgICBpZiAoaGFz
TW91c2VEZXZpY2UoKSkKKyAgICBpZiAoaGFzTW91c2VEZXZpY2UoKSB8fCBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5oYXNTdHlsdXNEZXZpY2UoKSkKICAgICAgICAgcmVzdWx0LmFkZChQb2ludGVy
Q2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDU5ZTA3YjA4MDFhZmY5NzBkZmM2YTNh
ZTU0MTAzZmQ5Zjc1YTBmZGIuLmMwODMyZjMyOGRjNTFjNTBkM2JjOGJiMjQ1ZDZmNzVmMGRjNmY4
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQwNiw2ICs0
MDYsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgbV9mdWxsS2V5Ym9hcmRBY2Nl
c3NFbmFibGVkID0gcGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogCisgICAg
bV9oYXNTdHlsdXNEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc1N0eWx1c0RldmljZTsKKwogICAgIGZv
ciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlE
b2N1bWVudCkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoc2NoZW1l
KTsKIApAQCAtMTA2NCw2ICsxMDY2LDE2IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0SGFzTW91c2VE
ZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKIAogI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCiAKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0SGFz
U3R5bHVzRGV2aWNlKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQoreworICAgIGlmIChoYXNTdHlsdXNE
ZXZpY2UgPT0gbV9oYXNTdHlsdXNEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFz
U3R5bHVzRGV2aWNlID0gaGFzU3R5bHVzRGV2aWNlOworCisgICAgUGFnZTo6dXBkYXRlU3R5bGVG
b3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOworfQorCiAjaWYgRU5B
QkxFKEdBTUVQQUQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0
IFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZjNlMTlhYjZhYjMyYmQwZWM2NGNkNzI3NzkzZjRi
Y2QzZTRkNDhmNC4uMWZkOWVkYWY5MDEzOTljNGY3MzViZTk4MmZlZjk3Yjc4YWQzOTNlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7CiAjZW5kaWYKIAorICAgIGJv
b2wgaGFzU3R5bHVzRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTdHlsdXNEZXZpY2U7IH0K
KyAgICB2b2lkIHNldEhhc1N0eWx1c0RldmljZShib29sKTsKKwogICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFZlY3RvcjxXZWJGcmFt
ZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAtNTYzLDYgKzU2Niw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2hhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKICNlbmRpZgogCisgICAgYm9vbCBt
X2hhc1N0eWx1c0RldmljZSB7IGZhbHNlIH07CisKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJI
YXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDM3MDAxNzk5Nzkz
MzI5MTQ2MmY2MGZkMTU4ODM4MmFmNzU1NjRiOWQuLjI0OTZjOWRhYzEzMmQ4ZDNjYzQxZmQ0NTE1
NjA4ZmRmNzkwY2I1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC01Niw2ICs1Niw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9v
bCBoYXNNb3VzZURldmljZSkKICNlbmRpZgogCisgICAgU2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wg
aGFzU3R5bHVzRGV2aWNlKQorCiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQog
ICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2Fs
bFRpbWU+IGhhc2hlcykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAwODUzMzk1NTdhNTQwZDA3NzI0OTUxYWI3ODFmN2M4MzJkZmUyNzRkLi40YTEx
NDY0NGIwNWFjNTE3OWFlZjZmODg2ODg0NTIxNzJmZGMzYWNjIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTAt
MDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyAiYW55
LXBvaW50ZXI6ZmluZSIgbWVkaWEgcXVlcnkgZmFsc2Ugb24gaVBhZC9QZW5jaWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjU4MAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjM4MTMyODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0
eWx1c1N1cHBvcnQubW06IEFkZGVkLgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNJ
bml0aWFsbHlEaXNjb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNJ
bml0aWFsbHlDb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNMYXRl
ckRpc2Nvbm5lY3RlZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xhdGVyQ29u
bmVjdGVkKToKKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVzRGlzY29ubmVjdGVkVGlt
ZW91dCk6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0wNyAgS2FybCBSYWNrbGVyICA8cmFja2xlckBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjgxMTUuCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDVlMDBkNGNmM2Q4Y2FkNWQ1MDUwOWEzZGMxZjRmNzc0MTY1
YzQ2NzYuLjk5ZmNmZDYzMTJlYzI2ZDM0ZjYyZDNkN2E5MzcwMDk4NjM4ZjNjZTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC04MjgsNiArODI4LDcgQEAKIAkJOTNGNTZEQTcxRTVGOTE3NDAw
M0VERTg0IC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgzRTAzMzFEMEE1RjI3MDBGRUJDRjMgLyogbGliaWN1Y29y
ZS5keWxpYiAqLzsgfTsKIAkJOTNGNTZEQTkxRTVGOTE5RDAwM0VERTg0IC8qIFdLV2ViVmlld1Nu
YXBzaG90Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tICovOyB9Owog
CQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87IH07CisJCTk1MEU0Q0MxMjUyRTc1MjQw
MDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1
c1N1cHBvcnQubW0gKi87IH07CiAJCTk1QjZCM0I3MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURv
Y3VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gKi87IH07CiAJCTk5
ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTg0RkFDQTFDRkZBRUVFMDA4
RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovOyB9OwogCQk5OTg0RkFDRTFDRkZCMDkw
MDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBl
ZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CkBAIC0yNDM1LDYgKzI0MzYsNyBAQAogCQk5M0Y1NkRB
ODFFNUY5MTgxMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdTbmFwc2hvdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGN0U4NkIxNERDOEU0RDAwQzg0QTk5IC8qIE5ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyog
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGcmFtZXNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRTRD
QzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1
bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhRG9j
dW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUw
MDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZWRpdGFibGUtYm9keS5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNjcsNiArMzI2OSw3IEBACiAJCQkJQ0VENzNE
MzUyNDZGMjA0QzAwREFFMzI3IC8qIEluc2VydFRleHRBbHRlcm5hdGl2ZXMubW0gKi8sCiAJCQkJ
MkRCMDIzMkUxRTRFODcxODAwNzA3MTIzIC8qIEludGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNo
Lm1tICovLAogCQkJCTJEMTE2RTEyMjNFMENCMzkwMDIwODkwMCAvKiBpT1NNb3VzZVN1cHBvcnQu
bW0gKi8sCisJCQkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQu
bW0gKi8sCiAJCQkJNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdO
YXZpZ2F0aW9uLm1tICovLAogCQkJCTVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRFbmFi
bGVkLm1tICovLAogCQkJCUMyNUNDQTA1MUU1MTM4MEIwMDI2Q0I4QSAvKiBMaW5lQnJlYWtpbmcu
bW0gKi8sCkBAIC01MjIyLDYgKzUyMjUsNyBAQAogCQkJCTdBOTA5QTgyMUQ4Nzc0ODAwMDdFMTBG
OCAvKiBJbnRSZWN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBODMxRDg3NzQ4
MDAwN0UxMEY4IC8qIEludFNpemVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDExNkUx
MzIzRTBDQjNBMDAyMDg5MDAgLyogaU9TTW91c2VTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1QzBCRjg5MzFERDU5OUJEMDBCMDAzMjggLyogSXNOYXZpZ2F0aW9uQWN0
aW9uVHJ1c3RlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENUZGNDlGMjE2MkU5NDMwMDRCRDg2
RiAvKiBJU09Cb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM2OUJERDUxRjgyQTdFRjAwMEY0
RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1c1N1
cHBvcnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1
c1N1cHBvcnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwMDkzN2FhZjM4NmVlZmVmNDE5OTZkZDVmZTYzMTMy
MTY5NjUzNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorCisjaWYgSEFW
RShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKworQGludGVyZmFjZSBXS1N0eWx1c0RldmljZU9ic2Vy
dmVyCisrIChXS1N0eWx1c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7CistICh2b2lk
KXN0YXJ0OworLSAodm9pZClfc3RhcnRDaGFuZ2VUaW1lcjooTlNUaW1lSW50ZXJ2YWwpdGltZUlu
dGVydmFsOworLSAodm9pZClfc2V0SGFzU3R5bHVzRGV2aWNlOihCT09MKWhhc1N0eWx1c0Rldmlj
ZTsKK0BlbmQKKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNJbml0aWFsbHlEaXNjb25u
ZWN0ZWQpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5bHVzRGV2aWNlT2JzZXJ2
ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9ic2VydmVyIikgc2hhcmVk
SW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW3N0eWx1
c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsK
KyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50
ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9TU3R5
bHVzU3VwcG9ydCwgU3R5bHVzSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAi
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5
bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwor
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAg
IEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25l
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50
ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1
YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0p
OworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2lu
dGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0xhdGVyRGlz
Y29ubmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9i
c2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNo
YXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtz
dHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhh
c1N0eWx1c0RldmljZTpOT107CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0p
OworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9p
bnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NT
dHlsdXNTdXBwb3J0LCBTdHlsdXNMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBXS1N0eWx1c0Rldmlj
ZU9ic2VydmVyICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldL
U3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0Rldmlj
ZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1
c0RldmljZTpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5
bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpZRVNdOworCisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBj
b2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
InBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjog
ZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNEaXNjb25uZWN0ZWRU
aW1lb3V0KQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2Vy
dmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJl
ZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHls
dXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0Q2hh
bmdlVGltZXI6MC4wMV07CisKKyAgICBfX2Jsb2NrIEJPT0wgZG9uZSA9IGZhbHNlOworICAgIFtO
U1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRpbWVJbnRlcnZhbDowLjA1IHJlcGVhdHM6Tk8gYmxv
Y2s6XihOU1RpbWVyICp0aW1lcikgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7
CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6
IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6
QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7
Cit9CisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410972</attachid>
            <date>2020-10-09 14:10:47 -0700</date>
            <delta_ts>2020-10-12 10:58:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201009141046.patch</filename>
            <type>text/plain</type>
            <size>38167</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDk5OGUwYjFmNzVjMDU5NzU4YTk1YzdhOTg0ZjRmMTU1MDgzNzMyNy4uY2Mz
MTQ4MTNkNTE5ODU0MTQ4NGFiNjk5OWY1YjVkMWNhZjUzMzdlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MyBAQAorMjAyMC0xMC0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIGxpdmUtb24vdHdlYWtpbmcgcHVycG9zZXMgdGhpcyAxMG1pbiB0aW1lb3V0IGNhbiBiZSBh
ZGp1c3RlZCBiZWZvcmUgdGhlIFVJUHJvY2VzcyBpcworICAgICAgICBjcmVhdGVkIHdpdGggdGhl
IGBXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsYCBrZXkgaW4gYE5TVXNl
ckRlZmF1bHRzYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW06IEFkZGVkLgorICAgICAgICAoK1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgaW5pdF0pOgor
ICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOl0pOgorICAgICAgICAo
LVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIG9i
c2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0Q2hhbmdlVGltZXI6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX2NoYW5nZVRpbWVyRmlyZWQ6XSk6CisgICAgICAg
IFVzZSBPYmpDIEtWTyB0byBsaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0Rldmlj
ZUNoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJv
eSk6CisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAgdG8g
c3RhcnQgbGlzdGVuaW5nIHdoZW4gY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICBVc2Ug
dGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAg
d2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzCisgICAgICAgIGluc3RlYWQgb2Ygc2VuZGluZyBhIGBT
ZXRIYXNTdHlsdXNEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdlYlByb2Nl
c3MgaXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzU3R5bHVzRGV2aWNlIGNvbnN0KTogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0eWxlIChp
bmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hhbmdlLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
IGNvbnN0KToKKyAgICAgICAgSW5jbHVkZSBgZmluZWAgd2hlbiB0aGVyZSBpcyBhIHN0eWx1cyBk
ZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5t
bToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAg
KC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgIERyaXZlLWJ5OiB1c2UgYSBjb3VudCBvZiBgc3Rh
cnRgL2BzdG9wYCBpbnN0ZWFkIG9mIGBXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3Nlc2Agc2l6
ZS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTAtMDkgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3Igd2hlZWwgZXZlbnQgY29hbGVz
Y2luZyBpbnRvIGl0cyBvd24gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNmIyODNlZjI0NThkODM2NTkz
NDRiZTlkNTQ1OTBjYzJlMTc2ZTIwNC4uNmRlNzg1ZWViOGY2MGQ1ZWVkYjA2MTMzODk5ZTRlOWEz
MjUwNWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg4LDYgKzg4LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCiAgICAgZW5j
b2RlciA8PCBoYXNNb3VzZURldmljZTsKICNlbmRpZgorICAgIGVuY29kZXIgPDwgaGFzU3R5bHVz
RGV2aWNlOwogICAgIGVuY29kZXIgPDwgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CiAg
ICAgZW5jb2RlciA8PCBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0zMDEsNiArMzAyLDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFz
U3R5bHVzRGV2aWNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYmFja0Zv
cndhcmRDYWNoZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzZDg2YTc0YjFkM2VlNTEwMTUzNGFkMzky
NTYyMzIyMWVmYzNlY2FhLi40NTE5NmJkNjgyMjc4YjVkYTllMWQ0ZmM0NTEwNzhkMWI0YTgyZjBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCkBAIC0xMjAsNiArMTIwLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCiAgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBi
b29sIGhhc1N0eWx1c0RldmljZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2Fi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwogICAg
IGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKaW5kZXggNzc2OTBkMGRkNTI3MmEwNWUyYTc4NDIyMjE4YTM1YjQyMmI1NzU1YS4u
MTY5YjI5NTcyYzVmNDVmMTlhZjg0OWFhYzU0NGE2ODVlNTZlNTE2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dApAQCAtNDY2LDYgKzQ2Niw3IEBAIFVJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCiBVSVByb2Nlc3Mv
aW9zL1dLUERGVmlldy5tbQogVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KK1VJUHJvY2Vz
cy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRp
Y0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lm1tCiBVSVByb2Nlc3MvaW9zL1dLU3ludGhldGljVGFwR2Vz
dHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tTeXN0ZW1QcmV2aWV3Vmlldy5tbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KaW5kZXggYzAxZjE4MTUzZjJkODAzNTQ4MDExM2Y0YTYwOGJkNDQ5ZTI4OGUxYS4uMzU2
ZWM5YjcwZTk2YTk5NzE2MDUxMDc2YzZkOTBmNmFjYzM1Njg5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00MSw2
ICs0MSw3IEBACiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIuaCIKKyNpbXBvcnQgIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQg
IldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9yeVByZXNzdXJlSGFuZGxl
ci5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC01MTYsNiArNTE3LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYm
IFBMQVRGT1JNKElPUykKICAgICBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlID0gW1tXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc01vdXNlRGV2aWNlXTsKICNlbmRpZgor
CisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKyAgICBwYXJhbWV0ZXJzLmhhc1N0eWx1
c0RldmljZSA9IFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzU3R5
bHVzRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDBlZjdkODk4NThlZDQ5MTA3ZWFkOTM4MjMyZmUyNjNlZGRkMjMxYTYuLjc2Y2NlMGNi
MGJjYjBmNzM3MGM0ODNjZjhhMzQyYmU0Y2IyMzZjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTE0Nyw2ICsxMTQ3LDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5Ojp3aW5kb3dTZXJ2ZXJDb25uZWN0aW9uU3RhdGVDaGFuZ2VkKCkKICAgICAg
ICAgcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5
SWRsZSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNTdHlsdXNEZXZpY2VD
aGFuZ2VkKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQoreworICAgIGZvciAoYXV0byogd2ViUHJvY2Vz
c1Byb3h5IDogV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS52YWx1ZXMoKSkKKyAgICAg
ICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRIYXNTdHls
dXNEZXZpY2UoaGFzU3R5bHVzRGV2aWNlKSwgMCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVE
YXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2Uo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDY0MGQ4
OTJhZTc5NGZlYTE4NTFhMDY2MTQ4OTIwNmU1NjJiZGYxYjEuLjdkODAxMmExNzliMWM0NThmMDg0
NmZjOGNjMTUxNmZmMDdhNjhiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0yMTUsNiArMjE1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG5v
dGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgdm9pZCBu
b3RpZnlIYXNTdHlsdXNEZXZpY2VDaGFuZ2VkKGJvb2wgaGFzU3R5bHVzRGV2aWNlKTsKKwogICAg
IHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmKTsKICAgICB2
b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCmlu
ZGV4IDQ4OTFiZDVjODViMTZkODlhYjIwNTVhNmJkM2NlN2E1YmZkN2QyMmUuLmRlMzM2NmI5MDM3
ODc0Nzk5ZWVmN2Q0N2ViNWJiMmM1OGU2ZDJmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpAQCAtMzMsNiArMzMsNyBA
QAogCiBAaW1wbGVtZW50YXRpb24gV0tNb3VzZURldmljZU9ic2VydmVyIHsKICAgICBCT09MIF9o
YXNNb3VzZURldmljZTsKKyAgICBzaXplX3QgX3N0YXJ0Q291bnQ7CiAgICAgUmV0YWluUHRyPGlk
PEJTSW52YWxpZGF0YWJsZT4+IF90b2tlbjsKIH0KIApAQCAtNDYsNyArNDcsOCBAQCArIChXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZQogCiAtICh2b2lkKWRlYWxsb2MKIHsK
LSAgICBbc2VsZiBzdG9wXTsKKyAgICB3aGlsZSAoX3N0YXJ0Q291bnQpCisgICAgICAgIFtzZWxm
IHN0b3BdOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpAQCAtNTUsMTcgKzU3LDIwIEBAIC0g
KHZvaWQpZGVhbGxvYwogCiAtICh2b2lkKXN0YXJ0CiB7Ci0gICAgaWYgKF90b2tlbikKKyAgICBp
ZiAoKytfc3RhcnRDb3VudCA+IDEpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVCghX3Rv
a2VuKTsKICAgICBfdG9rZW4gPSBbW0JLU01vdXNlUG9pbnRlclNlcnZpY2Ugc2hhcmVkSW5zdGFu
Y2VdIGFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjpzZWxmXTsKIH0KIAogLSAodm9pZClzdG9wCiB7
Ci0gICAgaWYgKCFfdG9rZW4pCisgICAgQVNTRVJUKF9zdGFydENvdW50ID4gMSk7CisgICAgaWYg
KC0tX3N0YXJ0Q291bnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChfdG9rZW4pOwog
ICAgIFtfdG9rZW4gaW52YWxpZGF0ZV07CiAgICAgX3Rva2VuID0gbmlsOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzg5OGYwMmI3ZDgxYzMwZDdhYjhiN2FjOThkYTRlMzNlZTdlYmMzZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9i
c2VydmVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBIQVZFKFBFTkNJTEtJ
VF9URVhUX0lOUFVUKQorCitAaW50ZXJmYWNlIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgOiBOU09i
amVjdAorCisrIChXS1N0eWx1c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7CisKKy0g
KHZvaWQpc3RhcnQ7CistICh2b2lkKXN0b3A7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQk9PTCBoYXNTdHlsdXNEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoUEVO
Q0lMS0lUX1RFWFRfSU5QVVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0OGU4MjZhZGM3YTFlNGJk
NWNhOTlmY2Y0MDQyMTJkZTlhNzNjZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEzOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlci5oIgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKworI2ltcG9y
dCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0IDxVSUtpdC9VSVNjcmliYmxlSW50ZXJhY3Rp
b24uaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9TZWNvbmRzLmg+
CisKK3N0YXRpYyBTZWNvbmRzIHNfY2hhbmdlVGltZUludGVydmFsIHsgMTBfbWluIH07CisKK0Bp
bXBsZW1lbnRhdGlvbiBXS1N0eWx1c0RldmljZU9ic2VydmVyIHsKKyAgICBCT09MIF9oYXNTdHls
dXNEZXZpY2U7CisgICAgc2l6ZV90IF9zdGFydENvdW50OworICAgIFJldGFpblB0cjxOU1RpbWVy
PiBfY2hhbmdlVGltZXI7Cit9CisKKysgKFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJ
bnN0YW5jZQoreworICAgIHN0YXRpYyBXS1N0eWx1c0RldmljZU9ic2VydmVyICppbnN0YW5jZTsK
KyAgICBpZiAoIWluc3RhbmNlKQorICAgICAgICBpbnN0YW5jZSA9IFtbV0tTdHlsdXNEZXZpY2VP
YnNlcnZlciBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCistIChpbnN0
YW5jZXR5cGUpaW5pdAoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAg
ICByZXR1cm4gbmlsOworCisgICAgX2hhc1N0eWx1c0RldmljZSA9IFVJU2NyaWJibGVJbnRlcmFj
dGlvbi5pc1BlbmNpbElucHV0RXhwZWN0ZWQ7CisKKyAgICBpZiAoTlNOdW1iZXIgKmNoYW5nZVRp
bWVJbnRlcnZhbE92ZXJyaWRlID0gW05TVXNlckRlZmF1bHRzLnN0YW5kYXJkVXNlckRlZmF1bHRz
IG9iamVjdEZvcktleTpAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXJDaGFuZ2VUaW1lSW50ZXJ2YWwi
XSkgeworICAgICAgICBzX2NoYW5nZVRpbWVJbnRlcnZhbCA9IFNlY29uZHMoW2NoYW5nZVRpbWVJ
bnRlcnZhbE92ZXJyaWRlIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiV2Fy
bmluZzogV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBjaGFuZ2VUaW1lSW50ZXJ2YWwgd2FzIG92ZXJy
aWRlbiB2aWEgdXNlciBkZWZhdWx0cyBhbmQgaXMgbm93ICVnIHNlY29uZHMiLCBzX2NoYW5nZVRp
bWVJbnRlcnZhbC5zZWNvbmRzKCkpOworICAgIH0KKworICAgIHJldHVybiBzZWxmOworfQorCist
ICh2b2lkKWRlYWxsb2MKK3sKKyAgICB3aGlsZSAoX3N0YXJ0Q291bnQpCisgICAgICAgIFtzZWxm
IHN0b3BdOworCisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBTdGF0
ZQorCistICh2b2lkKV9zZXRIYXNTdHlsdXNEZXZpY2U6KEJPT0wpaGFzU3R5bHVzRGV2aWNlCit7
CisgICAgX2hhc1N0eWx1c0RldmljZSA9IGhhc1N0eWx1c0RldmljZTsKKworICAgIFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNTdHlsdXNEZXZpY2VDaGFuZ2VkKF9oYXNTdHlsdXNE
ZXZpY2UpOworCisgICAgW19jaGFuZ2VUaW1lciBpbnZhbGlkYXRlXTsKKyAgICBfY2hhbmdlVGlt
ZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQpc3RhcnQKK3sKKyAgICBpZiAoKytfc3RhcnRDb3VudCA+
IDEpCisgICAgICAgIHJldHVybjsKKworICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNz
XSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiIG9w
dGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOworfQor
CistICh2b2lkKXN0b3AKK3sKKyAgICBBU1NFUlQoX3N0YXJ0Q291bnQgPiAxKTsKKyAgICBpZiAo
LS1fc3RhcnRDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgW1tVSVNjcmliYmxlSW50ZXJh
Y3Rpb24gY2xhc3NdIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImlzUGVuY2lsSW5w
dXRFeHBlY3RlZCJdOworfQorCisjcHJhZ21hIG1hcmsgLSBpc1BlbmNpbElucHV0RXhwZWN0ZWQg
S1ZPCisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRo
IG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4
dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBBU1NFUlQoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5n
OkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl0pOworICAgIEFTU0VSVChvYmplY3QgPT0gW1VJU2Ny
aWJibGVJbnRlcmFjdGlvbiBjbGFzc10pOworCisgICAgQk9PTCBoYXNTdHlsdXNEZXZpY2UgPSBV
SVNjcmliYmxlSW50ZXJhY3Rpb24uaXNQZW5jaWxJbnB1dEV4cGVjdGVkOworICAgIGlmIChoYXNT
dHlsdXNEZXZpY2UgPT0gX2hhc1N0eWx1c0RldmljZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGhhc1N0eWx1c0RldmljZSkgeworICAgICAgICBbc2VsZiBfc2V0SGFzU3R5bHVzRGV2aWNl
Omhhc1N0eWx1c0RldmljZV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiBf
c3RhcnRDaGFuZ2VUaW1lcjpzX2NoYW5nZVRpbWVJbnRlcnZhbC5zZWNvbmRzKCldOworfQorCisj
cHJhZ21hIG1hcmsgLSBpc1BlbmNpbElucHV0RXhwZWN0ZWQgVGltZXIKKworLSAodm9pZClfc3Rh
cnRDaGFuZ2VUaW1lcjooTlNUaW1lSW50ZXJ2YWwpdGltZUludGVydmFsCit7CisgICAgW19jaGFu
Z2VUaW1lciBpbnZhbGlkYXRlXTsKKyAgICBfY2hhbmdlVGltZXIgPSBbTlNUaW1lciBzY2hlZHVs
ZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6dGltZUludGVydmFsIHRhcmdldDpzZWxmIHNlbGVjdG9y
OkBzZWxlY3RvcihfY2hhbmdlVGltZXJGaXJlZDopIHVzZXJJbmZvOm5pbCByZXBlYXRzOk5PXTsK
K30KKworLSAodm9pZClfY2hhbmdlVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCit7CisgICAg
W3NlbGYgX3NldEhhc1N0eWx1c0RldmljZTpOT107Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhB
VkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQppbmRleCBjYTRlYTIwMzYwODI5YTFlMTE3MDg3MGQ3
ZmM0NDMwMDI0ZmJhNzZiLi4zMTJhNGI0MDg1MWU0MDVjOGFkYjI3MTU0ZWE5YWYyNzdlMTk2ODgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJ
T1MubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJ
LmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKICNpbXBvcnQgIldL
TW91c2VEZXZpY2VPYnNlcnZlci5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5o
IgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtMzgsMTYgKzM5LDIwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpICYmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9j
ZXNzZXMoKS5zaXplKCkgPT0gMSkKLSAgICAgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdIHN0YXJ0XTsKKyAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV0gc3RhcnRdOworI2VuZGlmCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkK
KyAgICBbW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0YXJ0XTsKICNl
bmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKICNp
ZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQotICAgIGlm
IChXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3NlcygpLmlzRW1wdHkoKSkKLSAgICAgICAgW1tX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0b3BdOworICAgIFtbV0tNb3Vz
ZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorI2lmIEhBVkUo
UEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisgICAgW1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSBzdG9wXTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ODQzNGNiYWMwYzJmNjFhMmQ2ZTI4MDcx
NmVjZDcyODgyODg5MjgyLi4yZTBkN2FkY2JiYzFmYWZkYzlkNWNkYTY2MjNlZjMyN2ZjMGRmMWYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEzODUsNiArMTM4NSw3IEBACiAJCTkzRTZBNEVFMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tI
aXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjU0OUI0MUUz
MTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5
IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3Vz
ZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVy
LmggKi87IH07CisJCTk1OTM2NzVGMjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9i
c2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICovOyB9
OwogCQk5NUM5NDM5MTI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1
NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi87IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2
QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEg
LyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFF
NTIzQTk1ODc1MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAv
KiBBUElEZWJ1Z2dhYmxlSW5mby5oICovOyB9OwpAQCAtNDQ2MSw2ICs0NDYyLDggQEAKIAkJOTNG
NTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0RTkwMEI3
NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmlj
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdGMjUyNDE0
RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBp
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1N0eWx1c0RldmljZU9ic2VydmVyLmg7
IHBhdGggPSBpb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5NTkzNjc1RTI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8q
IEJhc2VCb2FyZFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQm9h
cmRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTEyM0E5NDlDRTAw
MDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFMzIzQTk1ODc0MDAwMEIw
NkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVBJRGVidWdnYWJsZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcw
ODcsNiArNzA5MCw4IEBACiAJCQkJQTEwNDZFQTAyMDc5MjYzMTAwRjBDNUQ4IC8qIFdLUERGVmll
dy5tbSAqLywKIAkJCQkwRkNCNEU0NDE4QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lmgg
Ki8sCiAJCQkJMEZDQjRFNDUxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywK
KwkJCQk5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5o
ICovLAorCQkJCTk1OTM2NzVFMjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2Vy
dmVyLm1tICovLAogCQkJCUNFNUI0Qzg2MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0Zs
YWdzQ2hhbmdlZFdlYkV2ZW50LmggKi8sCiAJCQkJQ0U1QjRDODcyMUI3M0Q4NzAwMjJFNjRGIC8q
IFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4
N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKQEAg
LTExODEyLDYgKzExODE3LDcgQEAKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tT
dHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBX
S1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYg
LyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTkzNjc1RjI1MkU1RTMx
MDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0U1QjRDODgyMUI3M0Q4NzAwMjJFNjRGIC8qIFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RjEwQkU4MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5
bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZCOEI2
NDIwNTRCNTU4MDBCRDRBNjIgLyogV0tTeXN0ZW1QcmV2aWV3Vmlldy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGU4NTVlNWZlZGM0NWQxZTliMmU2YWRkZDJmM2IwNDhiYzc5MGI4MjUuLmExNzZl
MWE5ZWQ5YmQ2NWE4MTg1NjVkYTc1YzMxYmVlNTk1NmQ2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MDE4LDcgKzQw
MTgsNyBAQCBPcHRpb25hbDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVy
Q2hhcmFjdGVyaXN0aWNzT2ZQcmltYXJ5UG9pbnRpbgogT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlcygpIGNvbnN0CiB7CiAgICAgT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJp
c3RpY3M+IHJlc3VsdChQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpDb2Fyc2UpOwotICAgIGlmICho
YXNNb3VzZURldmljZSgpKQorICAgIGlmIChoYXNNb3VzZURldmljZSgpIHx8IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmhhc1N0eWx1c0RldmljZSgpKQogICAgICAgICByZXN1bHQuYWRkKFBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmUpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTllMDdiMDgwMWFmZjk3MGRmYzZh
M2FlNTQxMDNmZDlmNzVhMGZkYi4uYzA4MzJmMzI4ZGM1MWM1MGQzYmM4YmIyNDVkNmY3NWYwZGM2
Zjg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDA2LDYg
KzQwNiw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICBtX2Z1bGxLZXlib2FyZEFj
Y2Vzc0VuYWJsZWQgPSBwYXJhbWV0ZXJzLmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiAKKyAg
ICBtX2hhc1N0eWx1c0RldmljZSA9IHBhcmFtZXRlcnMuaGFzU3R5bHVzRGV2aWNlOworCiAgICAg
Zm9yIChhdXRvJiBzY2hlbWUgOiBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNFbXB0
eURvY3VtZW50KQogICAgICAgICByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChzY2hl
bWUpOwogCkBAIC0xMDY0LDYgKzEwNjYsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRIYXNNb3Vz
ZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQogCiAjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKIAordm9pZCBXZWJQcm9jZXNzOjpzZXRI
YXNTdHlsdXNEZXZpY2UoYm9vbCBoYXNTdHlsdXNEZXZpY2UpCit7CisgICAgaWYgKGhhc1N0eWx1
c0RldmljZSA9PSBtX2hhc1N0eWx1c0RldmljZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9o
YXNTdHlsdXNEZXZpY2UgPSBoYXNTdHlsdXNEZXZpY2U7CisKKyAgICBQYWdlOjp1cGRhdGVTdHls
ZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7Cit9CisKICNpZiBF
TkFCTEUoR0FNRVBBRCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMoY29u
c3QgVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBmM2UxOWFiNmFiMzJiZDBlYzY0Y2Q3Mjc3OTNm
NGJjZDNlNGQ0OGY0Li4xZmQ5ZWRhZjkwMTM5OWM0ZjczNWJlOTgyZmVmOTdiNzhhZDM5M2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE5Miw2ICsxOTIsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRIYXNNb3VzZURldmljZShib29sKTsKICNlbmRpZgogCisgICAg
Ym9vbCBoYXNTdHlsdXNEZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2hhc1N0eWx1c0RldmljZTsg
fQorICAgIHZvaWQgc2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wpOworCiAgICAgV2ViRnJhbWUqIHdl
YkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZy
YW1lKj4gd2ViRnJhbWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7CkBAIC01NjMsNiArNTY2LDggQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyAgICBib29s
IG1faGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKKwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hN
YXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0
ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMzcwMDE3OTk3
OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3NTU2NGI5ZC4uMjQ5NmM5ZGFjMTMyZDhkM2NjNDFmZDQ1
MTU2MDhmZGY3OTBjYjU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTU2LDYgKzU2LDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBTZXRIYXNNb3VzZURldmljZShi
b29sIGhhc01vdXNlRGV2aWNlKQogI2VuZGlmCiAKKyAgICBTZXRIYXNTdHlsdXNEZXZpY2UoYm9v
bCBoYXNTdHlsdXNEZXZpY2UpCisKICAgICAjIFBsdWctaW5zLgogICAgIERpZEFkZFBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUp
CiAgICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDx1aW50MzJfdCxX
YWxsVGltZT4gaGFzaGVzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGJjOTQwNmFhNTc4ZjYwYWYwY2RlMzI0ZmZlMWEzOWJhZDYyNzk1ZmIuLjI3
ZjJmMmNiZjU1ODM0MzgwMzViNjM1MjJmYzI3NTFkN2U0OTJhMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0x
MC0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTICJh
bnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFkL1BlbmNpbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNTgwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9T
U3R5bHVzU3VwcG9ydC5tbTogQWRkZWQuCisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1
c0luaXRpYWxseURpc2Nvbm5lY3RlZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1
c0luaXRpYWxseUNvbm5lY3RlZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xh
dGVyRGlzY29ubmVjdGVkKToKKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVzTGF0ZXJD
b25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNEaXNjb25uZWN0ZWRU
aW1lb3V0KToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTjogW01hYyBSZWxlYXNl
XSAyIENvb2tpZSBBUEkgYXJlIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGMz
OWVhMTgwYjViZWU0MjM0NDM5OTA0MWE1ZTYxMGI2NGY1YWU2Ni4uNDM5NGM5NzZiZmIxZjJkNTgx
NTc4ODdiM2Q2ZjZkZWU1OTUyNjE2NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgyOSw2
ICs4MjksNyBAQAogCQk5M0Y1NkRBNzFFNUY5MTc0MDAzRURFODQgLyogbGliaWN1Y29yZS5keWxp
YiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODNF
MDMzMUQwQTVGMjcwMEZFQkNGMyAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5M0Y1NkRB
OTFFNUY5MTlEMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQg
LyogV0tXZWJWaWV3U25hcHNob3QubW0gKi87IH07CiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5
OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhF
NUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxl
LmNwcCAqLzsgfTsKKwkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBv
cnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBF
NENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTVC
NkIzQjcyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIg
LyogTWVkaWFEb2N1bWVudC5tbSAqLzsgfTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThDIC8q
IFdLV2ViVmlld1RleHRJbnB1dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5w
dXQubW0gKi87IH07CiAJCTk5ODRGQUNFMUNGRkIwOTAwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLzsgfTsK
QEAgLTI0MzksNiArMjQ0MCw3IEBACiAJCTkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dl
YlZpZXdTbmFwc2hvdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLV2ViVmlld1NuYXBzaG90Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3
RTg2QjE0REM4RTREMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJh
bWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9T
U3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IGlPU1N0eWx1c1N1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZC
M0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJ
bnB1dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmll
d1RleHRJbnB1dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0QxQ0ZG
QjAzODAwOEQxOThDIC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJlZGl0YWJsZS1ib2R5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzI3Miw2ICszMjc0LDcgQEAKIAkJCQlDRUQ3M0QzNTI0NkYyMDRDMDBEQUUzMjcgLyogSW5z
ZXJ0VGV4dEFsdGVybmF0aXZlcy5tbSAqLywKIAkJCQkyREIwMjMyRTFFNEU4NzE4MDA3MDcxMjMg
LyogSW50ZXJhY3Rpb25EZWFkbG9ja0FmdGVyQ3Jhc2gubW0gKi8sCiAJCQkJMkQxMTZFMTIyM0Uw
Q0IzOTAwMjA4OTAwIC8qIGlPU01vdXNlU3VwcG9ydC5tbSAqLywKKwkJCQk5NTBFNENDMDI1MkU3
NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLywKIAkJCQk5QjZEOUZGODI1MkVG
REU1MDBBNTE2NDAgLyogSVBDVGVzdGluZ0FQSS5tbSAqLywKIAkJCQk1QzY5QkRENDFGODJBN0VC
MDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gKi8sCiAJCQkJNUMwMTYw
QzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi8sCkBAIC01MjI5LDYgKzUyMzIs
NyBAQAogCQkJCTdBOTA5QTgyMUQ4Nzc0ODAwMDdFMTBGOCAvKiBJbnRSZWN0VGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBODMxRDg3NzQ4MDAwN0UxMEY4IC8qIEludFNpemVUZXN0
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDExNkUxMzIzRTBDQjNBMDAyMDg5MDAgLyogaU9T
TW91c2VTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjZEOUZGOTI1
MkVGREU1MDBBNTE2NDAgLyogSVBDVGVzdGluZ0FQSS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVD
MEJGODkzMURENTk5QkQwMEIwMDMyOCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q1RkY0OUYyMTYyRTk0MzAwNEJEODZGIC8qIElTT0JveC5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjAwOTM3YWFmMzg2
ZWVmZWY0MTk5NmRkNWZlNjMxMzIxNjk2NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NTdHlsdXNTdXBwb3J0Lm1tCkBAIC0wLDAg
KzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9S
TShJT1MpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0Lmgi
CisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CisjaW1wb3J0IDxXZWJLaXQv
V2ViS2l0Lmg+CisKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorCitAaW50ZXJmYWNl
IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIKKysgKFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKilzaGFy
ZWRJbnN0YW5jZTsKKy0gKHZvaWQpc3RhcnQ7CistICh2b2lkKV9zdGFydENoYW5nZVRpbWVyOihO
U1RpbWVJbnRlcnZhbCl0aW1lSW50ZXJ2YWw7CistICh2b2lkKV9zZXRIYXNTdHlsdXNEZXZpY2U6
KEJPT0wpaGFzU3R5bHVzRGV2aWNlOworQGVuZAorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0
eWx1c0luaXRpYWxseURpc2Nvbm5lY3RlZCkKK3sKKyAgICBXS1N0eWx1c0RldmljZU9ic2VydmVy
ICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVy
IHN0YXJ0XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpO
T107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJd
KTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRl
cjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJd
KTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNJbml0aWFsbHlDb25uZWN0ZWQp
Cit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgPSBb
TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFu
Y2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW3N0eWx1c0Rldmlj
ZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFR
dWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBu
b25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFu
eS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9TU3R5bHVzU3Vw
cG9ydCwgU3R5bHVzTGF0ZXJEaXNjb25uZWN0ZWQpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNl
cnZlciAqc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1
c0RldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNl
cnZlciBzdGFydF07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZp
Y2U6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFtzdHlsdXNE
ZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOk5PXTsKKworICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNl
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2lu
dGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5l
Il0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0xhdGVyQ29ubmVjdGVkKQor
eworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gW05T
Q2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNl
XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHlsdXNEZXZpY2VP
YnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOk5PXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCIiXTsKKworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNl
OllFU107CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJw
b2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6
QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJd
KTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9p
bnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFR
dWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQs
IFN0eWx1c0Rpc2Nvbm5lY3RlZFRpbWVvdXQpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ciAqc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0Rl
dmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZl
ciBzdGFydF07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6
WUVTXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFtzdHlsdXNEZXZp
Y2VPYnNlcnZlciBfc3RhcnRDaGFuZ2VUaW1lcjowLjAxXTsKKworICAgIF9fYmxvY2sgQk9PTCBk
b25lID0gZmFsc2U7CisgICAgW05TVGltZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFs
OjAuMDUgcmVwZWF0czpOTyBibG9jazpeKE5TVGltZXIgKnRpbWVyKSB7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0p
OworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVy
OiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
InBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29h
cnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJh
bnktcG9pbnRlcjogZmluZSJdKTsKK30KKworI2VuZGlmIC8vIEhBVkUoUEVOQ0lMS0lUX1RFWFRf
SU5QVVQpCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411132</attachid>
            <date>2020-10-12 10:58:28 -0700</date>
            <delta_ts>2020-10-12 14:14:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201012105828.patch</filename>
            <type>text/plain</type>
            <size>39355</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNDhiYzhiM2U0Y2NmN2JjNTRiMmQxMmNjZTZmZTA1ZjRjNGQxM2Y5OC4uYzg3
MTk4NWExMzM0NTc1YjQ0ODAxODRhMTM4YzRhNmJiMjQ4ZTc1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MyBAQAorMjAyMC0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIGxpdmUtb24vdHdlYWtpbmcgcHVycG9zZXMgdGhpcyAxMG1pbiB0aW1lb3V0IGNhbiBiZSBh
ZGp1c3RlZCBiZWZvcmUgdGhlIFVJUHJvY2VzcyBpcworICAgICAgICBjcmVhdGVkIHdpdGggdGhl
IGBXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsYCBrZXkgaW4gYE5TVXNl
ckRlZmF1bHRzYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW06IEFkZGVkLgorICAgICAgICAoK1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgaW5pdF0pOgor
ICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOl0pOgorICAgICAgICAo
LVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIG9i
c2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3N0YXJ0Q2hhbmdlVGltZXI6XSk6CisgICAgICAg
ICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX2NoYW5nZVRpbWVyRmlyZWQ6XSk6CisgICAgICAg
IFVzZSBPYmpDIEtWTyB0byBsaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0Rldmlj
ZUNoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJv
eSk6CisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAgdG8g
c3RhcnQgbGlzdGVuaW5nIHdoZW4gY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICBVc2Ug
dGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAg
d2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzCisgICAgICAgIGluc3RlYWQgb2Ygc2VuZGluZyBhIGBT
ZXRIYXNTdHlsdXNEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdlYlByb2Nl
c3MgaXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzU3R5bHVzRGV2aWNlIGNvbnN0KTogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0eWxlIChp
bmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hhbmdlLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
IGNvbnN0KToKKyAgICAgICAgSW5jbHVkZSBgZmluZWAgd2hlbiB0aGVyZSBpcyBhIHN0eWx1cyBk
ZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5t
bToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAg
KC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgIERyaXZlLWJ5OiB1c2UgYSBjb3VudCBvZiBgc3Rh
cnRgL2BzdG9wYCBpbnN0ZWFkIG9mIGBXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3Nlc2Agc2l6
ZS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTAtMDkgIFJ5YW4gSGFkZGFkICA8cnlhbmhh
ZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvbW90ZSBXS1dlYlZpZXcgbWVkaWEgcGxheWJh
Y2sgU1BJIHRvIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA2YjI4M2VmMjQ1OGQ4MzY1OTM0NGJlOWQ1NDU5
MGNjMmUxNzZlMjA0Li42ZGU3ODVlZWI4ZjYwZDVlZWRiMDYxMzM4OTllNGU5YTMyNTA1ZmU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtODgsNiArODgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKICAgICBlbmNvZGVyIDw8IGhh
c01vdXNlRGV2aWNlOwogI2VuZGlmCisgICAgZW5jb2RlciA8PCBoYXNTdHlsdXNEZXZpY2U7CiAg
ICAgZW5jb2RlciA8PCBkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbDsKICAgICBlbmNvZGVy
IDw8IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTMw
MSw2ICszMDIsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNTdHlsdXNEZXZp
Y2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5iYWNrRm9yd2FyZENhY2hl
Q2FwYWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDNkODZhNzRiMWQzZWU1MTAxNTM0YWQzOTI1NjIzMjIxZWZj
M2VjYWEuLjQ1MTk2YmQ2ODIyNzhiNWRhOWUxZDRmYzQ1MTA3OGQxYjRhODJmMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTEyMCw2ICsxMjAsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKICAg
ICBib29sIGhhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKICNlbmRpZgorICAgIGJvb2wgaGFzU3R5
bHVzRGV2aWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VH
UFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApp
bmRleCA3NzY5MGQwZGQ1MjcyYTA1ZTJhNzg0MjIyMThhMzViNDIyYjU3NTVhLi4xNjliMjk1NzJj
NWY0NWYxOWFmODQ5YWFjNTQ0YTY4NWU1NmU1MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBA
IC00NjYsNiArNDY2LDcgQEAgVUlQcm9jZXNzL2lvcy9XS1Bhc3N3b3JkVmlldy5tbQogVUlQcm9j
ZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZW
aWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQorVUlQcm9jZXNzL2lvcy9XS1N0
eWx1c0RldmljZU9ic2VydmVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3ludGhldGljRmxhZ3NDaGFu
Z2VkV2ViRXZlbnQubW0KIFVJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2du
aXplci5tbQogVUlQcm9jZXNzL2lvcy9XS1N5c3RlbVByZXZpZXdWaWV3Lm1tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRl
eCBjMDFmMTgxNTNmMmQ4MDM1NDgwMTEzZjRhNjA4YmQ0NDllMjg4ZTFhLi4zNTZlYzliNzBlOTZh
OTk3MTYwNTEwNzZjNmQ5MGY2YWNjMzU2ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5o
IgorI2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAiV2ViQmFja0Zv
cndhcmRDYWNoZS5oIgogI2ltcG9ydCAiV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCiAjaW1w
b3J0ICJXZWJQYWdlR3JvdXAuaCIKQEAgLTUxNiw2ICs1MTcsMTAgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0o
SU9TKQogICAgIHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNl
cnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOwogI2VuZGlmCisKKyNpZiBIQVZF
KFBFTkNJTEtJVF9URVhUX0lOUFVUKQorICAgIHBhcmFtZXRlcnMuaGFzU3R5bHVzRGV2aWNlID0g
W1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNTdHlsdXNEZXZpY2Vd
OworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMGVm
N2Q4OTg1OGVkNDkxMDdlYWQ5MzgyMzJmZTI2M2VkZGQyMzFhNi4uNzZjY2UwY2IwYmNiMGY3Mzcw
YzQ4M2NmOGEzNDJiZTRjYjIzNmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC0xMTQ3LDYgKzExNDcsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OndpbmRvd1NlcnZlckNvbm5lY3Rpb25TdGF0ZUNoYW5nZWQoKQogICAgICAgICBwYWdlLT5h
Y3Rpdml0eVN0YXRlRGlkQ2hhbmdlKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKTsKIH0K
IAordm9pZCBXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0RldmljZUNoYW5nZWQoYm9v
bCBoYXNTdHlsdXNEZXZpY2UpCit7CisgICAgZm9yIChhdXRvKiB3ZWJQcm9jZXNzUHJveHkgOiBX
ZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3NlcygpLnZhbHVlcygpKQorICAgICAgICB3ZWJQcm9j
ZXNzUHJveHktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc1N0eWx1c0RldmljZSho
YXNTdHlsdXNEZXZpY2UpLCAwKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZldGNoV2Vi
c2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNjQwZDg5MmFlNzk0ZmVh
MTg1MWEwNjYxNDg5MjA2ZTU2MmJkZjFiMS4uN2Q4MDEyYTE3OWIxYzQ1OGYwODQ2ZmM4Y2MxNTE2
ZmYwN2E2OGJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
QEAgLTIxNSw2ICsyMTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbm90aWZ5SGFzTW91
c2VEZXZpY2VDaGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIHN0YXRpYyB2b2lkIG5vdGlmeUhhc1N0
eWx1c0RldmljZUNoYW5nZWQoYm9vbCBoYXNTdHlsdXNEZXZpY2UpOworCiAgICAgdm9pZCBmZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOwogICAgIHZvaWQgZGVsZXRl
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBX
YWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KaW5kZXggNDg5MWJk
NWM4NWIxNmQ4OWFiMjA1NWE2YmQzY2U3YTViZmQ3ZDIyZS4uZGUzMzY2YjkwMzc4NzQ3OTllZWY3
ZDQ3ZWI1YmIyYzU4ZTZkMmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgewogICAgIEJPT0wgX2hhc01vdXNlRGV2
aWNlOworICAgIHNpemVfdCBfc3RhcnRDb3VudDsKICAgICBSZXRhaW5QdHI8aWQ8QlNJbnZhbGlk
YXRhYmxlPj4gX3Rva2VuOwogfQogCkBAIC00Niw3ICs0Nyw4IEBAICsgKFdLTW91c2VEZXZpY2VP
YnNlcnZlciAqKXNoYXJlZEluc3RhbmNlCiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIFtzZWxm
IHN0b3BdOworICAgIHdoaWxlIChfc3RhcnRDb3VudCkKKyAgICAgICAgW3NlbGYgc3RvcF07CiAK
ICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC01NSwxNyArNTcsMjAgQEAgLSAodm9pZClkZWFs
bG9jCiAKIC0gKHZvaWQpc3RhcnQKIHsKLSAgICBpZiAoX3Rva2VuKQorICAgIGlmICgrK19zdGFy
dENvdW50ID4gMSkKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKCFfdG9rZW4pOwogICAg
IF90b2tlbiA9IFtbQktTTW91c2VQb2ludGVyU2VydmljZSBzaGFyZWRJbnN0YW5jZV0gYWRkUG9p
bnRlckRldmljZU9ic2VydmVyOnNlbGZdOwogfQogCiAtICh2b2lkKXN0b3AKIHsKLSAgICBpZiAo
IV90b2tlbikKKyAgICBBU1NFUlQoX3N0YXJ0Q291bnQgPiAxKTsKKyAgICBpZiAoLS1fc3RhcnRD
b3VudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKF90b2tlbik7CiAgICAgW190b2tl
biBpbnZhbGlkYXRlXTsKICAgICBfdG9rZW4gPSBuaWw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ODk4ZjAyYjdkODFjMzBkN2FiOGI3YWM5OGRhNGUzM2VlN2ViYzNlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaApA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5Q
VVQpCisKK0BpbnRlcmZhY2UgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciA6IE5TT2JqZWN0CisKKysg
KFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKworLSAodm9pZClzdGFy
dDsKKy0gKHZvaWQpc3RvcDsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IGhhc1N0eWx1c0RldmljZTsKKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVRfVEVY
VF9JTlBVVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1
c0RldmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlZTNlNzA0NWE3Nzc5ZDcxNGZmNTZkODBm
ZTMyNzg3NTk5MGZlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1N0eWx1c0RldmljZU9ic2VydmVy
LmgiCisKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorCisjaW1wb3J0ICJXZWJQcm9j
ZXNzUHJveHkuaCIKKyNpbXBvcnQgPFVJS2l0L1VJU2NyaWJibGVJbnRlcmFjdGlvbi5oPgorI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NlY29uZHMuaD4KKworc3RhdGlj
IFNlY29uZHMgc19jaGFuZ2VUaW1lSW50ZXJ2YWwgeyAxMF9taW4gfTsKKworQGltcGxlbWVudGF0
aW9uIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgeworICAgIEJPT0wgX2hhc1N0eWx1c0RldmljZTsK
KyAgICBzaXplX3QgX3N0YXJ0Q291bnQ7CisgICAgUmV0YWluUHRyPE5TVGltZXI+IF9jaGFuZ2VU
aW1lcjsKK30KKworKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlCit7
CisgICAgc3RhdGljIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKmluc3RhbmNlOworICAgIGlmICgh
aW5zdGFuY2UpCisgICAgICAgIGluc3RhbmNlID0gW1tXS1N0eWx1c0RldmljZU9ic2VydmVyIGFs
bG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKKy0gKGluc3RhbmNldHlwZSlp
bml0Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBu
aWw7CisKKyAgICBfaGFzU3R5bHVzRGV2aWNlID0gVUlTY3JpYmJsZUludGVyYWN0aW9uLmlzUGVu
Y2lsSW5wdXRFeHBlY3RlZDsKKworICAgIGlmIChOU051bWJlciAqY2hhbmdlVGltZUludGVydmFs
T3ZlcnJpZGUgPSBbTlNVc2VyRGVmYXVsdHMuc3RhbmRhcmRVc2VyRGVmYXVsdHMgb2JqZWN0Rm9y
S2V5OkAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRpbWVJbnRlcnZhbCJdKSB7CisgICAg
ICAgIHNfY2hhbmdlVGltZUludGVydmFsID0gU2Vjb25kcyhbY2hhbmdlVGltZUludGVydmFsT3Zl
cnJpZGUgZG91YmxlVmFsdWVdKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJXYXJuaW5nOiBXS1N0
eWx1c0RldmljZU9ic2VydmVyIGNoYW5nZVRpbWVJbnRlcnZhbCB3YXMgb3ZlcnJpZGVuIHZpYSB1
c2VyIGRlZmF1bHRzIGFuZCBpcyBub3cgJWcgc2Vjb25kcyIsIHNfY2hhbmdlVGltZUludGVydmFs
LnNlY29uZHMoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVh
bGxvYworeworICAgIHdoaWxlIChfc3RhcnRDb3VudCkKKyAgICAgICAgW3NlbGYgc3RvcF07CisK
KyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFnbWEgbWFyayAtIFN0YXRlCisKKy0gKHZv
aWQpX3NldEhhc1N0eWx1c0RldmljZTooQk9PTCloYXNTdHlsdXNEZXZpY2UKK3sKKyAgICBCT09M
IGNoYW5nZWQgPSBoYXNTdHlsdXNEZXZpY2UgIT0gX2hhc1N0eWx1c0RldmljZTsKKworICAgIF9o
YXNTdHlsdXNEZXZpY2UgPSBoYXNTdHlsdXNEZXZpY2U7CisKKyAgICBpZiAoY2hhbmdlZCkKKyAg
ICAgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0RldmljZUNoYW5n
ZWQoX2hhc1N0eWx1c0RldmljZSk7CisKKyAgICBbX2NoYW5nZVRpbWVyIGludmFsaWRhdGVdOwor
ICAgIF9jaGFuZ2VUaW1lciA9IG5pbDsKK30KKworLSAodm9pZClzdGFydAoreworICAgIGlmICgr
K19zdGFydENvdW50ID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW1tVSVNjcmliYmxlSW50
ZXJhY3Rpb24gY2xhc3NdIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImlzUGVuY2lsSW5w
dXRFeHBlY3RlZCIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250
ZXh0Om5pbF07Cit9CisKKy0gKHZvaWQpc3RvcAoreworICAgIEFTU0VSVChfc3RhcnRDb3VudCA+
IDEpOworICAgIGlmICgtLV9zdGFydENvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBbW1VJ
U2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRo
OkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07Cit9CisKKyNwcmFnbWEgbWFyayAtIGlzUGVuY2ls
SW5wdXRFeHBlY3RlZCBLVk8KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0
cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAq
KWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEFTU0VSVChba2V5UGF0aCBp
c0VxdWFsVG9TdHJpbmc6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiXSk7CisgICAgQVNTRVJUKG9i
amVjdCA9PSBbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSk7CisKKyAgICBpZiAoVUlTY3Jp
YmJsZUludGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZCkKKyAgICAgICAgW3NlbGYgX3Nl
dEhhc1N0eWx1c0RldmljZTpZRVNdOworICAgIGVsc2UKKyAgICAgICAgW3NlbGYgX3N0YXJ0Q2hh
bmdlVGltZXI6c19jaGFuZ2VUaW1lSW50ZXJ2YWwuc2Vjb25kcygpXTsKK30KKworI3ByYWdtYSBt
YXJrIC0gaXNQZW5jaWxJbnB1dEV4cGVjdGVkIFRpbWVyCisKKy0gKHZvaWQpX3N0YXJ0Q2hhbmdl
VGltZXI6KE5TVGltZUludGVydmFsKXRpbWVJbnRlcnZhbAoreworICAgIFtfY2hhbmdlVGltZXIg
aW52YWxpZGF0ZV07CisgICAgX2NoYW5nZVRpbWVyID0gW05TVGltZXIgc2NoZWR1bGVkVGltZXJX
aXRoVGltZUludGVydmFsOnRpbWVJbnRlcnZhbCB0YXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2NoYW5nZVRpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpOT107Cit9CisKKy0g
KHZvaWQpX2NoYW5nZVRpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgoreworICAgIFtzZWxmIF9z
ZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJ
TEtJVF9URVhUX0lOUFVUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlByb2Nlc3NQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
cm9jZXNzUHJveHlJT1MubW0KaW5kZXggY2E0ZWEyMDM2MDgyOWExZTExNzA4NzBkN2ZjNDQzMDAy
NGZiYTc2Yi4uMzEyYTRiNDA4NTFlNDA1YzhhZGIyNzE1NGVhOWFmMjc3ZTE5Njg4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBA
IC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIgogI2lt
cG9ydCAiV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmgiCiAjaW1wb3J0ICJXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIuaCIKKyNpbXBvcnQgIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBv
cnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM4LDE2
ICszOSwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUluaXRpYWxpemUoKQogewogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAm
JiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2VzKCku
c2l6ZSgpID09IDEpCi0gICAgICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3Rh
bmNlXSBzdGFydF07CisgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2Vd
IHN0YXJ0XTsKKyNlbmRpZgorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisgICAgW1tX
S1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CiAjZW5kaWYKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiAjaWYgSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoV2ViUHJv
Y2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpCi0gICAgICAgIFtbV0tNb3VzZURl
dmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyAgICBbW1dLTW91c2VEZXZpY2VP
YnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RvcF07CisjZW5kaWYKKyNpZiBIQVZFKFBFTkNJTEtJ
VF9URVhUX0lOUFVUKQorICAgIFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5j
ZV0gc3RvcF07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTg0MzRjYmFjMGMyZjYxYTJkNmUyODA3MTZlY2Q3Mjg4
Mjg4OTI4Mi4uMmUwZDdhZGNiYmMxZmFmZGM5ZDVjZGE2NjIzZWYzMjdmYzBkZjFmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzg1
LDYgKzEzODUsNyBAQAogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJl
c3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
NkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAw
RTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1Ymxp
YywgKTsgfTsgfTsKIAkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9
OworCQk5NTkzNjc1RjI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5MzY3NUQy
NTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJOTVD
OTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8q
IEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dL
SW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0lu
c3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTkwMzZBRTUyM0E5NTg3
NTAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVi
dWdnYWJsZUluZm8uaCAqLzsgfTsKQEAgLTQ0NjEsNiArNDQ2Miw4IEBACiAJCTkzRjU0OUI1MUUz
MTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyog
V0tNb3VzZURldmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRG
MUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLTW91
c2VEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU5MzY3
NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oOyBwYXRoID0g
aW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTU5MzY3NUUyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1N0eWx1c0RldmljZU9i
c2VydmVyLm1tOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9h
cmRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAv
KiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQ
SURlYnVnZ2FibGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURl
YnVnZ2FibGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDg3LDYgKzcw
OTAsOCBAQAogCQkJCUExMDQ2RUEwMjA3OTI2MzEwMEYwQzVEOCAvKiBXS1BERlZpZXcubW0gKi8s
CiAJCQkJMEZDQjRFNDQxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5oICovLAogCQkJ
CTBGQ0I0RTQ1MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gKi8sCisJCQkJOTU5
MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLywKKwkJ
CQk5NTkzNjc1RTI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAq
LywKIAkJCQlDRTVCNEM4NjIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0NoYW5n
ZWRXZWJFdmVudC5oICovLAogCQkJCUNFNUI0Qzg3MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRo
ZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lm1tICovLAogCQkJCTI2RjEwQkU2MTkxODdFMkUwMDFE
MEU2OCAvKiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8sCkBAIC0xMTgxMiw2
ICsxMTgxNyw3IEBACiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdD
Ri5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3Ry
aW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEw
IC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNUI0Qzg4
MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyNkYxMEJFODE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNU
YXBHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2QjhCNjQyMDU0QjU1
ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1ZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCBlODU1ZTVmZWRjNDVkMWU5YjJlNmFkZGQyZjNiMDQ4YmM3OTBiODI1Li5hMTc2ZTFhOWVkOWJk
NjVhODE4NTY1ZGE3NWMzMWJlZTU5NTZkNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDAxOCw3ICs0MDE4LDcgQEAg
T3B0aW9uYWw8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3Rl
cmlzdGljc09mUHJpbWFyeVBvaW50aW4KIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
PiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rl
dmljZXMoKSBjb25zdAogewogICAgIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBy
ZXN1bHQoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6Q29hcnNlKTsKLSAgICBpZiAoaGFzTW91c2VE
ZXZpY2UoKSkKKyAgICBpZiAoaGFzTW91c2VEZXZpY2UoKSB8fCBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5oYXNTdHlsdXNEZXZpY2UoKSkKICAgICAgICAgcmVzdWx0LmFkZChQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzOjpGaW5lKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDU5ZTA3YjA4MDFhZmY5NzBkZmM2YTNhZTU0MTAz
ZmQ5Zjc1YTBmZGIuLmMwODMyZjMyOGRjNTFjNTBkM2JjOGJiMjQ1ZDZmNzVmMGRjNmY4OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQwNiw2ICs0MDYsOCBA
QCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFi
bGVkID0gcGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogCisgICAgbV9oYXNT
dHlsdXNEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc1N0eWx1c0RldmljZTsKKwogICAgIGZvciAoYXV0
byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVu
dCkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoc2NoZW1lKTsKIApA
QCAtMTA2NCw2ICsxMDY2LDE2IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0SGFzTW91c2VEZXZpY2Uo
Ym9vbCBoYXNNb3VzZURldmljZSkKIAogI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9T
VVBQT1JUKSAmJiBQTEFURk9STShJT1MpCiAKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0SGFzU3R5bHVz
RGV2aWNlKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQoreworICAgIGlmIChoYXNTdHlsdXNEZXZpY2Ug
PT0gbV9oYXNTdHlsdXNEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzU3R5bHVz
RGV2aWNlID0gaGFzU3R5bHVzRGV2aWNlOworCisgICAgUGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQ
YWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOworfQorCiAjaWYgRU5BQkxFKEdB
TUVQQUQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3Rv
cjxXZWJLaXQ6OkdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKaW5kZXggZjNlMTlhYjZhYjMyYmQwZWM2NGNkNzI3NzkzZjRiY2QzZTRk
NDhmNC4uMWZkOWVkYWY5MDEzOTljNGY3MzViZTk4MmZlZjk3Yjc4YWQzOTNlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7CiAjZW5kaWYKIAorICAgIGJvb2wgaGFz
U3R5bHVzRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTdHlsdXNEZXZpY2U7IH0KKyAgICB2
b2lkIHNldEhhc1N0eWx1c0RldmljZShib29sKTsKKwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFZlY3RvcjxXZWJGcmFtZSo+IHdl
YkZyYW1lcygpIGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJGcmFtZSopOwpAQCAtNTYzLDYgKzU2Niw4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2hhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKICNlbmRpZgogCisgICAgYm9vbCBtX2hhc1N0
eWx1c0RldmljZSB7IGZhbHNlIH07CisKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0
IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNv
bnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDM3MDAxNzk5NzkzMzI5MTQ2
MmY2MGZkMTU4ODM4MmFmNzU1NjRiOWQuLjI0OTZjOWRhYzEzMmQ4ZDNjYzQxZmQ0NTE1NjA4ZmRm
NzkwY2I1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC01Niw2ICs1Niw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNN
b3VzZURldmljZSkKICNlbmRpZgogCisgICAgU2V0SGFzU3R5bHVzRGV2aWNlKGJvb2wgaGFzU3R5
bHVzRGV2aWNlKQorCiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoKHVpbnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJl
c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+
IGhhc2hlcykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBiYzk0MDZhYTU3OGY2MGFmMGNkZTMyNGZmZTFhMzliYWQ2Mjc5NWZiLi5iODI2MzYxNmE4
MDlkMmFmNTZiNDI5ZmI1Yzg0N2JkYWM4YTY0YjQyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTAtMTIgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyAiYW55LXBvaW50
ZXI6ZmluZSIgbWVkaWEgcXVlcnkgZmFsc2Ugb24gaVBhZC9QZW5jaWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjU4MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjM4MTMyODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1c1N1
cHBvcnQubW06IEFkZGVkLgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNJbml0aWFs
bHlEaXNjb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNJbml0aWFs
bHlDb25uZWN0ZWQpOgorICAgICAgICAoaU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNMYXRlckRpc2Nv
bm5lY3RlZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xhdGVyQ29ubmVjdGVk
KToKKyAgICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVzRGlzY29ubmVjdGVkVGltZW91dCk6
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAyMC0xMC0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT046IFtNYWMgUmVsZWFzZV0gMiBDb29r
aWUgQVBJIGFyZSBmYWlsaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRjMzllYTE4MGI1
YmVlNDIzNDQzOTkwNDFhNWU2MTBiNjRmNWFlNjYuLjQzOTRjOTc2YmZiMWYyZDU4MTU3ODg3YjNk
NmY2ZGVlNTk1MjYxNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MjksNiArODI5LDcg
QEAKIAkJOTNGNTZEQTcxRTVGOTE3NDAwM0VERTg0IC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgzRTAzMzFEMEE1
RjI3MDBGRUJDRjMgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKIAkJOTNGNTZEQTkxRTVGOTE5
RDAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2Vi
Vmlld1NuYXBzaG90Lm1tICovOyB9OwogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRB
OTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87
IH07CisJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJF
NzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07CiAJCTk1QjZCM0I3MjUx
RUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlh
RG9jdW1lbnQubW0gKi87IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dlYlZp
ZXdUZXh0SW5wdXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICov
OyB9OwogCQk5OTg0RkFDRTFDRkZCMDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRG
QUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CkBAIC0yNDM5
LDYgKzI0NDAsNyBAQAogCQk5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tXZWJWaWV3U25h
cHNob3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZp
ZXdTbmFwc2hvdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGN0U4NkIxNERD
OEU0RDAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGcmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3
RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJh
bWVzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1
cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHls
dXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVC
RjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXh0SW5w
dXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNEMUNGRkIwMzgwMDhE
MTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
ZWRpdGFibGUtYm9keS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNzIs
NiArMzI3NCw3IEBACiAJCQkJQ0VENzNEMzUyNDZGMjA0QzAwREFFMzI3IC8qIEluc2VydFRleHRB
bHRlcm5hdGl2ZXMubW0gKi8sCiAJCQkJMkRCMDIzMkUxRTRFODcxODAwNzA3MTIzIC8qIEludGVy
YWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tICovLAogCQkJCTJEMTE2RTEyMjNFMENCMzkwMDIw
ODkwMCAvKiBpT1NNb3VzZVN1cHBvcnQubW0gKi8sCisJCQkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8sCiAJCQkJOUI2RDlGRjgyNTJFRkRFNTAwQTUx
NjQwIC8qIElQQ1Rlc3RpbmdBUEkubW0gKi8sCiAJCQkJNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRC
IC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovLAogCQkJCTVDMDE2MEMwMjFBMTMy
MzIwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tICovLApAQCAtNTIyOSw2ICs1MjMyLDcgQEAKIAkJ
CQk3QTkwOUE4MjFEODc3NDgwMDA3RTEwRjggLyogSW50UmVjdFRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdBOTA5QTgzMUQ4Nzc0ODAwMDdFMTBGOCAvKiBJbnRTaXplVGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQxMTZFMTMyM0UwQ0IzQTAwMjA4OTAwIC8qIGlPU01vdXNlU3Vw
cG9ydC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBp
T1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUI2RDlGRjkyNTJFRkRFNTAw
QTUxNjQwIC8qIElQQ1Rlc3RpbmdBUEkubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzBCRjg5MzFE
RDU5OUJEMDBCMDAzMjggLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENUZGNDlGMjE2MkU5NDMwMDRCRDg2RiAvKiBJU09Cb3guY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L2lPU1N0eWx1c1N1cHBvcnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL2lPU1N0eWx1c1N1cHBvcnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRmZjJhODdkODhhMDY4YTliNTdh
ZGJiZmNkYTk2YjcwN2FlZjI4YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbQpAQCAtMCwwICsxLDE5NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQor
CisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5o
PgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKworQGludGVyZmFjZSBXS1N0eWx1
c0RldmljZU9ic2VydmVyCisrIChXS1N0eWx1c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFu
Y2U7CistICh2b2lkKXN0YXJ0OworLSAodm9pZClfc3RhcnRDaGFuZ2VUaW1lcjooTlNUaW1lSW50
ZXJ2YWwpdGltZUludGVydmFsOworLSAodm9pZClfc2V0SGFzU3R5bHVzRGV2aWNlOihCT09MKWhh
c1N0eWx1c0RldmljZTsKK0BlbmQKKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNJbml0
aWFsbHlEaXNjb25uZWN0ZWQpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5bHVz
RGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9ic2Vy
dmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF07
CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6Tk9dOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUi
XSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
cG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisK
K1RFU1QoaU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAg
IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NG
cm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAg
ICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZl
ciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
Il07CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2lu
dGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJw
b2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFR
dWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
cjogY29hcnNlIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0
eWx1c0xhdGVyRGlzY29ubmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0
eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VP
YnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3Rh
cnRdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpOT107CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmlu
ZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFu
eS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFs
dWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30K
KworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBX
S1N0eWx1c0RldmljZU9ic2VydmVyICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJv
bVN0cmluZyhAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAg
W3N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIg
X3NldEhhc1N0eWx1c0RldmljZTpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07
CisKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpZRVNdOwor
CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJd
KTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRl
cjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6
QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNv
YXJzZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJh
bnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNE
aXNjb25uZWN0ZWRUaW1lb3V0RmlyZSkKK3sKKyAgICBXS1N0eWx1c0RldmljZU9ic2VydmVyICpz
dHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIHN0
YXJ0XTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc1N0eWx1c0RldmljZTpZRVNd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgW3N0eWx1c0RldmljZU9i
c2VydmVyIF9zdGFydENoYW5nZVRpbWVyOjAuMDFdOworCisgICAgX19ibG9jayBCT09MIGRvbmUg
PSBmYWxzZTsKKyAgICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6MC4w
NSByZXBlYXRzOk5PIGJsb2NrOl4oTlNUaW1lciAqdGltZXIpIHsKKyAgICAgICAgZG9uZSA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5v
bmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9p
bnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2Ui
XSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1w
b2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0Rpc2Nv
bm5lY3RlZFRpbWVvdXRDYW5jZWwpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5
bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9i
c2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFy
dF07CisgICAgW3N0eWx1c0RldmljZU9ic2VydmVyIF9zZXRIYXNTdHlsdXNEZXZpY2U6WUVTXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFtzdHlsdXNEZXZpY2VPYnNl
cnZlciBfc3RhcnRDaGFuZ2VUaW1lcjowLjAxXTsKKworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZl
ciBfc2V0SGFzU3R5bHVzRGV2aWNlOllFU107CisKKyAgICBfX2Jsb2NrIEJPT0wgZG9uZSA9IGZh
bHNlOworICAgIFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRpbWVJbnRlcnZhbDowLjA1IHJl
cGVhdHM6Tk8gYmxvY2s6XihOU1RpbWVyICp0aW1lcikgeworICAgICAgICBkb25lID0gdHJ1ZTsK
KyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJd
KTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVy
OiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
cjogZmluZSJdKTsKK30KKworI2VuZGlmIC8vIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411154</attachid>
            <date>2020-10-12 14:14:03 -0700</date>
            <delta_ts>2020-10-12 18:07:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201012141402.patch</filename>
            <type>text/plain</type>
            <size>39293</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNDhiYzhiM2U0Y2NmN2JjNTRiMmQxMmNjZTZmZTA1ZjRjNGQxM2Y5OC4uZWJl
ZDg5MjZmZDhiYjEzZTgzMTZmMDM5N2YxNjI5MTQ1ODllNzViNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MyBAQAorMjAyMC0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYCtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gIGFzIGEgcHJveHkgZm9yIHRoZSBwcmVzZW5j
ZSBvZiBzdHlsdXMKKyAgICAgICAgZGV2aWNlcyBhcyB0aGVyZSdzIG5vIHdheSBvZiBkaXJlY3Rs
eSBxdWVyeWluZyBmb3IgY29ubmVjdGVkIHN0eWx1cyBkZXZpY2VzIChlc3BlY2lhbGx5IGlmCisg
ICAgICAgIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb25uZWN0aW9uKS4gV2hlbiB0aGUgdmFsdWUgaXMg
Y2hhbmdlZCB0byBgWUVTYCwgbm90aWZ5IGFsbCBXZWJQcm9jZXNzCisgICAgICAgIGltbWVkaWF0
ZWx5LiBXaGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIHRvIGBOT2AsIHVzZSBhbiBgTlNUaW1lcmAg
dG8gZGVsYXkgbm90aWZ5aW5nIGFsbAorICAgICAgICBXZWJQcm9jZXNzIGZvciAxMG1pbiBpbiBj
YXNlIHRoZSB1c2VyIHN0YXJ0cyB1c2luZyB0aGVpciBzdHlsdXMgYWdhaW4uCisKKyAgICAgICAg
Rm9yIGxpdmUtb24vdHdlYWtpbmcgcHVycG9zZXMgdGhpcyAxMG1pbiB0aW1lb3V0IGNhbiBiZSBh
ZGp1c3RlZCBiZWZvcmUgdGhlIFVJUHJvY2VzcyBpcworICAgICAgICBjcmVhdGVkIHdpdGggdGhl
IGBXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsYCBrZXkgaW4gYE5TVXNl
ckRlZmF1bHRzYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW06IEFkZGVkLgorICAgICAgICAoK1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJl
ZEluc3RhbmNlXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgaW5pdF0pOgor
ICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzZXRIYXNTdHlsdXNEZXZpY2U6XSk6CisgICAgICAgICgt
W1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgb2Jz
ZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAg
KC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydENoYW5nZVRpbWVyOl0pOgorICAgICAgICAo
LVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGNoYW5nZVRpbWVyRmlyZWQ6XSk6CisgICAgICAgIFVz
ZSBPYmpDIEtWTyB0byBsaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYCtbVUlTY3JpYmJsZUludGVyYWN0
aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0RldmljZUNo
YW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxp
emUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSk6
CisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAgdG8gc3Rh
cnQgbGlzdGVuaW5nIHdoZW4gY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICBVc2UgdGhl
IGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZlcmAgd2hl
biBjcmVhdGluZyBXZWJQcm9jZXNzCisgICAgICAgIGluc3RlYWQgb2Ygc2VuZGluZyBhIGBTZXRI
YXNTdHlsdXNEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdlYlByb2Nlc3Mg
aXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzU3R5bHVzRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0eWxlIChpbmNs
dWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hhbmdlLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNv
bnN0KToKKyAgICAgICAgSW5jbHVkZSBgZmluZWAgd2hlbiB0aGVyZSBpcyBhIHN0eWx1cyBkZXZp
Y2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbToK
KyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V0tNb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZpY2VP
YnNlcnZlciBzdG9wXSk6CisgICAgICAgIERyaXZlLWJ5OiB1c2UgYSBjb3VudCBvZiBgc3RhcnRg
L2BzdG9wYCBpbnN0ZWFkIG9mIGBXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3Nlc2Agc2l6ZS4K
KworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTAtMDkgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRh
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvbW90ZSBXS1dlYlZpZXcgbWVkaWEgcGxheWJhY2sg
U1BJIHRvIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA2YjI4M2VmMjQ1OGQ4MzY1OTM0NGJlOWQ1NDU5MGNj
MmUxNzZlMjA0Li42ZGU3ODVlZWI4ZjYwZDVlZWRiMDYxMzM4OTllNGU5YTMyNTA1ZmU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtODgsNiArODgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgSEFWRShVSUtJVF9X
SVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKICAgICBlbmNvZGVyIDw8IGhhc01v
dXNlRGV2aWNlOwogI2VuZGlmCisgICAgZW5jb2RlciA8PCBoYXNTdHlsdXNEZXZpY2U7CiAgICAg
ZW5jb2RlciA8PCBkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbDsKICAgICBlbmNvZGVyIDw8
IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTMwMSw2
ICszMDIsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNTdHlsdXNEZXZpY2Up
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5iYWNrRm9yd2FyZENhY2hlQ2Fw
YWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IDNkODZhNzRiMWQzZWU1MTAxNTM0YWQzOTI1NjIzMjIxZWZjM2Vj
YWEuLjQ1MTk2YmQ2ODIyNzhiNWRhOWUxZDRmYzQ1MTA3OGQxYjRhODJmMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTEyMCw2ICsxMjAsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKICAgICBi
b29sIGhhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKICNlbmRpZgorICAgIGJvb2wgaGFzU3R5bHVz
RGV2aWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VHUFVQ
cm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRl
eCA3NzY5MGQwZGQ1MjcyYTA1ZTJhNzg0MjIyMThhMzViNDIyYjU3NTVhLi4xNjliMjk1NzJjNWY0
NWYxOWFmODQ5YWFjNTQ0YTY4NWU1NmU1MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00
NjYsNiArNDY2LDcgQEAgVUlQcm9jZXNzL2lvcy9XS1Bhc3N3b3JkVmlldy5tbQogVUlQcm9jZXNz
L2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3
Lm1tCiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQorVUlQcm9jZXNzL2lvcy9XS1N0eWx1
c0RldmljZU9ic2VydmVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLU3ludGhldGljRmxhZ3NDaGFuZ2Vk
V2ViRXZlbnQubW0KIFVJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXpl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS1N5c3RlbVByZXZpZXdWaWV3Lm1tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBj
MDFmMTgxNTNmMmQ4MDM1NDgwMTEzZjRhNjA4YmQ0NDllMjg4ZTFhLi4zNTZlYzliNzBlOTZhOTk3
MTYwNTEwNzZjNmQ5MGY2YWNjMzU2ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNp
bXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgor
I2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAiV2ViQmFja0Zvcndh
cmRDYWNoZS5oIgogI2ltcG9ydCAiV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCiAjaW1wb3J0
ICJXZWJQYWdlR3JvdXAuaCIKQEAgLTUxNiw2ICs1MTcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9T
KQogICAgIHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZl
ciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOwogI2VuZGlmCisKKyNpZiBIQVZFKFBF
TkNJTEtJVF9URVhUX0lOUFVUKQorICAgIHBhcmFtZXRlcnMuaGFzU3R5bHVzRGV2aWNlID0gW1tX
S1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNTdHlsdXNEZXZpY2VdOwor
I2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMGVmN2Q4
OTg1OGVkNDkxMDdlYWQ5MzgyMzJmZTI2M2VkZGQyMzFhNi4uNzZjY2UwY2IwYmNiMGY3MzcwYzQ4
M2NmOGEzNDJiZTRjYjIzNmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCkBAIC0xMTQ3LDYgKzExNDcsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OndpbmRvd1NlcnZlckNvbm5lY3Rpb25TdGF0ZUNoYW5nZWQoKQogICAgICAgICBwYWdlLT5hY3Rp
dml0eVN0YXRlRGlkQ2hhbmdlKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKTsKIH0KIAor
dm9pZCBXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0RldmljZUNoYW5nZWQoYm9vbCBo
YXNTdHlsdXNEZXZpY2UpCit7CisgICAgZm9yIChhdXRvKiB3ZWJQcm9jZXNzUHJveHkgOiBXZWJQ
cm9jZXNzUHJveHk6OmFsbFByb2Nlc3NlcygpLnZhbHVlcygpKQorICAgICAgICB3ZWJQcm9jZXNz
UHJveHktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc1N0eWx1c0RldmljZShoYXNT
dHlsdXNEZXZpY2UpLCAwKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0
ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiBkYXRhVHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNjQwZDg5MmFlNzk0ZmVhMTg1
MWEwNjYxNDg5MjA2ZTU2MmJkZjFiMS4uN2Q4MDEyYTE3OWIxYzQ1OGYwODQ2ZmM4Y2MxNTE2ZmYw
N2E2OGJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTIxNSw2ICsyMTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbm90aWZ5SGFzTW91c2VE
ZXZpY2VDaGFuZ2VkKCk7CiAjZW5kaWYKIAorICAgIHN0YXRpYyB2b2lkIG5vdGlmeUhhc1N0eWx1
c0RldmljZUNoYW5nZWQoYm9vbCBoYXNTdHlsdXNEZXZpY2UpOworCiAgICAgdm9pZCBmZXRjaFdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxs
VGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KaW5kZXggNDg5MWJkNWM4
NWIxNmQ4OWFiMjA1NWE2YmQzY2U3YTViZmQ3ZDIyZS4uZTQyODVhOGM3ODNmNDczODAwMDM4MGFi
MDEwZTcwZWNlNDVmNTk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKIEBpbXBsZW1l
bnRhdGlvbiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgewogICAgIEJPT0wgX2hhc01vdXNlRGV2aWNl
OworICAgIHNpemVfdCBfc3RhcnRDb3VudDsKICAgICBSZXRhaW5QdHI8aWQ8QlNJbnZhbGlkYXRh
YmxlPj4gX3Rva2VuOwogfQogCkBAIC00Niw3ICs0Nyw3IEBAICsgKFdLTW91c2VEZXZpY2VPYnNl
cnZlciAqKXNoYXJlZEluc3RhbmNlCiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIFtzZWxmIHN0
b3BdOworICAgIFtfdG9rZW4gaW52YWxpZGF0ZV07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9
CkBAIC01NSwxNyArNTYsMjAgQEAgLSAodm9pZClkZWFsbG9jCiAKIC0gKHZvaWQpc3RhcnQKIHsK
LSAgICBpZiAoX3Rva2VuKQorICAgIGlmICgrK19zdGFydENvdW50ID4gMSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgQVNTRVJUKCFfdG9rZW4pOwogICAgIF90b2tlbiA9IFtbQktTTW91c2VQb2lu
dGVyU2VydmljZSBzaGFyZWRJbnN0YW5jZV0gYWRkUG9pbnRlckRldmljZU9ic2VydmVyOnNlbGZd
OwogfQogCiAtICh2b2lkKXN0b3AKIHsKLSAgICBpZiAoIV90b2tlbikKKyAgICBBU1NFUlQoX3N0
YXJ0Q291bnQgPiAxKTsKKyAgICBpZiAoLS1fc3RhcnRDb3VudCkKICAgICAgICAgcmV0dXJuOwog
CisgICAgQVNTRVJUKF90b2tlbik7CiAgICAgW190b2tlbiBpbnZhbGlkYXRlXTsKICAgICBfdG9r
ZW4gPSBuaWw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tT
dHlsdXNEZXZpY2VPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5
bHVzRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODk4ZjAyYjdkODFjMzBkN2FiOGI3YWM5
OGRhNGUzM2VlN2ViYzNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisKK0BpbnRlcmZhY2UgV0tTdHls
dXNEZXZpY2VPYnNlcnZlciA6IE5TT2JqZWN0CisKKysgKFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIg
KilzaGFyZWRJbnN0YW5jZTsKKworLSAodm9pZClzdGFydDsKKy0gKHZvaWQpc3RvcDsKKworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGhhc1N0eWx1c0RldmljZTsKKworQGVu
ZAorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTFlZjdhYmI1Mjg4ZmYyZmE2MzhmZWQ4NGQ5M2NiMjNlZjM0ODAzZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2Vy
dmVyLm1tCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJXS1N0eWx1c0RldmljZU9ic2VydmVyLmgiCisKKyNpZiBIQVZFKFBFTkNJTEtJ
VF9URVhUX0lOUFVUKQorCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFVJ
S2l0L1VJU2NyaWJibGVJbnRlcmFjdGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgor
I2ltcG9ydCA8d3RmL1NlY29uZHMuaD4KKworc3RhdGljIFNlY29uZHMgY2hhbmdlVGltZUludGVy
dmFsIHsgMTBfbWluIH07CisKK0BpbXBsZW1lbnRhdGlvbiBXS1N0eWx1c0RldmljZU9ic2VydmVy
IHsKKyAgICBCT09MIF9oYXNTdHlsdXNEZXZpY2U7CisgICAgc2l6ZV90IF9zdGFydENvdW50Owor
ICAgIFJldGFpblB0cjxOU1RpbWVyPiBfY2hhbmdlVGltZXI7Cit9CisKKysgKFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZQoreworICAgIHN0YXRpYyBXS1N0eWx1c0Rldmlj
ZU9ic2VydmVyICppbnN0YW5jZTsKKyAgICBpZiAoIWluc3RhbmNlKQorICAgICAgICBpbnN0YW5j
ZSA9IFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuIGlu
c3RhbmNlOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2hhc1N0eWx1c0Rldmlj
ZSA9IFVJU2NyaWJibGVJbnRlcmFjdGlvbi5pc1BlbmNpbElucHV0RXhwZWN0ZWQ7CisKKyAgICBp
ZiAoTlNOdW1iZXIgKmNoYW5nZVRpbWVJbnRlcnZhbE92ZXJyaWRlID0gW05TVXNlckRlZmF1bHRz
LnN0YW5kYXJkVXNlckRlZmF1bHRzIG9iamVjdEZvcktleTpAIldLU3R5bHVzRGV2aWNlT2JzZXJ2
ZXJDaGFuZ2VUaW1lSW50ZXJ2YWwiXSkgeworICAgICAgICBjaGFuZ2VUaW1lSW50ZXJ2YWwgPSBT
ZWNvbmRzKFtjaGFuZ2VUaW1lSW50ZXJ2YWxPdmVycmlkZSBkb3VibGVWYWx1ZV0pOworICAgICAg
ICBXVEZMb2dBbHdheXMoIldhcm5pbmc6IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgY2hhbmdlVGlt
ZUludGVydmFsIHdhcyBvdmVycmlkZW4gdmlhIHVzZXIgZGVmYXVsdHMgYW5kIGlzIG5vdyAlZyBz
ZWNvbmRzIiwgY2hhbmdlVGltZUludGVydmFsLnNlY29uZHMoKSk7CisgICAgfQorCisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGNsYXNzXSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElu
cHV0RXhwZWN0ZWQiXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworI3ByYWdtYSBtYXJr
IC0gU3RhdGUKKworLSAodm9pZClzZXRIYXNTdHlsdXNEZXZpY2U6KEJPT0wpaGFzU3R5bHVzRGV2
aWNlCit7CisgICAgaWYgKGhhc1N0eWx1c0RldmljZSAhPSBfaGFzU3R5bHVzRGV2aWNlKSB7Cisg
ICAgICAgIF9oYXNTdHlsdXNEZXZpY2UgPSBoYXNTdHlsdXNEZXZpY2U7CisKKyAgICAgICAgV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1c0RldmljZUNoYW5nZWQoX2hhc1N0
eWx1c0RldmljZSk7CisgICAgfQorCisgICAgW19jaGFuZ2VUaW1lciBpbnZhbGlkYXRlXTsKKyAg
ICBfY2hhbmdlVGltZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQpc3RhcnQKK3sKKyAgICBpZiAoKytf
c3RhcnRDb3VudCA+IDEpCisgICAgICAgIHJldHVybjsKKworICAgIFtbVUlTY3JpYmJsZUludGVy
YWN0aW9uIGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0
RXhwZWN0ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4
dDpuaWxdOworfQorCistICh2b2lkKXN0b3AKK3sKKyAgICBBU1NFUlQoX3N0YXJ0Q291bnQgPiAx
KTsKKyAgICBpZiAoLS1fc3RhcnRDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgW1tVSVNj
cmliYmxlSW50ZXJhY3Rpb24gY2xhc3NdIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpA
ImlzUGVuY2lsSW5wdXRFeHBlY3RlZCJdOworfQorCisjcHJhZ21hIG1hcmsgLSBpc1BlbmNpbElu
cHV0RXhwZWN0ZWQgS1ZPCisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJp
bmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKilj
aGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBBU1NFUlQoW2tleVBhdGggaXNF
cXVhbFRvU3RyaW5nOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl0pOworICAgIEFTU0VSVChvYmpl
Y3QgPT0gW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10pOworCisgICAgaWYgKFVJU2NyaWJi
bGVJbnRlcmFjdGlvbi5pc1BlbmNpbElucHV0RXhwZWN0ZWQpCisgICAgICAgIHNlbGYuaGFzU3R5
bHVzRGV2aWNlID0gWUVTOworICAgIGVsc2UKKyAgICAgICAgW3NlbGYgc3RhcnRDaGFuZ2VUaW1l
cjpjaGFuZ2VUaW1lSW50ZXJ2YWwuc2Vjb25kcygpXTsKK30KKworI3ByYWdtYSBtYXJrIC0gaXNQ
ZW5jaWxJbnB1dEV4cGVjdGVkIFRpbWVyCisKKy0gKHZvaWQpc3RhcnRDaGFuZ2VUaW1lcjooTlNU
aW1lSW50ZXJ2YWwpdGltZUludGVydmFsCit7CisgICAgW19jaGFuZ2VUaW1lciBpbnZhbGlkYXRl
XTsKKyAgICBfY2hhbmdlVGltZXIgPSBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50
ZXJ2YWw6dGltZUludGVydmFsIHRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihjaGFuZ2VU
aW1lckZpcmVkOikgdXNlckluZm86bmlsIHJlcGVhdHM6Tk9dOworfQorCistICh2b2lkKWNoYW5n
ZVRpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgoreworICAgIHNlbGYuaGFzU3R5bHVzRGV2aWNl
ID0gTk87Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5t
bQppbmRleCBjYTRlYTIwMzYwODI5YTFlMTE3MDg3MGQ3ZmM0NDMwMDI0ZmJhNzZiLi4zMTJhNGI0
MDg1MWU0MDVjOGFkYjI3MTU0ZWE5YWYyNzdlMTk2ODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXli
b2FyZEFjY2Vzc1dhdGNoZXIuaCIKICNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgor
I2ltcG9ydCAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzgsMTYgKzM5LDIwIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgp
CiB7CiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykK
LSAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS5zaXplKCkgPT0gMSkKLSAg
ICAgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0YXJ0XTsKKyAg
ICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RhcnRdOworI2VuZGlm
CisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKyAgICBbW1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0YXJ0XTsKICNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQotICAgIGlmIChXZWJQcm9jZXNzUHJveHk6OmFsbFBy
b2Nlc3NlcygpLmlzRW1wdHkoKSkKLSAgICAgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdIHN0b3BdOworICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZElu
c3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisg
ICAgW1tXS1N0eWx1c0RldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKICNlbmRp
ZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5ODQzNGNiYWMwYzJmNjFhMmQ2ZTI4MDcxNmVjZDcyODgyODg5MjgyLi4yZTBkN2Fk
Y2JiYzFmYWZkYzlkNWNkYTY2MjNlZjMyN2ZjMGRmMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzODUsNiArMTM4NSw3IEBACiAJ
CTkzRTZBNEVFMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U2QTRFRDFCQzVERDM5MDBG
OEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBz
aG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk5
NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1MjQxNEU5
MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CisJCTk1OTM2NzVGMjUy
RTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAg
LyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICovOyB9OwogCQk5NUM5NDM5MTI1MjNDMEQwMDA1
NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmgg
Ki87IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dh
YmxlSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJs
ZUluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFFNTIzQTk1ODc1MDAwMEIwNkEgLyogQVBJ
RGVidWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICov
OyB9OwpAQCAtNDQ2MSw2ICs0NDYyLDggQEAKIAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8q
IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9i
c2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTkzNjc1RDI1MkU1RTMwMDBEM0Yw
QTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXS1N0eWx1c0RldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTkzNjc1RTI1MkU1
RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGgg
PSBpb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQm9hcmRTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRl
YnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
X1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRGVidWdnYWJsZUluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwODcsNiArNzA5MCw4IEBACiAJCQkJQTEw
NDZFQTAyMDc5MjYzMTAwRjBDNUQ4IC8qIFdLUERGVmlldy5tbSAqLywKIAkJCQkwRkNCNEU0NDE4
QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3LmggKi8sCiAJCQkJMEZDQjRFNDUxOEJCRTA0
NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSAqLywKKwkJCQk5NTkzNjc1RDI1MkU1RTMwMDBE
M0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICovLAorCQkJCTk1OTM2NzVFMjUyRTVF
MzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLm1tICovLAogCQkJCUNFNUI0Qzg2
MjFCNzNEODcwMDIyRTY0RiAvKiBXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmggKi8s
CiAJCQkJQ0U1QjRDODcyMUI3M0Q4NzAwMjJFNjRGIC8qIFdLU3ludGhldGljRmxhZ3NDaGFuZ2Vk
V2ViRXZlbnQubW0gKi8sCiAJCQkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhl
dGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKQEAgLTExODEyLDYgKzExODE3LDcgQEAKIAkJ
CQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NTkzNjc1RjI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1QjRDODgyMUI3M0Q4NzAwMjJFNjRG
IC8qIFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI2RjEwQkU4MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25p
emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZCOEI2NDIwNTRCNTU4MDBCRDRBNjIgLyogV0tT
eXN0ZW1QcmV2aWV3Vmlldy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGU4NTVlNWZlZGM0NWQx
ZTliMmU2YWRkZDJmM2IwNDhiYzc5MGI4MjUuLmExNzZlMWE5ZWQ5YmQ2NWE4MTg1NjVkYTc1YzMx
YmVlNTk1NmQ2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MDE4LDcgKzQwMTgsNyBAQCBPcHRpb25hbDxQb2ludGVy
Q2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZQcmltYXJ5
UG9pbnRpbgogT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0CiB7
CiAgICAgT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHJlc3VsdChQb2ludGVyQ2hh
cmFjdGVyaXN0aWNzOjpDb2Fyc2UpOwotICAgIGlmIChoYXNNb3VzZURldmljZSgpKQorICAgIGlm
IChoYXNNb3VzZURldmljZSgpIHx8IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhhc1N0eWx1c0Rl
dmljZSgpKQogICAgICAgICByZXN1bHQuYWRkKFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmUp
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggNTllMDdiMDgwMWFmZjk3MGRmYzZhM2FlNTQxMDNmZDlmNzVhMGZkYi4uYzA4
MzJmMzI4ZGM1MWM1MGQzYmM4YmIyNDVkNmY3NWYwZGM2Zjg5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDA2LDYgKzQwNiw4IEBAIHZvaWQgV2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMpCiAKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBwYXJhbWV0ZXJz
LmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiAKKyAgICBtX2hhc1N0eWx1c0RldmljZSA9IHBh
cmFtZXRlcnMuaGFzU3R5bHVzRGV2aWNlOworCiAgICAgZm9yIChhdXRvJiBzY2hlbWUgOiBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNFbXB0eURvY3VtZW50KQogICAgICAgICByZWdp
c3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChzY2hlbWUpOwogCkBAIC0xMDY0LDYgKzEwNjYs
MTYgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2
aWNlKQogCiAjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRG
T1JNKElPUykKIAordm9pZCBXZWJQcm9jZXNzOjpzZXRIYXNTdHlsdXNEZXZpY2UoYm9vbCBoYXNT
dHlsdXNEZXZpY2UpCit7CisgICAgaWYgKGhhc1N0eWx1c0RldmljZSA9PSBtX2hhc1N0eWx1c0Rl
dmljZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9oYXNTdHlsdXNEZXZpY2UgPSBoYXNTdHls
dXNEZXZpY2U7CisKKyAgICBQYWdlOjp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxD
aGFuZ2VJbkVudmlyb25tZW50KCk7Cit9CisKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAogdm9pZCBX
ZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYktpdDo6R2FtZXBh
ZERhdGE+JiBnYW1lcGFkRGF0YXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApp
bmRleCBmM2UxOWFiNmFiMzJiZDBlYzY0Y2Q3Mjc3OTNmNGJjZDNlNGQ0OGY0Li4xZmQ5ZWRhZjkw
MTM5OWM0ZjczNWJlOTgyZmVmOTdiNzhhZDM5M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTE5Miw2ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNN
b3VzZURldmljZShib29sKTsKICNlbmRpZgogCisgICAgYm9vbCBoYXNTdHlsdXNEZXZpY2UoKSBj
b25zdCB7IHJldHVybiBtX2hhc1N0eWx1c0RldmljZTsgfQorICAgIHZvaWQgc2V0SGFzU3R5bHVz
RGV2aWNlKGJvb2wpOworCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZyYW1lKj4gd2ViRnJhbWVzKCkgY29uc3Q7
CiAgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1l
Kik7CkBAIC01NjMsNiArNTY2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzTW91c2VEZXZp
Y2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyAgICBib29sIG1faGFzU3R5bHVzRGV2aWNlIHsgZmFs
c2UgfTsKKwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+
IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5p
cXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQ
cm9jZXNzU3VwcGxlbWVudE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMzcwMDE3OTk3OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3
NTU2NGI5ZC4uMjQ5NmM5ZGFjMTMyZDhkM2NjNDFmZDQ1MTU2MDhmZGY3OTBjYjU2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTU2
LDYgKzU2LDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZD
b3VudGVkIHsKICAgICBTZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQogI2Vu
ZGlmCiAKKyAgICBTZXRIYXNTdHlsdXNEZXZpY2UoYm9vbCBoYXNTdHlsdXNEZXZpY2UpCisKICAg
ICAjIFBsdWctaW5zLgogICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMy
X3QgaGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUpCiAgICAgUmVzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMoSGFzaE1hcDx1aW50MzJfdCxXYWxsVGltZT4gaGFzaGVzKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJjOTQwNmFhNTc4
ZjYwYWYwY2RlMzI0ZmZlMWEzOWJhZDYyNzk1ZmIuLmI4MjYzNjE2YTgwOWQyYWY1NmI0MjlmYjVj
ODQ3YmRhYzhhNjRiNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBx
dWVyeSBmYWxzZSBvbiBpUGFkL1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbTogQWRkZWQu
CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0luaXRpYWxseURpc2Nvbm5lY3RlZCk6
CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0luaXRpYWxseUNvbm5lY3RlZCk6Cisg
ICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xhdGVyRGlzY29ubmVjdGVkKToKKyAgICAg
ICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVzTGF0ZXJDb25uZWN0ZWQpOgorICAgICAgICAoaU9T
U3R5bHVzU3VwcG9ydC5TdHlsdXNEaXNjb25uZWN0ZWRUaW1lb3V0KToKKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDIwLTEwLTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTjogW01hYyBSZWxlYXNlXSAyIENvb2tpZSBBUEkgYXJlIGZhaWxp
bmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGMzOWVhMTgwYjViZWU0MjM0NDM5OTA0MWE1
ZTYxMGI2NGY1YWU2Ni4uNDM5NGM5NzZiZmIxZjJkNTgxNTc4ODdiM2Q2ZjZkZWU1OTUyNjE2NiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgyOSw2ICs4MjksNyBAQAogCQk5M0Y1NkRBNzFF
NUY5MTc0MDAzRURFODQgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODNFMDMzMUQwQTVGMjcwMEZFQkNGMyAvKiBs
aWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5M0Y1NkRBOTFFNUY5MTlEMDAzRURFODQgLyogV0tX
ZWJWaWV3U25hcHNob3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0g
Ki87IH07CiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLzsgfTsKKwkJOTUwRTRDQzEy
NTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyog
aU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0MzgyIC8q
IE1lZGlhRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLzsg
fTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNG
RkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CiAJCTk5ODRGQUNF
MUNGRkIwOTAwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0QxQ0ZGQjAzODAwOEQx
OThDIC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLzsgfTsKQEAgLTI0MzksNiArMjQ0MCw3IEBACiAJ
CTkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1NuYXBzaG90Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2QjE0REM4RTREMDBDODRBOTkgLyog
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1l
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjdFODZFMTREQzhFNUIwMEM4
NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IGlPU1N0eWx1c1N1cHBvcnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBN
ZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0Ex
Q0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRhYmxl
LWJvZHkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJlZGl0YWJsZS1ib2R5Lmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI3Miw2ICszMjc0LDcgQEAKIAkJ
CQlDRUQ3M0QzNTI0NkYyMDRDMDBEQUUzMjcgLyogSW5zZXJ0VGV4dEFsdGVybmF0aXZlcy5tbSAq
LywKIAkJCQkyREIwMjMyRTFFNEU4NzE4MDA3MDcxMjMgLyogSW50ZXJhY3Rpb25EZWFkbG9ja0Fm
dGVyQ3Jhc2gubW0gKi8sCiAJCQkJMkQxMTZFMTIyM0UwQ0IzOTAwMjA4OTAwIC8qIGlPU01vdXNl
U3VwcG9ydC5tbSAqLywKKwkJCQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVz
U3VwcG9ydC5tbSAqLywKIAkJCQk5QjZEOUZGODI1MkVGREU1MDBBNTE2NDAgLyogSVBDVGVzdGlu
Z0FQSS5tbSAqLywKIAkJCQk1QzY5QkRENDFGODJBN0VCMDAwRjRGNEIgLyogSmF2YVNjcmlwdER1
cmluZ05hdmlnYXRpb24ubW0gKi8sCiAJCQkJNUMwMTYwQzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJ
VEVuYWJsZWQubW0gKi8sCkBAIC01MjI5LDYgKzUyMzIsNyBAQAogCQkJCTdBOTA5QTgyMUQ4Nzc0
ODAwMDdFMTBGOCAvKiBJbnRSZWN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlB
ODMxRDg3NzQ4MDAwN0UxMEY4IC8qIEludFNpemVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDExNkUxMzIzRTBDQjNBMDAyMDg5MDAgLyogaU9TTW91c2VTdXBwb3J0Lm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjZEOUZGOTI1MkVGREU1MDBBNTE2NDAgLyogSVBDVGVz
dGluZ0FQSS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODkzMURENTk5QkQwMEIwMDMyOCAv
KiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1RkY0
OUYyMTYyRTk0MzAwNEJEODZGIC8qIElTT0JveC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9y
dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TU3R5bHVzU3Vw
cG9ydC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NTU5OTY3ZTA5YWI3Y2I0YjE0ZGUwMzY2NWJkZmY2OTc5MTI5
YWJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pT1NTdHlsdXNTdXBwb3J0Lm1tCkBAIC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3
LmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisKKyNpZiBIQVZFKFBF
TkNJTEtJVF9URVhUX0lOUFVUKQorCitAaW50ZXJmYWNlIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIK
KysgKFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGhhc1N0eWx1c0RldmljZTsKKy0gKHZvaWQpc3RhcnQ7CistICh2b2lk
KXN0YXJ0Q2hhbmdlVGltZXI6KE5TVGltZUludGVydmFsKXRpbWVJbnRlcnZhbDsKK0BlbmQKKwor
VEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNJbml0aWFsbHlEaXNjb25uZWN0ZWQpCit7Cisg
ICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFz
c0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOwor
ICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgc3R5bHVzRGV2aWNlT2JzZXJ2
ZXIuaGFzU3R5bHVzRGV2aWNlID0gTk87CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07
CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVy
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2lu
dGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjog
Y29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6
QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHls
dXNJbml0aWFsbHlDb25uZWN0ZWQpCit7CisgICAgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqc3R5
bHVzRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0eWx1c0RldmljZU9i
c2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworICAgIFtzdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFy
dF07CisgICAgc3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaGFzU3R5bHVzRGV2aWNlID0gWUVTOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUi
XSk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
cG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKwor
VEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNMYXRlckRpc2Nvbm5lY3RlZCkKK3sKKyAgICBX
S1N0eWx1c0RldmljZU9ic2VydmVyICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJv
bVN0cmluZyhAIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAg
W3N0eWx1c0RldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBzdHlsdXNEZXZpY2VPYnNlcnZlci5o
YXNTdHlsdXNEZXZpY2UgPSBZRVM7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisK
KyAgICBzdHlsdXNEZXZpY2VPYnNlcnZlci5oYXNTdHlsdXNEZXZpY2UgPSBOTzsKKworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUi
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRl
cjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7
CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2lu
dGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0xhdGVyQ29u
bmVjdGVkKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2Vy
dmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZpY2VPYnNlcnZlciIpIHNoYXJl
ZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIHN0eWx1
c0RldmljZU9ic2VydmVyLmhhc1N0eWx1c0RldmljZSA9IE5POworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIiJdOworCisgICAgc3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaGFzU3R5bHVzRGV2aWNl
ID0gWUVTOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAi
cG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUi
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0
LCBTdHlsdXNEaXNjb25uZWN0ZWRUaW1lb3V0RmlyZSkKK3sKKyAgICBXS1N0eWx1c0RldmljZU9i
c2VydmVyICpzdHlsdXNEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLU3R5
bHVzRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW3N0eWx1c0RldmljZU9i
c2VydmVyIHN0YXJ0XTsKKyAgICBzdHlsdXNEZXZpY2VPYnNlcnZlci5oYXNTdHlsdXNEZXZpY2Ug
PSBZRVM7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbc3R5bHVzRGV2
aWNlT2JzZXJ2ZXIgc3RhcnRDaGFuZ2VUaW1lcjowLjAxXTsKKworICAgIF9fYmxvY2sgQk9PTCBk
b25lID0gZmFsc2U7CisgICAgW05TVGltZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFs
OjAuMDUgcmVwZWF0czpOTyBibG9jazpeKE5TVGltZXIgKnRpbWVyKSB7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0p
OworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVy
OiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
InBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29h
cnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJh
bnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChpT1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNE
aXNjb25uZWN0ZWRUaW1lb3V0Q2FuY2VsKQoreworICAgIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIg
KnN0eWx1c0RldmljZU9ic2VydmVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIg
c3RhcnRdOworICAgIHN0eWx1c0RldmljZU9ic2VydmVyLmhhc1N0eWx1c0RldmljZSA9IFlFUzsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFtzdHlsdXNEZXZpY2VPYnNl
cnZlciBzdGFydENoYW5nZVRpbWVyOjAuMDFdOworCisgICAgc3R5bHVzRGV2aWNlT2JzZXJ2ZXIu
aGFzU3R5bHVzRGV2aWNlID0gWUVTOworCisgICAgX19ibG9jayBCT09MIGRvbmUgPSBmYWxzZTsK
KyAgICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6MC4wNSByZXBlYXRz
Ok5PIGJsb2NrOl4oTlNUaW1lciAqdGltZXIpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNU
X0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7Cisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29h
cnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJw
b2ludGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1
YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZp
bmUiXSk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411184</attachid>
            <date>2020-10-12 18:07:32 -0700</date>
            <delta_ts>2020-10-12 19:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212580-20201012180732.patch</filename>
            <type>text/plain</type>
            <size>38863</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZWM0MDU5MjY2ODBmODk0NDUwZWM4YjJiMWRlM2U2YjJjNTAwMjA0OS4uNDY3
OTkzZTczMjRiYTNlOTkyNzcyODFlNjQ0YTcwZTZhMjVlNTc3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MyBAQAorMjAyMC0xMC0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NTICJhbnktcG9pbnRlcjpmaW5lIiBtZWRpYSBxdWVyeSBmYWxzZSBvbiBpUGFk
L1BlbmNpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzgxMzI4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVXNlIGArW1VJU2NyaWJibGVJbnRlcmFj
dGlvbiBpc1BlbmNpbElucHV0RXhwZWN0ZWRdYCBhcyBhIHByb3h5IGZvciB0aGUgcHJlc2VuY2Ug
b2Ygc3R5bHVzCisgICAgICAgIGRldmljZXMgYXMgdGhlcmUncyBubyB3YXkgb2YgZGlyZWN0bHkg
cXVlcnlpbmcgZm9yIGNvbm5lY3RlZCBzdHlsdXMgZGV2aWNlcyAoZXNwZWNpYWxseSBpZgorICAg
ICAgICB0aGVyZSBpcyBubyBhY3RpdmUgY29ubmVjdGlvbikuIFdoZW4gdGhlIHZhbHVlIGlzIGNo
YW5nZWQgdG8gYFlFU2AsIG5vdGlmeSBhbGwgV2ViUHJvY2VzcworICAgICAgICBpbW1lZGlhdGVs
eS4gV2hlbiB0aGUgdmFsdWUgaXMgY2hhbmdlZCB0byBgTk9gLCB1c2UgYW4gYE5TVGltZXJgIHRv
IGRlbGF5IG5vdGlmeWluZyBhbGwKKyAgICAgICAgV2ViUHJvY2VzcyBmb3IgMTBtaW4gaW4gY2Fz
ZSB0aGUgdXNlciBzdGFydHMgdXNpbmcgdGhlaXIgc3R5bHVzIGFnYWluLgorCisgICAgICAgIEZv
ciBsaXZlLW9uL3R3ZWFraW5nIHB1cnBvc2VzIHRoaXMgMTBtaW4gdGltZW91dCBjYW4gYmUgYWRq
dXN0ZWQgYmVmb3JlIHRoZSBVSVByb2Nlc3MgaXMKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRoZSBg
V0tTdHlsdXNEZXZpY2VPYnNlcnZlckNoYW5nZVRpbWVJbnRlcnZhbGAga2V5IGluIGBOU1VzZXJE
ZWZhdWx0c2AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2Vy
dmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKCtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGluaXRdKToKKyAg
ICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzZXRIYXNTdHlsdXNEZXZpY2U6XSk6Cisg
ICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV0tT
dHlsdXNEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToK
KyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzdGFydENoYW5nZVRpbWVyOl0pOgor
ICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIGNoYW5nZVRpbWVyRmlyZWQ6XSk6Cisg
ICAgICAgIFVzZSBPYmpDIEtWTyB0byBsaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYCtbVUlTY3JpYmJs
ZUludGVyYWN0aW9uIGlzUGVuY2lsSW5wdXRFeHBlY3RlZF1gLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc1N0eWx1
c0RldmljZUNoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nl
c3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
RGVzdHJveSk6CisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNlcnZl
cmAgdG8gc3RhcnQgbGlzdGVuaW5nIHdoZW4gY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3MuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICBVc2UgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tTdHlsdXNEZXZpY2VPYnNl
cnZlcmAgd2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzCisgICAgICAgIGluc3RlYWQgb2Ygc2VuZGlu
ZyBhIGBTZXRIYXNTdHlsdXNEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdl
YlByb2Nlc3MgaXMKKyAgICAgICAgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzU3R5bHVzRGV2aWNlIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6c2V0SGFzU3R5bHVzRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRlIHN0
eWxlIChpbmNsdWRpbmcgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgc3R5bHVzIGRldmljZXMgY2hh
bmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpoYXNTdHlsdXNEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2VzIGNvbnN0KToKKyAgICAgICAgSW5jbHVkZSBgZmluZWAgd2hlbiB0aGVyZSBpcyBhIHN0
eWx1cyBkZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNl
cnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1t
OgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1b
V0tNb3VzZURldmljZU9ic2VydmVyIHN0b3BdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9i
c2VydmVyIGRlYWxsb2NdKTogUmVtb3ZlZC4KKyAgICAgICAgRHJpdmUtYnk6IHVzZSBhIGNvdW50
IG9mIGBzdGFydGAvYHN0b3BgIGluc3RlYWQgb2YgYFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vz
c2VzYCBzaXplLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0xMiAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc106
IFJlcGxhY2UgIkltYWdlQnVmZmVySWRlbnRpZmllciIgYnkgYSBnZW5lcmljIGlkZW50aWZpZXIg
bmFtZWQgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNmIyODNlZjI0
NThkODM2NTkzNDRiZTlkNTQ1OTBjYzJlMTc2ZTIwNC4uNmRlNzg1ZWViOGY2MGQ1ZWVkYjA2MTMz
ODk5ZTRlOWEzMjUwNWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg4LDYgKzg4LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1Mp
CiAgICAgZW5jb2RlciA8PCBoYXNNb3VzZURldmljZTsKICNlbmRpZgorICAgIGVuY29kZXIgPDwg
aGFzU3R5bHVzRGV2aWNlOwogICAgIGVuY29kZXIgPDwgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50
ZXJ2YWw7CiAgICAgZW5jb2RlciA8PCBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCkBAIC0zMDEsNiArMzAyLDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuaGFzU3R5bHVzRGV2aWNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMuYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzZDg2YTc0YjFkM2VlNTEw
MTUzNGFkMzkyNTYyMzIyMWVmYzNlY2FhLi40NTE5NmJkNjgyMjc4YjVkYTllMWQ0ZmM0NTEwNzhk
MWI0YTgyZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMjAsNiArMTIwLDcgQEAgc3RydWN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgewogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAm
JiBQTEFURk9STShJT1MpCiAgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CiAjZW5k
aWYKKyAgICBib29sIGhhc1N0eWx1c0RldmljZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtZW1vcnlD
YWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNzc2OTBkMGRkNTI3MmEwNWUyYTc4NDIyMjE4YTM1YjQy
MmI1NzU1YS4uMTY5YjI5NTcyYzVmNDVmMTlhZjg0OWFhYzU0NGE2ODVlNTZlNTE2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNDY2LDYgKzQ2Niw3IEBAIFVJUHJvY2Vzcy9pb3MvV0tQYXNz
d29yZFZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCiBV
SVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQogVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0K
K1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9X
S1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lm1tCiBVSVByb2Nlc3MvaW9zL1dLU3ludGhl
dGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tTeXN0ZW1QcmV2aWV3
Vmlldy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0KaW5kZXggYzAxZjE4MTUzZjJkODAzNTQ4MDExM2Y0YTYwOGJkNDQ5ZTI4
OGUxYS4uMzU2ZWM5YjcwZTk2YTk5NzE2MDUxMDc2YzZkOTBmNmFjYzM1Njg5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBv
cnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKyNpbXBvcnQgIldLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCIK
ICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9yeVByZXNz
dXJlSGFuZGxlci5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC01MTYsNiArNTE3LDEw
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29u
c3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpICYmIFBMQVRGT1JNKElPUykKICAgICBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlID0g
W1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc01vdXNlRGV2aWNlXTsK
ICNlbmRpZgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKyAgICBwYXJhbWV0ZXJz
Lmhhc1N0eWx1c0RldmljZSA9IFtbV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5j
ZV0gaGFzU3R5bHVzRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDBlZjdkODk4NThlZDQ5MTA3ZWFkOTM4MjMyZmUyNjNlZGRkMjMxYTYu
Ljc2Y2NlMGNiMGJjYjBmNzM3MGM0ODNjZjhhMzQyYmU0Y2IyMzZjNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTE0Nyw2ICsxMTQ3LDEyIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp3aW5kb3dTZXJ2ZXJDb25uZWN0aW9uU3RhdGVDaGFuZ2Vk
KCkKICAgICAgICAgcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0YXRlOjpJ
c1Zpc3VhbGx5SWRsZSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNTdHls
dXNEZXZpY2VDaGFuZ2VkKGJvb2wgaGFzU3R5bHVzRGV2aWNlKQoreworICAgIGZvciAoYXV0byog
d2ViUHJvY2Vzc1Byb3h5IDogV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS52YWx1ZXMo
KSkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpT
ZXRIYXNTdHlsdXNEZXZpY2UoaGFzU3R5bHVzRGV2aWNlKSwgMCk7Cit9CisKIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2Vu
ZE1lc3NhZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IDY0MGQ4OTJhZTc5NGZlYTE4NTFhMDY2MTQ4OTIwNmU1NjJiZGYxYjEuLjdkODAxMmExNzli
MWM0NThmMDg0NmZjOGNjMTUxNmZmMDdhNjhiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMTUsNiArMjE1LDggQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIG5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpOwogI2VuZGlmCiAKKyAgICBzdGF0
aWMgdm9pZCBub3RpZnlIYXNTdHlsdXNEZXZpY2VDaGFuZ2VkKGJvb2wgaGFzU3R5bHVzRGV2aWNl
KTsKKwogICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYm
KTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2
ZXIuaAppbmRleCAxMDcwNDE2NDBiMmRmNGZmZjY4ZDE1N2JmZDQ0OGM2OThhNzExM2I4Li4wMmRi
NDIxMWE5OTJmYzkyM2RiZGRkYTI2MGRjOTFkOGM1ZmY4ZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCkBAIC0zNCw2ICsz
NCw4IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIEBpbnRlcmZhY2UgV0tNb3VzZURldmljZU9i
c2VydmVyIDogTlNPYmplY3Q8QktTTW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXI+CiAKICsgKFdL
TW91c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworKyAoaW5zdGFuY2V0eXBlKW5l
dyBOU19VTkFWQUlMQUJMRTsKKy0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwog
CiAtICh2b2lkKXN0YXJ0OwogLSAodm9pZClzdG9wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KaW5kZXggNDg5MWJkNWM4NWIx
NmQ4OWFiMjA1NWE2YmQzY2U3YTViZmQ3ZDIyZS4uZTMxM2UwYmQzZDU4YTY0NjliNWQ1NGJkMmJl
NmI2YzY5NjM4ZmVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
TW91c2VEZXZpY2VPYnNlcnZlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tNb3VzZURldmljZU9ic2VydmVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKIEBpbXBsZW1lbnRh
dGlvbiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgewogICAgIEJPT0wgX2hhc01vdXNlRGV2aWNlOwor
ICAgIHNpemVfdCBfc3RhcnRDb3VudDsKICAgICBSZXRhaW5QdHI8aWQ8QlNJbnZhbGlkYXRhYmxl
Pj4gX3Rva2VuOwogfQogCkBAIC00NCwyOCArNDUsMjQgQEAgKyAoV0tNb3VzZURldmljZU9ic2Vy
dmVyICopc2hhcmVkSW5zdGFuY2UKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLS0gKHZvaWQp
ZGVhbGxvYwotewotICAgIFtzZWxmIHN0b3BdOwotCi0gICAgW3N1cGVyIGRlYWxsb2NdOwotfQot
CiAjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciBzdGF0ZQogCiAt
ICh2b2lkKXN0YXJ0CiB7Ci0gICAgaWYgKF90b2tlbikKKyAgICBpZiAoKytfc3RhcnRDb3VudCA+
IDEpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVCghX3Rva2VuKTsKICAgICBfdG9rZW4g
PSBbW0JLU01vdXNlUG9pbnRlclNlcnZpY2Ugc2hhcmVkSW5zdGFuY2VdIGFkZFBvaW50ZXJEZXZp
Y2VPYnNlcnZlcjpzZWxmXTsKIH0KIAogLSAodm9pZClzdG9wCiB7Ci0gICAgaWYgKCFfdG9rZW4p
CisgICAgQVNTRVJUKF9zdGFydENvdW50ID4gMSk7CisgICAgaWYgKC0tX3N0YXJ0Q291bnQpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChfdG9rZW4pOwogICAgIFtfdG9rZW4gaW52YWxp
ZGF0ZV07CiAgICAgX3Rva2VuID0gbmlsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE2NmUxODlj
M2Y5MDBkNDdiNGM0ZTczMGNmZmM1NjYyMmZhZDZmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmgKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorCitA
aW50ZXJmYWNlIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgOiBOU09iamVjdAorCisrIChXS1N0eWx1
c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7CisrIChpbnN0YW5jZXR5cGUpbmV3IE5T
X1VOQVZBSUxBQkxFOworLSAoaW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CisKKy0g
KHZvaWQpc3RhcnQ7CistICh2b2lkKXN0b3A7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQk9PTCBoYXNTdHlsdXNEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoUEVO
Q0lMS0lUX1RFWFRfSU5QVVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkOWE2ZGZmNWE1NTI5ZDIy
MjRlYjcyMGZmZDA2MDVmNjczYjNlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEyNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlci5oIgorCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKKworI2ltcG9y
dCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0IDxVSUtpdC9VSVNjcmliYmxlSW50ZXJhY3Rp
b24uaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9TZWNvbmRzLmg+
CisKK3N0YXRpYyBTZWNvbmRzIGNoYW5nZVRpbWVJbnRlcnZhbCB7IDEwX21pbiB9OworCitAaW1w
bGVtZW50YXRpb24gV0tTdHlsdXNEZXZpY2VPYnNlcnZlciB7CisgICAgQk9PTCBfaGFzU3R5bHVz
RGV2aWNlOworICAgIHNpemVfdCBfc3RhcnRDb3VudDsKKyAgICBSZXRhaW5QdHI8TlNUaW1lcj4g
X2NoYW5nZVRpbWVyOworfQorCisrIChXS1N0eWx1c0RldmljZU9ic2VydmVyICopc2hhcmVkSW5z
dGFuY2UKK3sKKyAgICBzdGF0aWMgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqaW5zdGFuY2U7Cisg
ICAgaWYgKCFpbnN0YW5jZSkKKyAgICAgICAgaW5zdGFuY2UgPSBbW1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworLSAoaW5zdGFu
Y2V0eXBlKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9oYXNTdHlsdXNEZXZpY2UgPSBVSVNjcmliYmxlSW50ZXJhY3Rp
b24uaXNQZW5jaWxJbnB1dEV4cGVjdGVkOworCisgICAgaWYgKE5TTnVtYmVyICpjaGFuZ2VUaW1l
SW50ZXJ2YWxPdmVycmlkZSA9IFtOU1VzZXJEZWZhdWx0cy5zdGFuZGFyZFVzZXJEZWZhdWx0cyBv
YmplY3RGb3JLZXk6QCJXS1N0eWx1c0RldmljZU9ic2VydmVyQ2hhbmdlVGltZUludGVydmFsIl0p
IHsKKyAgICAgICAgY2hhbmdlVGltZUludGVydmFsID0gU2Vjb25kcyhbY2hhbmdlVGltZUludGVy
dmFsT3ZlcnJpZGUgZG91YmxlVmFsdWVdKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJXYXJuaW5n
OiBXS1N0eWx1c0RldmljZU9ic2VydmVyIGNoYW5nZVRpbWVJbnRlcnZhbCB3YXMgb3ZlcnJpZGVu
IHZpYSB1c2VyIGRlZmF1bHRzIGFuZCBpcyBub3cgJWcgc2Vjb25kcyIsIGNoYW5nZVRpbWVJbnRl
cnZhbC5zZWNvbmRzKCkpOworICAgIH0KKworICAgIHJldHVybiBzZWxmOworfQorCisjcHJhZ21h
IG1hcmsgLSBTdGF0ZQorCistICh2b2lkKXNldEhhc1N0eWx1c0RldmljZTooQk9PTCloYXNTdHls
dXNEZXZpY2UKK3sKKyAgICBpZiAoaGFzU3R5bHVzRGV2aWNlICE9IF9oYXNTdHlsdXNEZXZpY2Up
IHsKKyAgICAgICAgX2hhc1N0eWx1c0RldmljZSA9IGhhc1N0eWx1c0RldmljZTsKKworICAgICAg
ICBXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzU3R5bHVzRGV2aWNlQ2hhbmdlZChf
aGFzU3R5bHVzRGV2aWNlKTsKKyAgICB9CisKKyAgICBbX2NoYW5nZVRpbWVyIGludmFsaWRhdGVd
OworICAgIF9jaGFuZ2VUaW1lciA9IG5pbDsKK30KKworLSAodm9pZClzdGFydAoreworICAgIGlm
ICgrK19zdGFydENvdW50ID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW1tVSVNjcmliYmxl
SW50ZXJhY3Rpb24gY2xhc3NdIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImlzUGVuY2ls
SW5wdXRFeHBlY3RlZCIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBj
b250ZXh0Om5pbF07Cit9CisKKy0gKHZvaWQpc3RvcAoreworICAgIEFTU0VSVChfc3RhcnRDb3Vu
dCA+IDEpOworICAgIGlmICgtLV9zdGFydENvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBb
W1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07Cit9CisKKyNwcmFnbWEgbWFyayAtIGlzUGVu
Y2lsSW5wdXRFeHBlY3RlZCBLVk8KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFy
eSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEFTU0VSVChba2V5UGF0
aCBpc0VxdWFsVG9TdHJpbmc6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiXSk7CisgICAgQVNTRVJU
KG9iamVjdCA9PSBbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSk7CisKKyAgICBpZiAoVUlT
Y3JpYmJsZUludGVyYWN0aW9uLmlzUGVuY2lsSW5wdXRFeHBlY3RlZCkKKyAgICAgICAgc2VsZi5o
YXNTdHlsdXNEZXZpY2UgPSBZRVM7CisgICAgZWxzZQorICAgICAgICBbc2VsZiBzdGFydENoYW5n
ZVRpbWVyOmNoYW5nZVRpbWVJbnRlcnZhbC5zZWNvbmRzKCldOworfQorCisjcHJhZ21hIG1hcmsg
LSBpc1BlbmNpbElucHV0RXhwZWN0ZWQgVGltZXIKKworLSAodm9pZClzdGFydENoYW5nZVRpbWVy
OihOU1RpbWVJbnRlcnZhbCl0aW1lSW50ZXJ2YWwKK3sKKyAgICBbX2NoYW5nZVRpbWVyIGludmFs
aWRhdGVdOworICAgIF9jaGFuZ2VUaW1lciA9IFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRp
bWVJbnRlcnZhbDp0aW1lSW50ZXJ2YWwgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNo
YW5nZVRpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpOT107Cit9CisKKy0gKHZvaWQp
Y2hhbmdlVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCit7CisgICAgc2VsZi5oYXNTdHlsdXNE
ZXZpY2UgPSBOTzsKK30KKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShQRU5DSUxLSVRfVEVYVF9J
TlBVVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNz
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tCmluZGV4IGNhNGVhMjAzNjA4MjlhMWUxMTcwODcwZDdmYzQ0MzAwMjRmYmE3NmIuLjMx
MmE0YjQwODUxZTQwNWM4YWRiMjcxNTRlYTlhZjI3N2UxOTY4ODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzEsNiArMzEs
NyBAQAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIldLRnVs
bEtleWJvYXJkQWNjZXNzV2F0Y2hlci5oIgogI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVy
LmgiCisjaW1wb3J0ICJXS1N0eWx1c0RldmljZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJXZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOCwxNiArMzksMjAgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFs
aXplKCkKIHsKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0o
SU9TKQotICAgIGlmIChXZWJQcm9jZXNzUHJveHk6OmFsbFByb2Nlc3NlcygpLnNpemUoKSA9PSAx
KQotICAgICAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RhcnRd
OworICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07Cisj
ZW5kaWYKKyNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQorICAgIFtbV0tTdHlsdXNEZXZp
Y2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc3RhcnRdOwogI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3koKQogewogI2lmIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYlByb2Nlc3NQcm94eTo6
YWxsUHJvY2Vzc2VzKCkuaXNFbXB0eSgpKQotICAgICAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZl
ciBzaGFyZWRJbnN0YW5jZV0gc3RvcF07CisgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdIHN0b3BdOworI2VuZGlmCisjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBV
VCkKKyAgICBbW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0b3BdOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGYyMTUzODE0OGU2OTljNjhkNzYyMDY5MjNiNTM5YmU3OWFmNjc0OTIuLmVh
N2JiMmU3YWU0MGNhZDAzMWExYmM0YjExYWZhNTkwMGMyMDcxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM4Niw2ICsxMzg2LDcg
QEAKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNURE
MzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdL
U25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07
CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUy
NDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTU5MzY3
NUYyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTM2NzVEMjUyRTVFMzAwMEQz
RjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggKi87IH07CiAJCTk1Qzk0MzkxMjUyM0Mw
RDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRT
UEkuaCAqLzsgfTsKIAkJOTkwMzZBRTIyM0E5NDlDRjAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRl
YnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1
Z2dhYmxlSW5mb0ludGVybmFsLmggKi87IH07CiAJCTk5MDM2QUU1MjNBOTU4NzUwMDAwQjA2QSAv
KiBBUElEZWJ1Z2dhYmxlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZv
LmggKi87IH07CkBAIC00NDYyLDYgKzQ0NjMsOCBAQAogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcy
MzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZp
Y2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91
c2VEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OTM2NzVEMjUyRTVFMzAw
MEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS1N0eWx1
c0RldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OTM2NzVF
MjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsg
cGF0aCA9IGlvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVj
dG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxl
SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzA4OCw2ICs3MDkxLDggQEAKIAkJ
CQlBMTA0NkVBMDIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3Lm1tICovLAogCQkJCTBGQ0I0
RTQ0MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcuaCAqLywKIAkJCQkwRkNCNEU0NTE4
QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lm1tICovLAorCQkJCTk1OTM2NzVEMjUyRTVF
MzAwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggKi8sCisJCQkJOTU5MzY3NUUy
NTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0gKi8sCiAJCQkJQ0U1
QjRDODYyMUI3M0Q4NzAwMjJFNjRGIC8qIFdLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQu
aCAqLywKIAkJCQlDRTVCNEM4NzIxQjczRDg3MDAyMkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0No
YW5nZWRXZWJFdmVudC5tbSAqLywKIAkJCQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tT
eW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oICovLApAQCAtMTE4MTMsNiArMTE4MTgsNyBA
QAogCQkJCUJDNDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM0MDc2MUExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOTA5OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTk1OTM2NzVGMjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1
c0RldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTVCNEM4ODIxQjczRDg3MDAy
MkU2NEYgLyogV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjZGMTBCRTgxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljVGFwR2VzdHVyZVJl
Y29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkI4QjY0MjA1NEI1NTgwMEJENEE2MiAv
KiBXS1N5c3RlbVByZXZpZXdWaWV3LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTg1NWU1ZmVk
YzQ1ZDFlOWIyZTZhZGRkMmYzYjA0OGJjNzkwYjgyNS4uYTE3NmUxYTllZDliZDY1YTgxODU2NWRh
NzVjMzFiZWU1OTU2ZDZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTQwMTgsNyArNDAxOCw3IEBAIE9wdGlvbmFsPFBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZlBy
aW1hcnlQb2ludGluCiBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6
cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29u
c3QKIHsKICAgICBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcmVzdWx0KFBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3M6OkNvYXJzZSk7Ci0gICAgaWYgKGhhc01vdXNlRGV2aWNlKCkpCisg
ICAgaWYgKGhhc01vdXNlRGV2aWNlKCkgfHwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFzU3R5
bHVzRGV2aWNlKCkpCiAgICAgICAgIHJlc3VsdC5hZGQoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6
RmluZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCA1OWUwN2IwODAxYWZmOTcwZGZjNmEzYWU1NDEwM2ZkOWY3NWEwZmRi
Li5jMDgzMmYzMjhkYzUxYzUwZDNiYzhiYjI0NWQ2Zjc1ZjBkYzZmODlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00MDYsNiArNDA2LDggQEAgdm9pZCBXZWJQ
cm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKIAogICAgIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCA9IHBhcmFt
ZXRlcnMuZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKIAorICAgIG1faGFzU3R5bHVzRGV2aWNl
ID0gcGFyYW1ldGVycy5oYXNTdHlsdXNEZXZpY2U7CisKICAgICBmb3IgKGF1dG8mIHNjaGVtZSA6
IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQpCiAgICAgICAg
IHJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHNjaGVtZSk7CiAKQEAgLTEwNjQsNiAr
MTA2NiwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKGJvb2wgaGFzTW91
c2VEZXZpY2UpCiAKICNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYg
UExBVEZPUk0oSU9TKQogCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc1N0eWx1c0RldmljZShib29s
IGhhc1N0eWx1c0RldmljZSkKK3sKKyAgICBpZiAoaGFzU3R5bHVzRGV2aWNlID09IG1faGFzU3R5
bHVzRGV2aWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hhc1N0eWx1c0RldmljZSA9IGhh
c1N0eWx1c0RldmljZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckds
b2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKK30KKwogI2lmIEVOQUJMRShHQU1FUEFEKQogCiB2
b2lkIFdlYlByb2Nlc3M6OnNldEluaXRpYWxHYW1lcGFkcyhjb25zdCBWZWN0b3I8V2ViS2l0OjpH
YW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCmluZGV4IGYzZTE5YWI2YWIzMmJkMGVjNjRjZDcyNzc5M2Y0YmNkM2U0ZDQ4ZjQuLjFmZDll
ZGFmOTAxMzk5YzRmNzM1YmU5ODJmZWY5N2I3OGFkMzkzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEhhc01vdXNlRGV2aWNlKGJvb2wpOwogI2VuZGlmCiAKKyAgICBib29sIGhhc1N0eWx1c0Rldmlj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzU3R5bHVzRGV2aWNlOyB9CisgICAgdm9pZCBzZXRIYXNT
dHlsdXNEZXZpY2UoYm9vbCk7CisKICAgICBXZWJGcmFtZSogd2ViRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKSBjb25zdDsKICAgICBWZWN0b3I8V2ViRnJhbWUqPiB3ZWJGcmFtZXMoKSBj
b25zdDsKICAgICB2b2lkIGFkZFdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
RnJhbWUqKTsKQEAgLTU2Myw2ICs1NjYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNNb3Vz
ZURldmljZSB7IGZhbHNlIH07CiAjZW5kaWYKIAorICAgIGJvb2wgbV9oYXNTdHlsdXNEZXZpY2Ug
eyBmYWxzZSB9OworCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZy
YW1lKj4gbV9mcmFtZU1hcDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgc3Rk
Ojp1bmlxdWVfcHRyPFdlYlByb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+
IFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzNzAwMTc5OTc5MzMyOTE0NjJmNjBmZDE1ODgz
ODJhZjc1NTY0YjlkLi4yNDk2YzlkYWMxMzJkOGQzY2M0MWZkNDUxNTYwOGZkZjc5MGNiNTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNTYsNiArNTYsOCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5v
dFJlZkNvdW50ZWQgewogICAgIFNldEhhc01vdXNlRGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2Up
CiAjZW5kaWYKIAorICAgIFNldEhhc1N0eWx1c0RldmljZShib29sIGhhc1N0eWx1c0RldmljZSkK
KwogICAgICMgUGx1Zy1pbnMuCiAgICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1
aW50MzJfdCBoYXNoLCBXYWxsVGltZSBleHBpcmF0aW9uVGltZSkKICAgICBSZXNldFBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2hlcyhIYXNoTWFwPHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWZjZDU2
MDFkMjc3ZjJjOTY5MTU5MGU1Mzk4ODAyYTYwNDcwNjU2OC4uNGFiNzg3MjljNWY1YzIzNmViMTNh
Yzk1ZTNiNjFkYWZhZGE0OWQzOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTEwLTEyICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgImFueS1wb2ludGVyOmZpbmUiIG1l
ZGlhIHF1ZXJ5IGZhbHNlIG9uIGlQYWQvUGVuY2lsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYz
ODEzMjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TU3R5bHVzU3VwcG9ydC5tbTogQWRk
ZWQuCisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0luaXRpYWxseURpc2Nvbm5lY3Rl
ZCk6CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0luaXRpYWxseUNvbm5lY3RlZCk6
CisgICAgICAgIChpT1NTdHlsdXNTdXBwb3J0LlN0eWx1c0xhdGVyRGlzY29ubmVjdGVkKToKKyAg
ICAgICAgKGlPU1N0eWx1c1N1cHBvcnQuU3R5bHVzTGF0ZXJDb25uZWN0ZWQpOgorICAgICAgICAo
aU9TU3R5bHVzU3VwcG9ydC5TdHlsdXNEaXNjb25uZWN0ZWRUaW1lb3V0KToKKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTEwLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbd2Via2l0Y29yZXB5XSBBdHRlbXB0IHRvIHRlcm1pbmF0ZSBzdHVjayBwcm9jZXNzZXMg
YmVmb3JlIGtpbGxpbmcgdGhlbQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzM5ZWExODBi
NWJlZTQyMzQ0Mzk5MDQxYTVlNjEwYjY0ZjVhZTY2Li40Mzk0Yzk3NmJmYjFmMmQ1ODE1Nzg4N2Iz
ZDZmNmRlZTU5NTI2MTY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODI5LDYgKzgyOSw3
IEBACiAJCTkzRjU2REE3MUU1RjkxNzQwMDNFREU4NCAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4M0UwMzMxRDBB
NUYyNzAwRkVCQ0YzIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTkzRjU2REE5MUU1Rjkx
OUQwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dl
YlZpZXdTbmFwc2hvdC5tbSAqLzsgfTsKIAkJOTNGN0U4NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0
QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICov
OyB9OworCQk5NTBFNENDMTI1MkU3NTI0MDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEU0Q0MwMjUy
RTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovOyB9OwogCQk5NUI2QjNCNzI1
MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRp
YURvY3VtZW50Lm1tICovOyB9OwogCQk5OTg0RkFDQzFDRkZBRjYwMDA4RDE5OEMgLyogV0tXZWJW
aWV3VGV4dElucHV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAq
LzsgfTsKIAkJOTk4NEZBQ0UxQ0ZGQjA5MDAwOEQxOThDIC8qIGVkaXRhYmxlLWJvZHkuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTg0
RkFDRDFDRkZCMDM4MDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sICovOyB9OwpAQCAtMjQz
OSw2ICsyNDQwLDcgQEAKIAkJOTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2ViVmlld1Nu
YXBzaG90Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJW
aWV3U25hcHNob3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjdFODZCMTRE
QzhFNEQwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0RnJhbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
N0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNT
dXBwb3J0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5
bHVzU3VwcG9ydC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVCNkIzQjYyNTFF
QkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNZWRpYURvY3VtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGV4dElu
cHV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0RkFDRDFDRkZCMDM4MDA4
RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImVkaXRhYmxlLWJvZHkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjcy
LDYgKzMyNzQsNyBAQAogCQkJCUNFRDczRDM1MjQ2RjIwNEMwMERBRTMyNyAvKiBJbnNlcnRUZXh0
QWx0ZXJuYXRpdmVzLm1tICovLAogCQkJCTJEQjAyMzJFMUU0RTg3MTgwMDcwNzEyMyAvKiBJbnRl
cmFjdGlvbkRlYWRsb2NrQWZ0ZXJDcmFzaC5tbSAqLywKIAkJCQkyRDExNkUxMjIzRTBDQjM5MDAy
MDg5MDAgLyogaU9TTW91c2VTdXBwb3J0Lm1tICovLAorCQkJCTk1MEU0Q0MwMjUyRTc1MjMwMDcx
NjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovLAogCQkJCTlCNkQ5RkY4MjUyRUZERTUwMEE1
MTY0MCAvKiBJUENUZXN0aW5nQVBJLm1tICovLAogCQkJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0
QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSAqLywKIAkJCQk1QzAxNjBDMDIxQTEz
MjMyMDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLywKQEAgLTUyMjksNiArNTIzMiw3IEBACiAJ
CQkJN0E5MDlBODIxRDg3NzQ4MDAwN0UxMEY4IC8qIEludFJlY3RUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QTkwOUE4MzFEODc3NDgwMDA3RTEwRjggLyogSW50U2l6ZVRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEMTE2RTEzMjNFMENCM0EwMDIwODkwMCAvKiBpT1NNb3VzZVN1
cHBvcnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk5NTBFNENDMTI1MkU3NTI0MDA3MTY1OUYgLyog
aU9TU3R5bHVzU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCNkQ5RkY5MjUyRUZERTUw
MEE1MTY0MCAvKiBJUENUZXN0aW5nQVBJLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQkY4OTMx
REQ1OTlCRDAwQjAwMzI4IC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDRDVGRjQ5RjIxNjJFOTQzMDA0QkQ4NkYgLyogSVNPQm94LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9pT1NTdHlsdXNTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pT1NTdHlsdXNTdXBwb3J0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMTYxZTcxNjFlYWQ4NDQyMjQ1
ZTFjODllM2Y1YTYzOGExOGU2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU1N0eWx1c1N1cHBvcnQubW0KQEAgLTAsMCArMSwxNzcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykK
KworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBv
cnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQu
aD4KKworI2lmIEhBVkUoUEVOQ0lMS0lUX1RFWFRfSU5QVVQpCisKK0BpbnRlcmZhY2UgV0tTdHls
dXNEZXZpY2VPYnNlcnZlcgorKyAoV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3Rh
bmNlOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaGFzU3R5bHVzRGV2aWNlOworLSAodm9p
ZClzdGFydDsKKy0gKHZvaWQpc3RhcnRDaGFuZ2VUaW1lcjooTlNUaW1lSW50ZXJ2YWwpdGltZUlu
dGVydmFsOworQGVuZAorCitzdGF0aWMgV0tTdHlsdXNEZXZpY2VPYnNlcnZlciAqZ2V0U3R5bHVz
RGV2aWNlT2JzZXJ2ZXIoKQoreworICAgIHJldHVybiBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1N0
eWx1c0RldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdOworfQorCitlbnVtIGNsYXNzIEhh
c1N0eWx1c0RldmljZSB7IFllcywgTm8gfTsKK3N0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmll
dz4gY3JlYXRlV2ViVmlldyhIYXNTdHlsdXNEZXZpY2UgaGFzU3R5bHVzRGV2aWNlKQoreworICAg
IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgKnN0eWx1c0RldmljZU9ic2VydmVyID0gZ2V0U3R5bHVz
RGV2aWNlT2JzZXJ2ZXIoKTsKKyAgICBbc3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAg
IHN0eWx1c0RldmljZU9ic2VydmVyLmhhc1N0eWx1c0RldmljZSA9IGhhc1N0eWx1c0RldmljZSA9
PSBIYXNTdHlsdXNEZXZpY2U6OlllczsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07Cisg
ICAgcmV0dXJuIHdlYlZpZXc7Cit9CisKK1RFU1QoaU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzSW5p
dGlhbGx5RGlzY29ubmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXco
SGFzU3R5bHVzRGV2aWNlOjpObyk7CisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFs
dWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVy
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
cG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworVEVTVChp
T1NTdHlsdXNTdXBwb3J0LCBTdHlsdXNJbml0aWFsbHlDb25uZWN0ZWQpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gY3JlYXRlV2ViVmlldyhIYXNTdHlsdXNEZXZpY2U6Olllcyk7CisKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVY
UEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0p
OworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6
IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAicG9pbnRlcjogZmluZSJdKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVy
OiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBvcnQsIFN0eWx1c0xhdGVyRGlzY29u
bmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXcoSGFzU3R5bHVzRGV2
aWNlOjpZZXMpOworCisgICAgZ2V0U3R5bHVzRGV2aWNlT2JzZXJ2ZXIoKS5oYXNTdHlsdXNEZXZp
Y2UgPSBOTzsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
InBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25l
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1w
b2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0eWx1c1N1cHBv
cnQsIFN0eWx1c0xhdGVyQ29ubmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdl
YlZpZXcoSGFzU3R5bHVzRGV2aWNlOjpObyk7CisKKyAgICBnZXRTdHlsdXNEZXZpY2VPYnNlcnZl
cigpLmhhc1N0eWx1c0RldmljZSA9IFlFUzsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2
YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVY
UEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0p
OworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
ImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RF
U1QoaU9TU3R5bHVzU3VwcG9ydCwgU3R5bHVzRGlzY29ubmVjdGVkVGltZW91dEZpcmUpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlldyhIYXNTdHlsdXNEZXZpY2U6Olllcyk7CisK
KyAgICBbZ2V0U3R5bHVzRGV2aWNlT2JzZXJ2ZXIoKSBzdGFydENoYW5nZVRpbWVyOjAuMDFdOwor
CisgICAgX19ibG9jayBCT09MIGRvbmUgPSBmYWxzZTsKKyAgICBbTlNUaW1lciBzY2hlZHVsZWRU
aW1lcldpdGhUaW1lSW50ZXJ2YWw6MC4wNSByZXBlYXRzOk5PIGJsb2NrOl4oTlNUaW1lciAqdGlt
ZXIpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworCisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7
CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2lu
dGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2
YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU1N0
eWx1c1N1cHBvcnQsIFN0eWx1c0Rpc2Nvbm5lY3RlZFRpbWVvdXRDYW5jZWwpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlldyhIYXNTdHlsdXNEZXZpY2U6Olllcyk7CisKKyAgICBb
Z2V0U3R5bHVzRGV2aWNlT2JzZXJ2ZXIoKSBzdGFydENoYW5nZVRpbWVyOjAuMDFdOworCisgICAg
Z2V0U3R5bHVzRGV2aWNlT2JzZXJ2ZXIoKS5oYXNTdHlsdXNEZXZpY2UgPSBZRVM7CisKKyAgICBf
X2Jsb2NrIEJPT0wgZG9uZSA9IGZhbHNlOworICAgIFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0
aFRpbWVJbnRlcnZhbDowLjA1IHJlcGVhdHM6Tk8gYmxvY2s6XihOU1RpbWVyICp0aW1lcikgewor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisKKyAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5v
bmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55
LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworI2VuZGlmIC8vIEhBVkUoUEVO
Q0lMS0lUX1RFWFRfSU5QVVQpCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>